From 7ca3afd60e16c492bdcb6bc3cd3a59b13ce02d82 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 24 Dec 2021 22:25:06 +0100 Subject: [PATCH] init --- pom.xml | 75 +++++++++++ .../java/earth/krakatao/KraSocketClient.java | 29 +++++ .../earth/krakatao/KraSocketClientConfig.java | 15 +++ .../java/earth/krakatao/SocketClient.java | 55 ++++++++ .../events/KraSocketClientEventInitiater.java | 33 +++++ .../events/KraSocketClientEventInterface.java | 13 ++ .../protocol/KraSocketClientProtocol.java | 120 ++++++++++++++++++ .../KraSocketClientProtocolMessage.java | 24 ++++ .../KraSocketClientProtocolStatus.java | 21 +++ .../earth/krakatao/KraSocketClient.class | Bin 0 -> 2422 bytes .../krakatao/KraSocketClientConfig.class | Bin 0 -> 3647 bytes .../classes/earth/krakatao/SocketClient.class | Bin 0 -> 2865 bytes .../KraSocketClientEventInitiater.class | Bin 0 -> 1994 bytes .../KraSocketClientEventInterface.class | Bin 0 -> 401 bytes .../earth/krakatao/protocol/KraProtocol.class | Bin 0 -> 4174 bytes .../protocol/KraProtocolMessage.class | Bin 0 -> 1217 bytes .../protocol/KraProtocolMessageHandler.class | Bin 0 -> 348 bytes .../krakatao/protocol/KraProtocolStatus.class | Bin 0 -> 1567 bytes .../protocol/KraSocketClientProtocol.class | Bin 0 -> 4282 bytes .../KraSocketClientProtocolMessage.class | Bin 0 -> 1253 bytes .../KraSocketClientProtocolStatus.class | Bin 0 -> 1651 bytes .../earth/krakatao/test/TestInitiater.class | Bin 0 -> 1254 bytes .../earth/krakatao/test/TestListener.class | Bin 0 -> 155 bytes .../earth/krakatao/test/TestResponder.class | Bin 0 -> 576 bytes target/maven-archiver/pom.properties | 5 + .../compile/default-compile/createdFiles.lst | 7 + .../compile/default-compile/inputFiles.lst | 8 ++ .../default-testCompile/inputFiles.lst | 0 28 files changed, 405 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/earth/krakatao/KraSocketClient.java create mode 100644 src/main/java/earth/krakatao/KraSocketClientConfig.java create mode 100644 src/main/java/earth/krakatao/SocketClient.java create mode 100644 src/main/java/earth/krakatao/events/KraSocketClientEventInitiater.java create mode 100644 src/main/java/earth/krakatao/events/KraSocketClientEventInterface.java create mode 100644 src/main/java/earth/krakatao/protocol/KraSocketClientProtocol.java create mode 100644 src/main/java/earth/krakatao/protocol/KraSocketClientProtocolMessage.java create mode 100644 src/main/java/earth/krakatao/protocol/KraSocketClientProtocolStatus.java create mode 100644 target/classes/earth/krakatao/KraSocketClient.class create mode 100644 target/classes/earth/krakatao/KraSocketClientConfig.class create mode 100644 target/classes/earth/krakatao/SocketClient.class create mode 100644 target/classes/earth/krakatao/events/KraSocketClientEventInitiater.class create mode 100644 target/classes/earth/krakatao/events/KraSocketClientEventInterface.class create mode 100644 target/classes/earth/krakatao/protocol/KraProtocol.class create mode 100644 target/classes/earth/krakatao/protocol/KraProtocolMessage.class create mode 100644 target/classes/earth/krakatao/protocol/KraProtocolMessageHandler.class create mode 100644 target/classes/earth/krakatao/protocol/KraProtocolStatus.class create mode 100644 target/classes/earth/krakatao/protocol/KraSocketClientProtocol.class create mode 100644 target/classes/earth/krakatao/protocol/KraSocketClientProtocolMessage.class create mode 100644 target/classes/earth/krakatao/protocol/KraSocketClientProtocolStatus.class create mode 100644 target/classes/earth/krakatao/test/TestInitiater.class create mode 100644 target/classes/earth/krakatao/test/TestListener.class create mode 100644 target/classes/earth/krakatao/test/TestResponder.class create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..ea4878d --- /dev/null +++ b/pom.xml @@ -0,0 +1,75 @@ + + + 4.0.0 + + earth.krakatoa + KraSocketClient + 1.0-SNAPSHOT + + + 14 + 14 + + + + clean install + + + maven-assembly-plugin + + + jar-with-dependencies + + + + + + single + + make-assembly + package + + + + + maven-compiler-plugin + + 9 + 9 + + org.apache.maven.plugins + + + + + + + lombok + org.projectlombok + provided + 1.18.22 + + + Java-WebSocket + org.java-websocket + 1.5.2 + + + + + + + sonatype-nexus-snapshots + + false + + + true + + https://oss.sonatype.org/content/repositories/snapshots + + + + \ No newline at end of file diff --git a/src/main/java/earth/krakatao/KraSocketClient.java b/src/main/java/earth/krakatao/KraSocketClient.java new file mode 100644 index 0000000..e9c66dc --- /dev/null +++ b/src/main/java/earth/krakatao/KraSocketClient.java @@ -0,0 +1,29 @@ +package earth.krakatao; + +import earth.krakatao.events.KraSocketClientEventInitiater; +import earth.krakatao.events.KraSocketClientEventInterface; +import earth.krakatao.protocol.KraSocketClientProtocol; +import earth.krakatao.protocol.KraSocketClientProtocolMessage; +import java.net.URI; +import java.net.URISyntaxException; + +public class KraSocketClient { + + private KraSocketClientConfig kraSocketClientConfig; + private final SocketClient socketClient; + private KraSocketClientEventInitiater kraSocketClientEventInitiater; + + public KraSocketClient(KraSocketClientConfig kraSocketClientConfig, KraSocketClientEventInterface kraSocketClientEventInterface, KraSocketClientProtocol kraSocketClientProtocol) throws URISyntaxException { + this.kraSocketClientConfig = kraSocketClientConfig; + + this.kraSocketClientEventInitiater = new KraSocketClientEventInitiater(); + this.kraSocketClientEventInitiater.addListener(kraSocketClientEventInterface); + + this.socketClient = new SocketClient(new URI(this.kraSocketClientConfig.getWebSocketProtocol() +"://" + this.kraSocketClientConfig.getWebSocketHost() + ":" + this.kraSocketClientConfig.getWebSocketPort() + "/ws?t=" + this.kraSocketClientConfig.getWebSocketToken() + "&s="+ this.kraSocketClientConfig.getWebSocketServerName()), kraSocketClientEventInitiater, kraSocketClientProtocol); + } + + public void sendMsg(KraSocketClientProtocolMessage kraProtocolMessage) { + this.socketClient.send(""); + } + +} diff --git a/src/main/java/earth/krakatao/KraSocketClientConfig.java b/src/main/java/earth/krakatao/KraSocketClientConfig.java new file mode 100644 index 0000000..253f511 --- /dev/null +++ b/src/main/java/earth/krakatao/KraSocketClientConfig.java @@ -0,0 +1,15 @@ +package earth.krakatao; + +import lombok.Data; + +@Data +public class KraSocketClientConfig { + + private final String WebSocketProtocol; + private final String WebSocketHost; + private final int WebSocketPort; + private final String WebSocketToken; + private final String WebSocketAccessKey; + private final String WebSocketServerName; + +} diff --git a/src/main/java/earth/krakatao/SocketClient.java b/src/main/java/earth/krakatao/SocketClient.java new file mode 100644 index 0000000..8b31f9e --- /dev/null +++ b/src/main/java/earth/krakatao/SocketClient.java @@ -0,0 +1,55 @@ +package earth.krakatao; + +import earth.krakatao.protocol.KraSocketClientProtocol; +import earth.krakatao.protocol.KraSocketClientProtocolMessage; +import earth.krakatao.events.KraSocketClientEventInitiater; +import java.net.URI; +import java.nio.ByteBuffer; +import org.java_websocket.client.WebSocketClient; +import org.java_websocket.handshake.ServerHandshake; + +public class SocketClient extends WebSocketClient { + + private final KraSocketClientProtocol kraProtocol; + private final KraSocketClientEventInitiater kraSocketClientEventInitiater; + + public SocketClient(URI serverUri, KraSocketClientEventInitiater kraSocketClientEventInitiater, KraSocketClientProtocol kraProtocol) { + super(serverUri); + + this.kraSocketClientEventInitiater = kraSocketClientEventInitiater; + this.kraProtocol = kraProtocol; + } + + public void SendMessage(KraSocketClientProtocolMessage kraProtocolMessage) { + if (isOpen()) { + send(this.kraProtocol.EncodeMessage(kraProtocolMessage)); + } + } + + @Override + public void onOpen(ServerHandshake serverHandshake) { + this.kraSocketClientEventInitiater.callOnOpen(serverHandshake); + } + + @Override + public void onMessage(String s) { + + } + + @Override + public void onMessage(ByteBuffer byteBuffer) { + KraSocketClientProtocolMessage kraProtocolMessage = new KraSocketClientProtocol().DecodeMessage(byteBuffer.array()); + + this.kraSocketClientEventInitiater.callOnMessage(kraProtocolMessage); + } + + @Override + public void onClose(int code, String reason, boolean remote) { + this.kraSocketClientEventInitiater.callOnClose(code, reason, remote); + } + + @Override + public void onError(Exception e) { + System.out.println("Error: " + e); + } +} diff --git a/src/main/java/earth/krakatao/events/KraSocketClientEventInitiater.java b/src/main/java/earth/krakatao/events/KraSocketClientEventInitiater.java new file mode 100644 index 0000000..8fc5819 --- /dev/null +++ b/src/main/java/earth/krakatao/events/KraSocketClientEventInitiater.java @@ -0,0 +1,33 @@ +package earth.krakatao.events; + +import earth.krakatao.protocol.KraSocketClientProtocolMessage; +import java.util.ArrayList; +import java.util.List; +import org.java_websocket.handshake.ServerHandshake; + +public class KraSocketClientEventInitiater { + + private final List listenerList = new ArrayList<>(); + + public void addListener(KraSocketClientEventInterface testListener) { + listenerList.add(testListener); + } + + public void callOnOpen(ServerHandshake serverHandshake) { + for (KraSocketClientEventInterface testListener : listenerList) { + testListener.kraSocketClientOnOpen(serverHandshake); + } + } + + public void callOnMessage(KraSocketClientProtocolMessage kraProtocolMessage) { + for (KraSocketClientEventInterface testListener : listenerList) { + testListener.kraSocketClientOnMessage(kraProtocolMessage); + } + } + + public void callOnClose(int code, String reason, boolean remote) { + for (KraSocketClientEventInterface testListener : listenerList) { + testListener.kraSocketClientOnClose(code, reason, remote); + } + } +} diff --git a/src/main/java/earth/krakatao/events/KraSocketClientEventInterface.java b/src/main/java/earth/krakatao/events/KraSocketClientEventInterface.java new file mode 100644 index 0000000..c8f25ba --- /dev/null +++ b/src/main/java/earth/krakatao/events/KraSocketClientEventInterface.java @@ -0,0 +1,13 @@ +package earth.krakatao.events; + +import earth.krakatao.protocol.KraSocketClientProtocolMessage; +import org.java_websocket.handshake.ServerHandshake; + +public interface KraSocketClientEventInterface { + + void kraSocketClientOnMessage(KraSocketClientProtocolMessage kraProtocolMessage); + + void kraSocketClientOnOpen(ServerHandshake serverHandshake); + + void kraSocketClientOnClose(int code, String reason, boolean remote); +} diff --git a/src/main/java/earth/krakatao/protocol/KraSocketClientProtocol.java b/src/main/java/earth/krakatao/protocol/KraSocketClientProtocol.java new file mode 100644 index 0000000..f1e4d90 --- /dev/null +++ b/src/main/java/earth/krakatao/protocol/KraSocketClientProtocol.java @@ -0,0 +1,120 @@ +package earth.krakatao.protocol; + +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.function.Consumer; +import lombok.Getter; + +public class KraSocketClientProtocol { + + @Getter + //ArrayList cmdIDs = Lists.newArrayList(); + ArrayList cmdIDs = new ArrayList<>(); + + @Getter + HashMap> consumerHashMap = new HashMap<>(); + + public int getCmdID() { + if (cmdIDs.isEmpty()) { + cmdIDs.add(10); + return 10; + } + + int cmdID = cmdIDs.get(cmdIDs.size() - 1) + 1; + + cmdIDs.add(cmdID); + + // TODO: check max int value 2^32 + + return cmdID; + } + + public byte[] EncodeMessage(KraSocketClientProtocolMessage kraProtocolMessage) { + return EncodeMessage(kraProtocolMessage.getStatus(), kraProtocolMessage.getCmdID(), + kraProtocolMessage.getDest(), kraProtocolMessage.getUuid(), + kraProtocolMessage.getCmdNumber(), kraProtocolMessage.getArgs()); + } + + public byte[] EncodeMessage(int status, int cmdID, int dest, String uuid, int cmdNumber, + String args) { + System.out.println("sendMessage: " + status + " " + cmdID + " " + dest + " " + cmdNumber); + + int argLen = args.length(); + + byte[] raw = new byte[40 + argLen]; + + raw[0] = (byte) status; + + raw[1] = (byte) cmdID; + raw[2] = (byte) (cmdID >> 8); + raw[3] = (byte) (cmdID >> 16); + raw[4] = (byte) (cmdID >> 24); + + raw[5] = (byte) dest; + + byte[] uuidBytes = uuid.getBytes(); + + /* for (int i = 0; i < 32; i++) { + raw[6 + i] = uuidBytes[i]; + }*/ + + System.arraycopy(uuidBytes, 0, raw, 6, 32); + + raw[38] = (byte) cmdNumber; + raw[39] = (byte) (cmdNumber >> 8); + + if (argLen > 0) { + for (int i = 0; i < argLen; i++) { + raw[40 + i] = (byte) args.charAt(i); + } + } + + return raw; + //ProxySystem.getInstance().getSocketClient().SendMessage(raw); + } + + public KraSocketClientProtocolMessage DecodeMessage(byte[] data) { + System.out.println("start decode"); + + byte status = data[0]; + + int cmdID = Byte.toUnsignedInt(data[1]); + + cmdID += Byte.toUnsignedInt(data[2]) * 256; + cmdID += Byte.toUnsignedInt(data[3]) * 256 * 256; + cmdID += Byte.toUnsignedInt(data[4]) * 256 * 256 * 256; + + int dest = Byte.toUnsignedInt(data[5]); + + byte[] playerUuidBytes = new byte[32]; + + System.arraycopy(data, 6, playerUuidBytes, 0, 32); + + /* for (int i = 0; i < 32; i++) { + playerUuidBytes[i] = data[6 + i]; + } */ + + String playerUuid = new String(playerUuidBytes, StandardCharsets.UTF_8); + + short cmdNumber = (short) (Byte.toUnsignedInt(data[38]) + (Byte.toUnsignedInt(data[39]) * 256)); + + int argLen = data.length - 40; + byte[] argsBytes = new byte[argLen]; + + /* for (int i = 0; i < argLen; i++) { + argsBytes[i] = data[40 + i]; + } */ + + System.arraycopy(data, 40, argsBytes, 0, argLen); + + String args = new String(argsBytes, StandardCharsets.UTF_8); + + System.out.println( + "decoded message " + status + " " + cmdID + " " + dest + " " + playerUuid + " " + + cmdNumber + " " + args + " "); + + return new KraSocketClientProtocolMessage(status, cmdID, dest, playerUuid, cmdNumber, args); + } + +} diff --git a/src/main/java/earth/krakatao/protocol/KraSocketClientProtocolMessage.java b/src/main/java/earth/krakatao/protocol/KraSocketClientProtocolMessage.java new file mode 100644 index 0000000..9d2fffe --- /dev/null +++ b/src/main/java/earth/krakatao/protocol/KraSocketClientProtocolMessage.java @@ -0,0 +1,24 @@ +package earth.krakatao.protocol; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public class KraSocketClientProtocolMessage { + + private final byte status; + private final int cmdID; // long + private final int dest; + private final String uuid; + private final short cmdNumber; + private final String args; + + public int getStatus() { + return Byte.toUnsignedInt(status); + } + + public int getCmdNumber() { + return Short.toUnsignedInt(cmdNumber); + } +} diff --git a/src/main/java/earth/krakatao/protocol/KraSocketClientProtocolStatus.java b/src/main/java/earth/krakatao/protocol/KraSocketClientProtocolStatus.java new file mode 100644 index 0000000..05eb398 --- /dev/null +++ b/src/main/java/earth/krakatao/protocol/KraSocketClientProtocolStatus.java @@ -0,0 +1,21 @@ +package earth.krakatao.protocol; + +import lombok.Getter; + +public enum KraSocketClientProtocolStatus { + + SEND(10), + GET(11), + MESSAGE_ALREADY_IN_QUEUE(12), + ERROR_NO_PERMS(13), + ERROR_TRY_AGAIN(14), + ERROR_ARG_LEN_TOO_BIG(15), + REPLY(16); + + @Getter + private final int status; + + KraSocketClientProtocolStatus(int status) { + this.status = status; + } +} diff --git a/target/classes/earth/krakatao/KraSocketClient.class b/target/classes/earth/krakatao/KraSocketClient.class new file mode 100644 index 0000000000000000000000000000000000000000..ca4b5ba53ce45910747ffedeec19c0cf2ed67a82 GIT binary patch literal 2422 zcmb7Ge^(nt6um3GT@)qv7!em)tcTdc5pf z4Izt7TR61&94&<{Mb~*|*BPctC+`gWObzcd+>W@4T?*|-bImF1B2{X0DZCWUBB6>M z){(&n3=@$;j=M8VM+bj4KS2k4*en>Df-5a8BT39g`}2I=pYe^`%;z((ws$k;N6)BMK00+7%XbTvPjp!~0j=hHzAX z8#->P)sgUOS$Mm`Tjtv$Lu~z2$1QxuFuKhff>2mouGw;n-h9c45e!dr@zUd##keVM z>G=`H@VPoC)5Pl@nevqs&f`nvafjhW$D`9D^Hg-`usF7<)oD|d{N45ue-!CwbeOnD zEb)&W#))VRVOp63pfe5y;cFe=D3D2CI5mdfVpQ(Qs93Qlo}ez_qb0oqLMp82)&#>) z$#%r@&URIJtGwDIOQz&nyjkI%t>ztLQf}Eqj?2+h5ftYCibSW@(~3kFA~7~1KHYXP z+=>?UR{RX9xtEq`Nt<}DVVT4ttOeygNAj0%JQy_9#3i3J*NpY?ZON8|@AJA+CHl04 zp<8#yPAYfW^1BfUMcLi)EHQ7ZzGWl5xTzqKnmlk_=}V8dmW14LYyMC_)>8Np>l%Ji zYOq0ScO+J}vrBSf1ez5H#5}j8>+Lc89zL)g#~|necWO=HPnKM_vC}f+QV_Bn+qk;d z5 zP1E#^LwvE1yMMH^eoN0W^wTp<8HX`Q)nw`KBHgze7{wf|6oOhXkMC$kRkbmYj?vo! z7Td@+@jV_Az7koJU|6ExBdpL<;Ze90{uJfEo0&bp{iE#apCeVnAjaF-Mgq?_*;4oc gk10+9W%BF8DxT0dK$Z&qHu1BHOK-n`!@`CC03wRTivR!s literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/KraSocketClientConfig.class b/target/classes/earth/krakatao/KraSocketClientConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..ad9b573cc0a7b8b9cd370cddae84cbc519e3a48a GIT binary patch literal 3647 zcmcIm&2Jl35dS@U*SmH$U(Q#zEun=pBu-L8Ae7n-(1wPDCTVCw3N4gwoNesd^@jDP zQZ67QPQal;LP8wig6O44AV`sVKp>7(Wr042K zEjf0nx}Im_Z5rCya%-S6W7Qm%bZSVWD=b;GZ1PXcvb0A-FYC1hddpVXtg>j22AxIe zKyr)aI!+7oy)g^Ms0tnv*i z&~&X&$WrwxjkBzGj(4f1je=v@TLPbio7)F^MrVxbTE(ml%vn}>b0dG>>(ijPytQFQ zz|V&)?2Nq-%QrD)R4Pj)$IPpsEPN1|g`r)&Iw?jE1Wc|=1A|9s1H&y;11Bg{1GiqN zNii&-%~q?XJykJkHM6FmC~#<3lB05`;Icsf{h`!%UZQc3#%GL1VS-*PdMAlW^Q-2r z^oF@By;kl@Pm{aS8$@dh=u+c3`hA{uACeV?*1^p85Sfu}D4Ef1v}PXKMn^`Mw$Yu@ z_A0aJK^c4W)-h~PweL)zpRM66#FH)6niGS z6#K?D>D}@@%hKwek@*hF*8~b5thxtl9>70X@Jkh;+}f<1j8vvaHA1=LM$^fuNM(8k zBb2+FPi~1+rdKjTxvyDSi&UluG(vfAvvO;sGQIYmviP0S+e)F{8OeMJS-LUu6Vy*3 z$8U`M2z7oma}y7_TOtmQ()T&bXme1 zGGh|Ak-m;rUDgvJP&TI!D4SDtg+ZzhQgk&08qXyOG@eW8Nd~2SP*P8YKohwZ0!`#J zy@f%V4iU(N%si8!Yok|mT?U) z5hdds-p47T64*i+b3`e42PWo;Qt=u6F3^|67j*AV6P3cxbc+{>YQeAAhnI=caE5$4 zfi6Y;8*K_y?Jjy1#OO~Icd^GKlmAVUXY?PX-xx<}IQJeeOyTZL5AP8QjkU4n4 z|9yF8#9xF_$;`(c`D4=L{*HW+o8jW5+XcL(9#A_*u0t8SiDz8?Xij2*F8LCbJHr!Y zbFwR6^HPJkUIJyx#JrbbnBU^VCBzypA_$Rq2!q^sV6%?NUUoqeRz7{}(%r B2Ydhk literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/SocketClient.class b/target/classes/earth/krakatao/SocketClient.class new file mode 100644 index 0000000000000000000000000000000000000000..32316e775dd8f0610dacd413d7c42d74edf43139 GIT binary patch literal 2865 zcmbVO?N$?46x|n)Az=^*A7UwrEw)KOBehsH)>a}`Y7lD_Dzw^3xRNnpZaOod^hw&s zXqU#d>{@+*K2%rtotcCrxcvH&%)RHHv(M+gGyneg>K_0L_$`hubQ|a~aRj{rDdlcw zo>+U-f`A)oAbkvF1Fv-S=l`t`aQD$v>t2OBebSG0Aag5`bfe91G@sU8L zBha@23k)ndCAB42q~}@NQs7GReS?ckv#HHR9p=X-rf@=_$CJ*Mz>(zUVrngpX`C|f ziHT1!BXGVW%y+4$K)hsCtE*0!{CqP1nn@{J&X!lUDl$`$?w)jSHuf9|U8>LYlzkqQ zj{6kS24+pn;f%mYI6=0`EbjYqarg0K-TEVz>stHFCK;qRj*N+Om}lLt%Z|D+&krq~ zF3))rUt)p4VV2E?WIwziLD|1DaS@j|f+23Msyw#&SaLa}Ox1F>GX>wZo$c&~=1mq? z418_kD!vgI3W^fy?0df4Vd>PaFEAEbvs!m(>Jva(JJ|#&ea*xoa`dpnHsq93vix=1 zFLUMj7Fk1zM{EsXm!6em&9{}4O&ty>jwReM@STa9SZ=ha-KT(2(-Bljh_P1SD5un# zz|)TFp|efzGJe@kqqk9u6UVX1ky`?TdE1e*Q{Gnvwd2{7(eu!?YPe9HT@V!wTi;&4Y91pgTAlP1iB}2L{vW=NOo+W2}xz?X^4bdX!IKg3%tQ z-^sw^cxc!3IEn)95%qpxB}TYh!%XDn8kKbjF~S>!KY5Um{@?;mvO?1>xUnW~4D0xj zFai&-9KkKnLR*Ogm|h+Mr&}OI6GC7En-RoM5yV3R1WEmk@dqz)nn5M&IJ=?)oU7xD z1LQFI6pJ^DV|+R5a!*GEX_R{cKjR^h2N4U((8cv5T#9_HvpKr0{Th67ZmNz82k>G3 z=h)5p06Oese>3=g`~r(WG)IwX=)C(;;;iUSN<5C7Eb&C24g7`6v#;)T0q)v_*$_=D?!>yzajygiGw3I&LJF=ZPHz4cR{`O zS9s&C*Usp4&>6>Te}z~62&bbyXS0D2Itn+NbKZT=^E~Hy-+lA@-#`BfU>TcfB#<#ZCWDN|NxQc56{byfOrrh5bxMnrawOyr<-_>VFOpIbopvNJd3_Vf~ zTlqGYVjL&aI3^6_Ox(atf$S+$D@DMl$zV%;MWM8Z_~V!|F^#tbQf?H!+QM#EV&K*# z?V+YGWJP5#gF7ZH`@;e%J&cr+x1V+!HZmJ-VRV7fcN*xtF@V(Hhc#Y1QejLZ+qcMeT;%zL^?sF9D z4KES~>I`w_4cE?+EmkovJItL!VjC+G?dcVzpD%fA(2yWMQqq60Ljt1RN+i zuG%_$xu^V3cI>2 zAjQ?YT$#;$yodYT3A~S$80#@Jb*?%4Bhqun7);>PPMkjK>W^@So4GNL#w}o#NCF=q zA0vLloD>l)jd+Y1LJ>Tf}uxP;8WXmaY3_h6f{EeQ3@KP zpzHrD=tHc(Se2)!M%j3Rr=-`hXLuf!(MAy;(a?vCM&@NA^QM`$!B7IF Fe*r98=;Z(a literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/events/KraSocketClientEventInterface.class b/target/classes/earth/krakatao/events/KraSocketClientEventInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..122150690fcc90da76514d191f52ef464e4af26c GIT binary patch literal 401 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 ZA|xmUV;M-XBiLW(xx`&zggwCogI@<~R?7eY literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/protocol/KraProtocolStatus.class b/target/classes/earth/krakatao/protocol/KraProtocolStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..bc6e9f118eeb3a4c419ec4f38aa28a5b96552c86 GIT binary patch literal 1567 zcmb7EU2_si6g@q_FpxX7!^niekAG&#$YnCY(|JolB&^%sR?2v60jzNKgVC- zgNyEJX=(ZFqd&;<-e$JM(g(u>ch0@1Pxt-k{`~dbM*#D%5>OC{BdQ|?RUp^${NQon ziSIq}0i2?Pv)3uC_}*&xZ3kY^-xY{YZIrEb(-xR{VEy*GViFn>ai}_y7!!y! zJH2j8;6OHKZF|qWLdWZF73!PYt!6;naZJRK(qUkqz{Gcg+3oMp5uSOSeyjdSU_Lvt zda2{>?iNQJcHpP&5r^1R@o4jZbk_#~GZ~a9-f>UDLM9 z71J$S4YR!LxYe3_Z{1usnU~XXo_W($IkVBIH{4p?T{RnbZH`{hG0o9}Kx!CWYdCJX zQm)oGd`U-v!&d|j4#VX}#kI_uyH>Bex2qK<&Fi?rq-)g2hPi4v?EF*5HO^0!&7nb= z&F1zpAXLt!-a{IRl-2IGYW#=- z{qw}oS%SxH${}I5x4JaLj_gTEYK!A(G8i1+-GL6AlqMh;nm8kq54{hqEpe z1(J5J?>Ad_+MImmr#m>y_hIo8)qI?8b7Jub4;Da{=0jTQzqHh8X{n{sQrD!VM$yVN zPc>j1h{XzjA%Z9~^3%uPAe}$)FEal~4(~ZZQ9iSZ{TQR`##$L# z$%?mSKK#WQMX*F(13S>E>SpGFKFC^i6Dk&*9JX$Q2(@>!!4U_vq#o^!c z_fVYl(TI_JgX6DoO2WygF(%=Zgy&+0E@4)}ylRX~I3wX~+?bH?qJ)<Km+ literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/protocol/KraSocketClientProtocol.class b/target/classes/earth/krakatao/protocol/KraSocketClientProtocol.class new file mode 100644 index 0000000000000000000000000000000000000000..9c6d892fd8bb5f4dd319971ef0d30838185c3f28 GIT binary patch literal 4282 zcmcInYj+dZ72RV!MjB7Bun{0^6Y~hj7K!S(ajESPY=c3Gc{DaAn51}+26?bNqs)wG zOwy)2+9v6fgtjEKv`rr=Eo~DTYzir>ANr}E@+YD9NXJ>3}MsqbQTedCN%3G!E zbG9~SP6k= zgi~6nq8~URVRbs!>7&{amv&kUu*f+r#TqKZBtlquY$i#+JYfQqNVgb}hs6@yD(m97oZm}?tmkrC>~ zP8EYng1+eHwsbC+tBGxZUq{q= zbSREz@tllN75lJ%S;CLaIj%m-a9b4-ZXeLFvIprc!(i*$Y=1L%%|R7k!t)Z=%xW|G zuw~{o_psqkv*oy&=`wrQ3Wt_u#p063aY)95iol*A_W6 zK5}fkgmpf9waS4K({2)TqTHR9@M!wz(ET+#Cz>JQH9_}RB@Cp8>Sfv3y@_|9Tz_2{ z{knwA{|+=ka>f`HZb6$->hf(Zue<{_4ls72JoWGBm+*Rxa!~T>sn%$nsF-=zu*|GT zWl=r{Mjx(n(7x~>JWS?UjYkbr_jmTVcDzJM^Qe{AN)wuGh<+dpyVC|4?0!(2G!*fU z4GB_?nZ%^X&+t?TUxIGK4OUEZ@bU!=Lu2XSk8wm%XM5^EAP|YX{+Eg zMezp(f5e|;d?-rMM-nzKl~2PwWzFcUgyKl`52Fz+?^-r%`K8)g9w_>tds#P2y0dxI zvSupf{(BRzMzU<;_*_}9qkgnTzk0K&5d{##TB$T0vViyvC~PL!Y`%e(k367n z@V$b{KpbHjYvS*l?5X~Ad<$=|Cy6^(0R1+#g-e57A48ePns?D6S_$PQTIaFha6-8z z`u^x+;leyR|Aw}CJRY7J5W?0#uk{*1LJ$tDqu)Ra6s*D;u4^6EqKEHiu-<=D9h-aboxs1B7z*KEdsk*2pX2ispY445`8>mCXdb&iq(XydyP3-d zHq!PcG-ER_;u~vhwg)x|hwtKhG$Bmw^-W0^8SzHWzI+|I*0%O!Q zI&R`P8(WeQF(t7z8S!Q(Q$0TQhpyPj-->yR4SSzCnqk9pI4+0KKo}XCKl=k z`B^Rx=;XhY41@eQI(S{*!aMFZJjuUcJ=no(`X2N$b+%)iy(#SEt!j|BpJBYhYw%g@ z#@qZ}Le2|NnM;3_Vfj9(P(%%xf^K8-NGft2_5xn%i)IpAgkC1GwF)uyPOqG~lSmhOW62oj#xsdD2~NgHt~WOx z%vIpaL!`#g8iID>bH#7R%y|E%>WPX^6OI zJxaqwe+@sQUWABw{M;k*9Mk9`enBGNq8EbF7!h{jeUHei{G%xdSBU*f{EE1uW@XtU zg@}kMv9v%@(m)cIs!}9y@C@Y*_%+9WgAeL}wA>9+TiTX`{FbSC)r0#Te$Vd;!d)Zq Sb?^N#Ie_Qw0{(*ANc{)hqC7_c literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/protocol/KraSocketClientProtocolMessage.class b/target/classes/earth/krakatao/protocol/KraSocketClientProtocolMessage.class new file mode 100644 index 0000000000000000000000000000000000000000..b37667217e2419029b2b9eed29f99ce9607bbcc0 GIT binary patch literal 1253 zcmbVKU2hUW6g|_zF3_b^?1%KjwxSfa+V!ioT4N$K#*O%qtmS=x4Q!#iW*JQU5B?M% zG?Cc&;1BRe8Sf0F5W4Zfm$`Rt?z!ilGxPh;&tCxc@g#{E%<704h(lvIaCs=&Rwv{g zE_h&l2m=u`g0A%{AI&$Q@25F+EdT>#50E3VyPzSHVj|>%*OKcmsA*->b+Y_?wrh!{1P@&)Vnhe?Mc(fxz&u<;cuA+gG>f&LGTu8QD;fx$1 zKAYf`ph@C0RnK>a;@n4KsO7K^3JxM9O{B|qf^{jlM_@T9=}zyHpj^b_0U;R=08 zjb596B4t_mIx5n8s7TMCB7G7S$#9A~7)dp;0~Rds%NoB zxiRd4g}ZcPxEF~}pX16jemN4qs(2;;XJXSS7R(=5HrEDV=K28Z=EeY9W-c~B-du_g zkT!GL06X8Pb8DwEE{RVKZWiXU7kv*;#g z#L1cUX<2gxEJd6ZyO@oa{@IDTRPkJ)Roc~INNy+I*@S{lZ&NMg^2|iR5kN*N) C*woJe literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/protocol/KraSocketClientProtocolStatus.class b/target/classes/earth/krakatao/protocol/KraSocketClientProtocolStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..95841818cb429b8233b6745a4086833683b09da5 GIT binary patch literal 1651 zcmbVMTXWk~5dMyA%d(@y!fn(0Ee+Im+Pb9)3AG7v6V;fgcCeDn2p%+w5vdYKVjQ_Y zhhM-0xIh^gm_GNBAH=YGtWM3);lY0J>f8O!p1q#efB*I;fE8FdC`e_I){%iKu;P1z z_*wOM;2nFh7gfIqnt4aJE#oj=bkyweN+8)y~0@-;0Smi@7WcIt;ugF!z>VhQkvI z=egG(`kikmq0+?Z&AxYfTANVV@gN8fYm+yy1L^;ajIUw;%5Qnma~JykoIIiymX1WO{zmbezQBNQn@9d)qDM9&`3d) z)`UkM%KDUXuh#_fb~GIH{3ihyW#NB!`5y1m#slinEWHr9jf*^#07;rBDQRA$q{)zy zMnFpHvXs(awh+mL>1?>ky0-w;oDs9X+uuk91 zUxp&J`Jz(!75XbE%vb)!|CBWPn1u~Aq@9+ISnT05q>yGtW$DUG6f0MM#{7?x!*|Y+ zm19}#G*vd70VAO7NuQrIM|f-Snq#FHexDoM^LQ~3$=-%G;VR0`7FIJ8XS zPD7JI8YlM`6^DP{{SL(`UP>AHm$>o**Ckv?8#59vO87y>&?PKMSW%5x3GYaFFKf(6 zcwfQ~HKQQmvV2U-9VI~zwT63vSQ8qKCcyIpyDtPjv)clK(~n=^fF`w z_tmzw>+@Z%xMwL5C~J+5Wdf9337^5NP_S@?uR$n(;Rst>>;%ptX`tW400tR)I)5fo zd~1tgFx!Z0BW~w5VmOEM1}>Pmh@p8hgg1$XQyE>o$` zgfG%ENISK(BZ7dJMJA4`NE^tQ7{*9Tjm}^OV^2d>++*AbTe@XCx323NHE|s`7^0G- z;L0O8QrTRa0?SQ1sgOh7z?g|~++;`|snBwvjN3d|6>q2>YSe~~uuR;-ZH9&a}t=uw28ZVM7o`t?%_&94Te}zmR+u@zF?SYBd=p;3a264vo;Z2 z@U|$rw;)}yT6H#szs5H!WJwmh60fXtU+Q<$7*X3YU>G?O`*6GnIzjW%s)AuOdty+_ ziF!j*sYkVCVHiF=iga*lhnjR36))|s@VzGGc+so+C9x#yMRlyegzhCWv^gQ#NGe(H z4t?*@D}?(9)16k6&Ie?ft-pc3{61Lz8;n=`hRKEO4G0^w&F-XTSo35Fk-Tp2&W6vO*}zjV?tH2D;j3MxOUw}Ye@Lq8^H^K~Jb gz$m5CX*F%DNo9fVB;FtWH<9~|A!4*hrVyU~2WGM-4FCWD literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/test/TestListener.class b/target/classes/earth/krakatao/test/TestListener.class new file mode 100644 index 0000000000000000000000000000000000000000..505a0918b3d0b3f8b3de591c6b5c2f40b377dfb2 GIT binary patch literal 155 zcmX^0Z`VEs1_o0GPId++Mh1n{#G;Z6{p_N|?8K79eEpKt;u8H3AmNi)T#}lXTEx!4 z!pIXw-U k6cR)>M-OBK8zTcyCD3{X21cNWDNdN!< literal 0 HcmV?d00001 diff --git a/target/classes/earth/krakatao/test/TestResponder.class b/target/classes/earth/krakatao/test/TestResponder.class new file mode 100644 index 0000000000000000000000000000000000000000..28781d74acc8a783ff03a88f803f062230a93aac GIT binary patch literal 576 zcmZ{i$xZ@65QhI|8wLkK5cdV*1w1$>;{oHv#M8J$2=@j$&@c<>X-s%5J!s;=2k@bc zHG@G(XnQ#BG=R1N*)^52tqhnx;p(eP}Lwl_Fm}?%`T7=qelX(>3B=Gw} z8Q5W{u4;26srQ9qNL>eg!BB9dFYcyZSEx4cx|At7L65r~u4EMdBvX1QLxvM)6?k!e zlOgZTB1yON%hOA=f~o3>8yVx5)Sg98ff_2b9)@k&RpeJi^xV%R; wDg#OEleOjzIKUxA3`dLMix>u&FEC2^R}_8$(RTn0+H&>}#9Tm*shU9b8;lTv+W-In literal 0 HcmV?d00001 diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..56e9bb7 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Fri Dec 17 19:53:24 CET 2021 +groupId=earth.krakatoa +artifactId=KraSocketClient +version=1.0-SNAPSHOT diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..1ff5c4d --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,7 @@ +earth/krakatao/KraSocketClientConfig.class +earth/krakatao/protocol/KraSocketClientProtocolStatus.class +earth/krakatao/protocol/KraSocketClientProtocolMessage.class +earth/krakatao/SocketClient.class +earth/krakatao/events/KraSocketClientEventInitiater.class +earth/krakatao/protocol/KraSocketClientProtocol.class +earth/krakatao/events/KraSocketClientEventInterface.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..b6d5275 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,8 @@ +/home/alex/IdeaProjects/KraSocketClient/src/main/java/earth/krakatao/KraSocketClient.java +/home/alex/IdeaProjects/KraSocketClient/src/main/java/earth/krakatao/SocketClient.java +/home/alex/IdeaProjects/KraSocketClient/src/main/java/earth/krakatao/events/KraSocketClientEventInterface.java +/home/alex/IdeaProjects/KraSocketClient/src/main/java/earth/krakatao/protocol/KraSocketClientProtocol.java +/home/alex/IdeaProjects/KraSocketClient/src/main/java/earth/krakatao/protocol/KraSocketClientProtocolStatus.java +/home/alex/IdeaProjects/KraSocketClient/src/main/java/earth/krakatao/KraSocketClientConfig.java +/home/alex/IdeaProjects/KraSocketClient/src/main/java/earth/krakatao/protocol/KraSocketClientProtocolMessage.java +/home/alex/IdeaProjects/KraSocketClient/src/main/java/earth/krakatao/events/KraSocketClientEventInitiater.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29