From 781f44b737537929435c1cfdaf5f7dff10577339 Mon Sep 17 00:00:00 2001 From: rugmj Date: Tue, 2 Jan 2024 16:17:01 +0000 Subject: [PATCH] fixes mixins and player.sendChatMessage --- .../redstonetools/RedstoneToolsClient.java | 6 +++-- .../features/commands/CommandFeature.java | 2 +- .../toggleable/ToggleableFeature.java | 2 +- .../macros/actions/CommandAction.java | 2 +- .../mixin/features/AutoDustMixin.java | 9 ++++--- .../mixin/features/ItemBindMixin.java | 26 +++++++++++-------- src/main/resources/redstonetools.mixins.json | 2 +- 7 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/main/java/tools/redstone/redstonetools/RedstoneToolsClient.java b/src/main/java/tools/redstone/redstonetools/RedstoneToolsClient.java index 2207c32b..ba263e3e 100644 --- a/src/main/java/tools/redstone/redstonetools/RedstoneToolsClient.java +++ b/src/main/java/tools/redstone/redstonetools/RedstoneToolsClient.java @@ -15,7 +15,8 @@ public class RedstoneToolsClient implements ClientModInitializer { public static final String MOD_ID = "redstonetools"; - public static final String MOD_VERSION = "v" + FabricLoader.getInstance().getModContainer(MOD_ID).orElseThrow().getMetadata().getVersion().getFriendlyString(); + public static final String MOD_VERSION = "v" + FabricLoader.getInstance().getModContainer(MOD_ID).orElseThrow() + .getMetadata().getVersion().getFriendlyString(); public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); public static final Path CONFIG_DIR = FabricLoader.getInstance().getConfigDir().resolve("redstonetools"); public static final Injector INJECTOR = Doctor.createInjector(ReflectionUtils.getModules()); @@ -32,7 +33,8 @@ public void onInitializeClient() { LOGGER.trace("Registering feature {}", feature.getClass().getName()); if (feature.requiresWorldEdit() && !DependencyLookup.WORLDEDIT_PRESENT) { - LOGGER.warn("Feature {} requires WorldEdit, but WorldEdit is not loaded. Skipping registration.", feature.getName()); + LOGGER.warn("Feature {} requires WorldEdit, but WorldEdit is not loaded. Skipping registration.", + feature.getName()); return; } feature.register(); diff --git a/src/main/java/tools/redstone/redstonetools/features/commands/CommandFeature.java b/src/main/java/tools/redstone/redstonetools/features/commands/CommandFeature.java index 0a3ee81a..12e84170 100644 --- a/src/main/java/tools/redstone/redstonetools/features/commands/CommandFeature.java +++ b/src/main/java/tools/redstone/redstonetools/features/commands/CommandFeature.java @@ -51,7 +51,7 @@ public void register() { ClientTickEvents.END_CLIENT_TICK.register(client -> { while (keyBinding.wasPressed()) { assert client.player != null; - client.player.sendMessage(Text.literal("/" + info.command())); + client.player.networkHandler.sendChatCommand(info.command()); } }); } diff --git a/src/main/java/tools/redstone/redstonetools/features/toggleable/ToggleableFeature.java b/src/main/java/tools/redstone/redstonetools/features/toggleable/ToggleableFeature.java index 2e80d9ff..b2980996 100644 --- a/src/main/java/tools/redstone/redstonetools/features/toggleable/ToggleableFeature.java +++ b/src/main/java/tools/redstone/redstonetools/features/toggleable/ToggleableFeature.java @@ -77,7 +77,7 @@ public void register() { ClientTickEvents.END_CLIENT_TICK.register(client -> { while (keyBinding.wasPressed()) { assert client.player != null; - client.player.sendChatMessage("/" + info.command()); + client.player.networkHandler.sendChatCommand(info.command()); } }); } diff --git a/src/main/java/tools/redstone/redstonetools/macros/actions/CommandAction.java b/src/main/java/tools/redstone/redstonetools/macros/actions/CommandAction.java index d44dc4c8..a07b26ed 100644 --- a/src/main/java/tools/redstone/redstonetools/macros/actions/CommandAction.java +++ b/src/main/java/tools/redstone/redstonetools/macros/actions/CommandAction.java @@ -15,7 +15,7 @@ public void run() { var player = MinecraftClient.getInstance().player; assert player != null; - player.sendChatMessage(command.startsWith("/") ? command : "/" + command); + player.networkHandler.sendChatCommand(command.startsWith("/") ? command.substring(1) : command); } @Override diff --git a/src/main/java/tools/redstone/redstonetools/mixin/features/AutoDustMixin.java b/src/main/java/tools/redstone/redstonetools/mixin/features/AutoDustMixin.java index d3fcf6bb..1d3618d8 100644 --- a/src/main/java/tools/redstone/redstonetools/mixin/features/AutoDustMixin.java +++ b/src/main/java/tools/redstone/redstonetools/mixin/features/AutoDustMixin.java @@ -35,7 +35,8 @@ private AutoDustFeature getAutoDustFeature() { } @Inject(method = "onPlaced", at = @At("TAIL")) - private void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack, CallbackInfo ci) { + private void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack, + CallbackInfo ci) { if (!getAutoDustFeature().isEnabled()) { return; } @@ -48,7 +49,9 @@ private void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity return; } - ItemPlacementContext context = new ItemPlacementContext((PlayerEntity) placer, Hand.MAIN_HAND,new ItemStack(Items.REDSTONE),new BlockHitResult(new Vec3d(dustPos.getX(),dustPos.getY(),dustPos.getZ()), Direction.UP, dustPos,false)); - placer.method_48926().setBlockState(dustPos, Blocks.REDSTONE_WIRE.getPlacementState(context)); + ItemPlacementContext context = new ItemPlacementContext((PlayerEntity) placer, Hand.MAIN_HAND, + new ItemStack(Items.REDSTONE), new BlockHitResult( + new Vec3d(dustPos.getX(), dustPos.getY(), dustPos.getZ()), Direction.UP, dustPos, false)); + placer.getWorld().setBlockState(dustPos, Blocks.REDSTONE_WIRE.getPlacementState(context)); } } diff --git a/src/main/java/tools/redstone/redstonetools/mixin/features/ItemBindMixin.java b/src/main/java/tools/redstone/redstonetools/mixin/features/ItemBindMixin.java index ee194cba..ce3c181a 100644 --- a/src/main/java/tools/redstone/redstonetools/mixin/features/ItemBindMixin.java +++ b/src/main/java/tools/redstone/redstonetools/mixin/features/ItemBindMixin.java @@ -1,6 +1,7 @@ package tools.redstone.redstonetools.mixin.features; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; @@ -25,7 +26,6 @@ import static tools.redstone.redstonetools.RedstoneToolsClient.INJECTOR; - public abstract class ItemBindMixin { @Mixin(ItemStack.class) @@ -35,7 +35,8 @@ private abstract static class ItemStackMixin { public abstract @Nullable NbtCompound getNbt(); @Inject(method = "use", at = @At("HEAD"), cancellable = true) - public void checkCommandNBT(World world, PlayerEntity user, Hand hand, CallbackInfoReturnable> cir) { + public void checkCommandNBT(World world, PlayerEntity user, Hand hand, + CallbackInfoReturnable> cir) { if (tryToExecuteNBTCommand(hand, world)) { cir.setReturnValue(TypedActionResult.pass((ItemStack) ((Object) this))); } @@ -49,30 +50,33 @@ public void checkCommandNBT(ItemUsageContext context, CallbackInfoReturnable