diff --git a/build.gradle b/build.gradle index e322021..ab33ec5 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.11-SNAPSHOT' + id 'fabric-loom' version "${loom_version}" } base.archivesName = project.archives_base_name @@ -31,12 +31,12 @@ dependencies { // Configurate include(implementation("org.spongepowered:configurate-core:4.2.0")) include(implementation("org.spongepowered:configurate-gson:4.2.0")) - include(implementation("io.leangen.geantyref:geantyref:1.3.16")) + include(implementation("io.leangen.geantyref:geantyref:2.0.1")) // Adventure - include(modImplementation("net.kyori:adventure-platform-fabric:6.5.0-SNAPSHOT")) - include(implementation("net.kyori:adventure-text-serializer-gson:4.23.0")) - include(implementation("net.kyori:adventure-text-serializer-legacy:4.23.0")) + include(modImplementation("net.kyori:adventure-platform-fabric:6.7.0")) + include(implementation("net.kyori:adventure-text-serializer-gson:4.25.0")) + include(implementation("net.kyori:adventure-text-serializer-legacy:4.25.0")) } processResources { diff --git a/gradle.properties b/gradle.properties index a90305d..84b68c9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,9 +4,10 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop - minecraft_version=1.21.8 - yarn_mappings=1.21.8+build.1 - loader_version=0.16.14 + minecraft_version=1.21.10 + yarn_mappings=1.21.10+build.2 + loader_version=0.17.3 + loom_version=1.11-SNAPSHOT # Mod Properties mod_version = 1.0.0 @@ -14,5 +15,5 @@ org.gradle.parallel=true archives_base_name = chipmunkmod # Dependencies - fabric_version=0.129.0+1.21.8 + fabric_version=0.135.0+1.21.10 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b9..1b33c55 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradlew b/gradlew index f3b75f3..23d15a9 100755 --- a/gradlew +++ b/gradlew @@ -114,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -205,7 +205,7 @@ fi DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Collect all arguments for the java command: -# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, # and any embedded shellness will be escaped. # * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be # treated as '${Hostname}' itself on the command line. @@ -213,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9b42019..5eed7ee 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/main/java/land/chipmunk/chipmunkmod/commands/CoreCommand.java b/src/main/java/land/chipmunk/chipmunkmod/commands/CoreCommand.java index 05ca73e..fa447a4 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/commands/CoreCommand.java +++ b/src/main/java/land/chipmunk/chipmunkmod/commands/CoreCommand.java @@ -85,7 +85,7 @@ public class CoreCommand { public static int move (final CommandContext context) { final FabricClientCommandSource source = context.getSource(); - CommandCore.INSTANCE.move(source.getClient().player.getPos()); + CommandCore.INSTANCE.move(source.getClient().player.getEyePos()); return Command.SINGLE_SUCCESS; } diff --git a/src/main/java/land/chipmunk/chipmunkmod/commands/UsernameCommand.java b/src/main/java/land/chipmunk/chipmunkmod/commands/UsernameCommand.java index b39b7fc..6f9c0a8 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/commands/UsernameCommand.java +++ b/src/main/java/land/chipmunk/chipmunkmod/commands/UsernameCommand.java @@ -59,7 +59,7 @@ public class UsernameCommand { private static Session offline (final String username) { // This is how Minecraft's Main class does it return new Session(username, Uuids.getOfflinePlayerUuid(username), - "", Optional.empty(), Optional.empty(), Session.AccountType.LEGACY); + "", Optional.empty(), Optional.empty()); } // TODO: Put this in a separate class diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayerEntityMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayerEntityMixin.java index 9248cca..02f45b6 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/ClientPlayerEntityMixin.java @@ -29,7 +29,7 @@ public abstract class ClientPlayerEntityMixin extends Entity { public void move (final CallbackInfo ci) { final BlockPos origin = CommandCore.INSTANCE.origin; if (origin == null) { - CommandCore.INSTANCE.move(this.getPos()); + CommandCore.INSTANCE.move(this.getEyePos()); return; } @@ -38,7 +38,7 @@ public abstract class ClientPlayerEntityMixin extends Entity { if (distance > networkHandler.getWorld().getSimulationDistance()) { CommandCore.INSTANCE.alreadyFilled = true; - CommandCore.INSTANCE.move(this.getPos()); + CommandCore.INSTANCE.move(this.getEyePos()); } } } diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/ElderGuardianAppearanceParticleMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/ElderGuardianAppearanceParticleMixin.java index 6cfab20..a56fc0e 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/ElderGuardianAppearanceParticleMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/ElderGuardianAppearanceParticleMixin.java @@ -1,18 +1,19 @@ package land.chipmunk.chipmunkmod.mixin; -import net.minecraft.client.particle.ElderGuardianAppearanceParticle; +import net.minecraft.client.particle.ElderGuardianParticle; import net.minecraft.client.particle.Particle; import net.minecraft.client.world.ClientWorld; import net.minecraft.particle.SimpleParticleType; +import net.minecraft.util.math.random.Random; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -@Mixin(ElderGuardianAppearanceParticle.Factory.class) +@Mixin(ElderGuardianParticle.Factory.class) public class ElderGuardianAppearanceParticleMixin { @Inject( - method = "createParticle(Lnet/minecraft/particle/SimpleParticleType;Lnet/minecraft/client/world/ClientWorld;DDDDDD)Lnet/minecraft/client/particle/Particle;", + method = "createParticle(Lnet/minecraft/particle/SimpleParticleType;Lnet/minecraft/client/world/ClientWorld;DDDDDDLnet/minecraft/util/math/random/Random;)Lnet/minecraft/client/particle/Particle;", at = @At("RETURN"), cancellable = true ) @@ -25,6 +26,7 @@ public class ElderGuardianAppearanceParticleMixin { final double g, final double h, final double i, + final Random random, final CallbackInfoReturnable cir ) { // slash scare command diff --git a/src/main/java/land/chipmunk/chipmunkmod/mixin/StringHelperMixin.java b/src/main/java/land/chipmunk/chipmunkmod/mixin/StringHelperMixin.java index 0c6fe53..350ea22 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/mixin/StringHelperMixin.java +++ b/src/main/java/land/chipmunk/chipmunkmod/mixin/StringHelperMixin.java @@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(StringHelper.class) public class StringHelperMixin { @Inject(method = "isValidChar", at = @At("RETURN"), cancellable = true) - private static void isValidChar (final char c, final CallbackInfoReturnable cir) { + private static void isValidChar (final int c, final CallbackInfoReturnable cir) { if (!CustomChat.SHOULD_IGNORE_INVALID_CHAR.get()) { CustomChat.SHOULD_IGNORE_INVALID_CHAR.set(true); return; diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/CommandCore.java b/src/main/java/land/chipmunk/chipmunkmod/modules/CommandCore.java index c4eff76..ee36d16 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/CommandCore.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/CommandCore.java @@ -8,6 +8,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.CommandBlock; import net.minecraft.block.FallingBlock; +import net.minecraft.block.entity.BlockEntityType; import net.minecraft.block.entity.CommandBlockBlockEntity; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayNetworkHandler; @@ -17,6 +18,7 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.component.ComponentMap; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.NbtComponent; +import net.minecraft.entity.TypedEntityData; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; @@ -81,7 +83,7 @@ public class CommandCore implements Listener { if (client.player == null) return; - move(client.player.getPos()); + move(client.player.getEyePos()); } private void tick () { @@ -148,7 +150,7 @@ public class CommandCore implements Listener { if (player == null || world == null) return; - if (oldDimension != null && !oldDimension.equals(world.getDimension())) move(client.player.getPos()); + if (oldDimension != null && !oldDimension.equals(world.getDimension())) move(client.player.getEyePos()); oldDimension = world.getDimension(); @@ -431,7 +433,6 @@ public class CommandCore implements Listener { final ItemStack commandBlock = new ItemStack(Items.COMMAND_BLOCK); final NbtCompound data = new NbtCompound(); - data.putString("id", "minecraft:command_block"); data.putString("Command", command); data.putBoolean("auto", true); @@ -441,7 +442,7 @@ public class CommandCore implements Listener { commandBlock.applyComponentsFrom( ComponentMap.builder() .add(DataComponentTypes.CUSTOM_DATA, NbtComponent.of(blockEntityTag)) - .add(DataComponentTypes.BLOCK_ENTITY_DATA, NbtComponent.of(data)) + .add(DataComponentTypes.BLOCK_ENTITY_DATA, TypedEntityData.create(BlockEntityType.COMMAND_BLOCK, data)) .build() ); @@ -501,7 +502,7 @@ public class CommandCore implements Listener { if (!player.canInteractWithBlockAt(blockPos, 1.0)) continue; // we don't want to place a block inside ourselves if (boundingBox.intersects(new Vec3d(blockPos), new Vec3d(blockPos))) continue; - final BlockState blockState = player.getWorld().getBlockState(blockPos); + final BlockState blockState = player.getEntityWorld().getBlockState(blockPos); if (blockState.getBlock() instanceof FallingBlock) continue; final boolean replaceable = blockState.isIn(BlockTags.REPLACEABLE); if ( diff --git a/src/main/java/land/chipmunk/chipmunkmod/modules/RainbowName.java b/src/main/java/land/chipmunk/chipmunkmod/modules/RainbowName.java index ae8e365..5e3a229 100644 --- a/src/main/java/land/chipmunk/chipmunkmod/modules/RainbowName.java +++ b/src/main/java/land/chipmunk/chipmunkmod/modules/RainbowName.java @@ -51,7 +51,7 @@ public class RainbowName { final String username = RandomUtilities.emptyUsername(random); team = RandomUtilities.randomString(random, RandomUtilities.TEAM_ALLOWED_CHARS, 16); - final String selfSelector = UUIDUtilities.selector(profile.getId()); + final String selfSelector = UUIDUtilities.selector(profile.id()); networkHandler.sendChatCommand("extras:username " + username); CommandCore.INSTANCE.run("minecraft:team add " + team); @@ -68,9 +68,9 @@ public class RainbowName { } final GameProfile profile = networkHandler.getProfile(); - CommandCore.INSTANCE.run("essentials:nick " + profile.getId() + " off"); + CommandCore.INSTANCE.run("essentials:nick " + profile.id() + " off"); CommandCore.INSTANCE.run("minecraft:team remove " + team); - networkHandler.sendChatCommand("extras:username " + profile.getName()); + networkHandler.sendChatCommand("extras:username " + profile.name()); enabled = false; } @@ -100,7 +100,7 @@ public class RainbowName { } CommandCore.INSTANCE.run("minecraft:team modify " + team + " prefix " + GsonComponentSerializer.gson().serialize(component)); - CommandCore.INSTANCE.run("essentials:nick " + profile.getId() + " " + essentialsNickname); + CommandCore.INSTANCE.run("essentials:nick " + profile.id() + " " + essentialsNickname); startHue = (startHue + increment) % 360; } catch (final Exception e) { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 18c0a36..1e7fec9 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -32,7 +32,7 @@ "depends": { "fabricloader": ">=0.16.13", "fabric-api": "*", - "minecraft": "1.21.8", + "minecraft": "1.21.10", "java": ">=21" } }