diff --git a/core/src/main/java/org/geysermc/geyser/configuration/ConfigLoader.java b/core/src/main/java/org/geysermc/geyser/configuration/ConfigLoader.java index ded0d00aa..f5cd33ad9 100644 --- a/core/src/main/java/org/geysermc/geyser/configuration/ConfigLoader.java +++ b/core/src/main/java/org/geysermc/geyser/configuration/ConfigLoader.java @@ -29,6 +29,7 @@ import com.google.common.annotations.VisibleForTesting; import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.common.returnsreceiver.qual.This; import org.geysermc.geyser.GeyserBootstrap; +import org.geysermc.geyser.GeyserImpl; import org.geysermc.geyser.api.util.PlatformType; import org.geysermc.geyser.text.GeyserLocale; import org.spongepowered.configurate.CommentedConfigurationNode; @@ -92,8 +93,9 @@ public final class ConfigLoader { public ConfigLoader createFolder() { Path dataFolder = this.bootstrap.getConfigFolder(); if (!dataFolder.toFile().exists()) { - //noinspection ResultOfMethodCallIgnored - dataFolder.toFile().mkdir(); + if (!dataFolder.toFile().mkdir()) { + GeyserImpl.getInstance().getLogger().warning("Failed to create config folder: " + dataFolder); + } } return this; } diff --git a/core/src/main/java/org/geysermc/geyser/configuration/GeyserConfig.java b/core/src/main/java/org/geysermc/geyser/configuration/GeyserConfig.java index d231b7c4c..b940d28fc 100644 --- a/core/src/main/java/org/geysermc/geyser/configuration/GeyserConfig.java +++ b/core/src/main/java/org/geysermc/geyser/configuration/GeyserConfig.java @@ -129,6 +129,7 @@ public interface GeyserConfig { The IP address that Geyser will bind on to listen for incoming Bedrock connections. Generally, you should only change this if you want to limit what IPs can connect to your server.""") @NonNull + @Override @DefaultString("0.0.0.0") @AsteriskSerializer.Asterisk String address(); @@ -136,6 +137,7 @@ public interface GeyserConfig { @Comment(""" The port that will Geyser will listen on for incoming Bedrock connections. Since Minecraft: Bedrock Edition uses UDP, this port must allow UDP traffic.""") + @Override @DefaultNumeric(19132) @NumericRange(from = 0, to = 65535) int port(); @@ -184,6 +186,7 @@ public interface GeyserConfig { What type of authentication Bedrock players will be checked against when logging into the Java server. Can be "floodgate" (see https://wiki.geysermc.org/floodgate/), "online", or "offline".""") @NonNull + @Override default AuthType authType() { return AuthType.ONLINE; } @@ -191,16 +194,19 @@ public interface GeyserConfig { void authType(AuthType authType); boolean forwardHostname(); + @Override @Exclude default String minecraftVersion() { return GameProtocol.getJavaMinecraftVersion(); } + @Override @Exclude default int protocolVersion() { return GameProtocol.getJavaProtocolVersion(); } + @Override @Exclude default boolean resolveSrv() { return false; diff --git a/core/src/main/java/org/geysermc/geyser/event/type/GeyserDefineResourcePacksEventImpl.java b/core/src/main/java/org/geysermc/geyser/event/type/GeyserDefineResourcePacksEventImpl.java index 15d0c0c4b..83219423b 100644 --- a/core/src/main/java/org/geysermc/geyser/event/type/GeyserDefineResourcePacksEventImpl.java +++ b/core/src/main/java/org/geysermc/geyser/event/type/GeyserDefineResourcePacksEventImpl.java @@ -25,7 +25,6 @@ package org.geysermc.geyser.event.type; -import lombok.Getter; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.geysermc.geyser.api.event.lifecycle.GeyserDefineResourcePacksEvent; @@ -42,7 +41,6 @@ import java.util.Map; import java.util.Objects; import java.util.UUID; -@Getter public class GeyserDefineResourcePacksEventImpl extends GeyserDefineResourcePacksEvent implements GeyserIntegratedPackUtil { private final Map packs; @@ -126,4 +124,9 @@ public class GeyserDefineResourcePacksEventImpl extends GeyserDefineResourcePack holder.optionHolder().validateAndAdd(holder.pack(), options); } + + @Override + public Map getPacks() { + return packs; + } } diff --git a/core/src/main/java/org/geysermc/geyser/event/type/SessionLoadResourcePacksEventImpl.java b/core/src/main/java/org/geysermc/geyser/event/type/SessionLoadResourcePacksEventImpl.java index cbd6904b8..a83d7dee8 100644 --- a/core/src/main/java/org/geysermc/geyser/event/type/SessionLoadResourcePacksEventImpl.java +++ b/core/src/main/java/org/geysermc/geyser/event/type/SessionLoadResourcePacksEventImpl.java @@ -27,7 +27,6 @@ package org.geysermc.geyser.event.type; import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; -import lombok.Getter; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.protocol.bedrock.packet.ResourcePackStackPacket; @@ -62,7 +61,6 @@ public class SessionLoadResourcePacksEventImpl extends SessionLoadResourcePacksE * The packs for this Session. A {@link ResourcePackHolder} may contain resource pack options registered * during the {@link org.geysermc.geyser.api.event.lifecycle.GeyserDefineResourcePacksEvent}. */ - @Getter private final Map packs; /** @@ -252,4 +250,9 @@ public class SessionLoadResourcePacksEventImpl extends SessionLoadResourcePacksE } return ""; } + + @Override + public Map getPacks() { + return packs; + } } diff --git a/core/src/main/java/org/geysermc/geyser/registry/loader/EffectRegistryLoader.java b/core/src/main/java/org/geysermc/geyser/registry/loader/EffectRegistryLoader.java index e6d8df39b..9237ac5cd 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/loader/EffectRegistryLoader.java +++ b/core/src/main/java/org/geysermc/geyser/registry/loader/EffectRegistryLoader.java @@ -40,10 +40,12 @@ import java.io.InputStreamReader; public abstract class EffectRegistryLoader implements RegistryLoader { public JsonObject loadFile(String input) { - try (InputStream stream = GeyserImpl.getInstance().getBootstrap().getResourceOrThrow(input)) { - return new JsonParser().parse(new InputStreamReader(stream)).getAsJsonObject(); + try (InputStream stream = GeyserImpl.getInstance().getBootstrap().getResourceOrThrow(input); + InputStreamReader reader = new InputStreamReader(stream)) { + //noinspection deprecation + return new JsonParser().parse(reader).getAsJsonObject(); } catch (Exception e) { throw new AssertionError("Unable to load registrations for " + input, e); } } -} \ No newline at end of file +} diff --git a/core/src/main/java/org/geysermc/geyser/registry/loader/SoundRegistryLoader.java b/core/src/main/java/org/geysermc/geyser/registry/loader/SoundRegistryLoader.java index dab7057cc..af615cd0f 100644 --- a/core/src/main/java/org/geysermc/geyser/registry/loader/SoundRegistryLoader.java +++ b/core/src/main/java/org/geysermc/geyser/registry/loader/SoundRegistryLoader.java @@ -44,8 +44,10 @@ public class SoundRegistryLoader implements RegistryLoader load(String input) { JsonObject soundsJson; - try (InputStream stream = GeyserImpl.getInstance().getBootstrap().getResourceOrThrow(input)) { - soundsJson = new JsonParser().parse(new InputStreamReader(stream)).getAsJsonObject(); + try (InputStream stream = GeyserImpl.getInstance().getBootstrap().getResourceOrThrow(input); + InputStreamReader isr = new InputStreamReader(stream)) { + //noinspection deprecation + soundsJson = new JsonParser().parse(isr).getAsJsonObject(); } catch (IOException e) { throw new AssertionError("Unable to load sound mappings", e); } diff --git a/core/src/main/java/org/geysermc/geyser/util/WebUtils.java b/core/src/main/java/org/geysermc/geyser/util/WebUtils.java index ea62288f9..04c652e3d 100644 --- a/core/src/main/java/org/geysermc/geyser/util/WebUtils.java +++ b/core/src/main/java/org/geysermc/geyser/util/WebUtils.java @@ -97,7 +97,9 @@ public class WebUtils { con.setConnectTimeout(10000); con.setReadTimeout(10000); checkResponseCode(con); - try (JsonReader reader = GeyserImpl.GSON.newJsonReader(new InputStreamReader(con.getInputStream()))) { + try (InputStreamReader isr = new InputStreamReader(con.getInputStream()); + JsonReader reader = GeyserImpl.GSON.newJsonReader(isr)) { + //noinspection deprecation return new JsonParser().parse(reader).getAsJsonObject(); } }