diff --git a/bootstrap/fabric/.gitignore b/bootstrap/fabric/.gitignore index 4215ddd83..0a48ed373 100644 --- a/bootstrap/fabric/.gitignore +++ b/bootstrap/fabric/.gitignore @@ -15,6 +15,7 @@ local.properties .loadpath .recommenders + # External tool builders .externalToolBuilders/ @@ -134,6 +135,7 @@ hs_err_pid* # Gradle .idea/**/gradle.xml .idea/**/libraries +/.gradle/ # Gradle and Maven with auto-import # When using Gradle or Maven with auto-import, you should exclude module files, @@ -235,5 +237,3 @@ nbdist/ # End of https://www.gitignore.io/api/git,java,maven,eclipse,netbeans,jetbrains+all,visualstudiocode -### Geyser ### -run/ diff --git a/bootstrap/fabric/build.gradle b/bootstrap/fabric/build.gradle index 002cc1117..0e3331f98 100644 --- a/bootstrap/fabric/build.gradle +++ b/bootstrap/fabric/build.gradle @@ -1,15 +1,15 @@ plugins { - id 'fabric-loom' version '0.8-SNAPSHOT' + id 'fabric-loom' version '0.10-SNAPSHOT' id 'maven-publish' - id 'com.github.johnrengelman.shadow' version '6.1.0' + id 'com.github.johnrengelman.shadow' version '7.0.0' id 'java' } apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'java' -sourceCompatibility = JavaVersion.VERSION_16 -targetCompatibility = JavaVersion.VERSION_16 +sourceCompatibility = JavaVersion.VERSION_17 +targetCompatibility = JavaVersion.VERSION_17 archivesBaseName = project.archives_base_name version = project.mod_version @@ -27,8 +27,8 @@ dependencies { // PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs. // You may need to force-disable transitiveness on them. - implementation 'org.geysermc:connector:1.4.3-SNAPSHOT' - shadow('org.geysermc:connector:1.4.3-SNAPSHOT') { + implementation 'org.geysermc:core:2.0.0-SNAPSHOT' + shadow('org.geysermc:core:2.0.0-SNAPSHOT') { exclude group: 'com.google.guava', module: "guava" exclude group: 'com.google.code.gson', module: "gson" exclude group: 'org.slf4j' diff --git a/bootstrap/fabric/gradle.properties b/bootstrap/fabric/gradle.properties index f33e6ade1..6f3a0e059 100644 --- a/bootstrap/fabric/gradle.properties +++ b/bootstrap/fabric/gradle.properties @@ -2,13 +2,13 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://modmuss50.me/fabric.html -minecraft_version=1.17.1 -yarn_mappings=1.17.1+build.14 -loader_version=0.11.6 +minecraft_version=1.18 +yarn_mappings=1.18+build.1 +loader_version=0.12.8 # Mod Properties mod_version=1.4.3-SNAPSHOT maven_group=org.geysermc.platform archives_base_name=Geyser-Fabric # Dependencies # check this on https://modmuss50.me/fabric.html -fabric_version=0.37.0+1.17 +fabric_version=0.43.1+1.18 diff --git a/bootstrap/fabric/gradle/wrapper/gradle-wrapper.properties b/bootstrap/fabric/gradle/wrapper/gradle-wrapper.properties index 0f80bbf51..e750102e0 100644 --- a/bootstrap/fabric/gradle/wrapper/gradle-wrapper.properties +++ b/bootstrap/fabric/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricConfiguration.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricConfiguration.java index e0ee61aa5..b49707871 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricConfiguration.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricConfiguration.java @@ -28,8 +28,8 @@ package org.geysermc.platform.fabric; import com.fasterxml.jackson.annotation.JsonIgnore; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; -import org.geysermc.connector.FloodgateKeyLoader; -import org.geysermc.connector.configuration.GeyserJacksonConfiguration; +import org.geysermc.geyser.FloodgateKeyLoader; +import org.geysermc.geyser.configuration.GeyserJacksonConfiguration; import java.nio.file.Path; diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricDumpInfo.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricDumpInfo.java index 26979d6da..e3997da51 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricDumpInfo.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricDumpInfo.java @@ -29,8 +29,8 @@ import net.fabricmc.api.EnvType; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.minecraft.server.MinecraftServer; -import org.geysermc.connector.common.serializer.AsteriskSerializer; -import org.geysermc.connector.dump.BootstrapDumpInfo; +import org.geysermc.geyser.dump.BootstrapDumpInfo; +import org.geysermc.geyser.text.AsteriskSerializer; import java.util.ArrayList; import java.util.List; diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricLogger.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricLogger.java index 40e18e43b..9c85a21f2 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricLogger.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricLogger.java @@ -27,7 +27,7 @@ package org.geysermc.platform.fabric; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.geysermc.connector.GeyserLogger; +import org.geysermc.geyser.GeyserLogger; public class GeyserFabricLogger implements GeyserLogger { diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricMod.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricMod.java index 339c5a9e9..904d13d40 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricMod.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/GeyserFabricMod.java @@ -35,19 +35,19 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.ServerCommandSource; import org.apache.logging.log4j.LogManager; import org.geysermc.common.PlatformType; -import org.geysermc.connector.GeyserConnector; -import org.geysermc.connector.GeyserLogger; -import org.geysermc.connector.bootstrap.GeyserBootstrap; -import org.geysermc.connector.command.CommandManager; -import org.geysermc.connector.command.GeyserCommand; -import org.geysermc.connector.common.AuthType; -import org.geysermc.connector.configuration.GeyserConfiguration; -import org.geysermc.connector.dump.BootstrapDumpInfo; -import org.geysermc.connector.network.translators.world.WorldManager; -import org.geysermc.connector.ping.GeyserLegacyPingPassthrough; -import org.geysermc.connector.ping.IGeyserPingPassthrough; -import org.geysermc.connector.utils.FileUtils; -import org.geysermc.connector.utils.LanguageUtils; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.GeyserLogger; +import org.geysermc.geyser.command.CommandManager; +import org.geysermc.geyser.command.GeyserCommand; +import org.geysermc.geyser.dump.BootstrapDumpInfo; +import org.geysermc.geyser.ping.GeyserLegacyPingPassthrough; +import org.geysermc.geyser.session.auth.AuthType; +import org.geysermc.geyser.text.GeyserLocale; +import org.geysermc.geyser.GeyserBootstrap; +import org.geysermc.geyser.configuration.GeyserConfiguration; +import org.geysermc.geyser.level.WorldManager; +import org.geysermc.geyser.ping.IGeyserPingPassthrough; +import org.geysermc.geyser.util.FileUtils; import org.geysermc.platform.fabric.command.GeyserFabricCommandExecutor; import org.geysermc.platform.fabric.command.GeyserFabricCommandManager; import org.geysermc.platform.fabric.world.GeyserFabricWorldManager; @@ -65,7 +65,7 @@ public class GeyserFabricMod implements ModInitializer, GeyserBootstrap { private boolean reloading; - private GeyserConnector connector; + private GeyserImpl connector; private Path dataFolder; private MinecraftServer server; @@ -106,7 +106,7 @@ public class GeyserFabricMod implements ModInitializer, GeyserBootstrap { File permissionsFile = fileOrCopiedFromResource(dataFolder.resolve("permissions.yml").toFile(), "permissions.yml"); this.playerCommands = Arrays.asList(FileUtils.loadConfig(permissionsFile, GeyserFabricPermissions.class).getCommands()); } catch (IOException ex) { - LogManager.getLogger("geyser-fabric").error(LanguageUtils.getLocaleStringLog("geyser.config.failed"), ex); + LogManager.getLogger("geyser-fabric").error(GeyserLocale.getLocaleStringLog("geyser.config.failed"), ex); ex.printStackTrace(); return; } @@ -152,7 +152,7 @@ public class GeyserFabricMod implements ModInitializer, GeyserBootstrap { Optional floodgate = FabricLoader.getInstance().getModContainer("floodgate"); boolean floodgatePresent = floodgate.isPresent(); if (geyserConfig.getRemote().getAuthType() == AuthType.FLOODGATE && !floodgatePresent) { - geyserLogger.severe(LanguageUtils.getLocaleStringLog("geyser.bootstrap.floodgate.not_installed") + " " + LanguageUtils.getLocaleStringLog("geyser.bootstrap.floodgate.disabling")); + geyserLogger.severe(GeyserLocale.getLocaleStringLog("geyser.bootstrap.floodgate.not_installed") + " " + GeyserLocale.getLocaleStringLog("geyser.bootstrap.floodgate.disabling")); return; } else if (geyserConfig.isAutoconfiguredRemote() && floodgatePresent) { // Floodgate installed means that the user wants Floodgate authentication @@ -162,7 +162,7 @@ public class GeyserFabricMod implements ModInitializer, GeyserBootstrap { geyserConfig.loadFloodgate(this, floodgate.orElse(null)); - this.connector = GeyserConnector.start(PlatformType.FABRIC, this); + this.connector = GeyserImpl.start(PlatformType.FABRIC, this); this.geyserPingPassthrough = GeyserLegacyPingPassthrough.init(connector); diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/FabricCommandSender.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/FabricCommandSender.java index 1dbec0492..1fa9f55ae 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/FabricCommandSender.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/FabricCommandSender.java @@ -28,9 +28,9 @@ package org.geysermc.platform.fabric.command; import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.LiteralText; -import org.geysermc.connector.GeyserConnector; -import org.geysermc.connector.command.CommandSender; -import org.geysermc.connector.common.ChatColor; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.command.CommandSender; +import org.geysermc.geyser.text.ChatColor; import org.geysermc.platform.fabric.GeyserFabricMod; public class FabricCommandSender implements CommandSender { @@ -42,7 +42,7 @@ public class FabricCommandSender implements CommandSender { } @Override - public String getName() { + public String name() { return source.getName(); } @@ -51,7 +51,7 @@ public class FabricCommandSender implements CommandSender { if (source.getEntity() instanceof ServerPlayerEntity) { ((ServerPlayerEntity) source.getEntity()).sendMessage(new LiteralText(message), false); } else { - GeyserConnector.getInstance().getLogger().info(ChatColor.toANSI(message + ChatColor.RESET)); + GeyserImpl.getInstance().getLogger().info(ChatColor.toANSI(message + ChatColor.RESET)); } } diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/GeyserFabricCommandExecutor.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/GeyserFabricCommandExecutor.java index bd2cdcad2..c1d8ebc29 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/GeyserFabricCommandExecutor.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/GeyserFabricCommandExecutor.java @@ -28,12 +28,12 @@ package org.geysermc.platform.fabric.command; import com.mojang.brigadier.Command; import com.mojang.brigadier.context.CommandContext; import net.minecraft.server.command.ServerCommandSource; -import org.geysermc.connector.GeyserConnector; -import org.geysermc.connector.command.CommandExecutor; -import org.geysermc.connector.command.GeyserCommand; -import org.geysermc.connector.common.ChatColor; -import org.geysermc.connector.network.session.GeyserSession; -import org.geysermc.connector.utils.LanguageUtils; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.command.CommandExecutor; +import org.geysermc.geyser.command.GeyserCommand; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.text.ChatColor; +import org.geysermc.geyser.text.GeyserLocale; import org.geysermc.platform.fabric.GeyserFabricMod; import org.geysermc.platform.fabric.GeyserFabricPermissions; @@ -45,7 +45,7 @@ public class GeyserFabricCommandExecutor extends CommandExecutor implements Comm */ private final boolean requiresPermission; - public GeyserFabricCommandExecutor(GeyserConnector connector, GeyserCommand command, boolean requiresPermission) { + public GeyserFabricCommandExecutor(GeyserImpl connector, GeyserCommand command, boolean requiresPermission) { super(connector); this.command = command; this.requiresPermission = requiresPermission; @@ -67,7 +67,7 @@ public class GeyserFabricCommandExecutor extends CommandExecutor implements Comm FabricCommandSender sender = new FabricCommandSender(source); GeyserSession session = getGeyserSession(sender); if (!canRun(source)) { - sender.sendMessage(LanguageUtils.getLocaleStringLog("geyser.bootstrap.command.permission_fail")); + sender.sendMessage(GeyserLocale.getLocaleStringLog("geyser.bootstrap.command.permission_fail")); return 0; } if (this.command.getName().equals("reload")) { @@ -75,7 +75,7 @@ public class GeyserFabricCommandExecutor extends CommandExecutor implements Comm } if (command.isBedrockOnly() && session == null) { - sender.sendMessage(ChatColor.RED + LanguageUtils.getPlayerLocaleString("geyser.bootstrap.command.bedrock_only", sender.getLocale())); + sender.sendMessage(ChatColor.RED + GeyserLocale.getPlayerLocaleString("geyser.bootstrap.command.bedrock_only", sender.getLocale())); return 0; } command.execute(session, sender, new String[0]); diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/GeyserFabricCommandManager.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/GeyserFabricCommandManager.java index d6180e7ec..d548aa823 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/GeyserFabricCommandManager.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/command/GeyserFabricCommandManager.java @@ -25,12 +25,12 @@ package org.geysermc.platform.fabric.command; -import org.geysermc.connector.GeyserConnector; -import org.geysermc.connector.command.CommandManager; +import org.geysermc.geyser.GeyserImpl; +import org.geysermc.geyser.command.CommandManager; public class GeyserFabricCommandManager extends CommandManager { - public GeyserFabricCommandManager(GeyserConnector connector) { + public GeyserFabricCommandManager(GeyserImpl connector) { super(connector); } diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/mixin/client/IntegratedServerMixin.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/mixin/client/IntegratedServerMixin.java index 0a3f17f68..1fc945f28 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/mixin/client/IntegratedServerMixin.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/mixin/client/IntegratedServerMixin.java @@ -32,7 +32,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.integrated.IntegratedServer; import net.minecraft.text.LiteralText; import net.minecraft.world.GameMode; -import org.geysermc.connector.utils.LanguageUtils; +import org.geysermc.geyser.text.GeyserLocale; import org.geysermc.platform.fabric.GeyserFabricMod; import org.geysermc.platform.fabric.GeyserServerPortGetter; import org.spongepowered.asm.mixin.Final; @@ -56,9 +56,9 @@ public class IntegratedServerMixin implements GeyserServerPortGetter { // If the LAN is opened, starts Geyser. GeyserFabricMod.getInstance().startGeyser((MinecraftServer) (Object) this); // Ensure player locale has been loaded, in case it's different from Java system language - LanguageUtils.loadGeyserLocale(this.client.options.language); + GeyserLocale.loadGeyserLocale(this.client.options.language); // Give indication that Geyser is loaded - this.client.player.sendMessage(new LiteralText(LanguageUtils.getPlayerLocaleString("geyser.core.start", + this.client.player.sendMessage(new LiteralText(GeyserLocale.getPlayerLocaleString("geyser.core.start", this.client.options.language, "localhost", String.valueOf(this.lanPort))), false); } } diff --git a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/world/GeyserFabricWorldManager.java b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/world/GeyserFabricWorldManager.java index 412266bb4..5a66f6ae8 100644 --- a/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/world/GeyserFabricWorldManager.java +++ b/bootstrap/fabric/src/main/java/org/geysermc/platform/fabric/world/GeyserFabricWorldManager.java @@ -38,10 +38,10 @@ import net.minecraft.item.WrittenBookItem; import net.minecraft.nbt.NbtList; import net.minecraft.server.MinecraftServer; import net.minecraft.util.math.BlockPos; -import org.geysermc.connector.network.session.GeyserSession; -import org.geysermc.connector.network.translators.inventory.translators.LecternInventoryTranslator; -import org.geysermc.connector.network.translators.world.GeyserWorldManager; -import org.geysermc.connector.utils.BlockEntityUtils; +import org.geysermc.geyser.level.GeyserWorldManager; +import org.geysermc.geyser.session.GeyserSession; +import org.geysermc.geyser.translator.inventory.LecternInventoryTranslator; +import org.geysermc.geyser.util.BlockEntityUtils; import org.geysermc.platform.fabric.GeyserFabricMod; import org.geysermc.platform.fabric.command.GeyserFabricCommandExecutor; @@ -115,7 +115,7 @@ public class GeyserFabricWorldManager extends GeyserWorldManager { }; if (isChunkLoad) { // Hacky hacks to allow lectern loading to be delayed - session.getConnector().getGeneralThreadPool().schedule(() -> server.execute(lecternGet), 1, TimeUnit.SECONDS); + session.scheduleInEventLoop(() -> server.execute(lecternGet), 1, TimeUnit.SECONDS); } else { server.execute(lecternGet); }