diff --git a/.classpath b/.classpath
index af1430b..52f2acf 100644
--- a/.classpath
+++ b/.classpath
@@ -22,5 +22,10 @@
+
+
+
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
index f9fe345..c140e65 100644
--- a/.settings/org.eclipse.core.resources.prefs
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -2,3 +2,4 @@ eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/test/java=UTF-8
encoding/=UTF-8
+encoding/src=UTF-8
diff --git a/pom.xml b/pom.xml
index 227126c..2dd251f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,8 +55,12 @@
jitpack.io
https://jitpack.io/
+
+ clojars.org
+ http://clojars.org/repo
+
-
+
junit
@@ -70,5 +74,10 @@
1.11.2-R0.1-SNAPSHOT
provided
+
+ com.github.TooTallNate
+ Java-WebSocket
+ Java-WebSocket-1.3.1
+
diff --git a/src/main/java/buttondevteam/PlaceMinecraft2/App.java b/src/main/java/buttondevteam/PlaceMinecraft2/App.java
index a48fa47..619d7f5 100644
--- a/src/main/java/buttondevteam/PlaceMinecraft2/App.java
+++ b/src/main/java/buttondevteam/PlaceMinecraft2/App.java
@@ -1,13 +1,29 @@
package buttondevteam.PlaceMinecraft2;
+import java.net.URISyntaxException;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSocketFactory;
+
/**
* Hello world!
*
*/
-public class App
-{
- public static void main( String[] args )
- {
- System.out.println( "Hello World!" );
- }
+public class App {
+ public static void main(String[] args) throws URISyntaxException {
+ PlaceWebSocket placews = new PlaceWebSocket(
+ "wss://...");
+ SSLContext sslContext = null;
+ try {
+ sslContext = SSLContext.getInstance("TLS");
+ sslContext.init(null, null, null); // will use java's default key and trust store which is sufficient unless you deal with self-signed certificates
+ SSLSocketFactory factory = sslContext.getSocketFactory();// (SSLSocketFactory) SSLSocketFactory.getDefault();
+ placews.setSocket(factory.createSocket());
+ if (!placews.connectBlocking())
+ System.out.println("Failed to connect.");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ System.out.println("Finished");
+ }
}
diff --git a/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java b/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java
index c6f8771..1eda7c3 100644
--- a/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java
+++ b/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java
@@ -1,65 +1,52 @@
package buttondevteam.PlaceMinecraft2;
-import com.google.gson.Gson;
-import com.google.gson.JsonObject;
+import org.java_websocket.client.WebSocketClient;
+import org.java_websocket.handshake.ServerHandshake;
-public class PlaceWebSocket { //Ported from https://gist.github.com/teaearlgraycold/76877c8f262de24becc081ad96759730
- private Gson json;
- public JsonObject recv_frame()
- {
- //frame = super().recv_frame()
- return json.fromJson(frame.data.decode('utf-8'));
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+public class PlaceWebSocket extends WebSocketClient { // Ported from https://gist.github.com/teaearlgraycold/76877c8f262de24becc081ad96759730
+ public PlaceWebSocket(String wslink) throws URISyntaxException {
+ super(new URI(wslink));
+ /*
+ * insert_queue = 0 inserted_count = 0 max_queue_size = 100 save_frame_per = 20000
+ */
}
-public void main()
-{ url = "wss://...";
- ws = create_connection(url, class_=PlaceWebSocket);
- insert_queue = 0
- inserted_count = 0
- max_queue_size = 100
- save_frame_per = 20000
+ @Override
+ public void onOpen(ServerHandshake handshakedata) {
+ System.out.println("Status: " + handshakedata.getHttpStatusMessage());
+ }
- while(true)
- { try
- {
- frame = ws.recv_frame();
- print(frame);
+ @Override
+ public void onMessage(String message) {
+ JsonObject frame = new JsonParser().parse(message).getAsJsonObject();
+ String type = frame.get("type").getAsString();
+ JsonObject payload = frame.get("payload").getAsJsonObject();
+ System.out.println("Type: " + type);
+ if (type.equals("place")) {
+ int x = payload.get("x").getAsInt();
+ int y = payload.get("y").getAsInt();
+ String color = payload.get("color").getAsString();
+ String author = payload.get("author").getAsString();
+ System.out.println("X: " + x + " - Y: " + y + " - Color: " + color + " - Author: " + author);
+ } else if (type.equals("activity")) {
+ String count = payload.get("count").getAsString();
+ System.out.println("Count: " + count);
+ }
+ }
- if(frame['type'] == 'place')
- {
- c.execute('''INSERT INTO placements VALUES (?, ?, ?, ?, ?)''', [
- int(time.time()),
- frame['payload']['x'],
- frame['payload']['y'],
- frame['payload']['color'],
- frame['payload']['author']
- ])
- insert_queue += 1
- inserted_count += 1
- }
- else if(frame['type'] == 'activity')
- {
- c.execute('''INSERT INTO activity VALUES (?, ?)''', [
- int(time.time()),
- frame['payload']['count']
- ])
- insert_queue += 1
- inserted_count += 1
+ @Override
+ public void onClose(int code, String reason, boolean remote) {
+ System.out.println("Code: " + code + " - Reason: " + reason + " - Remote: " + remote);
+ }
- if insert_queue >= max_queue_size:
- conn.commit()
- insert_queue = 0
- if inserted_count % save_frame_per == 0:
- save_bitmap(c, conn)
- except KeyboardInterrupt:
- print('Exiting safely...')
- conn.commit()
- conn.close()
- sys.exit()
- except Exception as e:
- print('Error occured: {}'.format(str(e)))
-
-
-if __name__ == '__main__':
- main()
+ @Override
+ public void onError(Exception ex) {
+ System.out.println(ex);
+ }
}