Skip to content

Commit 8c5838b

Browse files
committed
Console reading & Sending
1 parent b325a65 commit 8c5838b

File tree

7 files changed

+185
-19
lines changed

7 files changed

+185
-19
lines changed

src/org/cyberpwn/react/AboutReact.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
public class AboutReact
1111
{
1212
private JFrame frame;
13-
private String version = "2.3";
13+
private String version = "2.4";
1414

1515
public AboutReact()
1616
{

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,7 @@ public void run()
153153
if(isOk())
154154
{
155155
sample = getData();
156-
tab.push(sample);
157-
156+
tab.push(sample, getConsole());
158157
}
159158
}
160159
});

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.io.DataInputStream;
44
import java.io.DataOutputStream;
55
import java.net.Socket;
6-
76
import org.cyberpwn.react.util.GMap;
87
import org.cyberpwn.react.util.JSONObject;
98

@@ -19,6 +18,7 @@ public Request(NetworkedServer ns, RequestCallback callback)
1918
this.ns = ns;
2019
}
2120

21+
@Override
2222
public void run()
2323
{
2424
try
@@ -33,6 +33,7 @@ public void run()
3333
String response = i.readUTF();
3434
PacketResponse ps = new PacketResponse(new JSONObject(response));
3535
GMap<String, Double> data = new GMap<String, Double>();
36+
String console = "";
3637

3738
if(ps.getString("type").equals("OK"))
3839
{
@@ -43,6 +44,13 @@ public void run()
4344
continue;
4445
}
4546

47+
if(j.equals("console-s"))
48+
{
49+
console = ps.getJSON().getString(j).replace("[0;36;1m", "").replace("[0;30;22m", "").replace("[0;34;22m", "").replace("[0;32;22m", "").replace("[0;36;22m", "").replace("[0;31;22m", "").replace("[0;35;22m", "").replace("[0;37;22m", "").replace("[0;34;1m", "").replace("[5m", "").replace("[21m", "").replace("[9m", "").replace("[4m", "").replace("[3m", "").replace("[0;33;22m", "").replace("[0;31;1m", "").replace("[0;35;1m", "").replace("[0;32;1m", "").replace("", "").replace("[0;33;1m", "").replace("[0;37;1m", "").replace("[0;30;1m", "").replace("", "").replace("", "").replace("", "").replace("[m", "");
50+
51+
continue;
52+
}
53+
4654
try
4755
{
4856
data.put(j, ps.getJSON().getDouble(j));
@@ -54,10 +62,10 @@ public void run()
5462
}
5563
}
5664

57-
callback.run(data, true);
65+
callback.run(data, console, true);
5866
}
5967

60-
callback.run(data, false);
68+
callback.run(data, console, false);
6169
}
6270

6371
catch(Exception e)

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ public class RequestCallback implements Runnable
66
{
77
private GMap<String, Double> data;
88
private boolean ok;
9+
private String console;
910

10-
public void run(GMap<String, Double> data, boolean ok)
11+
public void run(GMap<String, Double> data, String console, boolean ok)
1112
{
1213
this.data = data;
1314
this.ok = ok;
15+
this.console = console;
1416
run();
1517
}
1618

@@ -19,14 +21,19 @@ public void run()
1921
{
2022

2123
}
22-
24+
2325
public GMap<String, Double> getData()
2426
{
2527
return data;
2628
}
27-
29+
2830
public boolean isOk()
2931
{
3032
return ok;
3133
}
34+
35+
public String getConsole()
36+
{
37+
return console;
38+
}
3239
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package org.cyberpwn.react.network;
2+
3+
import java.io.DataInputStream;
4+
import java.io.DataOutputStream;
5+
import java.net.Socket;
6+
import org.cyberpwn.react.util.JSONObject;
7+
8+
public class RequestCommand extends Thread
9+
{
10+
private RequestCommandCallback callback;
11+
private NetworkedServer ns;
12+
private Socket s;
13+
private String action;
14+
15+
public RequestCommand(NetworkedServer ns, RequestCommandCallback callback, String action)
16+
{
17+
this.callback = callback;
18+
this.ns = ns;
19+
this.action = action;
20+
}
21+
22+
@Override
23+
public void run()
24+
{
25+
try
26+
{
27+
System.out.println("Requesting Command: " + action);
28+
s = new Socket(ns.getAddress(), ns.getPort());
29+
s.setSoTimeout(500);
30+
DataInputStream i = new DataInputStream(s.getInputStream());
31+
DataOutputStream o = new DataOutputStream(s.getOutputStream());
32+
PacketRequest pr = new PacketRequest(ns.getUsername(), ns.getPassword(), "COMMAND " + action);
33+
System.out.println("OUT: " + pr.toString());
34+
o.writeUTF(pr.toString());
35+
o.flush();
36+
String response = i.readUTF();
37+
PacketResponse ps = new PacketResponse(new JSONObject(response));
38+
System.out.println("IN: " + ps.toString());
39+
Thread.sleep(50);
40+
41+
if(ps.getString("type").equals("OK"))
42+
{
43+
callback.run(true);
44+
}
45+
46+
else
47+
{
48+
callback.run(false);
49+
}
50+
}
51+
52+
catch(Exception e)
53+
{
54+
55+
}
56+
}
57+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.cyberpwn.react.network;
2+
3+
public class RequestCommandCallback implements Runnable
4+
{
5+
private boolean ok;
6+
7+
public void run(boolean ok)
8+
{
9+
this.ok = ok;
10+
run();
11+
}
12+
13+
@Override
14+
public void run()
15+
{
16+
17+
}
18+
19+
public boolean isOk()
20+
{
21+
return ok;
22+
}
23+
}

src/org/cyberpwn/react/ui/ServerTab.java

Lines changed: 82 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,32 @@
55
import java.awt.Font;
66
import java.awt.event.ActionEvent;
77
import java.awt.event.ActionListener;
8+
import java.awt.event.KeyEvent;
9+
import java.awt.event.KeyListener;
810
import java.awt.event.MouseAdapter;
911
import java.awt.event.MouseEvent;
1012
import javax.swing.DefaultListModel;
1113
import javax.swing.ImageIcon;
1214
import javax.swing.JButton;
15+
import javax.swing.JCheckBox;
1316
import javax.swing.JFrame;
1417
import javax.swing.JLabel;
1518
import javax.swing.JList;
1619
import javax.swing.JPanel;
20+
import javax.swing.JScrollBar;
1721
import javax.swing.JScrollPane;
1822
import javax.swing.JTabbedPane;
23+
import javax.swing.JTextArea;
24+
import javax.swing.JTextField;
1925
import javax.swing.ListSelectionModel;
2026
import javax.swing.border.BevelBorder;
2127
import javax.swing.border.SoftBevelBorder;
2228
import javax.swing.event.ListSelectionEvent;
2329
import javax.swing.event.ListSelectionListener;
2430
import org.cyberpwn.react.ReactClient;
2531
import org.cyberpwn.react.network.NetworkedServer;
32+
import org.cyberpwn.react.network.RequestCommand;
33+
import org.cyberpwn.react.network.RequestCommandCallback;
2634
import org.cyberpwn.react.util.F;
2735
import org.cyberpwn.react.util.GList;
2836
import org.cyberpwn.react.util.GMap;
@@ -43,7 +51,10 @@ public class ServerTab implements ListSelectionListener, ActionListener
4351
private JLabel label;
4452
private JLabel label2;
4553
private JLabel lblNewLabel;
54+
private JCheckBox chckbxNewCheckBox;
4655

56+
private JScrollBar vertical;
57+
private JTextArea textArea;
4758
private JButton btnNewButton;
4859
private JList<String> actionSet;
4960
private DefaultListModel<String> actionList;
@@ -62,6 +73,7 @@ public class ServerTab implements ListSelectionListener, ActionListener
6273

6374
private Grapher MAH;
6475
private GList<Double> DMAH;
76+
private JTextField textField;
6577

6678
public ServerTab(JFrame frame, NetworkedServer server, JXTabbedPane tp)
6779
{
@@ -275,22 +287,72 @@ public void mouseReleased(MouseEvent e)
275287
panel_12.add(btnNewButton, "cell 1 2");
276288

277289
JPanel panel_3 = new JPanel();
278-
tabbedPane_1.addTab("Problems", null, panel_3, null);
290+
tabbedPane_1.addTab("Console", null, panel_3, null);
279291
panel_3.setLayout(new MigLayout("", "[grow][grow]", "[grow][grow]"));
280292

281293
JPanel panel_18 = new JPanel();
282294
panel_18.setBorder(new SoftBevelBorder(BevelBorder.RAISED, null, null, null, null));
283295
panel_18.setBackground(Color.WHITE);
284296
panel_3.add(panel_18, "cell 0 0 2 2,grow");
285-
panel_18.setLayout(new MigLayout("", "[]", "[][]"));
286-
287-
JLabel lblNoIssuesFound = new JLabel("No Issues Found (NOT YET IMPLEMENTED)");
288-
lblNoIssuesFound.setFont(new Font("Segoe UI Light", Font.PLAIN, 35));
289-
panel_18.add(lblNoIssuesFound, "cell 0 0");
297+
panel_18.setLayout(new MigLayout("", "[grow]", "[grow][grow]"));
298+
299+
textArea = new JTextArea();
300+
textArea.setBackground(Color.DARK_GRAY);
301+
textArea.setForeground(Color.WHITE);
302+
textArea.setFont(new Font("Lucida Console", Font.PLAIN, 16));
303+
textArea.setEditable(false);
304+
305+
JScrollPane scrollConsole = new JScrollPane(textArea);
306+
panel_18.add(scrollConsole, "cell 0 0,grow");
307+
308+
textField = new JTextField();
309+
textField.setFont(new Font("Segoe UI Light", Font.PLAIN, 14));
310+
panel_18.add(textField, "flowx,cell 0 1,growx");
311+
textField.setColumns(10);
312+
textField.setDisabledTextColor(Color.RED);
313+
textField.addKeyListener(new KeyListener()
314+
{
315+
@Override
316+
public void keyTyped(KeyEvent e)
317+
{
318+
319+
}
320+
321+
@Override
322+
public void keyPressed(KeyEvent e)
323+
{
324+
325+
}
326+
327+
@Override
328+
public void keyReleased(KeyEvent e)
329+
{
330+
if(e.getKeyCode() == 10)
331+
{
332+
String command = textField.getText();
333+
textField.setEnabled(false);
334+
335+
new RequestCommand(ns, new RequestCommandCallback()
336+
{
337+
@Override
338+
public void run()
339+
{
340+
textField.setEnabled(true);
341+
textField.setText("");
342+
textField.requestFocusInWindow();
343+
}
344+
}, command).start();
345+
}
346+
}
347+
});
290348

291-
JLabel lblNewLabel_1 = new JLabel("Looks Like this server is doing fine for the moment!");
292-
lblNewLabel_1.setFont(new Font("Segoe UI Light", Font.PLAIN, 18));
293-
panel_18.add(lblNewLabel_1, "cell 0 1");
349+
chckbxNewCheckBox = new JCheckBox("Follow Log");
350+
chckbxNewCheckBox.setBackground(Color.WHITE);
351+
chckbxNewCheckBox.setSelected(true);
352+
chckbxNewCheckBox.setFont(new Font("Segoe UI Light", Font.PLAIN, 14));
353+
panel_18.add(chckbxNewCheckBox, "cell 0 1");
354+
vertical = scrollConsole.getVerticalScrollBar();
355+
vertical.setValue(vertical.getMaximum());
294356
}
295357

296358
public void pushStartedActions()
@@ -308,8 +370,18 @@ public void push(GList<String> actions)
308370
}
309371
}
310372

311-
public void push(GMap<String, Double> sample)
373+
public void push(GMap<String, Double> sample, String console)
312374
{
375+
if(!textArea.getText().equals(console))
376+
{
377+
textArea.setText(console);
378+
379+
if(chckbxNewCheckBox.isSelected())
380+
{
381+
textArea.setCaretPosition(textArea.getDocument().getLength());
382+
}
383+
}
384+
313385
lblServerName.setText(ns.getName());
314386
lblUsingSpigot.setText(ns.getVersion());
315387
lblTps.setText(F.f(sample.get("tps"), 2) + " TPS (" + F.pc(sample.get("stability"), 0) + " Stable)");

0 commit comments

Comments
 (0)