diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..af1430b --- /dev/null +++ b/.classpath @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore index 32858aa..829bbce 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* +/target/ diff --git a/.project b/.project new file mode 100644 index 0000000..ea7b861 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + PlaceMinecraft2 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..f9fe345 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/test/java=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..714351a --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..227126c --- /dev/null +++ b/pom.xml @@ -0,0 +1,74 @@ + + 4.0.0 + + buttondevteam + PlaceMinecraft + 0.0.1-SNAPSHOT + jar + + PlaceMinecraft + http://maven.apache.org + + + UTF-8 + + + + src/main/java + + + src + + **/*.java + + + + src/main/resources + + *.properties + *.yml + *.csv + *.txt + + true + + + + + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + jitpack.io + https://jitpack.io/ + + + + + + junit + junit + 3.8.1 + test + + + org.spigotmc + spigot-api + 1.11.2-R0.1-SNAPSHOT + provided + + + diff --git a/src/main/java/buttondevteam/PlaceMinecraft2/App.java b/src/main/java/buttondevteam/PlaceMinecraft2/App.java new file mode 100644 index 0000000..a48fa47 --- /dev/null +++ b/src/main/java/buttondevteam/PlaceMinecraft2/App.java @@ -0,0 +1,13 @@ +package buttondevteam.PlaceMinecraft2; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java b/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java new file mode 100644 index 0000000..c6f8771 --- /dev/null +++ b/src/main/java/buttondevteam/PlaceMinecraft2/PlaceWebSocket.java @@ -0,0 +1,65 @@ +package buttondevteam.PlaceMinecraft2; + +import com.google.gson.Gson; +import com.google.gson.JsonObject; + +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')); + } + +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 + + while(true) + { try + { + frame = ws.recv_frame(); + print(frame); + + 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 + + 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() +} diff --git a/src/test/java/buttondevteam/PlaceMinecraft2/AppTest.java b/src/test/java/buttondevteam/PlaceMinecraft2/AppTest.java new file mode 100644 index 0000000..d02f7b9 --- /dev/null +++ b/src/test/java/buttondevteam/PlaceMinecraft2/AppTest.java @@ -0,0 +1,38 @@ +package buttondevteam.PlaceMinecraft2; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +}