1
2
3
4
5
6
7 package org.sourceforge.jvb3d;
8
9 import java.awt.GraphicsConfiguration;
10 import java.io.BufferedReader;
11 import java.io.InputStreamReader;
12 import java.net.InetSocketAddress;
13
14 import javax.media.j3d.Canvas3D;
15
16 import org.sourceforge.jvb3d.Model.IModelNetwork;
17 import org.sourceforge.jvb3d.Model.Model;
18 import org.sourceforge.jvb3d.Network.ClientFacade;
19 import org.sourceforge.jvb3d.Network.NetworkClientFacade;
20 import org.sourceforge.jvb3d.Network.NetworkClientFacadeHolder;
21 import org.sourceforge.jvb3d.Network.NetworkServerFacade;
22 import org.sourceforge.jvb3d.Network.NetworkServerFacadeHolder;
23 import org.sourceforge.jvb3d.Network.ServerFacade;
24
25 import com.sun.j3d.utils.universe.SimpleUniverse;
26
27 /***
28 * @author Develop
29 *
30 * TODO To change the template for this generated type comment go to
31 * Window - Preferences - Java - Code Style - Code Templates
32 */
33 public class ConsoleClient {
34
35 static NetworkClientFacade networkFacade;
36
37 static Model modelInterface;
38
39 static boolean terminate = false;
40
41 public static void main(String[] args) {
42 GraphicsConfiguration config = SimpleUniverse
43 .getPreferredConfiguration();
44
45 Canvas3D canvas3D = new Canvas3D(config);
46 modelInterface = new Model(canvas3D, false);
47 NetworkClientFacadeHolder.setNetworkFacade(new ClientFacade());
48 networkFacade = NetworkClientFacadeHolder.getNetworkFacade();
49 networkFacade.setModelInterface(modelInterface);
50 String avatar = null;
51 BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
52
53 try {
54 while(!terminate) {
55 String command = in.readLine();
56 if(command.equalsIgnoreCase("quit")) terminate = true;
57 else if(command.equalsIgnoreCase("updateall")) {
58 System.out.println("sending all updates");
59 networkFacade.sendAllUpdate();
60 }
61 else if(command.startsWith("update ")) {
62 int pos = command.indexOf(" ");
63 System.out.println("sending update for: "+command.substring(pos+1));
64 networkFacade.sendUpdate(command.substring(pos+1));
65 }
66 else if(command.startsWith("join ")) {
67 int pos = command.indexOf(" ");
68 int lastpos = command.lastIndexOf(" ");
69 System.out.println("joining: "+command.substring(pos+1, lastpos)+" on "+command.substring(lastpos+1));
70 avatar = networkFacade.join(new InetSocketAddress(command.substring(pos+1, lastpos), Integer.parseInt(command.substring(lastpos+1))));
71 modelInterface.createLocalPlayer(avatar);
72 System.out.println("joined as: "+avatar);
73 }
74 else if(command.equalsIgnoreCase("floodupdates")) {
75 System.out.println("flooding server with updates");
76 for(int i=0; i<10; i++)
77 networkFacade.sendUpdate(avatar);
78 }
79 }
80 }
81 catch (Exception e) {
82 e.printStackTrace();
83 }
84 }
85 }