mirror of
https://github.com/GeyserMC/Geyser.git
synced 2025-01-10 20:12:29 +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 {
|
repositories {
|
||||||
|
// mavenLocal()
|
||||||
maven("https://repo.opencollab.dev/maven-releases/")
|
maven("https://repo.opencollab.dev/maven-releases/")
|
||||||
maven("https://repo.opencollab.dev/maven-snapshots/")
|
maven("https://repo.opencollab.dev/maven-snapshots/")
|
||||||
maven("https://jitpack.io")
|
maven("https://jitpack.io")
|
||||||
|
|
|
@ -6,6 +6,10 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
constraints {
|
||||||
|
implementation(libs.raknet) // Ensure protocol does not override the RakNet version
|
||||||
|
}
|
||||||
|
|
||||||
api(projects.common)
|
api(projects.common)
|
||||||
api(projects.api)
|
api(projects.api)
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,7 @@ public class DumpInfo {
|
||||||
private final GeyserConfiguration config;
|
private final GeyserConfiguration config;
|
||||||
private final Floodgate floodgate;
|
private final Floodgate floodgate;
|
||||||
private final Object2IntMap<DeviceOs> userPlatforms;
|
private final Object2IntMap<DeviceOs> userPlatforms;
|
||||||
|
private final int connectionAttempts;
|
||||||
private final HashInfo hashInfo;
|
private final HashInfo hashInfo;
|
||||||
private final RamInfo ramInfo;
|
private final RamInfo ramInfo;
|
||||||
private LogsInfo logsInfo;
|
private LogsInfo logsInfo;
|
||||||
|
@ -129,6 +130,8 @@ public class DumpInfo {
|
||||||
userPlatforms.put(device, userPlatforms.getOrDefault(device, 0) + 1);
|
userPlatforms.put(device, userPlatforms.getOrDefault(device, 0) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.connectionAttempts = GeyserImpl.getInstance().getGeyserServer().getConnectionAttempts();
|
||||||
|
|
||||||
this.bootstrapInfo = GeyserImpl.getInstance().getBootstrap().getDumpInfo();
|
this.bootstrapInfo = GeyserImpl.getInstance().getBootstrap().getDumpInfo();
|
||||||
|
|
||||||
this.flagsInfo = new FlagsInfo();
|
this.flagsInfo = new FlagsInfo();
|
||||||
|
|
|
@ -74,7 +74,6 @@ import java.util.function.IntFunction;
|
||||||
import java.util.function.Supplier;
|
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_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;
|
import static org.cloudburstmc.netty.channel.raknet.RakConstants.DEFAULT_PACKET_LIMIT;
|
||||||
|
|
||||||
public final class GeyserServer {
|
public final class GeyserServer {
|
||||||
|
@ -111,6 +110,10 @@ public final class GeyserServer {
|
||||||
|
|
||||||
private ChannelFuture[] bootstrapFutures;
|
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.
|
* 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);
|
int rakPacketLimit = positivePropOrDefault("Geyser.RakPacketLimit", DEFAULT_PACKET_LIMIT);
|
||||||
this.geyser.getLogger().debug("Setting RakNet packet limit to " + rakPacketLimit);
|
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);
|
int rakGlobalPacketLimit = positivePropOrDefault("Geyser.RakGlobalPacketLimit", DEFAULT_GLOBAL_PACKET_LIMIT);
|
||||||
this.geyser.getLogger().debug("Setting RakNet global packet limit to " + rakGlobalPacketLimit);
|
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_HANDLE_PING, true)
|
||||||
.option(RakChannelOption.RAK_MAX_MTU, this.geyser.getConfig().getMtu())
|
.option(RakChannelOption.RAK_MAX_MTU, this.geyser.getConfig().getMtu())
|
||||||
.option(RakChannelOption.RAK_PACKET_LIMIT, rakPacketLimit)
|
.option(RakChannelOption.RAK_PACKET_LIMIT, rakPacketLimit)
|
||||||
.option(RakChannelOption.RAK_OFFLINE_PACKET_LIMIT, rakOfflinePacketLimit)
|
|
||||||
.option(RakChannelOption.RAK_GLOBAL_PACKET_LIMIT, rakGlobalPacketLimit)
|
.option(RakChannelOption.RAK_GLOBAL_PACKET_LIMIT, rakGlobalPacketLimit)
|
||||||
|
.option(RakChannelOption.RAK_SEND_COOKIE, true)
|
||||||
.childHandler(serverInitializer);
|
.childHandler(serverInitializer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -248,6 +246,7 @@ public final class GeyserServer {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isWhitelistedIP) {
|
if (!isWhitelistedIP) {
|
||||||
|
connectionAttempts++;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -270,10 +269,12 @@ public final class GeyserServer {
|
||||||
geyser.eventBus().fire(requestEvent);
|
geyser.eventBus().fire(requestEvent);
|
||||||
if (requestEvent.isCancelled()) {
|
if (requestEvent.isCancelled()) {
|
||||||
geyser.getLogger().debug("Connection request from " + ip + " was cancelled using the API!");
|
geyser.getLogger().debug("Connection request from " + ip + " was cancelled using the API!");
|
||||||
|
connectionAttempts++;
|
||||||
return false;
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ gson = "2.3.1" # Provided by Spigot 1.8.8
|
||||||
websocket = "1.5.1"
|
websocket = "1.5.1"
|
||||||
protocol = "3.0.0.Beta1-20240313.120922-126"
|
protocol = "3.0.0.Beta1-20240313.120922-126"
|
||||||
protocol-connection = "3.0.0.Beta1-20240313.120922-125"
|
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"
|
blockstateupdater="1.20.70-20240303.125052-2"
|
||||||
mcauthlib = "d9d773e"
|
mcauthlib = "d9d773e"
|
||||||
mcprotocollib = "1.20.4-2-20240116.220521-7"
|
mcprotocollib = "1.20.4-2-20240116.220521-7"
|
||||||
|
|
|
@ -4,6 +4,8 @@ enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
|
||||||
|
|
||||||
dependencyResolutionManagement {
|
dependencyResolutionManagement {
|
||||||
repositories {
|
repositories {
|
||||||
|
// mavenLocal()
|
||||||
|
|
||||||
// Floodgate, Cumulus etc.
|
// Floodgate, Cumulus etc.
|
||||||
maven("https://repo.opencollab.dev/main")
|
maven("https://repo.opencollab.dev/main")
|
||||||
|
|
||||||
|
@ -30,7 +32,6 @@ dependencyResolutionManagement {
|
||||||
mavenContent { releasesOnly() }
|
mavenContent { releasesOnly() }
|
||||||
}
|
}
|
||||||
|
|
||||||
mavenLocal()
|
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|
||||||
// ViaVersion
|
// ViaVersion
|
||||||
|
|
Loading…
Reference in a new issue