From 1d200dcfd9b885122e7ed9e161cd6615091ca760 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Fri, 10 Dec 2021 17:00:08 +0100 Subject: [PATCH 01/23] Added display of brand name under f3 --- .../limbo/configuration/LimboConfig.java | 6 +++++ .../limbo/connection/ClientConnection.java | 7 ++++++ .../packets/play/PacketPluginMessage.java | 23 +++++++++++++++++++ .../nanit/limbo/protocol/registry/State.java | 4 ++++ src/main/resources/settings.yml | 3 +++ 5 files changed, 43 insertions(+) create mode 100644 src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java diff --git a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java index 21d5032..caea498 100644 --- a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java +++ b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java @@ -19,6 +19,7 @@ public final class LimboConfig { private SocketAddress address; private int maxPlayers; + private String brandName; private PingData pingData; private String dimensionType; @@ -55,6 +56,7 @@ public final class LimboConfig { address = conf.node("bind").get(SocketAddress.class); maxPlayers = conf.node("maxPlayers").getInt(); + brandName = conf.node("brandName").getString(); pingData = conf.node("ping").get(PingData.class); dimensionType = conf.node("dimension").getString(); spawnPosition = conf.node("spawnPosition").get(Position.class); @@ -116,6 +118,10 @@ public final class LimboConfig { return maxPlayers; } + public String getBrandName() { + return brandName; + } + public PingData getPingData() { return pingData; } diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index 9f8b142..93cf38f 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -41,6 +41,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { private static PreEncodedPacket PACKET_LOGIN_SUCCESS; private static PreEncodedPacket PACKET_JOIN_GAME; + private static PreEncodedPacket PACKET_PLUGIN_MESSAGE; private static PreEncodedPacket PACKET_PLAYER_ABILITIES; private static PreEncodedPacket PACKET_PLAYER_INFO; private static PreEncodedPacket PACKET_DECLARE_COMMANDS; @@ -215,6 +216,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { server.getConnections().addConnection(this); writePacket(PACKET_JOIN_GAME); + writePacket(PACKET_PLUGIN_MESSAGE); writePacket(PACKET_PLAYER_ABILITIES); writePacket(PACKET_PLAYER_POS); writePacket(PACKET_PLAYER_INFO); @@ -383,6 +385,10 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { joinGame.setHashedSeed(0); joinGame.setDimensionRegistry(server.getDimensionRegistry()); + PacketPluginMessage pluginMessage = new PacketPluginMessage(); + pluginMessage.setChannel("minecraft:brand"); + pluginMessage.setMessage(server.getConfig().getBrandName()); + PacketPlayerAbilities playerAbilities = new PacketPlayerAbilities(); playerAbilities.setFlyingSpeed(0.0F); playerAbilities.setFlags(0x02); @@ -406,6 +412,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { PACKET_LOGIN_SUCCESS = PreEncodedPacket.of(loginSuccess); PACKET_JOIN_GAME = PreEncodedPacket.of(joinGame); + PACKET_PLUGIN_MESSAGE = PreEncodedPacket.of(pluginMessage); PACKET_PLAYER_ABILITIES = PreEncodedPacket.of(playerAbilities); PACKET_PLAYER_POS = PreEncodedPacket.of(positionAndLook); PACKET_PLAYER_INFO = PreEncodedPacket.of(info); diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java new file mode 100644 index 0000000..86997d9 --- /dev/null +++ b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java @@ -0,0 +1,23 @@ +package ru.nanit.limbo.protocol.packets.play; + +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketOut; +import ru.nanit.limbo.protocol.registry.Version; + +public class PacketPluginMessage implements PacketOut { + private String channel; + private String message; + + public void setChannel(String channel){ + this.channel = channel; + } + public void setMessage(String message){ + this.message = message; + } + + @Override + public void encode(ByteMessage msg, Version version) { + msg.writeString(channel); + msg.writeString(message); + } +} diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index ce938ff..cd3350e 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -87,6 +87,10 @@ public enum State { map(0x24, V1_16_2, V1_16_4), map(0x26, V1_17, V1_18) ); + // to do + clientBound.register(PacketPluginMessage::new, + map(0x18, V1_18, V1_18) + ); clientBound.register(PacketPlayerAbilities::new, map(0x39, V1_8, V1_8), map(0x2B, V1_9, V1_12), diff --git a/src/main/resources/settings.yml b/src/main/resources/settings.yml index 5345dd9..4299bc2 100644 --- a/src/main/resources/settings.yml +++ b/src/main/resources/settings.yml @@ -11,6 +11,9 @@ bind: # Set -1 to make it infinite maxPlayers: 100 +# Server name which is shown under F3 +brandName: 'NanoLimbo' + # Server's data in servers list ping: description: '{"text": "&9NanoLimbo"}' From a05523799df3f41a7be074e252367bce9a3c8102 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Fri, 10 Dec 2021 17:16:46 +0100 Subject: [PATCH 02/23] Update gradle wrapper --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 05679dc..84d1f85 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 4c5439082c23ad397bbfcc5521a6b8b00d356367 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Fri, 10 Dec 2021 17:17:00 +0100 Subject: [PATCH 03/23] Optimize imports --- .../nanit/limbo/protocol/packets/login/PacketLoginStart.java | 3 ++- src/main/java/ru/nanit/limbo/server/LimboServer.java | 1 - src/main/java/ru/nanit/limbo/server/data/Title.java | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java b/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java index eed9e08..3f768fa 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java @@ -1,6 +1,7 @@ package ru.nanit.limbo.protocol.packets.login; -import ru.nanit.limbo.protocol.*; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketIn; import ru.nanit.limbo.protocol.registry.Version; public class PacketLoginStart implements PacketIn { diff --git a/src/main/java/ru/nanit/limbo/server/LimboServer.java b/src/main/java/ru/nanit/limbo/server/LimboServer.java index 578b527..12dcb34 100644 --- a/src/main/java/ru/nanit/limbo/server/LimboServer.java +++ b/src/main/java/ru/nanit/limbo/server/LimboServer.java @@ -13,7 +13,6 @@ import io.netty.util.ResourceLeakDetector; import ru.nanit.limbo.configuration.LimboConfig; import ru.nanit.limbo.connection.ClientChannelInitializer; import ru.nanit.limbo.connection.ClientConnection; -import ru.nanit.limbo.protocol.registry.State; import ru.nanit.limbo.util.Logger; import ru.nanit.limbo.world.DimensionRegistry; diff --git a/src/main/java/ru/nanit/limbo/server/data/Title.java b/src/main/java/ru/nanit/limbo/server/data/Title.java index 9697f84..3519a25 100644 --- a/src/main/java/ru/nanit/limbo/server/data/Title.java +++ b/src/main/java/ru/nanit/limbo/server/data/Title.java @@ -2,7 +2,6 @@ package ru.nanit.limbo.server.data; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.ConfigurationNode; -import org.spongepowered.configurate.serialize.SerializationException; import org.spongepowered.configurate.serialize.TypeSerializer; import ru.nanit.limbo.util.Colors; From 3dfa56e1c53e770891ef07dd24bdcbfb8334b71e Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Fri, 10 Dec 2021 17:24:07 +0100 Subject: [PATCH 04/23] Optimize imports and update to java 17 --- .../configuration/SocketAddressSerializer.java | 1 - .../nanit/limbo/connection/ClientConnection.java | 9 +++------ .../protocol/packets/play/PacketTitleLegacy.java | 12 +++--------- src/main/java/ru/nanit/limbo/util/Logger.java | 2 +- .../ru/nanit/limbo/world/DimensionRegistry.java | 16 +++++----------- 5 files changed, 12 insertions(+), 28 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java b/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java index 613f9c2..f5ff626 100644 --- a/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java +++ b/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java @@ -2,7 +2,6 @@ package ru.nanit.limbo.configuration; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.ConfigurationNode; -import org.spongepowered.configurate.serialize.SerializationException; import org.spongepowered.configurate.serialize.TypeSerializer; import java.lang.reflect.Type; diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index 93cf38f..10daaf2 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -112,8 +112,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { } public void handlePacket(Object packet) { - if (packet instanceof PacketHandshake) { - PacketHandshake handshake = (PacketHandshake) packet; + if (packet instanceof PacketHandshake handshake) { clientVersion = handshake.getVersion(); updateStateAndVersion(handshake.getNextState(), clientVersion); @@ -178,8 +177,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { return; } - if (packet instanceof PacketLoginPluginResponse) { - PacketLoginPluginResponse response = (PacketLoginPluginResponse) packet; + if (packet instanceof PacketLoginPluginResponse response) { if (server.getConfig().getInfoForwarding().isModern() && response.getMessageId() == velocityLoginMessageId) { @@ -321,8 +319,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { String token = null; for (Object obj : arr) { - if (obj instanceof JsonObject) { - JsonObject prop = (JsonObject) obj; + if (obj instanceof JsonObject prop) { if (prop.getString("name").equals("bungeeguard-token")) { token = prop.getString("value"); break; diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketTitleLegacy.java b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketTitleLegacy.java index cb7458f..3a450cf 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketTitleLegacy.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketTitleLegacy.java @@ -35,15 +35,9 @@ public class PacketTitleLegacy implements PacketOut { msg.writeVarInt(action.getId(version)); switch (action) { - case SET_TITLE: - title.encode(msg, version); - break; - case SET_SUBTITLE: - subtitle.encode(msg, version); - break; - case SET_TIMES_AND_DISPLAY: - times.encode(msg, version); - break; + case SET_TITLE -> title.encode(msg, version); + case SET_SUBTITLE -> subtitle.encode(msg, version); + case SET_TIMES_AND_DISPLAY -> times.encode(msg, version); } } diff --git a/src/main/java/ru/nanit/limbo/util/Logger.java b/src/main/java/ru/nanit/limbo/util/Logger.java index c327851..2f3edbb 100644 --- a/src/main/java/ru/nanit/limbo/util/Logger.java +++ b/src/main/java/ru/nanit/limbo/util/Logger.java @@ -44,7 +44,7 @@ public final class Logger { public static void print(Level level, Object msg, Throwable t, Object... args) { if (debugLevel >= level.getIndex()) { - System.out.println(String.format("%s: %s", getPrefix(level), String.format(msg.toString(), args))); + System.out.printf("%s: %s%n", getPrefix(level), String.format(msg.toString(), args)); if (t != null) t.printStackTrace(); } } diff --git a/src/main/java/ru/nanit/limbo/world/DimensionRegistry.java b/src/main/java/ru/nanit/limbo/world/DimensionRegistry.java index 8c34880..52ea418 100644 --- a/src/main/java/ru/nanit/limbo/world/DimensionRegistry.java +++ b/src/main/java/ru/nanit/limbo/world/DimensionRegistry.java @@ -47,19 +47,13 @@ public final class DimensionRegistry { CompoundBinaryTag theEnd = (CompoundBinaryTag) ((CompoundBinaryTag) dimensions.get(3)).get("element"); switch (def.toLowerCase()) { - case "overworld": - defaultDimension = new Dimension(0, "minecraft:overworld", overWorld); - break; - case "nether": - defaultDimension = new Dimension(-1, "minecraft:nether", nether); - break; - case "the_end": - defaultDimension = new Dimension(1, "minecraft:the_end", theEnd); - break; - default: + case "overworld" -> defaultDimension = new Dimension(0, "minecraft:overworld", overWorld); + case "nether" -> defaultDimension = new Dimension(-1, "minecraft:nether", nether); + case "the_end" -> defaultDimension = new Dimension(1, "minecraft:the_end", theEnd); + default -> { defaultDimension = new Dimension(1, "minecraft:the_end", theEnd); Logger.warning("Undefined dimension type: '%s'. Using THE_END as default", def); - break; + } } } From 6d2ff1a6b9300d6b84bac6c448ed0f23bc75afb0 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Fri, 10 Dec 2021 17:28:04 +0100 Subject: [PATCH 05/23] Optimize imports and delete command declaration packet --- .../limbo/configuration/LimboConfig.java | 5 +- .../connection/ClientChannelInitializer.java | 2 +- .../limbo/connection/ClientConnection.java | 13 ++--- .../connection/pipeline/PacketDecoder.java | 3 +- .../packets/play/PacketDeclareCommands.java | 56 ------------------- .../packets/status/PacketStatusRequest.java | 3 +- .../packets/status/PacketStatusResponse.java | 3 +- .../nanit/limbo/protocol/registry/State.java | 13 +---- 8 files changed, 18 insertions(+), 80 deletions(-) delete mode 100644 src/main/java/ru/nanit/limbo/protocol/packets/play/PacketDeclareCommands.java diff --git a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java index caea498..91aa40e 100644 --- a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java +++ b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java @@ -7,7 +7,10 @@ import org.spongepowered.configurate.yaml.YamlConfigurationLoader; import ru.nanit.limbo.server.data.*; import ru.nanit.limbo.util.Colors; -import java.io.*; +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; import java.net.SocketAddress; import java.nio.file.Files; import java.nio.file.Path; diff --git a/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java b/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java index 827fc99..879eca1 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java @@ -4,9 +4,9 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.handler.timeout.ReadTimeoutHandler; -import ru.nanit.limbo.connection.pipeline.VarIntFrameDecoder; import ru.nanit.limbo.connection.pipeline.PacketDecoder; import ru.nanit.limbo.connection.pipeline.PacketEncoder; +import ru.nanit.limbo.connection.pipeline.VarIntFrameDecoder; import ru.nanit.limbo.connection.pipeline.VarIntLengthEncoder; import ru.nanit.limbo.server.LimboServer; diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index 10daaf2..16ed46d 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -10,13 +10,13 @@ import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import ru.nanit.limbo.LimboConstants; -import ru.nanit.limbo.protocol.ByteMessage; -import ru.nanit.limbo.protocol.PreEncodedPacket; -import ru.nanit.limbo.protocol.packets.login.*; -import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.connection.pipeline.PacketDecoder; import ru.nanit.limbo.connection.pipeline.PacketEncoder; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PreEncodedPacket; import ru.nanit.limbo.protocol.packets.PacketHandshake; +import ru.nanit.limbo.protocol.packets.login.*; +import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.protocol.packets.status.PacketStatusPing; import ru.nanit.limbo.protocol.packets.status.PacketStatusRequest; import ru.nanit.limbo.protocol.packets.status.PacketStatusResponse; @@ -33,7 +33,6 @@ import java.net.InetSocketAddress; import java.net.SocketAddress; import java.security.InvalidKeyException; import java.security.MessageDigest; -import java.util.Collections; import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; @@ -404,16 +403,12 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { info.setGameMode(server.getConfig().getGameMode()); info.setUuid(uuid); - PacketDeclareCommands declareCommands = new PacketDeclareCommands(); - declareCommands.setCommands(Collections.singletonList("limbo")); - PACKET_LOGIN_SUCCESS = PreEncodedPacket.of(loginSuccess); PACKET_JOIN_GAME = PreEncodedPacket.of(joinGame); PACKET_PLUGIN_MESSAGE = PreEncodedPacket.of(pluginMessage); PACKET_PLAYER_ABILITIES = PreEncodedPacket.of(playerAbilities); PACKET_PLAYER_POS = PreEncodedPacket.of(positionAndLook); PACKET_PLAYER_INFO = PreEncodedPacket.of(info); - PACKET_DECLARE_COMMANDS = PreEncodedPacket.of(declareCommands); if (server.getConfig().isUseJoinMessage()) { PacketChatMessage joinMessage = new PacketChatMessage(); diff --git a/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java b/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java index e25eff8..62d499b 100644 --- a/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java +++ b/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java @@ -3,7 +3,8 @@ package ru.nanit.limbo.connection.pipeline; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToMessageDecoder; -import ru.nanit.limbo.protocol.*; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.Packet; import ru.nanit.limbo.protocol.registry.State; import ru.nanit.limbo.protocol.registry.Version; import ru.nanit.limbo.util.Logger; diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketDeclareCommands.java b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketDeclareCommands.java deleted file mode 100644 index c804b51..0000000 --- a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketDeclareCommands.java +++ /dev/null @@ -1,56 +0,0 @@ -package ru.nanit.limbo.protocol.packets.play; - -import ru.nanit.limbo.protocol.ByteMessage; -import ru.nanit.limbo.protocol.PacketOut; -import ru.nanit.limbo.protocol.registry.Version; - -import java.util.List; - -/** - * Packet for 1.13+ - */ -public class PacketDeclareCommands implements PacketOut { - - private List commands; - - public void setCommands(List commands) { - this.commands = commands; - } - - @Override - public void encode(ByteMessage msg, Version version) { - msg.writeVarInt(commands.size() * 2 + 1); // +1 because declaring root node - - // Declare root node - - msg.writeByte(0); - msg.writeVarInt(commands.size()); - - for (int i = 1; i <= commands.size() * 2; i++) { - msg.writeVarInt(i++); - } - - // Declare other commands - - int i = 1; - for (String cmd : commands) { - msg.writeByte(1 | 0x04); - msg.writeVarInt(1); - msg.writeVarInt(i + 1); - msg.writeString(cmd); - i++; - - msg.writeByte(2 | 0x04 | 0x10); - msg.writeVarInt(1); - msg.writeVarInt(i); - msg.writeString("arg"); - msg.writeString("brigadier:string"); - msg.writeVarInt(0); - msg.writeString("minecraft:ask_server"); - i++; - } - - msg.writeVarInt(0); - } - -} diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java index ed18d34..ff3b92e 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java @@ -1,6 +1,7 @@ package ru.nanit.limbo.protocol.packets.status; -import ru.nanit.limbo.protocol.*; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketIn; import ru.nanit.limbo.protocol.registry.Version; public class PacketStatusRequest implements PacketIn { diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java index bacbfd1..df08142 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java @@ -1,6 +1,7 @@ package ru.nanit.limbo.protocol.packets.status; -import ru.nanit.limbo.protocol.*; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketOut; import ru.nanit.limbo.protocol.registry.Version; import ru.nanit.limbo.server.LimboServer; diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index cd3350e..a30c4bd 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -1,18 +1,18 @@ package ru.nanit.limbo.protocol.registry; import ru.nanit.limbo.protocol.Packet; -import ru.nanit.limbo.protocol.packets.*; +import ru.nanit.limbo.protocol.packets.PacketHandshake; import ru.nanit.limbo.protocol.packets.login.*; import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.protocol.packets.status.PacketStatusPing; import ru.nanit.limbo.protocol.packets.status.PacketStatusRequest; import ru.nanit.limbo.protocol.packets.status.PacketStatusResponse; -import static ru.nanit.limbo.protocol.registry.Version.*; - import java.util.*; import java.util.function.Supplier; +import static ru.nanit.limbo.protocol.registry.Version.*; + public enum State { HANDSHAKING(0) { @@ -70,13 +70,6 @@ public enum State { map(0x0F, V1_17, V1_18) ); - clientBound.register(PacketDeclareCommands::new, - map(0x11, V1_13, V1_14_4), - map(0x12, V1_15, V1_15_2), - map(0x11, V1_16, V1_16_1), - map(0x10, V1_16_2, V1_16_4), - map(0x12, V1_17, V1_18) - ); clientBound.register(PacketJoinGame::new, map(0x01, V1_8, V1_8), map(0x23, V1_9, V1_12_2), From f1341ddba6e24211240d01478dce179164005833 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Fri, 10 Dec 2021 17:30:05 +0100 Subject: [PATCH 06/23] hotfix --- .../java/ru/nanit/limbo/connection/ClientConnection.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index 16ed46d..b745974 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -43,7 +43,6 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { private static PreEncodedPacket PACKET_PLUGIN_MESSAGE; private static PreEncodedPacket PACKET_PLAYER_ABILITIES; private static PreEncodedPacket PACKET_PLAYER_INFO; - private static PreEncodedPacket PACKET_DECLARE_COMMANDS; private static PreEncodedPacket PACKET_PLAYER_POS; private static PreEncodedPacket PACKET_JOIN_MESSAGE; private static PreEncodedPacket PACKET_BOSS_BAR; @@ -218,10 +217,6 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { writePacket(PACKET_PLAYER_POS); writePacket(PACKET_PLAYER_INFO); - if (clientVersion.moreOrEqual(Version.V1_13)){ - writePacket(PACKET_DECLARE_COMMANDS); - } - if (PACKET_BOSS_BAR != null && clientVersion.moreOrEqual(Version.V1_9)) writePacket(PACKET_BOSS_BAR); From 0dda88d649ee14095587696f1400d6bdabc18964 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 15:04:20 +0100 Subject: [PATCH 07/23] optimize --- .../java/ru/nanit/limbo/connection/ClientConnection.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index b745974..faa88e5 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -353,11 +353,10 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { } public static void initPackets(LimboServer server) { - final String username = server.getConfig().getPingData().getVersion(); - final UUID uuid = UuidUtil.getOfflineModeUuid(username); + final UUID uuid = UuidUtil.getOfflineModeUuid(""); PacketLoginSuccess loginSuccess = new PacketLoginSuccess(); - loginSuccess.setUsername(username); + loginSuccess.setUsername(""); loginSuccess.setUuid(uuid); PacketJoinGame joinGame = new PacketJoinGame(); @@ -394,7 +393,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { positionAndLook.setTeleportId(ThreadLocalRandom.current().nextInt()); PacketPlayerInfo info = new PacketPlayerInfo(); - info.setUsername(username); + info.setUsername(""); info.setGameMode(server.getConfig().getGameMode()); info.setUuid(uuid); From 016794cba879dd8ea1ade03ec5684eb8d9a52e9e Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 15:08:36 +0100 Subject: [PATCH 08/23] extend compatibility for brand name --- src/main/java/ru/nanit/limbo/protocol/registry/State.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index a30c4bd..d071139 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -82,7 +82,9 @@ public enum State { ); // to do clientBound.register(PacketPluginMessage::new, - map(0x18, V1_18, V1_18) + map(0x19, V1_13, V1_13_2), + map(0x18, V1_14, V1_14_4), + map(0x19, V1_15, V1_18) ); clientBound.register(PacketPlayerAbilities::new, map(0x39, V1_8, V1_8), From 27ec7af95c0fd512f06bf88c2ffefaaceae4fc4b Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 16:37:45 +0100 Subject: [PATCH 09/23] add config section for brand name --- .../limbo/configuration/LimboConfig.java | 20 +++++++++++++------ .../limbo/connection/ClientConnection.java | 12 ++++++----- src/main/resources/settings.yml | 8 +++++--- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java index 91aa40e..17cef9f 100644 --- a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java +++ b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java @@ -22,16 +22,17 @@ public final class LimboConfig { private SocketAddress address; private int maxPlayers; - private String brandName; private PingData pingData; private String dimensionType; private Position spawnPosition; private int gameMode; + private boolean useBrandName; private boolean useJoinMessage; private boolean useBossBar; private boolean useTitle; + private String brandName; private String joinMessage; private BossBar bossBar; private Title title; @@ -59,15 +60,18 @@ public final class LimboConfig { address = conf.node("bind").get(SocketAddress.class); maxPlayers = conf.node("maxPlayers").getInt(); - brandName = conf.node("brandName").getString(); pingData = conf.node("ping").get(PingData.class); dimensionType = conf.node("dimension").getString(); spawnPosition = conf.node("spawnPosition").get(Position.class); gameMode = conf.node("gameMode").getInt(); + useBrandName = conf.node("brandName", "enable").getBoolean(); useJoinMessage = conf.node("joinMessage", "enable").getBoolean(); useBossBar = conf.node("bossBar", "enable").getBoolean(); useTitle = conf.node("title", "enable").getBoolean(); + if(useBrandName) + brandName = conf.node("brandName", "content").getString(); + if (useJoinMessage) joinMessage = Colors.of(conf.node("joinMessage", "text").getString("")); @@ -121,10 +125,6 @@ public final class LimboConfig { return maxPlayers; } - public String getBrandName() { - return brandName; - } - public PingData getPingData() { return pingData; } @@ -153,6 +153,10 @@ public final class LimboConfig { return debugLevel; } + public boolean isUseBrandName() { + return useBrandName; + } + public boolean isUseJoinMessage() { return useJoinMessage; } @@ -165,6 +169,10 @@ public final class LimboConfig { return useTitle; } + public String getBrandName() { + return brandName; + } + public String getJoinMessage() { return joinMessage; } diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index faa88e5..d2339aa 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -375,10 +375,6 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { joinGame.setHashedSeed(0); joinGame.setDimensionRegistry(server.getDimensionRegistry()); - PacketPluginMessage pluginMessage = new PacketPluginMessage(); - pluginMessage.setChannel("minecraft:brand"); - pluginMessage.setMessage(server.getConfig().getBrandName()); - PacketPlayerAbilities playerAbilities = new PacketPlayerAbilities(); playerAbilities.setFlyingSpeed(0.0F); playerAbilities.setFlags(0x02); @@ -399,11 +395,17 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { PACKET_LOGIN_SUCCESS = PreEncodedPacket.of(loginSuccess); PACKET_JOIN_GAME = PreEncodedPacket.of(joinGame); - PACKET_PLUGIN_MESSAGE = PreEncodedPacket.of(pluginMessage); PACKET_PLAYER_ABILITIES = PreEncodedPacket.of(playerAbilities); PACKET_PLAYER_POS = PreEncodedPacket.of(positionAndLook); PACKET_PLAYER_INFO = PreEncodedPacket.of(info); + if (server.getConfig().isUseBrandName()){ + PacketPluginMessage pluginMessage = new PacketPluginMessage(); + pluginMessage.setChannel("minecraft:brand"); + pluginMessage.setMessage(server.getConfig().getBrandName()); + PACKET_PLUGIN_MESSAGE = PreEncodedPacket.of(pluginMessage); + } + if (server.getConfig().isUseJoinMessage()) { PacketChatMessage joinMessage = new PacketChatMessage(); joinMessage.setJsonData(server.getConfig().getJoinMessage()); diff --git a/src/main/resources/settings.yml b/src/main/resources/settings.yml index 4299bc2..d9c78cf 100644 --- a/src/main/resources/settings.yml +++ b/src/main/resources/settings.yml @@ -11,9 +11,6 @@ bind: # Set -1 to make it infinite maxPlayers: 100 -# Server name which is shown under F3 -brandName: 'NanoLimbo' - # Server's data in servers list ping: description: '{"text": "&9NanoLimbo"}' @@ -37,6 +34,11 @@ spawnPosition: # 3 - Spectator (hide all UI bars) gameMode: 3 +# Server name which is shown under F3 +brandName: + enable: true + content: 'NanoLimbo' + # Message sends when player join to server joinMessage: enable: true From 974e243402e0838db98716c7efba9da85b07bcf9 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 16:55:09 +0100 Subject: [PATCH 10/23] Revert "Added display of brand name under f3" This reverts commit 1d200dcfd9b885122e7ed9e161cd6615091ca760. # Conflicts: # src/main/java/ru/nanit/limbo/protocol/registry/State.java --- .../limbo/connection/ClientConnection.java | 2 -- .../packets/play/PacketPluginMessage.java | 23 ------------------- .../nanit/limbo/protocol/registry/State.java | 17 +++++++++----- 3 files changed, 11 insertions(+), 31 deletions(-) delete mode 100644 src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index d2339aa..264e78a 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -40,7 +40,6 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { private static PreEncodedPacket PACKET_LOGIN_SUCCESS; private static PreEncodedPacket PACKET_JOIN_GAME; - private static PreEncodedPacket PACKET_PLUGIN_MESSAGE; private static PreEncodedPacket PACKET_PLAYER_ABILITIES; private static PreEncodedPacket PACKET_PLAYER_INFO; private static PreEncodedPacket PACKET_PLAYER_POS; @@ -212,7 +211,6 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { server.getConnections().addConnection(this); writePacket(PACKET_JOIN_GAME); - writePacket(PACKET_PLUGIN_MESSAGE); writePacket(PACKET_PLAYER_ABILITIES); writePacket(PACKET_PLAYER_POS); writePacket(PACKET_PLAYER_INFO); diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java deleted file mode 100644 index 86997d9..0000000 --- a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java +++ /dev/null @@ -1,23 +0,0 @@ -package ru.nanit.limbo.protocol.packets.play; - -import ru.nanit.limbo.protocol.ByteMessage; -import ru.nanit.limbo.protocol.PacketOut; -import ru.nanit.limbo.protocol.registry.Version; - -public class PacketPluginMessage implements PacketOut { - private String channel; - private String message; - - public void setChannel(String channel){ - this.channel = channel; - } - public void setMessage(String message){ - this.message = message; - } - - @Override - public void encode(ByteMessage msg, Version version) { - msg.writeString(channel); - msg.writeString(message); - } -} diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index d071139..cd3350e 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -1,18 +1,18 @@ package ru.nanit.limbo.protocol.registry; import ru.nanit.limbo.protocol.Packet; -import ru.nanit.limbo.protocol.packets.PacketHandshake; +import ru.nanit.limbo.protocol.packets.*; import ru.nanit.limbo.protocol.packets.login.*; import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.protocol.packets.status.PacketStatusPing; import ru.nanit.limbo.protocol.packets.status.PacketStatusRequest; import ru.nanit.limbo.protocol.packets.status.PacketStatusResponse; +import static ru.nanit.limbo.protocol.registry.Version.*; + import java.util.*; import java.util.function.Supplier; -import static ru.nanit.limbo.protocol.registry.Version.*; - public enum State { HANDSHAKING(0) { @@ -70,6 +70,13 @@ public enum State { map(0x0F, V1_17, V1_18) ); + clientBound.register(PacketDeclareCommands::new, + map(0x11, V1_13, V1_14_4), + map(0x12, V1_15, V1_15_2), + map(0x11, V1_16, V1_16_1), + map(0x10, V1_16_2, V1_16_4), + map(0x12, V1_17, V1_18) + ); clientBound.register(PacketJoinGame::new, map(0x01, V1_8, V1_8), map(0x23, V1_9, V1_12_2), @@ -82,9 +89,7 @@ public enum State { ); // to do clientBound.register(PacketPluginMessage::new, - map(0x19, V1_13, V1_13_2), - map(0x18, V1_14, V1_14_4), - map(0x19, V1_15, V1_18) + map(0x18, V1_18, V1_18) ); clientBound.register(PacketPlayerAbilities::new, map(0x39, V1_8, V1_8), From bcfbb2a7192754b6fb60634c5f8def12a96b3b07 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:47:27 +0100 Subject: [PATCH 11/23] Revert "Added display of brand name under f3" This reverts commit 1d200dcfd9b885122e7ed9e161cd6615091ca760. --- src/main/java/ru/nanit/limbo/protocol/registry/State.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index cd3350e..ce938ff 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -87,10 +87,6 @@ public enum State { map(0x24, V1_16_2, V1_16_4), map(0x26, V1_17, V1_18) ); - // to do - clientBound.register(PacketPluginMessage::new, - map(0x18, V1_18, V1_18) - ); clientBound.register(PacketPlayerAbilities::new, map(0x39, V1_8, V1_8), map(0x2B, V1_9, V1_12), From d2c2987111eaee36f5740d027768a633cae9e903 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:48:38 +0100 Subject: [PATCH 12/23] Revert "Revert "Added display of brand name under f3"" This reverts commit bcfbb2a7192754b6fb60634c5f8def12a96b3b07. --- src/main/java/ru/nanit/limbo/protocol/registry/State.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index ce938ff..cd3350e 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -87,6 +87,10 @@ public enum State { map(0x24, V1_16_2, V1_16_4), map(0x26, V1_17, V1_18) ); + // to do + clientBound.register(PacketPluginMessage::new, + map(0x18, V1_18, V1_18) + ); clientBound.register(PacketPlayerAbilities::new, map(0x39, V1_8, V1_8), map(0x2B, V1_9, V1_12), From f23ee893fa8729f57f697aa5acd4b9b13ae4e4dd Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:48:40 +0100 Subject: [PATCH 13/23] Revert "Revert "Added display of brand name under f3"" This reverts commit 974e243402e0838db98716c7efba9da85b07bcf9. --- .../limbo/connection/ClientConnection.java | 2 ++ .../packets/play/PacketPluginMessage.java | 23 +++++++++++++++++++ .../nanit/limbo/protocol/registry/State.java | 17 +++++--------- 3 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index 264e78a..d2339aa 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -40,6 +40,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { private static PreEncodedPacket PACKET_LOGIN_SUCCESS; private static PreEncodedPacket PACKET_JOIN_GAME; + private static PreEncodedPacket PACKET_PLUGIN_MESSAGE; private static PreEncodedPacket PACKET_PLAYER_ABILITIES; private static PreEncodedPacket PACKET_PLAYER_INFO; private static PreEncodedPacket PACKET_PLAYER_POS; @@ -211,6 +212,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { server.getConnections().addConnection(this); writePacket(PACKET_JOIN_GAME); + writePacket(PACKET_PLUGIN_MESSAGE); writePacket(PACKET_PLAYER_ABILITIES); writePacket(PACKET_PLAYER_POS); writePacket(PACKET_PLAYER_INFO); diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java new file mode 100644 index 0000000..86997d9 --- /dev/null +++ b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketPluginMessage.java @@ -0,0 +1,23 @@ +package ru.nanit.limbo.protocol.packets.play; + +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketOut; +import ru.nanit.limbo.protocol.registry.Version; + +public class PacketPluginMessage implements PacketOut { + private String channel; + private String message; + + public void setChannel(String channel){ + this.channel = channel; + } + public void setMessage(String message){ + this.message = message; + } + + @Override + public void encode(ByteMessage msg, Version version) { + msg.writeString(channel); + msg.writeString(message); + } +} diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index cd3350e..d071139 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -1,18 +1,18 @@ package ru.nanit.limbo.protocol.registry; import ru.nanit.limbo.protocol.Packet; -import ru.nanit.limbo.protocol.packets.*; +import ru.nanit.limbo.protocol.packets.PacketHandshake; import ru.nanit.limbo.protocol.packets.login.*; import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.protocol.packets.status.PacketStatusPing; import ru.nanit.limbo.protocol.packets.status.PacketStatusRequest; import ru.nanit.limbo.protocol.packets.status.PacketStatusResponse; -import static ru.nanit.limbo.protocol.registry.Version.*; - import java.util.*; import java.util.function.Supplier; +import static ru.nanit.limbo.protocol.registry.Version.*; + public enum State { HANDSHAKING(0) { @@ -70,13 +70,6 @@ public enum State { map(0x0F, V1_17, V1_18) ); - clientBound.register(PacketDeclareCommands::new, - map(0x11, V1_13, V1_14_4), - map(0x12, V1_15, V1_15_2), - map(0x11, V1_16, V1_16_1), - map(0x10, V1_16_2, V1_16_4), - map(0x12, V1_17, V1_18) - ); clientBound.register(PacketJoinGame::new, map(0x01, V1_8, V1_8), map(0x23, V1_9, V1_12_2), @@ -89,7 +82,9 @@ public enum State { ); // to do clientBound.register(PacketPluginMessage::new, - map(0x18, V1_18, V1_18) + map(0x19, V1_13, V1_13_2), + map(0x18, V1_14, V1_14_4), + map(0x19, V1_15, V1_18) ); clientBound.register(PacketPlayerAbilities::new, map(0x39, V1_8, V1_8), From 4ac087e391c48d34f3b5f87c38b4566cd18a82d0 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:48:45 +0100 Subject: [PATCH 14/23] Revert "optimize" This reverts commit 0dda88d649ee14095587696f1400d6bdabc18964. --- .../java/ru/nanit/limbo/connection/ClientConnection.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index d2339aa..b4041c6 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -353,10 +353,11 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { } public static void initPackets(LimboServer server) { - final UUID uuid = UuidUtil.getOfflineModeUuid(""); + final String username = server.getConfig().getPingData().getVersion(); + final UUID uuid = UuidUtil.getOfflineModeUuid(username); PacketLoginSuccess loginSuccess = new PacketLoginSuccess(); - loginSuccess.setUsername(""); + loginSuccess.setUsername(username); loginSuccess.setUuid(uuid); PacketJoinGame joinGame = new PacketJoinGame(); @@ -389,7 +390,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { positionAndLook.setTeleportId(ThreadLocalRandom.current().nextInt()); PacketPlayerInfo info = new PacketPlayerInfo(); - info.setUsername(""); + info.setUsername(username); info.setGameMode(server.getConfig().getGameMode()); info.setUuid(uuid); From b88263305b14653de86b2eebdfde04595251bc93 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:48:46 +0100 Subject: [PATCH 15/23] Revert "hotfix" This reverts commit f1341ddba6e24211240d01478dce179164005833. --- .../java/ru/nanit/limbo/connection/ClientConnection.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index b4041c6..58e09ce 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -43,6 +43,7 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { private static PreEncodedPacket PACKET_PLUGIN_MESSAGE; private static PreEncodedPacket PACKET_PLAYER_ABILITIES; private static PreEncodedPacket PACKET_PLAYER_INFO; + private static PreEncodedPacket PACKET_DECLARE_COMMANDS; private static PreEncodedPacket PACKET_PLAYER_POS; private static PreEncodedPacket PACKET_JOIN_MESSAGE; private static PreEncodedPacket PACKET_BOSS_BAR; @@ -217,6 +218,10 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { writePacket(PACKET_PLAYER_POS); writePacket(PACKET_PLAYER_INFO); + if (clientVersion.moreOrEqual(Version.V1_13)){ + writePacket(PACKET_DECLARE_COMMANDS); + } + if (PACKET_BOSS_BAR != null && clientVersion.moreOrEqual(Version.V1_9)) writePacket(PACKET_BOSS_BAR); From 63ebb4e4af1ebed8d1f2e0ea3a08b66c4a29d775 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:48:48 +0100 Subject: [PATCH 16/23] Revert "Optimize imports and delete command declaration packet" This reverts commit 6d2ff1a6b9300d6b84bac6c448ed0f23bc75afb0. --- .../limbo/configuration/LimboConfig.java | 5 +- .../connection/ClientChannelInitializer.java | 2 +- .../limbo/connection/ClientConnection.java | 11 +++- .../connection/pipeline/PacketDecoder.java | 3 +- .../packets/play/PacketDeclareCommands.java | 56 +++++++++++++++++++ .../packets/status/PacketStatusRequest.java | 3 +- .../packets/status/PacketStatusResponse.java | 3 +- .../nanit/limbo/protocol/registry/State.java | 13 ++++- 8 files changed, 79 insertions(+), 17 deletions(-) create mode 100644 src/main/java/ru/nanit/limbo/protocol/packets/play/PacketDeclareCommands.java diff --git a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java index 17cef9f..486ea46 100644 --- a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java +++ b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java @@ -7,10 +7,7 @@ import org.spongepowered.configurate.yaml.YamlConfigurationLoader; import ru.nanit.limbo.server.data.*; import ru.nanit.limbo.util.Colors; -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.net.SocketAddress; import java.nio.file.Files; import java.nio.file.Path; diff --git a/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java b/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java index 879eca1..827fc99 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java @@ -4,9 +4,9 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.handler.timeout.ReadTimeoutHandler; +import ru.nanit.limbo.connection.pipeline.VarIntFrameDecoder; import ru.nanit.limbo.connection.pipeline.PacketDecoder; import ru.nanit.limbo.connection.pipeline.PacketEncoder; -import ru.nanit.limbo.connection.pipeline.VarIntFrameDecoder; import ru.nanit.limbo.connection.pipeline.VarIntLengthEncoder; import ru.nanit.limbo.server.LimboServer; diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index 58e09ce..a7db176 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -10,13 +10,13 @@ import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import ru.nanit.limbo.LimboConstants; -import ru.nanit.limbo.connection.pipeline.PacketDecoder; -import ru.nanit.limbo.connection.pipeline.PacketEncoder; import ru.nanit.limbo.protocol.ByteMessage; import ru.nanit.limbo.protocol.PreEncodedPacket; -import ru.nanit.limbo.protocol.packets.PacketHandshake; import ru.nanit.limbo.protocol.packets.login.*; import ru.nanit.limbo.protocol.packets.play.*; +import ru.nanit.limbo.connection.pipeline.PacketDecoder; +import ru.nanit.limbo.connection.pipeline.PacketEncoder; +import ru.nanit.limbo.protocol.packets.PacketHandshake; import ru.nanit.limbo.protocol.packets.status.PacketStatusPing; import ru.nanit.limbo.protocol.packets.status.PacketStatusRequest; import ru.nanit.limbo.protocol.packets.status.PacketStatusResponse; @@ -33,6 +33,7 @@ import java.net.InetSocketAddress; import java.net.SocketAddress; import java.security.InvalidKeyException; import java.security.MessageDigest; +import java.util.Collections; import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; @@ -399,11 +400,15 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { info.setGameMode(server.getConfig().getGameMode()); info.setUuid(uuid); + PacketDeclareCommands declareCommands = new PacketDeclareCommands(); + declareCommands.setCommands(Collections.singletonList("limbo")); + PACKET_LOGIN_SUCCESS = PreEncodedPacket.of(loginSuccess); PACKET_JOIN_GAME = PreEncodedPacket.of(joinGame); PACKET_PLAYER_ABILITIES = PreEncodedPacket.of(playerAbilities); PACKET_PLAYER_POS = PreEncodedPacket.of(positionAndLook); PACKET_PLAYER_INFO = PreEncodedPacket.of(info); + PACKET_DECLARE_COMMANDS = PreEncodedPacket.of(declareCommands); if (server.getConfig().isUseBrandName()){ PacketPluginMessage pluginMessage = new PacketPluginMessage(); diff --git a/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java b/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java index 62d499b..e25eff8 100644 --- a/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java +++ b/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java @@ -3,8 +3,7 @@ package ru.nanit.limbo.connection.pipeline; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToMessageDecoder; -import ru.nanit.limbo.protocol.ByteMessage; -import ru.nanit.limbo.protocol.Packet; +import ru.nanit.limbo.protocol.*; import ru.nanit.limbo.protocol.registry.State; import ru.nanit.limbo.protocol.registry.Version; import ru.nanit.limbo.util.Logger; diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketDeclareCommands.java b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketDeclareCommands.java new file mode 100644 index 0000000..c804b51 --- /dev/null +++ b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketDeclareCommands.java @@ -0,0 +1,56 @@ +package ru.nanit.limbo.protocol.packets.play; + +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketOut; +import ru.nanit.limbo.protocol.registry.Version; + +import java.util.List; + +/** + * Packet for 1.13+ + */ +public class PacketDeclareCommands implements PacketOut { + + private List commands; + + public void setCommands(List commands) { + this.commands = commands; + } + + @Override + public void encode(ByteMessage msg, Version version) { + msg.writeVarInt(commands.size() * 2 + 1); // +1 because declaring root node + + // Declare root node + + msg.writeByte(0); + msg.writeVarInt(commands.size()); + + for (int i = 1; i <= commands.size() * 2; i++) { + msg.writeVarInt(i++); + } + + // Declare other commands + + int i = 1; + for (String cmd : commands) { + msg.writeByte(1 | 0x04); + msg.writeVarInt(1); + msg.writeVarInt(i + 1); + msg.writeString(cmd); + i++; + + msg.writeByte(2 | 0x04 | 0x10); + msg.writeVarInt(1); + msg.writeVarInt(i); + msg.writeString("arg"); + msg.writeString("brigadier:string"); + msg.writeVarInt(0); + msg.writeString("minecraft:ask_server"); + i++; + } + + msg.writeVarInt(0); + } + +} diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java index ff3b92e..ed18d34 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java @@ -1,7 +1,6 @@ package ru.nanit.limbo.protocol.packets.status; -import ru.nanit.limbo.protocol.ByteMessage; -import ru.nanit.limbo.protocol.PacketIn; +import ru.nanit.limbo.protocol.*; import ru.nanit.limbo.protocol.registry.Version; public class PacketStatusRequest implements PacketIn { diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java index df08142..bacbfd1 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java @@ -1,7 +1,6 @@ package ru.nanit.limbo.protocol.packets.status; -import ru.nanit.limbo.protocol.ByteMessage; -import ru.nanit.limbo.protocol.PacketOut; +import ru.nanit.limbo.protocol.*; import ru.nanit.limbo.protocol.registry.Version; import ru.nanit.limbo.server.LimboServer; diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index d071139..9dbdde3 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -1,18 +1,18 @@ package ru.nanit.limbo.protocol.registry; import ru.nanit.limbo.protocol.Packet; -import ru.nanit.limbo.protocol.packets.PacketHandshake; +import ru.nanit.limbo.protocol.packets.*; import ru.nanit.limbo.protocol.packets.login.*; import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.protocol.packets.status.PacketStatusPing; import ru.nanit.limbo.protocol.packets.status.PacketStatusRequest; import ru.nanit.limbo.protocol.packets.status.PacketStatusResponse; +import static ru.nanit.limbo.protocol.registry.Version.*; + import java.util.*; import java.util.function.Supplier; -import static ru.nanit.limbo.protocol.registry.Version.*; - public enum State { HANDSHAKING(0) { @@ -70,6 +70,13 @@ public enum State { map(0x0F, V1_17, V1_18) ); + clientBound.register(PacketDeclareCommands::new, + map(0x11, V1_13, V1_14_4), + map(0x12, V1_15, V1_15_2), + map(0x11, V1_16, V1_16_1), + map(0x10, V1_16_2, V1_16_4), + map(0x12, V1_17, V1_18) + ); clientBound.register(PacketJoinGame::new, map(0x01, V1_8, V1_8), map(0x23, V1_9, V1_12_2), From eea304767ea37ceeb5cbf2c6442a69ab3b2de620 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:48:50 +0100 Subject: [PATCH 17/23] Revert "Optimize imports and update to java 17" This reverts commit 3dfa56e1c53e770891ef07dd24bdcbfb8334b71e. --- .../configuration/SocketAddressSerializer.java | 1 + .../nanit/limbo/connection/ClientConnection.java | 9 ++++++--- .../protocol/packets/play/PacketTitleLegacy.java | 12 +++++++++--- src/main/java/ru/nanit/limbo/util/Logger.java | 2 +- .../ru/nanit/limbo/world/DimensionRegistry.java | 16 +++++++++++----- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java b/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java index f5ff626..613f9c2 100644 --- a/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java +++ b/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java @@ -2,6 +2,7 @@ package ru.nanit.limbo.configuration; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.ConfigurationNode; +import org.spongepowered.configurate.serialize.SerializationException; import org.spongepowered.configurate.serialize.TypeSerializer; import java.lang.reflect.Type; diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index a7db176..d6a3286 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -112,7 +112,8 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { } public void handlePacket(Object packet) { - if (packet instanceof PacketHandshake handshake) { + if (packet instanceof PacketHandshake) { + PacketHandshake handshake = (PacketHandshake) packet; clientVersion = handshake.getVersion(); updateStateAndVersion(handshake.getNextState(), clientVersion); @@ -177,7 +178,8 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { return; } - if (packet instanceof PacketLoginPluginResponse response) { + if (packet instanceof PacketLoginPluginResponse) { + PacketLoginPluginResponse response = (PacketLoginPluginResponse) packet; if (server.getConfig().getInfoForwarding().isModern() && response.getMessageId() == velocityLoginMessageId) { @@ -319,7 +321,8 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { String token = null; for (Object obj : arr) { - if (obj instanceof JsonObject prop) { + if (obj instanceof JsonObject) { + JsonObject prop = (JsonObject) obj; if (prop.getString("name").equals("bungeeguard-token")) { token = prop.getString("value"); break; diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketTitleLegacy.java b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketTitleLegacy.java index 3a450cf..cb7458f 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketTitleLegacy.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/play/PacketTitleLegacy.java @@ -35,9 +35,15 @@ public class PacketTitleLegacy implements PacketOut { msg.writeVarInt(action.getId(version)); switch (action) { - case SET_TITLE -> title.encode(msg, version); - case SET_SUBTITLE -> subtitle.encode(msg, version); - case SET_TIMES_AND_DISPLAY -> times.encode(msg, version); + case SET_TITLE: + title.encode(msg, version); + break; + case SET_SUBTITLE: + subtitle.encode(msg, version); + break; + case SET_TIMES_AND_DISPLAY: + times.encode(msg, version); + break; } } diff --git a/src/main/java/ru/nanit/limbo/util/Logger.java b/src/main/java/ru/nanit/limbo/util/Logger.java index 2f3edbb..c327851 100644 --- a/src/main/java/ru/nanit/limbo/util/Logger.java +++ b/src/main/java/ru/nanit/limbo/util/Logger.java @@ -44,7 +44,7 @@ public final class Logger { public static void print(Level level, Object msg, Throwable t, Object... args) { if (debugLevel >= level.getIndex()) { - System.out.printf("%s: %s%n", getPrefix(level), String.format(msg.toString(), args)); + System.out.println(String.format("%s: %s", getPrefix(level), String.format(msg.toString(), args))); if (t != null) t.printStackTrace(); } } diff --git a/src/main/java/ru/nanit/limbo/world/DimensionRegistry.java b/src/main/java/ru/nanit/limbo/world/DimensionRegistry.java index 52ea418..8c34880 100644 --- a/src/main/java/ru/nanit/limbo/world/DimensionRegistry.java +++ b/src/main/java/ru/nanit/limbo/world/DimensionRegistry.java @@ -47,13 +47,19 @@ public final class DimensionRegistry { CompoundBinaryTag theEnd = (CompoundBinaryTag) ((CompoundBinaryTag) dimensions.get(3)).get("element"); switch (def.toLowerCase()) { - case "overworld" -> defaultDimension = new Dimension(0, "minecraft:overworld", overWorld); - case "nether" -> defaultDimension = new Dimension(-1, "minecraft:nether", nether); - case "the_end" -> defaultDimension = new Dimension(1, "minecraft:the_end", theEnd); - default -> { + case "overworld": + defaultDimension = new Dimension(0, "minecraft:overworld", overWorld); + break; + case "nether": + defaultDimension = new Dimension(-1, "minecraft:nether", nether); + break; + case "the_end": + defaultDimension = new Dimension(1, "minecraft:the_end", theEnd); + break; + default: defaultDimension = new Dimension(1, "minecraft:the_end", theEnd); Logger.warning("Undefined dimension type: '%s'. Using THE_END as default", def); - } + break; } } From 5a4889fb68df655a04c7005ce4bd47e29f719942 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:48:55 +0100 Subject: [PATCH 18/23] Revert "Optimize imports" This reverts commit 4c5439082c23ad397bbfcc5521a6b8b00d356367. --- .../nanit/limbo/protocol/packets/login/PacketLoginStart.java | 3 +-- src/main/java/ru/nanit/limbo/server/LimboServer.java | 1 + src/main/java/ru/nanit/limbo/server/data/Title.java | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java b/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java index 3f768fa..eed9e08 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java @@ -1,7 +1,6 @@ package ru.nanit.limbo.protocol.packets.login; -import ru.nanit.limbo.protocol.ByteMessage; -import ru.nanit.limbo.protocol.PacketIn; +import ru.nanit.limbo.protocol.*; import ru.nanit.limbo.protocol.registry.Version; public class PacketLoginStart implements PacketIn { diff --git a/src/main/java/ru/nanit/limbo/server/LimboServer.java b/src/main/java/ru/nanit/limbo/server/LimboServer.java index 12dcb34..578b527 100644 --- a/src/main/java/ru/nanit/limbo/server/LimboServer.java +++ b/src/main/java/ru/nanit/limbo/server/LimboServer.java @@ -13,6 +13,7 @@ import io.netty.util.ResourceLeakDetector; import ru.nanit.limbo.configuration.LimboConfig; import ru.nanit.limbo.connection.ClientChannelInitializer; import ru.nanit.limbo.connection.ClientConnection; +import ru.nanit.limbo.protocol.registry.State; import ru.nanit.limbo.util.Logger; import ru.nanit.limbo.world.DimensionRegistry; diff --git a/src/main/java/ru/nanit/limbo/server/data/Title.java b/src/main/java/ru/nanit/limbo/server/data/Title.java index 3519a25..9697f84 100644 --- a/src/main/java/ru/nanit/limbo/server/data/Title.java +++ b/src/main/java/ru/nanit/limbo/server/data/Title.java @@ -2,6 +2,7 @@ package ru.nanit.limbo.server.data; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.ConfigurationNode; +import org.spongepowered.configurate.serialize.SerializationException; import org.spongepowered.configurate.serialize.TypeSerializer; import ru.nanit.limbo.util.Colors; From 22d8e4f6ad68c7865ef48c44c9846f0dc7126e96 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 17:48:58 +0100 Subject: [PATCH 19/23] Revert "Update gradle wrapper" This reverts commit a05523799df3f41a7be074e252367bce9a3c8102. --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 84d1f85..05679dc 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 0d377ae0e32ace1188d13572939abd000e9a6427 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sat, 11 Dec 2021 18:01:10 +0100 Subject: [PATCH 20/23] optimize imports --- .../java/ru/nanit/limbo/configuration/LimboConfig.java | 5 ++++- .../limbo/configuration/SocketAddressSerializer.java | 1 - .../nanit/limbo/connection/ClientChannelInitializer.java | 2 +- .../java/ru/nanit/limbo/connection/ClientConnection.java | 8 ++++---- .../ru/nanit/limbo/connection/pipeline/PacketDecoder.java | 3 ++- .../limbo/protocol/packets/login/PacketLoginStart.java | 3 ++- .../protocol/packets/status/PacketStatusRequest.java | 3 ++- .../protocol/packets/status/PacketStatusResponse.java | 3 ++- src/main/java/ru/nanit/limbo/protocol/registry/State.java | 6 +++--- src/main/java/ru/nanit/limbo/server/LimboServer.java | 1 - src/main/java/ru/nanit/limbo/server/data/Title.java | 1 - 11 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java index 486ea46..17cef9f 100644 --- a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java +++ b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java @@ -7,7 +7,10 @@ import org.spongepowered.configurate.yaml.YamlConfigurationLoader; import ru.nanit.limbo.server.data.*; import ru.nanit.limbo.util.Colors; -import java.io.*; +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; import java.net.SocketAddress; import java.nio.file.Files; import java.nio.file.Path; diff --git a/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java b/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java index 613f9c2..f5ff626 100644 --- a/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java +++ b/src/main/java/ru/nanit/limbo/configuration/SocketAddressSerializer.java @@ -2,7 +2,6 @@ package ru.nanit.limbo.configuration; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.ConfigurationNode; -import org.spongepowered.configurate.serialize.SerializationException; import org.spongepowered.configurate.serialize.TypeSerializer; import java.lang.reflect.Type; diff --git a/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java b/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java index 827fc99..879eca1 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java @@ -4,9 +4,9 @@ import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.handler.timeout.ReadTimeoutHandler; -import ru.nanit.limbo.connection.pipeline.VarIntFrameDecoder; import ru.nanit.limbo.connection.pipeline.PacketDecoder; import ru.nanit.limbo.connection.pipeline.PacketEncoder; +import ru.nanit.limbo.connection.pipeline.VarIntFrameDecoder; import ru.nanit.limbo.connection.pipeline.VarIntLengthEncoder; import ru.nanit.limbo.server.LimboServer; diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index d6a3286..6335d93 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -10,13 +10,13 @@ import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import ru.nanit.limbo.LimboConstants; -import ru.nanit.limbo.protocol.ByteMessage; -import ru.nanit.limbo.protocol.PreEncodedPacket; -import ru.nanit.limbo.protocol.packets.login.*; -import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.connection.pipeline.PacketDecoder; import ru.nanit.limbo.connection.pipeline.PacketEncoder; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PreEncodedPacket; import ru.nanit.limbo.protocol.packets.PacketHandshake; +import ru.nanit.limbo.protocol.packets.login.*; +import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.protocol.packets.status.PacketStatusPing; import ru.nanit.limbo.protocol.packets.status.PacketStatusRequest; import ru.nanit.limbo.protocol.packets.status.PacketStatusResponse; diff --git a/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java b/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java index e25eff8..62d499b 100644 --- a/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java +++ b/src/main/java/ru/nanit/limbo/connection/pipeline/PacketDecoder.java @@ -3,7 +3,8 @@ package ru.nanit.limbo.connection.pipeline; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToMessageDecoder; -import ru.nanit.limbo.protocol.*; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.Packet; import ru.nanit.limbo.protocol.registry.State; import ru.nanit.limbo.protocol.registry.Version; import ru.nanit.limbo.util.Logger; diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java b/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java index eed9e08..3f768fa 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/login/PacketLoginStart.java @@ -1,6 +1,7 @@ package ru.nanit.limbo.protocol.packets.login; -import ru.nanit.limbo.protocol.*; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketIn; import ru.nanit.limbo.protocol.registry.Version; public class PacketLoginStart implements PacketIn { diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java index ed18d34..ff3b92e 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusRequest.java @@ -1,6 +1,7 @@ package ru.nanit.limbo.protocol.packets.status; -import ru.nanit.limbo.protocol.*; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketIn; import ru.nanit.limbo.protocol.registry.Version; public class PacketStatusRequest implements PacketIn { diff --git a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java index bacbfd1..df08142 100644 --- a/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java +++ b/src/main/java/ru/nanit/limbo/protocol/packets/status/PacketStatusResponse.java @@ -1,6 +1,7 @@ package ru.nanit.limbo.protocol.packets.status; -import ru.nanit.limbo.protocol.*; +import ru.nanit.limbo.protocol.ByteMessage; +import ru.nanit.limbo.protocol.PacketOut; import ru.nanit.limbo.protocol.registry.Version; import ru.nanit.limbo.server.LimboServer; diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index 9dbdde3..ad7cb97 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -1,18 +1,18 @@ package ru.nanit.limbo.protocol.registry; import ru.nanit.limbo.protocol.Packet; -import ru.nanit.limbo.protocol.packets.*; +import ru.nanit.limbo.protocol.packets.PacketHandshake; import ru.nanit.limbo.protocol.packets.login.*; import ru.nanit.limbo.protocol.packets.play.*; import ru.nanit.limbo.protocol.packets.status.PacketStatusPing; import ru.nanit.limbo.protocol.packets.status.PacketStatusRequest; import ru.nanit.limbo.protocol.packets.status.PacketStatusResponse; -import static ru.nanit.limbo.protocol.registry.Version.*; - import java.util.*; import java.util.function.Supplier; +import static ru.nanit.limbo.protocol.registry.Version.*; + public enum State { HANDSHAKING(0) { diff --git a/src/main/java/ru/nanit/limbo/server/LimboServer.java b/src/main/java/ru/nanit/limbo/server/LimboServer.java index 578b527..12dcb34 100644 --- a/src/main/java/ru/nanit/limbo/server/LimboServer.java +++ b/src/main/java/ru/nanit/limbo/server/LimboServer.java @@ -13,7 +13,6 @@ import io.netty.util.ResourceLeakDetector; import ru.nanit.limbo.configuration.LimboConfig; import ru.nanit.limbo.connection.ClientChannelInitializer; import ru.nanit.limbo.connection.ClientConnection; -import ru.nanit.limbo.protocol.registry.State; import ru.nanit.limbo.util.Logger; import ru.nanit.limbo.world.DimensionRegistry; diff --git a/src/main/java/ru/nanit/limbo/server/data/Title.java b/src/main/java/ru/nanit/limbo/server/data/Title.java index 9697f84..3519a25 100644 --- a/src/main/java/ru/nanit/limbo/server/data/Title.java +++ b/src/main/java/ru/nanit/limbo/server/data/Title.java @@ -2,7 +2,6 @@ package ru.nanit.limbo.server.data; import org.checkerframework.checker.nullness.qual.Nullable; import org.spongepowered.configurate.ConfigurationNode; -import org.spongepowered.configurate.serialize.SerializationException; import org.spongepowered.configurate.serialize.TypeSerializer; import ru.nanit.limbo.util.Colors; From 7e467615eec24757106074e7393620ff6d03a3a8 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sun, 12 Dec 2021 18:55:38 +0100 Subject: [PATCH 21/23] check if packet is null --- src/main/java/ru/nanit/limbo/connection/ClientConnection.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index 6335d93..e0b7473 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -216,13 +216,15 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { server.getConnections().addConnection(this); writePacket(PACKET_JOIN_GAME); - writePacket(PACKET_PLUGIN_MESSAGE); writePacket(PACKET_PLAYER_ABILITIES); writePacket(PACKET_PLAYER_POS); writePacket(PACKET_PLAYER_INFO); if (clientVersion.moreOrEqual(Version.V1_13)){ writePacket(PACKET_DECLARE_COMMANDS); + + if(PACKET_PLUGIN_MESSAGE != null) + writePacket(PACKET_PLUGIN_MESSAGE); } if (PACKET_BOSS_BAR != null && clientVersion.moreOrEqual(Version.V1_9)) From 6ed28c18e14f4f89d4b1db95bffabb876825bb28 Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sun, 12 Dec 2021 19:29:09 +0100 Subject: [PATCH 22/23] fix brandName's packet ids --- src/main/java/ru/nanit/limbo/protocol/registry/State.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index ad7cb97..bf54b14 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -91,7 +91,10 @@ public enum State { clientBound.register(PacketPluginMessage::new, map(0x19, V1_13, V1_13_2), map(0x18, V1_14, V1_14_4), - map(0x19, V1_15, V1_18) + map(0x19, V1_15,V1_15_2), + map(0x18, V1_16, V1_16_1), + map(0x17, V1_16_2, V1_16_4), + map(0x18, V1_17, V1_18) ); clientBound.register(PacketPlayerAbilities::new, map(0x39, V1_8, V1_8), From d0d4d8a918d3cceab1ec30e391092eb88b728f7c Mon Sep 17 00:00:00 2001 From: MiGoYAm Date: Sun, 12 Dec 2021 19:29:24 +0100 Subject: [PATCH 23/23] delete useless comment --- src/main/java/ru/nanit/limbo/protocol/registry/State.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/ru/nanit/limbo/protocol/registry/State.java b/src/main/java/ru/nanit/limbo/protocol/registry/State.java index bf54b14..115d87f 100644 --- a/src/main/java/ru/nanit/limbo/protocol/registry/State.java +++ b/src/main/java/ru/nanit/limbo/protocol/registry/State.java @@ -87,7 +87,6 @@ public enum State { map(0x24, V1_16_2, V1_16_4), map(0x26, V1_17, V1_18) ); - // to do clientBound.register(PacketPluginMessage::new, map(0x19, V1_13, V1_13_2), map(0x18, V1_14, V1_14_4),