diff --git a/build.gradle b/build.gradle index 6975008..bdb0d7e 100644 --- a/build.gradle +++ b/build.gradle @@ -10,8 +10,8 @@ buildscript { plugins { - id "architectury-plugin" version "3.0.94" - id "forgified-fabric-loom" version "0.6.72" apply false + id "architectury-plugin" version "3.1-SNAPSHOT" + id "dev.architectury.loom" version "0.8.0-SNAPSHOT" apply false } @@ -20,7 +20,7 @@ architectury { } subprojects { - apply plugin: "forgified-fabric-loom" + apply plugin: "dev.architectury.loom" dependencies { minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" mappings("net.fabricmc:yarn:${rootProject.yarn_mappings}:v2") @@ -36,16 +36,15 @@ allprojects { version = rootProject.mod_version group = rootProject.maven_group - tasks.withType(JavaCompile) { - options.encoding = "UTF-8" + tasks.withType(JavaCompile).configureEach { + // ensure that the encoding is set to UTF-8, no matter what the system default is + // this fixes some edge cases with special characters not displaying correctly + // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html + // If Javadoc is generated, this must be specified in that task too. + it.options.encoding = "UTF-8" - // The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too - // JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used. - // We'll use that if it's available, but otherwise we'll use the older option. - def targetVersion = 8 - if (JavaVersion.current().isJava9Compatible()) { - options.release = targetVersion - } + // Minecraft 1.17 (21w19a) upwards uses Java 16. + it.options.release = 8 } java { diff --git a/common/src/main/java/org/samo_lego/simpleauth/SimpleAuth.java b/common/src/main/java/org/samo_lego/simpleauth/SimpleAuth.java index c0f4ef2..1524ad0 100644 --- a/common/src/main/java/org/samo_lego/simpleauth/SimpleAuth.java +++ b/common/src/main/java/org/samo_lego/simpleauth/SimpleAuth.java @@ -29,7 +29,7 @@ public class SimpleAuth { /** * HashMap of players that have joined the server. * It's cleared on server stop in order to save some interactions with database during runtime. - * Stores their data as {@link org.samo_lego.simpleauth.storage.PlayerCache PlayerCache} object. + * Stores their data as {@link PlayerCache PlayerCache} object. */ public static final HashMap playerCacheMap = new HashMap<>(); diff --git a/common/src/main/java/org/samo_lego/simpleauth/commands/AuthCommand.java b/common/src/main/java/org/samo_lego/simpleauth/commands/AuthCommand.java index ee83666..282e8d8 100644 --- a/common/src/main/java/org/samo_lego/simpleauth/commands/AuthCommand.java +++ b/common/src/main/java/org/samo_lego/simpleauth/commands/AuthCommand.java @@ -49,8 +49,8 @@ public class AuthCommand { ctx.getSource().getEntityOrThrow().getX(), ctx.getSource().getEntityOrThrow().getY(), ctx.getSource().getEntityOrThrow().getZ(), - ctx.getSource().getEntityOrThrow().yaw, - ctx.getSource().getEntityOrThrow().pitch + ctx.getSource().getEntityOrThrow().getYaw(), + ctx.getSource().getEntityOrThrow().getPitch() )) .then(argument("dimension", DimensionArgumentType.dimension()) .then(argument("position", BlockPosArgumentType.blockPos()) @@ -145,7 +145,7 @@ public class AuthCommand { } /** - * Sets {@link org.samo_lego.simpleauth.storage.AuthConfig.MainConfig.WorldSpawn global spawn}. + * Sets {@link AuthConfig.MainConfig.WorldSpawn global spawn}. * * @param source executioner of the command * @param world world id of global spawn diff --git a/common/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java b/common/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java index 9832886..8d37620 100644 --- a/common/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java +++ b/common/src/main/java/org/samo_lego/simpleauth/event/AuthEventHandler.java @@ -94,8 +94,7 @@ public class AuthEventHandler { // Tries to rescue player from nether portal - //if(config.main.tryPortalRescue && player.getBlockState().getBlock().equals(Blocks.NETHER_PORTAL)) { - if(config.main.tryPortalRescue && player.getServerWorld().getBlockState(player.getBlockPos()).getBlock().equals(Blocks.NETHER_PORTAL)) { + if(config.main.tryPortalRescue && player.getBlockStateAtPos().getBlock().equals(Blocks.NETHER_PORTAL)) { BlockPos pos = player.getBlockPos(); // Teleporting player to the middle of the block @@ -118,8 +117,8 @@ public class AuthEventHandler { if(playerCache.isAuthenticated) { playerCache.lastIp = player.getIp(); - //playerCache.wasInPortal = player.getBlockState().getBlock().equals(Blocks.NETHER_PORTAL); - playerCache.wasInPortal = player.getServerWorld().getBlockState(player.getBlockPos()).getBlock().equals(Blocks.NETHER_PORTAL); + playerCache.wasInPortal = player.getBlockStateAtPos().getBlock().equals(Blocks.NETHER_PORTAL); + // Setting the session expire time if(config.main.sessionTimeoutTime != -1) playerCache.validUntil = System.currentTimeMillis() + config.main.sessionTimeoutTime * 1000L; diff --git a/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayNetworkHandler.java b/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayNetworkHandler.java index 23bc51d..0038998 100644 --- a/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayNetworkHandler.java +++ b/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayNetworkHandler.java @@ -22,7 +22,7 @@ public abstract class MixinServerPlayNetworkHandler { public ServerPlayerEntity player; @Inject( - method = "method_31286(Lnet/minecraft/server/filter/TextStream$Message;)V", + method = "handleMessage(Lnet/minecraft/server/filter/TextStream$Message;)V", at = @At( value = "INVOKE", target = "Lnet/minecraft/server/network/ServerPlayerEntity;updateLastActionTime()V", @@ -68,7 +68,7 @@ public abstract class MixinServerPlayNetworkHandler { ActionResult result = AuthEventHandler.onPlayerMove(player); if (result == ActionResult.FAIL) { // A bit ugly, I know. (we need to update player position) - player.networkHandler.requestTeleport(player.getX(), player.getY(), player.getZ(), player.getYaw(0), player.getPitch(0)); + player.networkHandler.requestTeleport(player.getX(), player.getY(), player.getZ(), player.getYaw(), player.getPitch()); ci.cancel(); } } diff --git a/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayerEntity.java b/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayerEntity.java index 267a510..f9758a3 100644 --- a/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayerEntity.java +++ b/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinServerPlayerEntity.java @@ -52,12 +52,12 @@ public class MixinServerPlayerEntity implements PlayerAuth { // Saving position cache.lastLocation.dimension = player.getServerWorld(); cache.lastLocation.position = player.getPos(); - cache.lastLocation.yaw = player.getYaw(0); - cache.lastLocation.pitch = player.getPitch(0); + cache.lastLocation.yaw = player.getYaw(); + cache.lastLocation.pitch = player.getPitch(); // Teleports player to spawn player.teleport( - server.getWorld(RegistryKey.of(Registry.DIMENSION, new Identifier(config.worldSpawn.dimension))), + server.getWorld(RegistryKey.of(Registry.WORLD_KEY, new Identifier(config.worldSpawn.dimension))), config.worldSpawn.x, config.worldSpawn.y, config.worldSpawn.z, diff --git a/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinWorldSaveHandler.java b/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinWorldSaveHandler.java index 1f4508d..677820d 100644 --- a/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinWorldSaveHandler.java +++ b/common/src/main/java/org/samo_lego/simpleauth/mixin/MixinWorldSaveHandler.java @@ -1,7 +1,7 @@ package org.samo_lego.simpleauth.mixin; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtIo; import net.minecraft.world.WorldSaveHandler; import org.apache.logging.log4j.Logger; @@ -46,14 +46,14 @@ public class MixinWorldSaveHandler { * @param file */ @Inject( - method = "loadPlayerData(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/nbt/CompoundTag;", + method = "loadPlayerData(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/nbt/NbtCompound;", at = @At( value = "INVOKE", target = "Ljava/io/File;exists()Z" ), locals = LocalCapture.CAPTURE_FAILHARD ) - private void fileExists(PlayerEntity playerEntity, CallbackInfoReturnable cir, CompoundTag compoundTag, File file) { + private void fileExists(PlayerEntity playerEntity, CallbackInfoReturnable cir, NbtCompound compoundTag, File file) { // @ModifyVariable cannot capture locals this.fileExists = file.exists(); } @@ -66,13 +66,13 @@ public class MixinWorldSaveHandler { * @return compoundTag containing migrated data. */ @ModifyVariable( - method = "loadPlayerData(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/nbt/CompoundTag;", + method = "loadPlayerData(Lnet/minecraft/entity/player/PlayerEntity;)Lnet/minecraft/nbt/NbtCompound;", at = @At( value = "INVOKE", target = "Ljava/io/File;exists()Z" ) ) - private CompoundTag migratePlayerData(CompoundTag compoundTag, PlayerEntity player) { + private NbtCompound migratePlayerData(NbtCompound compoundTag, PlayerEntity player) { // Checking for offline player data only if online doesn't exist yet String playername = player.getGameProfile().getName().toLowerCase(); if(config.main.premiumAutologin && mojangAccountNamesCache.contains(playername) && !this.fileExists) { diff --git a/common/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java b/common/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java index 35552e8..df937d6 100644 --- a/common/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java +++ b/common/src/main/java/org/samo_lego/simpleauth/storage/PlayerCache.java @@ -64,7 +64,7 @@ public class PlayerCache { public float pitch; } - public final PlayerCache.LastLocation lastLocation = new PlayerCache.LastLocation(); + public final LastLocation lastLocation = new LastLocation(); private static final Gson gson = new GsonBuilder() @@ -94,11 +94,10 @@ public class PlayerCache { // Setting position cache playerCache.lastLocation.dimension = player.getServerWorld(); playerCache.lastLocation.position = player.getPos(); - playerCache.lastLocation.yaw = player.getYaw(0); - playerCache.lastLocation.pitch = player.getPitch(0); + playerCache.lastLocation.yaw = player.getYaw(); + playerCache.lastLocation.pitch = player.getPitch(); - playerCache.wasInPortal = player.getServerWorld().getBlockState(player.getBlockPos()).getBlock().equals(Blocks.NETHER_PORTAL); - //playerCache.wasInPortal = player.getBlockState().getBlock().equals(Blocks.NETHER_PORTAL); + playerCache.wasInPortal = player.getBlockStateAtPos().getBlock().equals(Blocks.NETHER_PORTAL); } return playerCache; diff --git a/common/src/main/resources/mixins.simpleauth.json b/common/src/main/resources/mixins.simpleauth.json index d7e8f40..1e15509 100644 --- a/common/src/main/resources/mixins.simpleauth.json +++ b/common/src/main/resources/mixins.simpleauth.json @@ -1,7 +1,7 @@ { "required": true, "package": "org.samo_lego.simpleauth.mixin", - "compatibilityLevel": "JAVA_8", + "compatibilityLevel": "JAVA_16", "mixins": [ "MixinPlayerAdvancementTracker", "MixinPlayerEntity", diff --git a/common/src/main/resources/simpleauth.accesswidener b/common/src/main/resources/simpleauth.accesswidener index 350b56c..b768aa2 100644 --- a/common/src/main/resources/simpleauth.accesswidener +++ b/common/src/main/resources/simpleauth.accesswidener @@ -1,4 +1,3 @@ accessWidener v1 named -accessible class net/minecraft/server/network/ServerLoginNetworkHandler$State -accessible field net/minecraft/entity/Entity yaw F +accessible class net/minecraft/server/network/ServerLoginNetworkHandler$State \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 71c29ef..34868b4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,12 +2,12 @@ org.gradle.jvmargs=-Xmx1G # Fabric properties -minecraft_version=21w10a -yarn_mappings=21w10a+build.1 -loader_version=0.11.2 +minecraft_version=1.17 +yarn_mappings=1.17+build.13 +loader_version=0.11.6 #Fabric api -fabric_version=0.28.5+1.15 +fabric_version=0.36.0+1.17 # Forge forge_version=36.0.4