Java Client Applet - Connection refused

Mkay so it seems that we're almost there.
Time for my applet do what it really was built to do... play online!

OK so I launch the server and then my applet with these parameters:

<applet name="game" code="tileGen" archive="client.jar" width="636" height="541">
<param name="name" value="weka">
<param name="host" value="69.133.110.152">
<param name="port" value="25566">
</applet>

Open in new window


and I get this:

Server went down -- crap!
java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(Unknown Source)
	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.SocksSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at java.net.Socket.<init>(Unknown Source)
	at tileGen.run(tileGen.java:347)
	at java.lang.Thread.run(Unknown Source)
Exception in thread "Thread-8" java.lang.NullPointerException
	at tileGen.run(tileGen.java:421)
	at java.lang.Thread.run(Unknown Source)

Open in new window


Inside my client.jar is
tileGen.class
tileGen$GamePanel.class
Player.class

Then there is a folder inside the jar that says META-INF and inside that are the signed files.

I have the jar signed and it asks me if i want to run it because it has unsafe operations.. i run it and i get that error.

Whoops, here is my new tileGen
/**
Mystik Client
Programer: Dan J.
Many thanks to objects & CEHJ
Started May 23, 2010
(c) 2010
 **/

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.swing.DefaultListModel;
import javax.swing.JApplet;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JScrollPane;

import javax.swing.border.Border;
import javax.swing.plaf.basic.BasicScrollBarUI;
import javax.swing.text.Document;
import javax.swing.*;
import java.net.URL;

public class tileGen extends JApplet implements KeyListener, MouseListener,
            ActionListener, Runnable {

      Image[] tiles;
      Image[] weapon;
      Image[] userImg;
      String[] user;
      int x, y, px, py, tx, ty; // x tile - y tile // player x - player y // tile
      // x - tile y
      boolean left, right, down, up, canMove, respawn;
      boolean drawFlail, drawBattleaxe;
      public  int[][] board;
      final int NUM_TILES = 200;
      final int NUM_WEAPS = 2;
      boolean[] weaponPicked;
      JLabel lx, ly; // to see where we are!
      int r1, r2, u1, u2, l1, l2, d1, d2, spawnX, spawnY;
      int rightSide = 480;
      int downSide = 320;
      int mapX = 15;
      int mapY = 10;
      String txtLastFX, txtLastFY;
      boolean boolRC, boolLC, boolUC, boolDC;
      int leftMap, upMap, rightMap, downMap, currentMap, map;
      public JTextArea c = new JTextArea();
      public JTextArea stats = new JTextArea();
      public  String newline;

      public  Font TimesR = new Font("MonoSpaced", Font.BOLD, 15);
      public  tileGen anItem;
      public  boolean firstpush = false;
      String name, desc, typeOf, attackAdd, defenseAdd, canSell, canEat,
                  earnedCoins, canEquip;
      public  int blkStr;
      public  Random roll = new Random();
      // public  String me.getUsername();
      public  int[] userPX;
      public  int[] userPY;
      private Map<String, Player> players = new HashMap<String, Player>();
      public  String[] tokens;
      public  String[] temp;
      public  boolean isResp = false;
      public  String myCommand = "move";
      private Player me;
      public  boolean chatOne = false;
      public int red = 0;
      public  JTextField say = new JTextField();
      public GamePanel game = new GamePanel();
      int xpos, ypos;
      int rect1xco, rect1yco, rect1width, rect1height;
      boolean gameClicked;
      public DefaultListModel model = new DefaultListModel();

      // Network schtuff
      public  PrintStream os = null;
       Socket clientSocket = null;
       BufferedReader in;
       boolean closed;

      int lastX, lastY, row, col;
      JLabel lbl1, lbl2, p1, p2, lblRC;

      int attack, defense, gold, level, exp;

      public  void showInventory(ArrayList<String> theList) {
            for (int i = 0; i < theList.size(); i++) {
                  System.out.println(theList.get(i));
            }
      }

      public void init() {

            setLayout(new BorderLayout());
            JPanel invOne = new JPanel(); // inventory panel


            // JPanel banner = new JPanel();

            JPanel main = new JPanel(new BorderLayout());
			JScrollPane sp = new JScrollPane(c);
            main.add(game, BorderLayout.CENTER); // game screen;
            main.add(sp, BorderLayout.SOUTH); // chat/textarea screen
            add(main, BorderLayout.CENTER);
            add(say, BorderLayout.SOUTH);

            /**
             * arr.add("Hatchet"); arr.add("Sword"); arr.add("Shield"); arr.add(gold
             * + " Gold"); System.out.println("You have " + arr.size() +
             * " items in your inventory."); showInventory(arr);
             **/

            JList list = new JList(model);



            list.addMouseListener(this);
            say.addKeyListener(this);

            list.setVisible(true);

            list.setFocusable(false);
            list.setPreferredSize(new Dimension(100,480));

               c.setBackground(Color.white);
			            c.setForeground(Color.black);
			            c.setFont(TimesR);
			            c.setEditable(true);

            c.setLineWrap(true);

			        Color color = new Color(255, 255, 255);
			        UIManager.put("ScrollBar.background", Color.BLACK);
			        UIManager.put("ScrollBar.darkShadow", Color.BLACK);
			        UIManager.put("ScrollBar.foreground", Color.WHITE);
			        UIManager.put("ScrollBar.highlight", Color.BLACK);
			        UIManager.put("ScrollBar.shadow", Color.red);
			        UIManager.put("ScrollBar.thumb", Color.BLACK);
			        UIManager.put("ScrollBar.thumbDarkShadow", Color.BLACK);
			        UIManager.put("ScrollBar.thumbHighlight", Color.BLACK);
			        UIManager.put("ScrollBar.thumbShadow", Color.BLACK);
			        UIManager.put("ScrollBar.track", Color.WHITE);
			        UIManager.put("ScrollBar.trackHighlight", Color.BLUE);
			         sp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        sp.getVerticalScrollBar().setUI(new BasicScrollBarUI());
        sp.setPreferredSize(new Dimension(520,150));


            main.add(list, BorderLayout.EAST); // inventory screen

            game.setOpaque(false);

            // game.setBounds(0, 0, 416, 288);





            board = loadBoard(1);
            currentMap = 1;
            spawnY = 6;
            spawnX = 10;
            c.append("Welcome to the game, " + getParameter("name") + ".  Host:" + getParameter("host") + " on port " + getParameter("port"));

            this.setFocusable(true);
            addMouseListener(this);

            try {
                  tiles = new Image[NUM_TILES];
                  for (int i = 0; i < NUM_TILES; i++) {
					  Toolkit tk = this.getToolkit();
					  		tiles[i] = tk.getImage(this.getClass().getResource(String.format("line_tile/t%d.png", i)));




					  //tiles[i] = tileGen.class.getResource(String.format("line_tile/t%d.png", i));
                      //tiles[i] = ImageIO.read(getClass().getResource(String.format("line_tile/t%d.png", i)));
                  }

                  weapon = new Image[NUM_WEAPS];
                  for (int xi = 0; xi < NUM_WEAPS; xi++) {
                        weapon[xi] = ImageIO.read(getClass().getResource(
                                    String.format("weapon/w%d.gif", xi)));
                  }
            } catch (Exception ex) {
                  ex.printStackTrace();
            }

            // demo
            // player = getImage(getClass().getResource("me.gif")); // our player
            game.addKeyListener(this);
            canMove = true;

            String txtY = Integer.toString(spawnY);
            String txtX = Integer.toString(spawnX);

            py = spawnY * 32;
            px = spawnX * 32;

            lastY = spawnY;
            lastX = spawnX;

            drawFlail = true;
            drawBattleaxe = true;
            this.setFocusable(true);
            game.setFocusable(true);
            c.setFocusable(false);

            invOne.setVisible(true);

            // blkStr = board[5][5];
            // System.out.println("Teh black one: " +blkStr);
            // board[5][5] = 26;

            game.requestFocusInWindow();

      }

      public void start() {
            new Thread(this).start();

      }

      public void playerLogin() throws IOException {

            Random roll = new Random();
            int newNo = roll.nextInt(200);
            // me.getUsername() = "Guest #" + roll.nextInt(110);
            // String me.getUsername() = getParameter("name");

            me = new Player();
            me.setUsername(getParameter("name"));
            me.setPlayerImage(ImageIO.read(getClass().getResource("me.gif")));
            me.setX(256);
            me.setY(256);
            me.setMap(1);
            me.setCommand("move");
            players.put(me.getUsername(), me);

            repaint();

            System.out.println(me.getUsername() + " was added. player: " + me);
            os.println(me.getUsername() + "|" + me.getX() + "|" + me.getY() + "|"
                        + me.getMap() + "|" + me.getCommand());

            attack = 4;
            defense = 5;
            gold = 542;
            level = 1;
            exp = 53;

      }

      public void mousePressed(MouseEvent e) {
      }

      public void mouseReleased(MouseEvent e) {
      }

      public void mouseEntered(MouseEvent e) {
      }

      public void mouseExited(MouseEvent e) {
      }

      // equip - use - select
      public void mouseClicked(MouseEvent e) {
/**
            xpos = me.getX();
            ypos = me.getY();

            rect1xco = 0;
            rect1yco = 0;
            rect1width = 480;
            rect1height = 320;

            if (xpos > rect1xco && xpos < rect1xco + rect1width && ypos > rect1yco
                        && ypos < rect1yco + rect1height) {
                  // game.requestFocusInWindow();
                  c.append("\nYou clicked on the game.");
            } **/

      }

      private  final HashSet<Integer> BLOCKED_TILES = new HashSet<Integer>();
       {

            /**
             * BLOCKED_TILES.add(118); BLOCKED_TILES.add(67);
             * BLOCKED_TILES.add(190); BLOCKED_TILES.add(40);
             * BLOCKED_TILES.add(135); BLOCKED_TILES.add(520);
             * BLOCKED_TILES.add(25); BLOCKED_TILES.add(91); BLOCKED_TILES.add(394);
             * BLOCKED_TILES.add(1); BLOCKED_TILES.add(121);
             **/

            BLOCKED_TILES.add(1);
            BLOCKED_TILES.add(6);
            BLOCKED_TILES.add(7);
            // add more tiles here
      }

      public void actionPerformed(ActionEvent actionevent) {
            // game.requestFocusInWindow();
            c.setCaretPosition(c.getDocument().getLength());
      }

      public Player getPlayer(String username) {
            return players.get(username);
      }

      public void run() {

            Socket s = null;

            try {



                   s = new Socket(getParameter("host"),Integer.valueOf(getParameter("port")));

                  in = new BufferedReader(new InputStreamReader(s.getInputStream()));

                  os = new PrintStream(s.getOutputStream());
                  System.out.println("\n******** Connecting to " + getParameter("host") + " on port " + getParameter("port"));

                  playerLogin();

                  int buf = -1;
                  String responseLine;

                  // rawr
                  while ((responseLine = in.readLine()) != null) {
                        isResp = true;

                        chatOne = true;
                        // c.append("\nxxx\n");
                        // System.out.println("responseLine (|): " + responseLine);

                        String str = responseLine;

                        String delimiter = "\\|";

                        String[] temp = str.split(delimiter);

                        // c.append("\noutput: " + str);

                        // pid
                        Player player = players.get(temp[0]);

                        if ("chat".equalsIgnoreCase(temp[4])) {
                              c.append("\n" + temp[0] + " says: " + temp[2]);

                              // sendMsg(temp[0], temp[2], me.getUsername());

                        }

                        if (player == null) {

                              player = new Player();
                              player.setUsername(temp[0]);
                              player.setX(Integer.parseInt(temp[1]));
                              player.setY(Integer.parseInt(temp[2]));
                              player.setCommand(temp[4]);
                              player.setPlayerImage(ImageIO.read(getClass().getResource(
                                          "me.gif")));
                              player.setMap(1);
                              players.put(temp[0], player);
                        }
                        if ("move".equalsIgnoreCase(temp[4])) {
                              // c.append("\n"+temp[2] + " and temp 4: " + temp[4]);
                              player.setX(Integer.parseInt(temp[1]));
                              player.setY(Integer.parseInt(temp[2]));
                              player.setMap(Integer.parseInt(temp[3]));
                        }
                        player.setCommand(temp[4]);
                        player.setUsername(temp[0]);
                        System.out.println("X set: " + player.getX() + " | Y set: "
                                    + player.getY() + " | CurrMap set: " + player.getMap()
                                    + " | Username set: " + player.getUsername()
                                    + " | Command set: " + temp[4]);

                        repaint();

                  }
                  repaint();

            } catch (Exception rwe) {
                  // System.exit(0);
                  System.out.println("Server went down -- crap!");
                  rwe.printStackTrace();
            } finally {
                  try {
                        s.close();
                  } catch (IOException ere) {
                        ere.printStackTrace();
                  }
            }

      }

      public void sendMsg(String e, String msg, String getUser) {

            // c.append("\n Temp0: " + temp[0] +
            // "| me.getUsername: "+me.getUsername());

            String whosay;
            if (!temp[0].equals(me.getUsername())) {

                  whosay = e;
            } else {
                  whosay = me.getUsername();
            }
            c.append("\n" + e + " says: " + msg);
      }

      public void keyPressed(KeyEvent e) {

            if (e.getKeyCode() == KeyEvent.VK_ENTER) {
                  Toolkit.getDefaultToolkit().beep();
                  myCommand = "chat";
                  os.println(me.getUsername() + "|1|" + say.getText() + "|yes|chat");
                  say.setText("");
                  say.setCaretPosition(say.getDocument().getLength());

            }
            // getPlayers();

            repaint();

            myCommand = "move";
            System.out.println("PRESSED" + myCommand);

            if (isInBound(lastX, lastY) == true) {
                  System.out.println("\nYOU WENT OFF THE GRID.\n");
            }

            right = true;
            left = true;
            up = true;
            down = true;

            // c.append("\nInventory selection: " + choice);

            // DESCRIBE ITEM
            if (e.getKeyCode() == KeyEvent.VK_D) {
                  Object sup = 1;
                  String xda = sup.toString();
                  String descInv = invShow(xda);
                  c.append("\n" + descInv);
            }

            if (e.getKeyCode() == KeyEvent.VK_S) {
                  int numToReplace = 0;
                  int replacement = 7;
                  // loop through each nested array
                  for (int i = 0; i < board.length; i++) {
                        // loop through each element of the nested array
                        for (int j = 0; j < board[i].length; j++) {
                              if (board[i][j] == numToReplace) {
                                    board[i][j] = replacement;
                              }
                        }
                  }
            }

            // USE
            if (e.getKeyCode() == KeyEvent.VK_U) {

                  // MAP ONE
                  if (currentMap == 1) {

                        // OPEN BLOCKED TILES
                        if (spawnX == 10 && spawnY == 7) {
                              board[8][10] = 167;
                              c.append("\nYou opened a door.");
                        }

                  }

                  // MAP ONE

            }

            // PICK UP
            if (e.getKeyCode() == KeyEvent.VK_G) {

                  // MAP ONE
                  if (currentMap == 1) {

                        if (spawnX == 4 && spawnY == 4) {
                              int xav = board[4][4];
                              board[4][4] = 7;
                              drawFlail = false;
                              try {
                                    anItem.addInv(1);
                              } catch (Exception ere) {
                                    ere.printStackTrace();
                              }

                        }

                  }

                  // MAP ONE
                  if (currentMap == 3) {

                        if (spawnX == 3 && spawnY == 3) {
                              int xav = board[3][3];
                              board[3][3] = 1;
                              drawBattleaxe = false;
                              try {
                                    anItem.addInv(2);
                              } catch (Exception ere) {
                                    ere.printStackTrace();
                              }

                        }

                  }
                  // MAP ONE

            }

            try {
                  if (blocked(spawnX - 1, spawnY) == true && spawnX == mapX) {
                        left = false;
                        System.out.println("You can't go left!");
                  }
                  if (blocked(spawnX + 1, spawnY) == true && spawnX == 0) {
                        right = false;
                        System.out.println("You can't go right!");
                  }
                  if (blocked(spawnX, spawnY + 1) == true && spawnX == mapX) {
                        down = false;
                        System.out.println("You can't go down!");
                  }
                  if (blocked(spawnX, spawnY - 1) == true && spawnX == mapX) {
                        up = false;
                        System.out.println("You can't go up!");
                  }

            } catch (ArrayIndexOutOfBoundsException xe) {
                  xe.printStackTrace();
            }

            try {
                  if (blocked(spawnX + 1, spawnY) == true)
                        right = false;
            } catch (ArrayIndexOutOfBoundsException xe) {
                  System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
            }

            try {
                  if (blocked(spawnX - 1, spawnY) == true)
                        left = false;
            } catch (ArrayIndexOutOfBoundsException xe) {
                  System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
            }

            try {
                  if (blocked(spawnX, spawnY + 1) == true)
                        down = false;
            } catch (ArrayIndexOutOfBoundsException xe) {
                  System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
            }

            try {
                  if (blocked(spawnX, spawnY - 1) == true)
                        up = false;
            } catch (ArrayIndexOutOfBoundsException xe) {
                  System.out.println("\n\ncc Border AIOOB Exception!!\n\n");
            }

            if (blocked(12, 7) == true && spawnX == mapX && spawnY - 1 == 1 - mapX) {
                  up = false;
            }

            int r1 = lastX + 1;
            if (lastX > 0) {
                  r1 = lastX + 1;
            } else {
                  r1 = 0;
            }
            int r2 = lastY;

            int u1 = lastX;
            int u2;
            if (lastY > 0) {
                  u2 = lastY - 1;
            } else {
                  u2 = 0;
            }

            int l1;
            if (spawnX > 0) {
                  l1 = lastX - 1;
            } else {
                  l1 = 0;
            }
            int l2 = spawnY;

            int d1 = lastX;
            int d2;
            if (lastY > 0) {
                  d2 = lastY + 1;
            } else {
                  d2 = 0;
            }

            try {
                  if (blocked(r1, r2) == true)
                        right = false; // we cannot go right
                  if (blocked(u1, u2) == true)
                        up = false; // we cannot go up
                  if (blocked(l1, l2) == true)
                        left = false; // we cannot go left
                  if (blocked(d1, d2) == true)
                        down = false; // we cannot go down

            } catch (ArrayIndexOutOfBoundsException xe) {
                  System.out
                              .println("\n\nFuture block Array Index Out of Bounds Exception!!\n\n");
            }

            leftMap = 0;
            upMap = 0;
            rightMap = 0;
            downMap = 0;

            boolRC = false;
            boolLC = false;
            boolUC = false;
            boolDC = false;

            // Border Checks
            if (spawnX == mapX && e.getKeyCode() == KeyEvent.VK_RIGHT) {
                  boolRC = true;
            }

            if (spawnX == 0 && e.getKeyCode() == KeyEvent.VK_LEFT) {
                  boolLC = true;
            }

            if (spawnY == 0 && e.getKeyCode() == KeyEvent.VK_UP) {
                  boolUC = true;
            }

            if (spawnY == mapY && e.getKeyCode() == KeyEvent.VK_DOWN) {
                  boolDC = true;
            }

            /** MAP SWITCHING **/
            /** MAP SWITCHING **/
            /** MAP SWITCHING **/

            if (currentMap == 1) {
                  leftMap = 3;
                  upMap = 2;
                  rightMap = 4;
                  downMap = 5;

            } else if (currentMap == 4) {
                  leftMap = 1;
            } else if (currentMap == 2) {

                  downMap = 1;
            } else if (currentMap == 3) {

                  downMap = 1;
            }
            if (currentMap == 5) {

                  upMap = 1;
            }

            if (leftMap == 0 && spawnX == 0)
                  left = false;
            if (rightMap == 0 && spawnX == mapX)
                  right = false;
            if (downMap == 0 && spawnY == mapY)
                  down = false;
            if (upMap == 0 && spawnY == 0)
                  up = false;

            if (e.getKeyCode() == KeyEvent.VK_UP && up == true) {
                  spawnY = spawnY - 1;
                  System.out.println("You went up.");
            }
            if (e.getKeyCode() == KeyEvent.VK_DOWN && down == true) {
                  spawnY = spawnY + 1;
                  System.out.println("You went down.");
            }
            if (e.getKeyCode() == KeyEvent.VK_RIGHT && right == true) {
                  spawnX = spawnX + 1;
                  System.out.println("You went right.");
            }
            if (e.getKeyCode() == KeyEvent.VK_LEFT && left == true) {
                  spawnX = spawnX - 1;
                  System.out.println("You went left.");
            }

            // RIGHT TO LEFT
            // LEFT TO RIGHT DONE
            if (boolRC == true && right == true) {
                  spawnX = 0;
                  lastX = spawnX;
                  spawnY = spawnY;
                  board = loadBoard(rightMap);
                  px = 0;
                  py = py;
                  currentMap = rightMap;
            }

            if (boolLC == true && left == true) {
                  spawnX = mapX;
                  lastX = spawnX;
                  spawnY = spawnY;
                  board = loadBoard(leftMap);
                  px = rightSide;
                  py = py;
                  currentMap = leftMap;
            }

            if (boolUC == true && up == true) {
                  spawnY = mapY;
                  lastY = spawnY;
                  spawnX = spawnX;
                  board = loadBoard(upMap);
                  px = px;
                  py = downSide;
                  currentMap = upMap;
            }

            if (boolDC == true && down == true) {
                  spawnY = 0;
                  lastY = spawnY;
                  spawnX = spawnX;
                  board = loadBoard(downMap);
                  px = px;
                  py = 0;
                  currentMap = downMap;
            }

            /** MAP SWITCHING **/
            /** MAP SWITCHING **/
            /** MAP SWITCHING **/

            String currX = Integer.toString(spawnX);
            String currY = Integer.toString(spawnY);
            System.out.println("Current/Last Y: " + currY + "/" + lastY);
            System.out.println("Current/Last X: " + currX + "/" + lastX + " - "
                        + board[spawnY][spawnX] + "\n\n");

            if (boolLC == false) {
                  if (left == true) {
                        if (e.getKeyCode() == KeyEvent.VK_LEFT) {
                              left = true;
                              px = px - 32;
                              lastX = lastX - 1;
                        }
                  }
            } else {
                  if (leftMap > 0)
                        px = rightSide;
            }

            if (boolRC == false) {
                  if (right == true) {
                        if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
                              right = true;
                              px = px + 32;
                              lastX = lastX + 1;
                        }
                  }
            } else {
                  if (rightMap > 0)
                        px = 0;
            }

            if (boolDC == false) {

                  if (down == true) {
                        if (e.getKeyCode() == KeyEvent.VK_DOWN) {
                              down = true;
                              py = py + 32;
                              lastY = lastY + 1;

                        }
                  }
            } else {
                  if (downMap > 0)
                        py = 0;

            }

            if (boolUC == false) {
                  if (up == true) {

                        if (e.getKeyCode() == KeyEvent.VK_UP) {
                              up = true;
                              py = py - 32;
                              lastY = lastY - 1;
                        }
                  }
            } else {
                  if (upMap > 0)
                        py = downSide;
            }

            me = players.get(me.getUsername());

            me.setX(px);
            me.setY(py);

            if (myCommand == "move") {
                  os.println(me.getUsername() + "|" + px + "|" + py + "|"
                              + currentMap + "|move");
            } else if (myCommand == "chat") {
                  os.println(me.getUsername() + "|1|Hello, world!|yes|chat");
            }

            me.setCommand(myCommand);
            System.out.println("my curernt map! : " + currentMap);

             c.setCaretPosition(c.getDocument().getLength());

            repaint();

      }

      public void keyReleased(KeyEvent e) {

      } // ignore

      public void keyTyped(KeyEvent e) {
      } // ignore

      public void addInv(int e) {

            String iname = getItem(e)[0];

            String idesc = getItem(e)[1];
            int itypeOf = Integer.parseInt(getItem(e)[2]);
            int iattackAdd = Integer.parseInt(getItem(e)[3]);
            int idefenseAdd = Integer.parseInt(getItem(e)[4]);
            boolean icanSell = Boolean.parseBoolean(getItem(e)[5]);
            boolean icanEat = Boolean.parseBoolean(getItem(e)[6]);
            int iearnedCoins = Integer.parseInt(getItem(e)[7]);

            c.append("\nYou picked up a " + iname + ".");
            // for (String item : arr) list.add(item);
            model.addElement(iname);
      }

      public  String invShow(String e) {

            String desc = "None";

            if (e == "Flail") {
                  desc = "A crushing blow to the head from this weapon can make BRAIN SLUSHIE!";
            }
            if (e == "Battleaxe") {
                  desc = "Holding this weapon will make you smell like a man, man.";
            }

            return desc;

      }

      public  String[] getItem(int e) {

            String[] stats = new String[7];

            String name = "Null";
            String desc = "Nonexx";
            String typeOf = "0";
            String attackAdd = "0";
            String defenseAdd = "0";
            String canSell = "true";
            String canEat = "false";
            String earnedCoins = "0";

            if (e == 1) {

                  name = "Flail";
                  typeOf = "2";
                  attackAdd = "2";
                  earnedCoins = "5";
            }

            if (e == 2) {

                  name = "Battleaxe";
                  typeOf = "2";
                  attackAdd = "4";
                  earnedCoins = "10";
            }

            return new String[] { name, desc, typeOf, attackAdd, defenseAdd,
                        canSell, canEat, earnedCoins };

      }

      public void showInventory() {

            for (int i = 0; i < model.getSize(); i++) {
                  System.out.println(model.getElementAt(i));
            }
      }


      public int[][] loadBoard(int map) {
            if (map == 1) {
                  return new int[][] {
                              { 7, 7, 7, 7, 7, 7, 13, 13, 13, 13, 7, 7, 7, 7, 7, 7 },
                              { 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                                          13, 6 },
                              { 7, 13, 1, 13, 1, 13, 1, 13, 13, 13, 1, 1, 13, 13, 13, 6 },
                              { 7, 13, 1, 1, 1, 13, 1, 13, 13, 13, 1, 13, 13, 13, 13, 6 },
                              { 7, 13, 13, 1, 13, 13, 1, 13, 13, 13, 1, 13, 13, 13, 13, 6 },
                              { 7, 13, 1, 1, 1, 13, 1, 1, 1, 13, 1, 1, 1, 1, 13, 6 },
                              { 7, 13, 1, 13, 13, 13, 13, 13, 1, 13, 13, 1, 13, 13, 13, 6 },
                              { 7, 13, 1, 1, 13, 13, 13, 1, 1, 13, 13, 1, 13, 13, 13, 6 },
                              { 7, 13, 13, 13, 13, 13, 13, 1, 13, 13, 13, 1, 13, 13, 13,
                                          6 },
                              { 7, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                                          13, 6 },
                              { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 } };
            } else if (map == 2) {
                  return new int[][] {
                              { 145, 145, 55, 145, 145, 55, 184, 163, 55, 163, 163, 55,
                                          145, 181, 145, 145 },
                              { 145, 13, 145, 145, 166, 166, 166, 163, 163, 13, 13, 13,
                                          13, 13, 13, 145 },
                              { 145, 13, 13, 163, 166, 166, 166, 163, 13, 13, 13, 13, 13,
                                          13, 13, 163 },
                              { 145, 13, 13, 163, 166, 166, 166, 163, 13, 145, 145, 145,
                                          145, 145, 13, 145 },
                              { 145, 13, 13, 163, 166, 166, 166, 163, 13, 145, 166, 166,
                                          166, 145, 13, 145 },
                              { 145, 13, 13, 163, 163, 95, 163, 145, 13, 145, 166, 166,
                                          166, 145, 13, 145 },
                              { 145, 13, 13, 13, 13, 13, 13, 13, 13, 166, 166, 166, 166,
                                          145, 13, 145 },
                              { 145, 145, 13, 13, 13, 13, 13, 13, 13, 163, 145, 55, 145,
                                          145, 13, 145 },
                              { 145, 145, 145, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                                          13, 13, 145 },
                              { 145, 145, 145, 145, 13, 13, 13, 13, 13, 13, 13, 13, 13,
                                          13, 13, 145 },
                              { 145, 145, 145, 145, 145, 145, 13, 13, 13, 13, 13, 145,
                                          145, 145, 145, 145 } };
            }

            return board;
      }

      public boolean blocked(int tx, int ty) {
            return BLOCKED_TILES.contains(board[ty][tx]);
      }

      public boolean isInBound(int r, int c) {
            return (r >= 0) && (r < 8) && (c >= 12) && (c < 1);
      }

      class GamePanel extends JPanel {

            public void paintComponent(Graphics g) {
                  for (row = 0; row < board.length; row++) {
                        for (col = 0; col < board[row].length; col++) {
                              int index = board[row][col];
                              g.drawImage(tiles[index], 32 * col, 32 * row, this);

                        }
                  }

                  try {
                        for (Player player : players.values()) {
                              System.out.println("++++++++++++++++++++++++++");
                              System.out.println("current map: " + player.getMap());
                              if (player.getUsername() == me.getUsername())
                                    player.setMap(currentMap);
                              if (player.getUsername() == me.getUsername())
                                    player.setCommand(myCommand);
                              if (player.getMap() == currentMap) {
                                    g.drawImage(player.getPlayerImage(), player.getX(), player
                                                .getY(), this);

                              }
                              System.out.println("Command-- " + player.getCommand() + " > "
                                          + player.getUsername() + " moved to X:" + player.getX()
                                          + " and Y: " + player.getY());

                              System.out.println("++++++++++++++++++++++++++");
                        }
                  } catch (Exception dan) {
                        System.out.println("No one is on.");
                  }

                  // qq
                  /**
                   * for(int runx = 0;runx < 10;runx++) { g.drawImage(userImg[runx],
                   * userPX[runx], userPY[runx], this); }
                   **/

                  if (drawFlail == true && currentMap == 1)
                        g.drawImage(weapon[1], 32 * 4, 32 * 4, this);
                  if (drawBattleaxe == true && currentMap == 3)
                        g.drawImage(weapon[0], 32 * 3, 32 * 3, this);
                  System.out.println(drawFlail);
            }

      }
} // end whole thing3

Open in new window

LVL 5
UrbanTwitchAsked:
Who is Participating?
 
objectsConnect With a Mentor Commented:
> What do you mean? two? there is only one server.

I mean the server and the client (applet)

> what box.. and how do i check?

If the server and client are running on the same box then you can use 127.0.0.1 instead
Where did you get 69.133.110.152, why are you using that number?
0
 
objectsCommented:
any firewalls between server and client?
can you telnet to that server on that port?
0
 
UrbanTwitchAuthor Commented:
I can connect to other java applets using that method fine (ex minecraft.net)
This is line 347:
s = new Socket(getParameter("host"),Integer.valueOf(getParameter("port")));

anyway, i will go check.

anyway the trick you gave me in the last worked wonders! my game now loads in less than a sec!
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
UrbanTwitchAuthor Commented:
I tried Google and typed "how to telnet to a port" and nothing good is of value... :\
0
 
UrbanTwitchAuthor Commented:
OK I think I found out how... I went into command prompt and typed telnet

then I did the following:
Welcome to Microsoft Telnet Client

Escape Character is 'CTRL+]'

Microsoft Telnet> 69.133.110.152 25566
Invalid Command. type ?/help for help
Microsoft Telnet> 69.133.110.152:25566
Invalid Command. type ?/help for help
Microsoft Telnet> o 69.133.110.152 25566
Connecting To 69.133.110.152...Could not open connection to the host, on port 25
566: Connect failed
Microsoft Telnet>

Open in new window

0
 
UrbanTwitchAuthor Commented:
I think I found the problem!
I didn't add this to my allowed ports.. maybe?
huzzah.png
0
 
UrbanTwitchAuthor Commented:
Nope... :( sadly... that didn't work.
Welcome to Microsoft Telnet Client

Escape Character is 'CTRL+]'

Microsoft Telnet> o 69.133.110.152 25566
Connecting To 69.133.110.152...Could not open connection to the host, on port 25
566: Connect failed
Microsoft Telnet>

Open in new window

0
 
objectsCommented:
wheres the server?
the port could be blocked at the server end
0
 
UrbanTwitchAuthor Commented:
I launch it from my folder thats in C:\wamp\www\mystikrpg

Here it is:
/**
Mystik Server
Programer: Dan J.
Many thanks to objects & CEHJ
(c) 2010
**/


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class Server {

      private ServerSocket serverSocket = null;
      private List<ClientThread> clients = new ArrayList<ClientThread>();

      public static void main(String args[]) throws IOException {

            // The default port

            int port_number = 25566;

            if (args.length >= 1) {
                  port_number = Integer.valueOf(args[0]).intValue();
            }

            System.out.println("Starting game server...\nPort number: "+ port_number);
            Server server = new Server(port_number);
            server.start();
      }

      public Server(int port_number) throws IOException {

            serverSocket = new ServerSocket(port_number);
            System.out.println("\n**********************\n*** SERVER STARTED ***\n**********************\n");
      }

      public void start() {

            while (true) {

                  try {
                        Socket clientSocket = serverSocket.accept();
                        ClientThread client = new ClientThread(clientSocket);
                        new Thread(client).start();

                  } catch (IOException e) {
                        System.out.println(e);
                  }
            }
      }

      public void sendAll(ClientThread from, String message) {
            for (ClientThread client : clients) {
                  if (client!=from) {
                        client.os.println(message);
                  }
            }
      }

      class ClientThread implements Runnable {

            private BufferedReader is = null;
            private PrintStream os = null;
            private Socket clientSocket = null;
            private Player player = null;

            public ClientThread(Socket clientSocket) throws IOException {
                  this.clientSocket = clientSocket;
                  is = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
                  os = new PrintStream(clientSocket.getOutputStream());
            }

            public void run() {

                  try {
                        String line = null;

                        while (null!=(line=is.readLine())) {

                              // Parse message from client

                              String delimiter = "\\|";
                              String[] temp = line.split(delimiter);
//System.out.println("TEMP 4: " + temp[4]);
if ("move".equalsIgnoreCase(temp[4])) {
                              System.out.println(line+"\nUsername: " + temp[0] + " | X: " + temp[1] + " | Y: " + temp[2] + " | CurrMap: " + temp[3]);
}else {
System.out.println(line+"\n" + temp[0] + " says: " + temp[2]);
}
                              if (player == null) {

                                    // new player

                                    System.out.println(temp[0] + " has connected.");
                                    player = new Player();
                                    player.setUsername(temp[0]);

                                    // tell them where all the other players are
if ("move".equalsIgnoreCase(temp[4])) {
                                    for (ClientThread client : clients) {
                                          os.println(client.player.getUsername() + "|" + client.player.getX() + "|" + client.player.getY() + "|" + client.player.getMap() + "|" + client.player.getCommand());
                                    }
								}

                                    // Add them to list of online clients

                                    clients.add(this);
                              }

if ("chat".equalsIgnoreCase(temp[4])) {
                                    for (ClientThread client : clients) {
										//os.println(username + "|1|Hello, world!|yes|chat");
										if (client.player.getUsername().equals(player.getUsername())) {

										}else{
										//System.out.println(client.player.getUsername() + " | " + temp[0]);
										os.println(player.getUsername() + "|" + client.player.getMap() + "|" + temp[2] + "|yes|chat");
										}
                                    }
								}


                              // Update the position of this player
if ("move".equalsIgnoreCase(temp[4])) {
                              player.setX(Integer.parseInt(temp[1]));
                              player.setY(Integer.parseInt(temp[2]));
                              player.setMap(Integer.parseInt(temp[3]));
						  }
                              player.setCommand(temp[4]);

                              // send message from client to all other clients

                              sendAll(this, line);
                        }

                        is.close();
                        os.close();
                        clientSocket.close();

                  } catch (IOException e) {
                        e.printStackTrace();
                  }

            }
      }
}

Open in new window

0
 
objectsCommented:
so are the two running on the same box?
and is the ip of the box 69.133.110.152?

0
 
UrbanTwitchAuthor Commented:
"so are the two running on the same box?"
What do you mean? two? there is only one server.

"and is the ip of the box 69.133.110.152?"
I guess not? what box.. and how do i check?
0
 
UrbanTwitchAuthor Commented:
Whats it mean to be on the "same box"?

I use 69.133.110.152 because it is my IP...
0
 
CEHJCommented:
You need to find out the external IP address of the host first. If you have access to it then go to whatismyip.com in the browser, then, assuming the below *is* the address, do
telnet 69.133.110.152 25566

Open in new window

0
 
objectsCommented:
sorry, box == computer

> I use 69.133.110.152 because it is my IP...

The ip of the computer you are sitting in front of
or some other computer on the net?
0
 
UrbanTwitchAuthor Commented:
I am sitting in front of.
Anyway... I did this change to red.php

<?php if($_GET['host']) {
    ?>
    <param name="host" value="127.0.0.1">
    <?php
}else{
    ?>
    <param name="host" value="69.133.110.152">
    <?php
}
?>

and then I went to http://mystikrpg.com/new/red.php?host=yes

and it worked!!!

Hmm... now for other people...
0
 
objectsCommented:
you shouldn't actually use the ip, and instead use the hostname from the request (assuming the server is on the same box that the html is served from)
0
 
UrbanTwitchAuthor Commented:
erm... where are you getting the html from?

the server is launched and monitored on my computer...
0
 
UrbanTwitchAuthor Commented:
check the new Q :) since its now a new problem hehe

sorry CEHJ..
0
All Courses

From novice to tech pro — start learning today.