diff options
| author | Mattie <pugmatt@gmail.com> | 2024-04-01 15:00:25 -0400 |
|---|---|---|
| committer | Mattie <pugmatt@gmail.com> | 2024-04-01 15:00:25 -0400 |
| commit | 5f38044761b1dcfe7f8f1ad099e0f4e0fff6e495 (patch) | |
| tree | 5d258ca98d3f9a71bb5ba28fa8c7d87d77d93ff0 /serverlist-server | |
| parent | c419de8c61b7afb1f5aa88e808c161b9737d0f8b (diff) | |
| download | BedrockConnect-5f38044761b1dcfe7f8f1ad099e0f4e0fff6e495.tar.gz BedrockConnect-5f38044761b1dcfe7f8f1ad099e0f4e0fff6e495.tar.bz2 BedrockConnect-5f38044761b1dcfe7f8f1ad099e0f4e0fff6e495.zip | |
Add configurable raknet rate limiting
Diffstat (limited to 'serverlist-server')
3 files changed, 22 insertions, 13 deletions
diff --git a/serverlist-server/pom.xml b/serverlist-server/pom.xml index 6d2ff21..b719194 100644 --- a/serverlist-server/pom.xml +++ b/serverlist-server/pom.xml @@ -88,12 +88,6 @@ <artifactId>bedrock-connection</artifactId> <version>3.0.0.Beta1-SNAPSHOT</version> <scope>compile</scope> - <exclusions> - <exclusion> - <groupId>io.netty</groupId> - <artifactId>netty-all</artifactId> - </exclusion> - </exclusions> </dependency> <dependency> @@ -133,12 +127,6 @@ <scope>compile</scope> </dependency> <dependency> - <groupId>io.netty</groupId> - <artifactId>netty-all</artifactId> - <version>4.1.84.Final</version> - <scope>compile</scope> - </dependency> - <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java index ab7c2e0..96eae68 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/BedrockConnect.java @@ -4,6 +4,7 @@ import main.com.pyratron.pugmatt.bedrockconnect.config.Language; import main.com.pyratron.pugmatt.bedrockconnect.sql.Data; import main.com.pyratron.pugmatt.bedrockconnect.sql.MySQL; import main.com.pyratron.pugmatt.bedrockconnect.utils.PaletteManager; +import org.cloudburstmc.netty.channel.raknet.RakConstants; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; @@ -38,7 +39,13 @@ public class BedrockConnect { public static boolean storeDisplayNames = true; public static File whitelistfile; - public static String release = "1.42"; + public static int packetLimit = 200; + + public static int offlinePacketLimit = 35; + + public static int globalPacketLimit = RakConstants.DEFAULT_GLOBAL_PACKET_LIMIT; + + public static String release = "1.42.1"; public static HashMap<String, String> featuredServerIps; @@ -156,6 +163,15 @@ public class BedrockConnect { if (str.startsWith("store_display_names=")) { storeDisplayNames = getArgValue(str, "store_display_names").toLowerCase().equals("true"); } + if (str.startsWith("packet_limit=")) { + packetLimit = Integer.parseInt(getArgValue(str, "packet_limit")); + } + if (str.startsWith("offline_packet_limit=")) { + offlinePacketLimit = Integer.parseInt(getArgValue(str, "offline_packet_limit")); + } + if (str.startsWith("global_packet_limit=")) { + globalPacketLimit = Integer.parseInt(getArgValue(str, "global_packet_limit")); + } } if(!noDB) diff --git a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java index 1937790..08e1877 100644 --- a/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java +++ b/serverlist-server/src/main/com/pyratron/pugmatt/bedrockconnect/Server.java @@ -10,7 +10,9 @@ import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioDatagramChannel; import main.com.pyratron.pugmatt.bedrockconnect.listeners.PacketHandler; import main.com.pyratron.pugmatt.bedrockconnect.utils.BedrockProtocol; +import org.cloudburstmc.netty.channel.raknet.RakChannel; import org.cloudburstmc.netty.channel.raknet.RakChannelFactory; +import org.cloudburstmc.netty.channel.raknet.RakConstants; import org.cloudburstmc.netty.channel.raknet.config.RakChannelOption; import org.cloudburstmc.protocol.bedrock.BedrockPong; import org.cloudburstmc.protocol.bedrock.BedrockServerSession; @@ -77,6 +79,9 @@ public class Server { .group(this.eventLoopGroup) .channelFactory(RakChannelFactory.server(NioDatagramChannel.class)) .option(RakChannelOption.RAK_ADVERTISEMENT, pong.toByteBuf()) + .option(RakChannelOption.RAK_OFFLINE_PACKET_LIMIT, BedrockConnect.offlinePacketLimit) + .option(RakChannelOption.RAK_PACKET_LIMIT, BedrockConnect.packetLimit) + .option(RakChannelOption.RAK_GLOBAL_PACKET_LIMIT, BedrockConnect.globalPacketLimit) .childHandler(new BedrockServerInitializer() { @Override protected void initSession(BedrockServerSession session) { |
