Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
- at dod.User.processCommandAndArgument(User.java:118)
- at dod.User.processCommand(User.java:74)
- public void initialize() {
- frame = new JFrame();
- frame.setBounds(100, 100, 541, 498);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.getContentPane().setLayout(null);
- JButton btnNewButton = new JButton("North");
- btnNewButton.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent arg0) {
- //System.out.println("You pressed North");
- processCommand("move n", iD);
- }
- });
- btnNewButton.setBounds(165, 346, 217, 40);
- frame.getContentPane().add(btnNewButton);
- JButton btnWest = new JButton("West");
- btnWest.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- }
- });
- btnWest.setBounds(165, 385, 104, 42);
- frame.getContentPane().add(btnWest);
- JButton btnEast = new JButton("East");
- btnEast.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- }
- });
- btnEast.setBounds(278, 385, 104, 42);
- frame.getContentPane().add(btnEast);
- JButton btnSouth = new JButton("South");
- btnSouth.setBounds(165, 426, 217, 40);
- frame.getContentPane().add(btnSouth);
- JPanel panel = new JPanel();
- panel.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
- panel.setBackground(Color.WHITE);
- panel.setBounds(6, 41, 529, 293);
- frame.getContentPane().add(panel);
- }
- protected final void processCommand(String commandString, int iD) {
- // Because continuously pressing the shift key while testing made my
- // finger hurt...
- commandString = commandString.toUpperCase();
- // Process the command string e.g. MOVE N
- final String commandStringSplit[] = commandString.split(" ", 2);
- final String command = commandStringSplit[0];
- final String arg = ((commandStringSplit.length == 2) ? commandStringSplit[1]
- : null);
- try {
- processCommandAndArgument(command, arg, iD);
- } catch (final CommandException e) {
- outputMessage("FAIL " + e.getMessage());
- }
- }
- /**
- * Processes the command and an optional argument
- *
- * @param command
- * the text command
- * @param arg
- * the text argument (null if no argument)
- * @throws CommandException
- */
- private void processCommandAndArgument(String command, String arg, int iD)
- throws CommandException {
- if (command.equals("HELLO")) {
- if (arg == null) {
- throw new CommandException("HELLO needs an argument");
- }
- final String name = sanitiseMessage(arg);
- this.game.clientHello(name, iD);
- outputMessage("HELLO " + name);
- } else if (command.equals("LOOK")) {
- if (arg != null) {
- throw new CommandException("LOOK does not take an argument");
- }
- outputMessage("LOOKREPLY" + System.getProperty("line.separator")
- + this.game.clientLook(iD));
- } else if (command.equals("PICKUP")) {
- if (arg != null) {
- throw new CommandException("PICKUP does not take an argument");
- }
- this.game.clientPickup(iD);
- outputSuccess();
- } else if (command.equals("MOVE")) {
- if(game.checkTurn(iD) == true){
- // We need to know which direction to move in.
- if (arg == null) {
- throw new CommandException("MOVE needs a direction");
- }
- this.game.clientMove(getDirection(arg), iD);
- outputSuccess();
- }else{
- throw new CommandException("Not your turn...");
- }
- } else if (command.equals("ATTACK")) {
- if(game.checkTurn(iD) == true){
- // We need to know which direction to move in.
- if (arg == null) {
- throw new CommandException("ATTACK needs a direction");
- }
- this.game.clientAttack(getDirection(arg), iD);
- outputSuccess();
- }else{
- throw new CommandException("Not your turn..");
- }
- } else if (command.equals("ENDTURN")) {
- if(game.checkTurn(iD) == true){
- this.game.clientEndTurn(iD);
- }else{
- throw new CommandException("Not your turn...");
- }
- } else if (command.equals("SHOUT")) {
- // Ensure they have given us something to shout.
- if (arg == null) {
- throw new CommandException("need something to shout");
- }
- this.game.clientShout(sanitiseMessage(arg), iD);
- } else if (command.equals("SETPLAYERPOS")) {
- if(game.checkTurn(iD) == true){
- if (arg == null) {
- throw new CommandException("need a position");
- }
- // Obtain two co-ordinates
- final String coordinates[] = arg.split(" ");
- if (coordinates.length != 2) {
- throw new CommandException("need two co-ordinates");
- }
- try {
- final int col = Integer.parseInt(coordinates[0]);
- final int row = Integer.parseInt(coordinates[1]);
- this.game.setPlayerPosition(col, row, iD);
- outputSuccess();
- } catch (final NumberFormatException e) {
- throw new CommandException("co-ordinates must be integers");
- }
- } else {
- // If it is none of the above then it must be a bad command.
- throw new CommandException("invalid command");
- }
- }else{
- throw new CommandException("No no..");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement