[jetrix-cvs] SF.net SVN: jetrix:[839] jetrix/trunk/src
Brought to you by:
smanux
From: <sm...@us...> - 2010-04-12 22:38:33
|
Revision: 839 http://jetrix.svn.sourceforge.net/jetrix/?rev=839&view=rev Author: smanux Date: 2010-04-12 22:38:27 +0000 (Mon, 12 Apr 2010) Log Message: ----------- TetrinetAgent now supports the clientinfo request/response Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java jetrix/trunk/src/test/net/jetrix/agent/TetrinetAgentTest.java Modified: jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java 2010-04-12 13:10:56 UTC (rev 838) +++ jetrix/trunk/src/java/net/jetrix/agent/TSpecAgent.java 2010-04-12 22:38:27 UTC (rev 839) @@ -21,7 +21,6 @@ import java.io.IOException; -import net.jetrix.messages.channel.*; import net.jetrix.protocols.TspecProtocol; /** @@ -32,35 +31,15 @@ */ public class TSpecAgent extends TetrinetAgent { - private String password; - public TSpecAgent(String name, String password) { super(name); - this.password = password; + this.teamname = password; this.protocol = new TspecProtocol(); } public void connect(String hostname) throws IOException { - connect(hostname, 31458, password); + connect(hostname, 31458, teamname); } - - public void onMessage(PlayerNumMessage m) - { - super.onMessage(m); - - // send the tspec password as the team name - TeamMessage team = new TeamMessage(); - team.setSlot(m.getSlot()); - team.setName(password); - try - { - send(team); - } - catch (IOException e) - { - e.printStackTrace(); - } - } } Modified: jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2010-04-12 13:10:56 UTC (rev 838) +++ jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2010-04-12 22:38:27 UTC (rev 839) @@ -30,6 +30,7 @@ import net.jetrix.Message; import net.jetrix.Protocol; +import net.jetrix.config.ServerConfig; import net.jetrix.protocols.TetrinetProtocol; import net.jetrix.messages.*; import net.jetrix.messages.channel.*; @@ -43,9 +44,22 @@ */ public class TetrinetAgent implements Agent { - private String name; + /** The name of the agent. */ + protected String clientName = "Jetrix"; + + /** The version of the agent. */ + protected String clientVersion = ServerConfig.VERSION; + + /** The name of the player. */ + protected String name; + + /** The name of the team. */ + protected String teamname; + + /** The hostname of the TetriNET server. */ private String hostname; + /** The current slot assigned by the server. */ private int slot; private Socket socket; @@ -145,7 +159,7 @@ } } - protected void send(String message) throws IOException + protected synchronized void send(String message) throws IOException { out.write(message); out.write(protocol.getEOL()); @@ -229,6 +243,20 @@ public void onMessage(PlayerNumMessage m) { this.slot = m.getSlot(); + + // repond with the team name + TeamMessage response = new TeamMessage(); + response.setSlot(slot); + response.setName(teamname); + + try + { + send(response); + } + catch (IOException e) + { + e.printStackTrace(); + } } public void onMessage(StartGameMessage m) { } @@ -270,7 +298,24 @@ */ public void onSpecial(SpecialMessage m) { } - public void onMessage(LevelMessage m) { } + public void onMessage(LevelMessage m) + { + if (m.getLevel() == 0 && m.getSlot() == 0) + { + ClientInfoMessage response = new ClientInfoMessage(); + response.setName(clientName); + response.setVersion(clientVersion); + + try + { + send(response); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + } public void onMessage(FieldMessage m) { } Modified: jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java 2010-04-12 13:10:56 UTC (rev 838) +++ jetrix/trunk/src/java/net/jetrix/protocols/TetrinetProtocol.java 2010-04-12 22:38:27 UTC (rev 839) @@ -372,6 +372,7 @@ else if (m instanceof WinlistMessage) { return translate((WinlistMessage) m, locale); } else if (m instanceof NoopMessage) { return translate((NoopMessage) m); } else if (m instanceof CommandMessage) { return translate((CommandMessage) m); } + else if (m instanceof ClientInfoMessage) { return translate((ClientInfoMessage) m); } else { return null; @@ -780,6 +781,16 @@ return message.toString(); } + public String translate(ClientInfoMessage m) + { + StringBuilder message = new StringBuilder(); + message.append("clientinfo "); + message.append(m.getName()); + message.append(" "); + message.append(m.getVersion()); + return message.toString(); + } + public String translate(NoopMessage m) { return ""; Modified: jetrix/trunk/src/test/net/jetrix/agent/TetrinetAgentTest.java =================================================================== --- jetrix/trunk/src/test/net/jetrix/agent/TetrinetAgentTest.java 2010-04-12 13:10:56 UTC (rev 838) +++ jetrix/trunk/src/test/net/jetrix/agent/TetrinetAgentTest.java 2010-04-12 22:38:27 UTC (rev 839) @@ -34,8 +34,9 @@ { TetrinetAgent agent = new TetrinetAgent("JetrixBot"); agent.connect("tetrinet.fr"); - - agent.send(new TeamMessage()); + + Thread.sleep(200); + agent.send(new PlineMessage("Hi there!")); agent.disconnect(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |