Source code: org/zazof/jteg/NewPlayerMessage.java
1 package org.zazof.jteg;
2
3 import org.zazof.jteg.Message;
4 import java.util.StringTokenizer;
5
6 /**
7 * Message that processes "new_player=" events.
8 * This message is valid for following protocols:
9 * version 3: OK
10 * version 4: NO
11 * version 5: NO
12 *
13 * Content = "new_player=player_name,player_number,playercolor"
14 *
15 * @author Jef De Geeter
16 * @author Yves Vandewoude
17 */
18
19 public class NewPlayerMessage extends Message{
20
21
22 public NewPlayerMessage(Message nextMessage){
23 setNextMessage(nextMessage);
24 }
25
26 public Message decodeMessage(String messageDescription)
27 throws UnknownMessageException
28 {
29 String firstToken = (new StringTokenizer(messageDescription,"=")).nextToken();
30 if (!(firstToken.equals("newplayer")))
31 {
32 // Not for me...
33 if (this.hasNextMessage())
34 {
35 return getNextMessage().decodeMessage(messageDescription);
36 }
37 throw new UnknownMessageException(messageDescription);
38 }
39 else
40 {
41 StringTokenizer st = new StringTokenizer(messageDescription, "=,");
42 st.nextToken(); //new_player
43 $playerName = st.nextToken();
44 $playerNumber = Integer.parseInt(st.nextToken());
45 $playerColor = Integer.parseInt(st.nextToken());
46 if (DEBUG) System.out.println("Created NewPlayerMessage: name: " + getNewPlayerName() + ", nb: " + getNewPlayerNumber() + ", color nb: " + getNewPlayerColor());
47 return this;
48 }
49 }
50
51
52 public String constructMessageString(String[] messageParts)
53 throws UnknownMessageException
54 {
55 if (!(messageParts[0]).equals("newplayer"))
56 {
57 // Not for me...
58 if (this.hasNextMessage())
59 {
60 return getNextMessage().constructMessageString(messageParts);
61 }
62 throw new UnknownMessageException("No String could be constructed for a message with this parameter: " + messageParts[0]);
63 }
64 else
65 {
66 return ("player_id=" + messageParts[1] + "," + messageParts[2]);
67 }
68 }
69
70
71 public String getMessageName(){
72 return "new_player";
73 }
74
75 public String getNewPlayerName(){
76 return $playerName;
77 }
78
79 public int getNewPlayerNumber(){
80 return $playerNumber;
81 }
82
83 public int getNewPlayerColor(){
84 return $playerColor;
85 }
86
87 private String $playerName;
88 private int $playerNumber;
89 private int $playerColor;
90 static final boolean DEBUG = false;
91 }