diff --git a/gradle.properties b/gradle.properties index eb5d274..b658ebb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs = -Xmx4G org.gradle.parallel = true # Mod Properties -version = 2.0.0 +version = 2.0.1 maven_group = pm.c7.scout archives_base_name = Scout diff --git a/src/main/java/pm/c7/scout/ScoutMixin.java b/src/main/java/pm/c7/scout/ScoutMixin.java index 40de953..e1f198d 100644 --- a/src/main/java/pm/c7/scout/ScoutMixin.java +++ b/src/main/java/pm/c7/scout/ScoutMixin.java @@ -37,7 +37,7 @@ public class ScoutMixin extends AutoMixin { var params = decodeAnnotationParams(an); Type type = (Type)params.get("value"); try { - transformers.put(name, (ClassNodeTransformer) Class.forName(type.getClassName()).newInstance()); + transformers.put(name, (ClassNodeTransformer) Class.forName(type.getClassName()).getDeclaredConstructor().newInstance()); } catch (Exception e) { LOGGER.error("Transformer class for mixin {} not found", name, e); } diff --git a/src/main/java/pm/c7/scout/item/BaseBagItem.java b/src/main/java/pm/c7/scout/item/BaseBagItem.java index 5085840..d72f274 100644 --- a/src/main/java/pm/c7/scout/item/BaseBagItem.java +++ b/src/main/java/pm/c7/scout/item/BaseBagItem.java @@ -220,6 +220,16 @@ public class BaseBagItem extends TrinketItem { } } + @Override + public void tick(ItemStack stack, SlotReference slot, LivingEntity entity) { + var inv = getInventory(stack); + + for (int i = 0; i < inv.size(); i++) { + var invStack = inv.getStack(i); + invStack.inventoryTick(entity.getWorld(), entity, i, false); + } + } + public enum BagType { SATCHEL, POUCH diff --git a/src/main/java/pm/c7/scout/mixin/DefaultedListMixin.java b/src/main/java/pm/c7/scout/mixin/DefaultedListMixin.java new file mode 100644 index 0000000..84dd057 --- /dev/null +++ b/src/main/java/pm/c7/scout/mixin/DefaultedListMixin.java @@ -0,0 +1,24 @@ +package pm.c7.scout.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; + +import net.minecraft.util.collection.DefaultedList; +import pm.c7.scout.ScoutUtil; + +@Mixin(DefaultedList.class) +public class DefaultedListMixin { + @Inject(method = "get", at = @At("HEAD"), cancellable = true) + public void scout$fixIndexingSlots(int index, CallbackInfoReturnable cir) { + var playerScreenHandler = ScoutUtil.getPlayerScreenHandler(); + if (ScoutUtil.isBagSlot(index)) { + if (playerScreenHandler != null) { + cir.setReturnValue(ScoutUtil.getBagSlot(index, playerScreenHandler)); + } else { + cir.setReturnValue(null); + } + } + } +}