Skip to content

Commit 7374986

Browse files
committed
Loads of improvements and fixes
1 parent 8c5838b commit 7374986

File tree

12 files changed

+482
-81
lines changed

12 files changed

+482
-81
lines changed

src/org/cyberpwn/react/ConnectionFailure.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static void failed(NetworkedServer ns)
2626
try
2727
{
2828
ConnectionFailure dialog = new ConnectionFailure(ns);
29-
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
29+
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
3030
dialog.setVisible(true);
3131
}
3232
catch(Exception e)
@@ -121,7 +121,7 @@ public void mouseReleased(MouseEvent e)
121121
{
122122
setVisible(false);
123123
dispose();
124-
ReactClient.getInstance().deleteConnection(ns);
124+
ns.getTab().die();
125125
}
126126
});
127127

src/org/cyberpwn/react/EditConnection.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ public EditConnection(final NetworkedServer ns)
125125
@Override
126126
public void mouseReleased(MouseEvent e)
127127
{
128+
L.l("Connection edited");
128129
editServer(txtFancyServer.getText(), txtLocalhost.getText(), Integer.valueOf(textField_1.getText()), txtCyberpwn.getText(), txtReactisawesome.getText(), ns);
129130
setVisible(false);
130131
dispose();
@@ -143,6 +144,7 @@ public void mouseReleased(MouseEvent e)
143144
@Override
144145
public void mouseReleased(MouseEvent e)
145146
{
147+
L.l("Edit connection cancelled");
146148
setVisible(false);
147149
dispose();
148150
}

src/org/cyberpwn/react/L.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.cyberpwn.react;
2+
3+
import org.cyberpwn.react.network.NetworkedServer;
4+
5+
public class L
6+
{
7+
public static String log;
8+
9+
private static void write(String s)
10+
{
11+
log = log + s + "\n";
12+
System.out.println("> " + s);
13+
14+
try
15+
{
16+
for(NetworkedServer i : ReactClient.getInstance().getNetwork().getServers())
17+
{
18+
i.push();
19+
}
20+
}
21+
22+
catch(Exception e)
23+
{
24+
25+
}
26+
}
27+
28+
public static void n(String log)
29+
{
30+
write("[NETWORK]: " + log);
31+
}
32+
33+
public static void l(String log)
34+
{
35+
write("[INFO]: " + log);
36+
}
37+
38+
public static void e(String log)
39+
{
40+
write("[FATAL]: " + log);
41+
}
42+
43+
public static void w(String log)
44+
{
45+
write("[WARN]: " + log);
46+
}
47+
}

src/org/cyberpwn/react/ReactClient.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,10 @@ public ReactClient()
6565
}
6666
}
6767

68+
L.l("Starting React Client");
69+
L.l("Building Network Mesh");
6870
network = new Network();
71+
L.l("Building Frame");
6972
initialize();
7073
ns = new NetworkScheduler(network.getServers(), 50);
7174
ns.start();
@@ -116,6 +119,8 @@ public void mouseReleased(MouseEvent e)
116119
}
117120
});
118121

122+
L.l("Packing Frame");
123+
119124
frmReactClient = new JFrame();
120125
frmReactClient.setTitle("React Client");
121126
frmReactClient.setIconImage(Toolkit.getDefaultToolkit().getImage(ReactClient.class.getResource("/org/cyberpwn/react/ui/icon.png")));
@@ -124,17 +129,16 @@ public void mouseReleased(MouseEvent e)
124129
frmReactClient.setJMenuBar(menuBar);
125130
frmReactClient.getContentPane().setLayout(new BorderLayout(0, 0));
126131

127-
/*
128-
* TABS
129-
*/
130-
131132
if(network.getServers().isEmpty())
132133
{
134+
L.w("No networks found");
135+
L.l("Launching tutorial page");
133136
showTutorial();
134137
}
135138

136139
else
137140
{
141+
L.l("Building all servers");
138142
tabbedPane = new JXTabbedPane(JTabbedPane.LEFT);
139143
AbstractTabRenderer renderer = (AbstractTabRenderer) tabbedPane.getTabRenderer();
140144
renderer.setPrototypeText("This text is a prototype");
@@ -144,16 +148,17 @@ public void mouseReleased(MouseEvent e)
144148
tabbedPane.setBorder(new SoftBevelBorder(BevelBorder.RAISED, null, null, null, null));
145149
frmReactClient.getContentPane().add(tabbedPane, BorderLayout.CENTER);
146150

147-
System.out.println("Compiling Server List...");
151+
L.l("Compiling servers");
148152

149153
for(NetworkedServer i : network.getServers())
150154
{
151-
System.out.println(" > Building (" + i.getName() + ") " + i.getAddress() + ":" + i.getPort() + " @ " + i.getUsername() + "/" + StringUtils.repeat('*', i.getPassword().length()));
155+
L.l("Building (" + i.getName() + ") " + i.getAddress() + ":" + i.getPort() + " @ " + i.getUsername() + "/" + StringUtils.repeat('*', i.getPassword().length()));
152156
i.setTab(new ServerTab(frmReactClient, i, tabbedPane));
153157
}
154158
}
155159

156160
frmReactClient.setVisible(true);
161+
L.l("CLIENT RUNNING");
157162
}
158163

159164
public void addConnection()
@@ -190,16 +195,17 @@ public void showTutorial()
190195

191196
JLabel lblNewLabel_1 = new JLabel(new ImageIcon(ReactClient.class.getResource("/org/cyberpwn/react/ui/icon.png")));
192197
panel_1.add(lblNewLabel_1, BorderLayout.EAST);
198+
L.l("TUTORIAL LAUNCHED");
193199
}
194200

195201
public static void restart()
196202
{
203+
L.l("RESTARTING CLIENT");
197204
instance.ns.interrupt();
198205
Dimension d = instance.frmReactClient.getSize();
199206
Point p = instance.frmReactClient.getLocationOnScreen();
200207
instance.frmReactClient.setVisible(false);
201208
instance.frmReactClient.dispose();
202-
System.out.println("Rebuilding & Restarting Client...");
203209
instance = new ReactClient();
204210
instance.frmReactClient.setSize((int) d.getWidth(), (int) d.getHeight());
205211
instance.frmReactClient.setLocation(p);
@@ -212,7 +218,9 @@ public void addTab(String name)
212218

213219
public void exit()
214220
{
221+
L.l("INTERRUPTING NETWORK MAPPING");
215222
ns.interrupt();
223+
L.l("SHUTTING DOWN");
216224
System.exit(0);
217225
}
218226

@@ -229,14 +237,16 @@ public static ReactClient getInstance()
229237
public void validateConnectionAdd(String name, String address, int port, String username, String password)
230238
{
231239
getNetwork().addConnection(name, address, port, username, password);
232-
System.out.println("Connection Added: (" + name + ") " + address + ":" + port + " @ " + username + "/" + StringUtils.repeat('*', password.length()));
240+
L.l("Connection Added: (" + name + ") " + address + ":" + port + " @ " + username + "/" + StringUtils.repeat('*', password.length()));
233241
restart();
234242
}
235243

236244
public void deleteConnection(NetworkedServer ns)
237245
{
246+
L.l("DELETING CONNECTION " + "(" + ns.getName() + ") " + ns.getAddress() + ":" + ns.getPort() + " @ " + ns.getUsername() + "/" + StringUtils.repeat('*', ns.getPassword().length()));
238247
releaseConnection(ns);
239248
network.deleteServer(ns);
249+
240250
try
241251
{
242252
network.save();
@@ -284,12 +294,15 @@ public void lockConnection(NetworkedServer ns2)
284294
{
285295
if(!locks.contains(ns2))
286296
{
297+
L.l("Connection locked: " + ns2.getName());
298+
287299
locks.add(ns2);
288300
}
289301
}
290302

291303
public void releaseConnection(NetworkedServer ns2)
292304
{
305+
L.l("Connection unlocked: " + ns2.getName());
293306
locks.remove(ns2);
294307
ns2.reset();
295308
}

src/org/cyberpwn/react/network/Network.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.io.IOException;
77
import java.io.PrintWriter;
88
import org.cyberpwn.react.ConnectionFailure;
9+
import org.cyberpwn.react.L;
910
import org.cyberpwn.react.util.GList;
1011
import org.cyberpwn.react.util.GMap;
1112
import org.cyberpwn.react.util.JSONArray;
@@ -21,7 +22,7 @@ public Network()
2122

2223
File f = new File(new File(".").getAbsolutePath(), "react-data");
2324
f.mkdirs();
24-
System.out.println("Loading Config at: " + f.getAbsolutePath());
25+
L.l("Loading Config at: " + f.getAbsolutePath());
2526
File c = new File(f, "react.json");
2627

2728
if(c.exists())
@@ -38,7 +39,7 @@ public Network()
3839

3940
catch(Exception e)
4041
{
41-
System.out.println("Appears to be a new Config.");
42+
L.l("Appears to be a new Config.");
4243

4344
try
4445
{
@@ -70,7 +71,7 @@ public void save() throws IOException
7071
{
7172
File f = new File(new File(".").getAbsolutePath(), "react-data");
7273
f.mkdirs();
73-
System.out.println("Saving Config at: " + f.getAbsolutePath());
74+
L.l("Saving Config at: " + f.getAbsolutePath());
7475
File c = new File(f, "react.json");
7576

7677
if(!c.exists())

src/org/cyberpwn/react/network/NetworkedServer.java

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.cyberpwn.react.network;
22

33
import javax.swing.JLabel;
4+
import org.cyberpwn.react.L;
45
import org.cyberpwn.react.ReactClient;
56
import org.cyberpwn.react.ui.ServerTab;
67
import org.cyberpwn.react.util.GList;
@@ -23,6 +24,7 @@ public class NetworkedServer
2324
private String versionBukkit;
2425
private GList<String> actions;
2526
private int req;
27+
private int s;
2628
private boolean gettingReactors;
2729

2830
public NetworkedServer(String name, String username, String password, String address, Integer port)
@@ -38,6 +40,7 @@ public NetworkedServer(String name, String username, String password, String add
3840
this.port = port;
3941
sample = new GMap<String, Double>();
4042
rx = null;
43+
s = 0;
4144
ra = null;
4245
version = null;
4346
versionBukkit = null;
@@ -109,10 +112,12 @@ public void run()
109112

110113
ra.start();
111114
req++;
115+
tab.status(true, "Reconnecting (try " + req + " of 4" + ")");
112116

113117
if(req > 4)
114118
{
115-
System.out.println("Failed to connect.");
119+
L.n(NetworkedServer.this.getName() + " Failed to connect.");
120+
tab.status(true, "No Connection");
116121
ReactClient.getInstance().getNetwork().fail(NetworkedServer.this);
117122
}
118123
}
@@ -124,6 +129,8 @@ public void requestSample()
124129
return;
125130
}
126131

132+
s++;
133+
127134
if(version == null || versionBukkit == null)
128135
{
129136
new RequestBasic(this, new RequestCallbackBasic()
@@ -154,11 +161,36 @@ public void run()
154161
{
155162
sample = getData();
156163
tab.push(sample, getConsole());
164+
165+
tab.status(false, "Connected");
166+
167+
s = 0;
157168
}
158169
}
159170
});
160171

161172
rx.start();
173+
174+
if(getDrops() > 2)
175+
{
176+
L.w(getName() + " dropped " + getDrops() + " packets");
177+
tab.status(true, "Not Connected (" + getDrops() + " Dropouts)");
178+
179+
if(getDrops() > 100)
180+
{
181+
tab.status(true, "Reconnecting (try " + req + " of 4" + ")");
182+
L.w(getName() + " has dropped over " + getDrops() + " packets.");
183+
L.w(getName() + " lost connection. Reconnecting to reactors...");
184+
ReactClient.getInstance().releaseConnection(this);
185+
actions = null;
186+
requestActions();
187+
}
188+
}
189+
}
190+
191+
public void push()
192+
{
193+
tab.push(sample);
162194
}
163195

164196
public String getName()
@@ -171,6 +203,11 @@ public void setName(String name)
171203
this.name = name;
172204
}
173205

206+
public int getDrops()
207+
{
208+
return s;
209+
}
210+
174211
public String getUsername()
175212
{
176213
return username;

src/org/cyberpwn/react/network/RequestAction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.DataInputStream;
44
import java.io.DataOutputStream;
55
import java.net.Socket;
6+
import org.cyberpwn.react.L;
67
import org.cyberpwn.react.util.JSONObject;
78

89
public class RequestAction extends Thread
@@ -24,18 +25,18 @@ public void run()
2425
{
2526
try
2627
{
27-
System.out.println("Requesting Action: " + action);
28+
L.l("Requesting Action: " + action);
2829
s = new Socket(ns.getAddress(), ns.getPort());
2930
s.setSoTimeout(500);
3031
DataInputStream i = new DataInputStream(s.getInputStream());
3132
DataOutputStream o = new DataOutputStream(s.getOutputStream());
3233
PacketRequest pr = new PacketRequest(ns.getUsername(), ns.getPassword(), "ACTION " + action);
33-
System.out.println("OUT: " + pr.toString());
34+
L.n("OUT: " + pr.toString());
3435
o.writeUTF(pr.toString());
3536
o.flush();
3637
String response = i.readUTF();
3738
PacketResponse ps = new PacketResponse(new JSONObject(response));
38-
System.out.println("IN: " + ps.toString());
39+
L.n("IN: " + ps.toString());
3940

4041
if(ps.getString("type").equals("OK"))
4142
{

0 commit comments

Comments
 (0)