Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-27 08:30:12 +01:00
Remove Jackson; finish config value placements
Dieser Commit ist enthalten in:
Ursprung
f113c8967e
Commit
5870856ef7
@ -13,8 +13,7 @@ dependencies {
|
||||
api(projects.common)
|
||||
api(projects.api)
|
||||
|
||||
// Jackson JSON and YAML serialization
|
||||
api(libs.bundles.jackson)
|
||||
api(libs.yaml) // Used for extensions
|
||||
annotationProcessor(libs.configurate.`interface`.ap)
|
||||
api(libs.configurate.`interface`)
|
||||
implementation(libs.configurate.yaml)
|
||||
|
@ -73,6 +73,7 @@ import org.geysermc.geyser.api.util.MinecraftVersion;
|
||||
import org.geysermc.geyser.api.util.PlatformType;
|
||||
import org.geysermc.geyser.configuration.GeyserConfig;
|
||||
import org.geysermc.geyser.command.CommandRegistry;
|
||||
import org.geysermc.geyser.configuration.GeyserPluginConfig;
|
||||
import org.geysermc.geyser.entity.EntityDefinitions;
|
||||
import org.geysermc.geyser.erosion.UnixSocketClientListener;
|
||||
import org.geysermc.geyser.event.GeyserEventBus;
|
||||
@ -322,12 +323,12 @@ public class GeyserImpl implements GeyserApi, EventRegistrar {
|
||||
config.java().address(InetAddress.getLoopbackAddress().getHostAddress());
|
||||
}
|
||||
}
|
||||
if (javaPort != -1 && config.asPluginConfig().isEmpty()) {
|
||||
if (javaPort != -1) {
|
||||
config.java().port(javaPort);
|
||||
}
|
||||
|
||||
boolean forceMatchServerPort = "server".equals(pluginUdpPort);
|
||||
if ((config.asPluginConfig().map(pluginConfig -> pluginConfig.bedrock().cloneRemotePort()).orElse(false) || forceMatchServerPort) && javaPort != -1) {
|
||||
if ((config.bedrock().cloneRemotePort() || forceMatchServerPort) && javaPort != -1) {
|
||||
config.bedrock().port(javaPort);
|
||||
if (forceMatchServerPort) {
|
||||
if (geyserUdpPort.isEmpty()) {
|
||||
@ -388,7 +389,7 @@ public class GeyserImpl implements GeyserApi, EventRegistrar {
|
||||
}
|
||||
}
|
||||
|
||||
if (config.asPluginConfig().isEmpty()) {
|
||||
if (!(config instanceof GeyserPluginConfig)) {
|
||||
String remoteAddress = config.java().address();
|
||||
// Filters whether it is not an IP address or localhost, because otherwise it is not possible to find out an SRV entry.
|
||||
if (!remoteAddress.matches(IP_REGEX) && !remoteAddress.equalsIgnoreCase("localhost")) {
|
||||
|
@ -115,7 +115,7 @@ public class ConnectionTestCommand extends GeyserCommand {
|
||||
source.sendMessage("The port you are testing with (" + port + ") is not the same as you set in your Geyser configuration ("
|
||||
+ config.bedrock().port() + ")");
|
||||
source.sendMessage("Re-run the command with the port in the config, or change the `bedrock` `port` in the config.");
|
||||
if (config.asPluginConfig().map(plugin -> plugin.bedrock().cloneRemotePort()).orElse(false)) {
|
||||
if (config.bedrock().cloneRemotePort()) {
|
||||
source.sendMessage("You have `clone-remote-port` enabled. This option ignores the `bedrock` `port` in the config, and uses the Java server port instead.");
|
||||
}
|
||||
} else {
|
||||
|
@ -25,7 +25,6 @@
|
||||
|
||||
package org.geysermc.geyser.command.standalone;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Getter;
|
||||
import org.spongepowered.configurate.objectmapping.ConfigSerializable;
|
||||
|
||||
@ -34,8 +33,8 @@ import java.util.Set;
|
||||
|
||||
@Getter
|
||||
@ConfigSerializable
|
||||
@SuppressWarnings("FieldMayBeFinal")
|
||||
public class PermissionConfiguration {
|
||||
|
||||
@JsonProperty("default-permissions")
|
||||
private Set<String> defaultPermissions = Collections.emptySet();
|
||||
}
|
||||
|
@ -43,7 +43,6 @@ import org.spongepowered.configurate.objectmapping.meta.Comment;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
@ConfigSerializable
|
||||
public interface GeyserConfig {
|
||||
@ -84,6 +83,8 @@ public interface GeyserConfig {
|
||||
@DefaultBoolean(true)
|
||||
boolean passthroughPlayerCounts();
|
||||
|
||||
boolean integratedPingPassthrough();
|
||||
|
||||
@Comment("How often to ping the Java server to refresh MOTD and player count, in seconds.")
|
||||
@DefaultNumeric(3)
|
||||
int pingPassthroughInterval();
|
||||
@ -209,6 +210,12 @@ public interface GeyserConfig {
|
||||
@NumericRange(from = 0, to = 65535)
|
||||
int broadcastPort();
|
||||
|
||||
@Comment("""
|
||||
Some hosting services change your Java port everytime you start the server and require the same port to be used for Bedrock.
|
||||
This option makes the Bedrock port the same as the Java port every time you start the server.""")
|
||||
@DefaultBoolean
|
||||
boolean cloneRemotePort();
|
||||
|
||||
void address(String address);
|
||||
|
||||
void port(int port);
|
||||
@ -312,12 +319,4 @@ public interface GeyserConfig {
|
||||
default int configVersion() {
|
||||
return Constants.CONFIG_VERSION;
|
||||
}
|
||||
|
||||
@Exclude
|
||||
default Optional<GeyserPluginConfig> asPluginConfig() {
|
||||
if (this instanceof GeyserPluginConfig config) {
|
||||
return Optional.of(config);
|
||||
}
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
@ -33,21 +33,9 @@ import org.spongepowered.configurate.objectmapping.meta.Comment;
|
||||
|
||||
@ConfigSerializable
|
||||
public interface GeyserPluginConfig extends GeyserConfig {
|
||||
@Override
|
||||
IntegratedBedrockConfig bedrock();
|
||||
|
||||
@Override
|
||||
IntegratedJavaConfig java();
|
||||
|
||||
@ConfigSerializable
|
||||
interface IntegratedBedrockConfig extends BedrockConfig {
|
||||
@Comment("""
|
||||
Some hosting services change your Java port everytime you start the server and require the same port to be used for Bedrock.
|
||||
This option makes the Bedrock port the same as the Java port every time you start the server.""")
|
||||
@DefaultBoolean
|
||||
boolean cloneRemotePort();
|
||||
}
|
||||
|
||||
@ConfigSerializable
|
||||
interface IntegratedJavaConfig extends JavaConfig {
|
||||
@Override
|
||||
@ -75,6 +63,7 @@ public interface GeyserPluginConfig extends GeyserConfig {
|
||||
Use server API methods to determine the Java server's MOTD and ping passthrough.
|
||||
There is no need to disable this unless your MOTD or player count does not appear properly.""")
|
||||
@DefaultBoolean(true)
|
||||
@Override
|
||||
boolean integratedPingPassthrough();
|
||||
|
||||
@Comment("""
|
||||
|
@ -25,6 +25,7 @@
|
||||
|
||||
package org.geysermc.geyser.configuration;
|
||||
|
||||
import org.spongepowered.configurate.interfaces.meta.Exclude;
|
||||
import org.spongepowered.configurate.interfaces.meta.defaults.DefaultNumeric;
|
||||
import org.spongepowered.configurate.interfaces.meta.defaults.DefaultString;
|
||||
import org.spongepowered.configurate.interfaces.meta.range.NumericRange;
|
||||
@ -36,9 +37,21 @@ import org.spongepowered.configurate.objectmapping.meta.Comment;
|
||||
*/
|
||||
@ConfigSerializable
|
||||
public interface GeyserRemoteConfig extends GeyserConfig {
|
||||
@Override
|
||||
RemoteBedrock bedrock();
|
||||
|
||||
@Override
|
||||
RemoteConfig java();
|
||||
|
||||
@ConfigSerializable
|
||||
interface RemoteBedrock extends BedrockConfig {
|
||||
@Override
|
||||
@Exclude // We can bring this back if there's a use-case but it's not really justified here.
|
||||
default boolean cloneRemotePort() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ConfigSerializable
|
||||
interface RemoteConfig extends JavaConfig {
|
||||
@Override
|
||||
@ -58,4 +71,11 @@ public interface GeyserRemoteConfig extends GeyserConfig {
|
||||
This is designed to be used for forced hosts on proxies""")
|
||||
boolean forwardHostname();
|
||||
}
|
||||
|
||||
@Exclude
|
||||
@Override
|
||||
default boolean integratedPingPassthrough() {
|
||||
// Does nothing here.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ cumulus = "1.1.2"
|
||||
configurate = "4.2.0-GeyserMC-SNAPSHOT"
|
||||
erosion = "1.1-20240521.000109-3"
|
||||
events = "1.1-SNAPSHOT"
|
||||
jackson = "2.17.0"
|
||||
yaml = "2.2"
|
||||
fastutil = "8.5.2"
|
||||
netty = "4.1.107.Final"
|
||||
netty-io-uring = "0.0.25.Final-SNAPSHOT"
|
||||
@ -59,9 +59,7 @@ erosion-bukkit-common = { group = "org.geysermc.erosion", name = "bukkit-common"
|
||||
erosion-bukkit-nms = { group = "org.geysermc.erosion", name = "bukkit-nms", version.ref = "erosion" }
|
||||
erosion-common = { group = "org.geysermc.erosion", name = "common", version.ref = "erosion" }
|
||||
|
||||
jackson-annotations = { group = "com.fasterxml.jackson.core", name = "jackson-annotations", version.ref = "jackson" }
|
||||
jackson-core = { group = "com.fasterxml.jackson.core", name = "jackson-databind", version.ref = "jackson" }
|
||||
jackson-dataformat-yaml = { group = "com.fasterxml.jackson.dataformat", name = "jackson-dataformat-yaml", version.ref = "jackson" }
|
||||
yaml = { module = "org.yaml:snakeyaml", version.ref = "yaml" }
|
||||
|
||||
configurate-interface-ap = { module = "org.spongepowered:configurate-extra-interface-ap", version.ref = "configurate" }
|
||||
configurate-interface = { module = "org.spongepowered:configurate-extra-interface", version.ref = "configurate" }
|
||||
@ -155,7 +153,6 @@ indra = { id = "net.kyori.indra", version.ref = "indra" }
|
||||
blossom = { id = "net.kyori.blossom", version.ref = "blossom" }
|
||||
|
||||
[bundles]
|
||||
jackson = [ "jackson-annotations", "jackson-core", "jackson-dataformat-yaml" ]
|
||||
fastutil = [ "fastutil-int-int-maps", "fastutil-int-long-maps", "fastutil-int-byte-maps", "fastutil-int-boolean-maps", "fastutil-object-int-maps", "fastutil-object-object-maps" ]
|
||||
adventure = [ "adventure-text-serializer-gson", "adventure-text-serializer-legacy", "adventure-text-serializer-plain" ]
|
||||
log4j = [ "log4j-api", "log4j-core", "log4j-slf4j2-impl" ]
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren