/.metadata/.plugins/org.eclipse.core.resources/.history/37/10efc42682a3001e1dff9ae635b3e1ee
https://bitbucket.org/fixpoint/connexion · #! · 87 lines · 75 code · 12 blank · 0 comment · 0 complexity · fa1fcc50af5034d16a6f68291a75943c MD5 · raw file
- package info.reflectionsofmind.connexion.platform.cli;
-
- import info.reflectionsofmind.connexion.platform.control.IRoot;
- import info.reflectionsofmind.connexion.platform.control.ServerInfo;
- import info.reflectionsofmind.connexion.platform.control.control.IConnectControl;
- import info.reflectionsofmind.connexion.platform.control.control.IJoinControl;
- import info.reflectionsofmind.connexion.platform.control.cts.CTSMessageCoder;
- import info.reflectionsofmind.connexion.platform.control.cts.message.MsgParticipationRequest;
- import info.reflectionsofmind.connexion.platform.control.stc.IServerToClientMessage;
- import info.reflectionsofmind.connexion.platform.control.util.ParticipationAcceptedWaiter;
- import info.reflectionsofmind.connexion.platform.game.IGame;
- import info.reflectionsofmind.connexion.transport.AbstractTransport;
- import info.reflectionsofmind.connexion.transport.ITransport;
- import info.reflectionsofmind.connexion.transport.ITransport.INode;
- import info.reflectionsofmind.connexion.util.convert.EncodingException;
-
- import java.util.concurrent.Future;
-
- public class ConnectInterpreter implements IConnectControl, IInterpreter
- {
- private final IGame game;
- private final IRoot root;
-
- public ConnectInterpreter(final IRoot root, final IGame game)
- {
- this.game = game;
- this.root = root;
- }
-
- public Future<IJoinControl> connect(final String name, final INode server)
- {
- try
- {
- server.getTransport().addListener(new ParticipationAcceptedWaiter()
- {
- @Override
- protected void onParticipationAccepted(final IServerToClientMessage message)
- {
- super.onParticipationAccepted(message);
- }
- });
-
- server.send(CTSMessageCoder.INSTANCE.encode(new MsgParticipationRequest(name)));
- }
- catch (final EncodingException exception)
- {
- exception.printStackTrace();
- }
- }
-
- public IGame getGame()
- {
- return this.game;
- }
-
- public IRoot getRoot()
- {
- return this.root;
- }
-
- public void interpret(final String command)
- {
- if (command.equals("connect"))
- {
- final ServerInfo info = this.root.getConfiguration().getServers().get(0);
- final ITransport transport = info.getFactory().createTransport(info.getParameters());
-
- final ITransport.IListener listener = new AbstractTransport.Listener()
- {
- @Override
- public void onTrace(final ITransport transport, final String trace)
- {
- System.out.println(trace);
- }
- };
-
- transport.addListener(listener);
- transport.start();
-
- connect("Player", transport.createNode(info.getAddress()));
- }
- else if ("exit".equals(command))
- {
- getRoot().restart();
- }
- }
- }