Skip to content

Commit

Permalink
In inventory no drop
Browse files Browse the repository at this point in the history
  • Loading branch information
Fesaa committed Aug 8, 2023
1 parent caaa0c2 commit 7731b1a
Show file tree
Hide file tree
Showing 4 changed files with 175 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package org.cubepanion.v1_19_2.mixins;

import net.minecraft.client.multiplayer.MultiPlayerGameMode;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.ClickType;
import net.minecraft.world.inventory.Slot;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.TieredItem;
import org.cubepanion.core.Cubepanion;
import org.cubepanion.core.utils.CubeGame;
import org.spongepowered.asm.mixin.Mixin;
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;

@Mixin(MultiPlayerGameMode.class)
public class MultiPlayerGameModeMixin {

@Unique
private Cubepanion cubepanion$addon = null;

@Inject(at = @At("HEAD"), method = "handleInventoryMouseClick", cancellable = true)
private void handleInventoryMouseClick(int $$0, int $$1, int $$2, ClickType $$3, Player $$4, CallbackInfo ci) {
if ($$3 != ClickType.THROW) {
return;
}
if (cubepanion$addon == null) {
cubepanion$addon = Cubepanion.get();
}
AbstractContainerMenu inv = $$4.containerMenu;
Slot slot = inv.getSlot($$1);
ItemStack itemStack = slot.getItem();

if ((itemStack.getItem() instanceof TieredItem || itemStack.is(Items.BOW) || itemStack.getItem() instanceof ArmorItem)
&& cubepanion$addon.configuration().getQolConfig().getNoDropSkyBlock().get()
&& cubepanion$addon.getManager().getDivision().equals(CubeGame.SKYBLOCK)) {
ci.cancel();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package org.cubepanion.v1_19_3.mixins;

import net.minecraft.client.multiplayer.MultiPlayerGameMode;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.ClickType;
import net.minecraft.world.inventory.Slot;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.TieredItem;
import org.cubepanion.core.Cubepanion;
import org.cubepanion.core.utils.CubeGame;
import org.spongepowered.asm.mixin.Mixin;
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;

@Mixin(MultiPlayerGameMode.class)
public class MultiPlayerGameModeMixin {

@Unique
private Cubepanion cubepanion$addon = null;

@Inject(at = @At("HEAD"), method = "handleInventoryMouseClick", cancellable = true)
private void handleInventoryMouseClick(int $$0, int $$1, int $$2, ClickType $$3, Player $$4, CallbackInfo ci) {
if ($$3 != ClickType.THROW) {
return;
}
if (cubepanion$addon == null) {
cubepanion$addon = Cubepanion.get();
}
AbstractContainerMenu inv = $$4.containerMenu;
Slot slot = inv.getSlot($$1);
ItemStack itemStack = slot.getItem();

if ((itemStack.getItem() instanceof TieredItem || itemStack.is(Items.BOW) || itemStack.getItem() instanceof ArmorItem)
&& cubepanion$addon.configuration().getQolConfig().getNoDropSkyBlock().get()
&& cubepanion$addon.getManager().getDivision().equals(CubeGame.SKYBLOCK)) {
ci.cancel();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package org.cubepanion.v1_19_4.mixins;

import net.minecraft.client.multiplayer.MultiPlayerGameMode;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.ClickType;
import net.minecraft.world.inventory.Slot;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import org.cubepanion.core.Cubepanion;
import org.cubepanion.core.utils.CubeGame;
import org.spongepowered.asm.mixin.Mixin;
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;

@Mixin(MultiPlayerGameMode.class)
public class MultiPlayerGameModeMixin {

@Unique
private Cubepanion cubepanion$addon = null;

@Inject(at = @At("HEAD"), method = "handleInventoryMouseClick", cancellable = true)
private void handleInventoryMouseClick(int $$0, int $$1, int $$2, ClickType $$3, Player $$4, CallbackInfo ci) {
if ($$3 != ClickType.THROW) {
return;
}
if (cubepanion$addon == null) {
cubepanion$addon = Cubepanion.get();
}
AbstractContainerMenu inv = $$4.containerMenu;
Slot slot = inv.getSlot($$1);
ItemStack itemStack = slot.getItem();
if ((itemStack.is(ItemTags.TOOLS) || itemStack.is(Items.BOW) || itemStack.getItem() instanceof ArmorItem)
&& cubepanion$addon.configuration().getQolConfig().getNoDropSkyBlock().get()
&& cubepanion$addon.getManager().getDivision().equals(CubeGame.SKYBLOCK)) {
ci.cancel();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package org.cubepanion.v1_20_1.mixins;

import net.minecraft.client.multiplayer.MultiPlayerGameMode;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.inventory.AbstractContainerMenu;
import net.minecraft.world.inventory.ClickType;
import net.minecraft.world.inventory.Slot;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import org.cubepanion.core.Cubepanion;
import org.cubepanion.core.utils.CubeGame;
import org.spongepowered.asm.mixin.Mixin;
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;

@Mixin(MultiPlayerGameMode.class)
public class MultiPlayerGameModeMixin {

@Unique
private Cubepanion cubepanion$addon = null;

@Inject(at = @At("HEAD"), method = "handleInventoryMouseClick", cancellable = true)
private void handleInventoryMouseClick(int $$0, int $$1, int $$2, ClickType $$3, Player $$4, CallbackInfo ci) {
if ($$3 != ClickType.THROW) {
return;
}
if (cubepanion$addon == null) {
cubepanion$addon = Cubepanion.get();
}
AbstractContainerMenu inv = $$4.containerMenu;
Slot slot = inv.getSlot($$1);
ItemStack itemStack = slot.getItem();
if ((itemStack.is(ItemTags.TOOLS) || itemStack.is(Items.BOW) || itemStack.getItem() instanceof ArmorItem)
&& cubepanion$addon.configuration().getQolConfig().getNoDropSkyBlock().get()
&& cubepanion$addon.getManager().getDivision().equals(CubeGame.SKYBLOCK)) {
ci.cancel();
}
}
}

0 comments on commit 7731b1a

Please sign in to comment.