diff options
author | ThatGravyBoat <thatgravyboat@gmail.com> | 2021-07-06 15:10:29 -0230 |
---|---|---|
committer | ThatGravyBoat <thatgravyboat@gmail.com> | 2021-07-06 15:10:29 -0230 |
commit | 6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a (patch) | |
tree | 7451e53ceeae3c324d83a7faba83ce80005e6f23 /src/main/java/com/thatgravyboat/skyblockhud/mixins/MixinNetHandlerPlayClient.java | |
download | skyblockhud-6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a.tar.gz skyblockhud-6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a.tar.bz2 skyblockhud-6d8e1e5659f64a4f9ba86d6ab5bbc8e688faf22a.zip |
Initial Commit
Diffstat (limited to 'src/main/java/com/thatgravyboat/skyblockhud/mixins/MixinNetHandlerPlayClient.java')
-rw-r--r-- | src/main/java/com/thatgravyboat/skyblockhud/mixins/MixinNetHandlerPlayClient.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/main/java/com/thatgravyboat/skyblockhud/mixins/MixinNetHandlerPlayClient.java b/src/main/java/com/thatgravyboat/skyblockhud/mixins/MixinNetHandlerPlayClient.java new file mode 100644 index 0000000..679da20 --- /dev/null +++ b/src/main/java/com/thatgravyboat/skyblockhud/mixins/MixinNetHandlerPlayClient.java @@ -0,0 +1,53 @@ +package com.thatgravyboat.skyblockhud.mixins; + +import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.network.play.server.S3EPacketTeams; +import net.minecraft.scoreboard.Scoreboard; +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.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +@Mixin(NetHandlerPlayClient.class) +public class MixinNetHandlerPlayClient { + + /* DISABLE UNTIL NEW SYSTEM + @Inject(method = "handleSetSlot", at = @At("HEAD")) + public void onHandleSetSlot(S2FPacketSetSlot packetIn, CallbackInfo ci){ + if (SkyblockHud.hasSkyblockScoreboard()) { + Minecraft mc = Minecraft.getMinecraft(); + PacketThreadUtil.checkThreadAndEnqueue(packetIn, mc.getNetHandler(), mc); + if (packetIn.func_149175_c() == 0) { + ItemStack stack = packetIn.func_149174_e(); + + if (stack != null && stack.hasTagCompound()) { + if (stack.getTagCompound().hasKey("ExtraAttributes")) { + NBTTagCompound extraAttributes = stack.getTagCompound().getCompoundTag("ExtraAttributes"); + String id = extraAttributes.getString("id"); + ItemStack slotStack = Minecraft.getMinecraft().thePlayer.inventoryContainer.getSlot(packetIn.func_149173_d()).getStack(); + int changeAmount = stack.stackSize - (slotStack == null ? 0 : slotStack.stackSize); + String eId = null; + int eLvl = -1; + if (extraAttributes.hasKey("enchantments")) { + NBTTagCompound enchantments = extraAttributes.getCompoundTag("enchantments"); + if (enchantments.getKeySet().size() == 1) { + for (String e : enchantments.getKeySet()) { eId = e; break; } + if (eId != null) eLvl = enchantments.getInteger(eId); + } + } + TrackerHandler.onItemAdded(id, changeAmount, eId, eLvl); + } + } + } + } + } + */ + + @Inject(method = "handleTeams", locals = LocalCapture.CAPTURE_FAILHARD, at = @At(value = "INVOKE", target = "Lnet/minecraft/network/play/server/S3EPacketTeams;getAction()I", ordinal = 0, shift = At.Shift.BEFORE), cancellable = true) + public void handleTeams(S3EPacketTeams packetIn, CallbackInfo ci, Scoreboard scoreboard){ + //This stops Hypixel from being stupid and spamming our logs because they dont have different ids for things. + if (scoreboard.getTeam(packetIn.getName()) != null && packetIn.getAction() == 0) ci.cancel(); + } + +} |