Automate the stress testing of a Minecraft server network using bots
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Support non-compressed packets

PureGero c3b0f3a5 f696b2c1

+12 -10
+12 -10
src/main/java/com/github/puregero/minecraftstresstest/Bot.java
··· 45 46 sendLoginPackets(in, out); 47 48 - if (!compressed) { 49 - System.out.println("Not compressed!!!"); 50 - } 51 - 52 FriendlyDataOutputStream settingsPacket = new FriendlyDataOutputStream(); 53 settingsPacket.write(0x05); 54 settingsPacket.writeString("en_GB"); ··· 60 settingsPacket.writeBoolean(false); 61 settingsPacket.writeBoolean(true); 62 63 - out.writeVarInt(settingsPacket.size() + 1); 64 - out.writeVarInt(0); 65 - out.write(settingsPacket.toByteArray()); 66 67 CompletableFuture.delayedExecutor(1000,TimeUnit.MILLISECONDS).execute(() -> tick(socket)); 68 ··· 84 System.out.println(username + " has disconnected from " + address + ":" + port); 85 } 86 87 private void tick(Socket socket) { 88 try { 89 if (socket.isClosed()) return; ··· 120 movePacket.writeBoolean(true); 121 122 FriendlyDataOutputStream out = new FriendlyDataOutputStream(new BufferedOutputStream(socket.getOutputStream())); 123 - out.writeVarInt(movePacket.size() + 1); 124 - out.writeVarInt(0); 125 - out.write(movePacket.toByteArray()); 126 out.flush(); 127 } catch (IOException e) { 128 e.printStackTrace();
··· 45 46 sendLoginPackets(in, out); 47 48 FriendlyDataOutputStream settingsPacket = new FriendlyDataOutputStream(); 49 settingsPacket.write(0x05); 50 settingsPacket.writeString("en_GB"); ··· 56 settingsPacket.writeBoolean(false); 57 settingsPacket.writeBoolean(true); 58 59 + writePacket(out, settingsPacket.toByteArray()); 60 61 CompletableFuture.delayedExecutor(1000,TimeUnit.MILLISECONDS).execute(() -> tick(socket)); 62 ··· 78 System.out.println(username + " has disconnected from " + address + ":" + port); 79 } 80 81 + public void writePacket(FriendlyDataOutputStream out, byte[] bytes) throws IOException { 82 + if (compressed) { 83 + out.writeVarInt(bytes.length + 1); 84 + out.writeVarInt(0); 85 + } else { 86 + out.writeVarInt(bytes.length); 87 + } 88 + out.write(bytes); 89 + } 90 + 91 private void tick(Socket socket) { 92 try { 93 if (socket.isClosed()) return; ··· 124 movePacket.writeBoolean(true); 125 126 FriendlyDataOutputStream out = new FriendlyDataOutputStream(new BufferedOutputStream(socket.getOutputStream())); 127 + writePacket(out, movePacket.toByteArray()); 128 out.flush(); 129 } catch (IOException e) { 130 e.printStackTrace();