mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-12-22 22:45:04 +01:00
Support RakNet Cookies (#4554)
* Support cookies Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com> * Use cloudburst upstream raknet * Comment out mavenLocal() --------- Signed-off-by: Joshua Castle <26531652+Kas-tle@users.noreply.github.com>
This commit is contained in:
parent
a24f684123
commit
5151c25e1a
6 changed files with 20 additions and 10 deletions
|
@ -107,6 +107,7 @@ dependencies {
|
|||
}
|
||||
|
||||
repositories {
|
||||
// mavenLocal()
|
||||
maven("https://repo.opencollab.dev/maven-releases/")
|
||||
maven("https://repo.opencollab.dev/maven-snapshots/")
|
||||
maven("https://jitpack.io")
|
||||
|
|
|
@ -6,6 +6,10 @@ plugins {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
constraints {
|
||||
implementation(libs.raknet) // Ensure protocol does not override the RakNet version
|
||||
}
|
||||
|
||||
api(projects.common)
|
||||
api(projects.api)
|
||||
|
||||
|
|
|
@ -78,6 +78,7 @@ public class DumpInfo {
|
|||
private final GeyserConfiguration config;
|
||||
private final Floodgate floodgate;
|
||||
private final Object2IntMap<DeviceOs> userPlatforms;
|
||||
private final int connectionAttempts;
|
||||
private final HashInfo hashInfo;
|
||||
private final RamInfo ramInfo;
|
||||
private LogsInfo logsInfo;
|
||||
|
@ -129,6 +130,8 @@ public class DumpInfo {
|
|||
userPlatforms.put(device, userPlatforms.getOrDefault(device, 0) + 1);
|
||||
}
|
||||
|
||||
this.connectionAttempts = GeyserImpl.getInstance().getGeyserServer().getConnectionAttempts();
|
||||
|
||||
this.bootstrapInfo = GeyserImpl.getInstance().getBootstrap().getDumpInfo();
|
||||
|
||||
this.flagsInfo = new FlagsInfo();
|
||||
|
|
|
@ -74,7 +74,6 @@ import java.util.function.IntFunction;
|
|||
import java.util.function.Supplier;
|
||||
|
||||
import static org.cloudburstmc.netty.channel.raknet.RakConstants.DEFAULT_GLOBAL_PACKET_LIMIT;
|
||||
import static org.cloudburstmc.netty.channel.raknet.RakConstants.DEFAULT_OFFLINE_PACKET_LIMIT;
|
||||
import static org.cloudburstmc.netty.channel.raknet.RakConstants.DEFAULT_PACKET_LIMIT;
|
||||
|
||||
public final class GeyserServer {
|
||||
|
@ -111,6 +110,10 @@ public final class GeyserServer {
|
|||
|
||||
private ChannelFuture[] bootstrapFutures;
|
||||
|
||||
// Keep track of connection attempts for dump info
|
||||
@Getter
|
||||
private int connectionAttempts = 0;
|
||||
|
||||
/**
|
||||
* The port to broadcast in the pong. This can be different from the port the server is bound to, e.g. due to port forwarding.
|
||||
*/
|
||||
|
@ -217,11 +220,6 @@ public final class GeyserServer {
|
|||
int rakPacketLimit = positivePropOrDefault("Geyser.RakPacketLimit", DEFAULT_PACKET_LIMIT);
|
||||
this.geyser.getLogger().debug("Setting RakNet packet limit to " + rakPacketLimit);
|
||||
|
||||
boolean isWhitelistedProxyProtocol = this.geyser.getConfig().getBedrock().isEnableProxyProtocol()
|
||||
&& !this.geyser.getConfig().getBedrock().getProxyProtocolWhitelistedIPs().isEmpty();
|
||||
int rakOfflinePacketLimit = positivePropOrDefault("Geyser.RakOfflinePacketLimit", isWhitelistedProxyProtocol ? Integer.MAX_VALUE : DEFAULT_OFFLINE_PACKET_LIMIT);
|
||||
this.geyser.getLogger().debug("Setting RakNet offline packet limit to " + rakOfflinePacketLimit);
|
||||
|
||||
int rakGlobalPacketLimit = positivePropOrDefault("Geyser.RakGlobalPacketLimit", DEFAULT_GLOBAL_PACKET_LIMIT);
|
||||
this.geyser.getLogger().debug("Setting RakNet global packet limit to " + rakGlobalPacketLimit);
|
||||
|
||||
|
@ -231,8 +229,8 @@ public final class GeyserServer {
|
|||
.option(RakChannelOption.RAK_HANDLE_PING, true)
|
||||
.option(RakChannelOption.RAK_MAX_MTU, this.geyser.getConfig().getMtu())
|
||||
.option(RakChannelOption.RAK_PACKET_LIMIT, rakPacketLimit)
|
||||
.option(RakChannelOption.RAK_OFFLINE_PACKET_LIMIT, rakOfflinePacketLimit)
|
||||
.option(RakChannelOption.RAK_GLOBAL_PACKET_LIMIT, rakGlobalPacketLimit)
|
||||
.option(RakChannelOption.RAK_SEND_COOKIE, true)
|
||||
.childHandler(serverInitializer);
|
||||
}
|
||||
|
||||
|
@ -248,6 +246,7 @@ public final class GeyserServer {
|
|||
}
|
||||
|
||||
if (!isWhitelistedIP) {
|
||||
connectionAttempts++;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -270,10 +269,12 @@ public final class GeyserServer {
|
|||
geyser.eventBus().fire(requestEvent);
|
||||
if (requestEvent.isCancelled()) {
|
||||
geyser.getLogger().debug("Connection request from " + ip + " was cancelled using the API!");
|
||||
connectionAttempts++;
|
||||
return false;
|
||||
}
|
||||
|
||||
geyser.getLogger().info(GeyserLocale.getLocaleStringLog("geyser.network.attempt_connect", ip));
|
||||
geyser.getLogger().debug(GeyserLocale.getLocaleStringLog("geyser.network.attempt_connect", ip));
|
||||
connectionAttempts++;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ gson = "2.3.1" # Provided by Spigot 1.8.8
|
|||
websocket = "1.5.1"
|
||||
protocol = "3.0.0.Beta1-20240313.120922-126"
|
||||
protocol-connection = "3.0.0.Beta1-20240313.120922-125"
|
||||
raknet = "1.0.0.CR1-20240330.103819-16"
|
||||
raknet = "1.0.0.CR3-20240416.144209-1"
|
||||
blockstateupdater="1.20.70-20240303.125052-2"
|
||||
mcauthlib = "d9d773e"
|
||||
mcprotocollib = "1.20.4-2-20240116.220521-7"
|
||||
|
|
|
@ -4,6 +4,8 @@ enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
|||
|
||||
dependencyResolutionManagement {
|
||||
repositories {
|
||||
// mavenLocal()
|
||||
|
||||
// Floodgate, Cumulus etc.
|
||||
maven("https://repo.opencollab.dev/main")
|
||||
|
||||
|
@ -30,7 +32,6 @@ dependencyResolutionManagement {
|
|||
mavenContent { releasesOnly() }
|
||||
}
|
||||
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
|
||||
// ViaVersion
|
||||
|
|
Loading…
Reference in a new issue