refactor: remove

This commit is contained in:
Chayapak Supasakul 2025-04-15 10:08:53 +07:00
parent 0f9b6f4cdb
commit 7ed4d1ee84
Signed by: ChomeNS
SSH key fingerprint: SHA256:0YoxhdyXsgbc0nfeB2N6FYE60mxMU7DS4uCUMaw2mvA
6 changed files with 76 additions and 75 deletions

View file

@ -1,8 +1,6 @@
package land.chipmunk.chipmunkmod.mixin; package land.chipmunk.chipmunkmod.mixin;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import land.chipmunk.chipmunkmod.ChipmunkMod; import land.chipmunk.chipmunkmod.ChipmunkMod;
import land.chipmunk.chipmunkmod.data.ChomeNSBotCommand; import land.chipmunk.chipmunkmod.data.ChomeNSBotCommand;
import land.chipmunk.chipmunkmod.modules.ChomeNSBotCommandSuggestions; import land.chipmunk.chipmunkmod.modules.ChomeNSBotCommandSuggestions;
@ -38,8 +36,8 @@ public abstract class ChatScreenMixin {
chatField.setMaxLength(Integer.MAX_VALUE); chatField.setMaxLength(Integer.MAX_VALUE);
} }
@WrapMethod(method = "sendMessage") @Inject(method = "sendMessage", at = @At("HEAD"), cancellable = true)
private void sendMessage (final String chatText, final boolean addToHistory, final Operation<Void> original) { private void sendMessage (final String chatText, final boolean addToHistory, final CallbackInfo ci) {
final MinecraftClient client = MinecraftClient.getInstance(); final MinecraftClient client = MinecraftClient.getInstance();
if (addToHistory) { if (addToHistory) {
@ -98,6 +96,7 @@ public abstract class ChatScreenMixin {
) { ) {
try { try {
BotValidationUtilities.chomens(chatText.substring(prefixLength)); BotValidationUtilities.chomens(chatText.substring(prefixLength));
ci.cancel();
return; return;
} catch (final Exception ignored) { } catch (final Exception ignored) {
} }
@ -112,6 +111,6 @@ public abstract class ChatScreenMixin {
client.player.networkHandler.sendChatMessage(chatText); client.player.networkHandler.sendChatMessage(chatText);
} }
// :D ci.cancel();
} }
} }

View file

@ -17,6 +17,9 @@ import net.minecraft.sound.SoundEvent;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -28,11 +31,11 @@ public class ClientConnectionMixin {
@Unique @Unique
private static final Pattern CUSTOM_PITCH_PATTERN = Pattern.compile(".*\\.pitch\\.(.*)"); private static final Pattern CUSTOM_PITCH_PATTERN = Pattern.compile(".*\\.pitch\\.(.*)");
@WrapMethod(method = "handlePacket") @Inject(method = "handlePacket", at = @At("HEAD"), cancellable = true)
private static <T extends PacketListener> void handlePacket ( private static <T extends PacketListener> void handlePacket (
final Packet<T> packet, final Packet<T> packet,
final PacketListener packetListener, final PacketListener packetListener,
final Operation<Void> original final CallbackInfo ci
) { ) {
for (final Listener listener : ListenerManager.listeners) { for (final Listener listener : ListenerManager.listeners) {
listener.packetReceived(packet); listener.packetReceived(packet);
@ -45,7 +48,7 @@ public class ClientConnectionMixin {
packet instanceof final ParticleS2CPacket t_packet packet instanceof final ParticleS2CPacket t_packet
&& t_packet.getCount() > MAX_PARTICLES_PER_PACKET && t_packet.getCount() > MAX_PARTICLES_PER_PACKET
) { ) {
return; ci.cancel();
} else if (packet instanceof final PlaySoundS2CPacket t_packet) { } else if (packet instanceof final PlaySoundS2CPacket t_packet) {
final SoundEvent soundEvent = t_packet.getSound().value(); final SoundEvent soundEvent = t_packet.getSound().value();
@ -53,10 +56,7 @@ public class ClientConnectionMixin {
final Matcher matcher = CUSTOM_PITCH_PATTERN.matcher(sound.getPath()); final Matcher matcher = CUSTOM_PITCH_PATTERN.matcher(sound.getPath());
if (!matcher.find()) { if (!matcher.find()) return;
original.call(packet, packetListener);
return;
}
try { try {
final String stringPitch = matcher.group(1); final String stringPitch = matcher.group(1);
@ -65,10 +65,7 @@ public class ClientConnectionMixin {
final ClientWorld world = client.world; final ClientWorld world = client.world;
if (world == null) { if (world == null) return;
original.call(packet, packetListener);
return;
}
final SoundEvent newSound = SoundEvent.of( final SoundEvent newSound = SoundEvent.of(
Identifier.of( Identifier.of(
@ -93,15 +90,16 @@ public class ClientConnectionMixin {
t_packet.getSeed() t_packet.getSeed()
)); ));
ci.cancel();
return; return;
} catch (final NumberFormatException e) { } catch (final NumberFormatException e) {
ChipmunkMod.LOGGER.error("Failed to parse custom pitch", e); ChipmunkMod.LOGGER.error("Failed to parse custom pitch", e);
} }
if (t_packet.getVolume() == 1 && sound.getPath().equals("entity.enderman.scream")) return; if (t_packet.getVolume() == 1 && sound.getPath().equals("entity.enderman.scream")) {
ci.cancel();
}
} }
original.call(packet, packetListener);
} }
@WrapMethod(method = "send(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/PacketCallbacks;Z)V") @WrapMethod(method = "send(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/PacketCallbacks;Z)V")

View file

@ -1,6 +1,5 @@
package land.chipmunk.chipmunkmod.mixin; package land.chipmunk.chipmunkmod.mixin;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.CommandDispatcher;
@ -12,11 +11,11 @@ import land.chipmunk.chipmunkmod.modules.*;
import land.chipmunk.chipmunkmod.modules.custom_chat.CustomChat; import land.chipmunk.chipmunkmod.modules.custom_chat.CustomChat;
import net.minecraft.client.gui.hud.InGameHud; import net.minecraft.client.gui.hud.InGameHud;
import net.minecraft.client.network.ClientPlayNetworkHandler; import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.network.message.MessageHandler;
import net.minecraft.command.CommandRegistryAccess; import net.minecraft.command.CommandRegistryAccess;
import net.minecraft.command.CommandSource; import net.minecraft.command.CommandSource;
import net.minecraft.network.packet.s2c.play.CommandTreeS2CPacket; import net.minecraft.network.packet.s2c.play.CommandTreeS2CPacket;
import net.minecraft.network.packet.s2c.play.GameJoinS2CPacket; import net.minecraft.network.packet.s2c.play.GameJoinS2CPacket;
import net.minecraft.network.packet.s2c.play.GameMessageS2CPacket;
import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.registry.DynamicRegistryManager;
import net.minecraft.resource.featuretoggle.FeatureSet; import net.minecraft.resource.featuretoggle.FeatureSet;
import net.minecraft.text.PlainTextContent; import net.minecraft.text.PlainTextContent;
@ -59,15 +58,17 @@ public class ClientPlayNetworkHandlerMixin {
KaboomCheck.INSTANCE.onCommandTree(this.commandDispatcher); KaboomCheck.INSTANCE.onCommandTree(this.commandDispatcher);
} }
@WrapOperation( @Inject(
method = "onGameMessage", method = "onGameMessage",
at = @At( at = @At(
value = "INVOKE", value = "INVOKE",
target = "Lnet/minecraft/client/network/message/MessageHandler;onGameMessage(Lnet/minecraft/text/Text;Z)V" target = "Lnet/minecraft/client/network/message/MessageHandler;onGameMessage(Lnet/minecraft/text/Text;Z)V"
),
cancellable = true
) )
) private void onGameMessage (final GameMessageS2CPacket packet, final CallbackInfo ci) {
private void onGameMessage (final MessageHandler instance, final Text message, final boolean overlay, final Operation<Void> original) { final Text message = packet.content();
try {
if ( if (
( (
RainbowName.INSTANCE.enabled && RainbowName.INSTANCE.enabled &&
@ -83,7 +84,10 @@ public class ClientPlayNetworkHandlerMixin {
|| translatableTextContent.getKey().equals("قيادة المجموعة: %s") || translatableTextContent.getKey().equals("قيادة المجموعة: %s")
) )
) )
) return; ) {
ci.cancel();
return;
}
for (final Listener listener : ListenerManager.listeners) { for (final Listener listener : ListenerManager.listeners) {
listener.chatMessageReceived(message); listener.chatMessageReceived(message);
@ -93,12 +97,7 @@ public class ClientPlayNetworkHandlerMixin {
message.getSiblings().size() > 1 message.getSiblings().size() > 1
&& message.getSiblings().getFirst().getContent() instanceof final PlainTextContent textContent && message.getSiblings().getFirst().getContent() instanceof final PlainTextContent textContent
&& textContent.string().equals(ChomeNSBotCommandSuggestions.REQUEST_SUGGESTIONS_ID) && textContent.string().equals(ChomeNSBotCommandSuggestions.REQUEST_SUGGESTIONS_ID)
) return; ) ci.cancel();
} catch (final Exception e) {
e.printStackTrace();
}
original.call(instance, message, overlay);
} }
@WrapOperation( @WrapOperation(
@ -121,11 +120,12 @@ public class ClientPlayNetworkHandlerMixin {
// so I do not ignore them // so I do not ignore them
} }
@WrapMethod(method = "sendChatMessage") @Inject(method = "sendChatMessage", at = @At("HEAD"), cancellable = true)
private void sendChatMessage (final String content, final Operation<Void> original) { private void sendChatMessage (final String content, final CallbackInfo ci) {
final CommandManager commandManager = CommandManager.INSTANCE; final CommandManager commandManager = CommandManager.INSTANCE;
if (content.startsWith(commandManager.prefix)) { if (content.startsWith(commandManager.prefix)) {
commandManager.executeCommand(content.substring(commandManager.prefix.length())); commandManager.executeCommand(content.substring(commandManager.prefix.length()));
ci.cancel();
return; return;
} }
@ -135,7 +135,6 @@ public class ClientPlayNetworkHandlerMixin {
} }
CustomChat.INSTANCE.chat(content); CustomChat.INSTANCE.chat(content);
ci.cancel();
// :D
} }
} }

View file

@ -1,19 +1,22 @@
package land.chipmunk.chipmunkmod.mixin; package land.chipmunk.chipmunkmod.mixin;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import net.minecraft.client.particle.ElderGuardianAppearanceParticle; import net.minecraft.client.particle.ElderGuardianAppearanceParticle;
import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.Particle;
import net.minecraft.client.world.ClientWorld; import net.minecraft.client.world.ClientWorld;
import net.minecraft.particle.SimpleParticleType; import net.minecraft.particle.SimpleParticleType;
import org.spongepowered.asm.mixin.Mixin; 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(ElderGuardianAppearanceParticle.Factory.class)
public class ElderGuardianAppearanceParticleMixin { public class ElderGuardianAppearanceParticleMixin {
@WrapMethod( @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;DDDDDD)Lnet/minecraft/client/particle/Particle;",
at = @At("RETURN"),
cancellable = true
) )
private Particle createParticle ( private void createParticle (
final SimpleParticleType simpleParticleType, final SimpleParticleType simpleParticleType,
final ClientWorld clientWorld, final ClientWorld clientWorld,
final double d, final double d,
@ -22,9 +25,9 @@ public class ElderGuardianAppearanceParticleMixin {
final double g, final double g,
final double h, final double h,
final double i, final double i,
final Operation<Particle> original final CallbackInfoReturnable<Particle> cir
) { ) {
// slash scare command // slash scare command
return null; cir.setReturnValue(null);
} }
} }

View file

@ -1,15 +1,16 @@
package land.chipmunk.chipmunkmod.mixin; package land.chipmunk.chipmunkmod.mixin;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import net.minecraft.client.sound.SoundInstance; import net.minecraft.client.sound.SoundInstance;
import net.minecraft.client.sound.SoundSystem; import net.minecraft.client.sound.SoundSystem;
import org.spongepowered.asm.mixin.Mixin; 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(SoundSystem.class) @Mixin(SoundSystem.class)
public class SoundSystemMixin { public class SoundSystemMixin {
@WrapMethod(method = "getAdjustedPitch") @Inject(method = "getAdjustedPitch", at = @At("RETURN"), cancellable = true)
private float getAdjustedPitch (final SoundInstance sound, final Operation<Float> original) { private void getAdjustedPitch (final SoundInstance sound, final CallbackInfoReturnable<Float> cir) {
return sound.getPitch(); cir.setReturnValue(sound.getPitch());
} }
} }

View file

@ -1,15 +1,16 @@
package land.chipmunk.chipmunkmod.mixin; package land.chipmunk.chipmunkmod.mixin;
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
import net.minecraft.util.StringHelper; import net.minecraft.util.StringHelper;
import org.spongepowered.asm.mixin.Mixin; 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(StringHelper.class) @Mixin(StringHelper.class)
public class StringHelperMixin { public class StringHelperMixin {
@WrapMethod(method = "isValidChar") @Inject(method = "isValidChar", at = @At("RETURN"), cancellable = true)
private static boolean isValidChar (final char c, final Operation<Boolean> original) { private static void isValidChar (final char c, final CallbackInfoReturnable<Boolean> cir) {
// very legal [NUL] [LF] § // very legal [NUL] [LF] § Allowance.
return true; cir.setReturnValue(true);
} }
} }