diff --git a/build.gradle b/build.gradle index cd6cf6d..735d3db 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ //file:noinspection All plugins { - id 'fabric-loom' version '0.12-SNAPSHOT' + id 'fabric-loom' version '1.0-SNAPSHOT' id 'maven-publish' } @@ -37,6 +37,10 @@ java { withSourcesJar() } +loom { + accessWidenerPath = file("src/main/resources/biginv.accesswidener") +} + publishing { publications { mavenJava(MavenPublication) { diff --git a/gradle.properties b/gradle.properties index 2918a57..397d630 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,8 +4,8 @@ org.gradle.jvmargs = -Xmx1G biginv_version = 0.1.3 -minecraft_version=1.18.2 -mappings_version=1.18.2+build.3 -loader_version=0.14.4 +minecraft_version=1.19.4 +mappings_version=1.19.4+build.2 +loader_version=0.14.19 -fapi_version=0.51.1+1.18.2 +fapi_version=0.78.0+1.19.4 diff --git a/src/main/java/com/sollyw/biginv/BigInvScreenHandlerHelper.java b/src/main/java/com/sollyw/biginv/BigInvScreenHandlerHelper.java index f7ad8da..6fb384d 100644 --- a/src/main/java/com/sollyw/biginv/BigInvScreenHandlerHelper.java +++ b/src/main/java/com/sollyw/biginv/BigInvScreenHandlerHelper.java @@ -1,10 +1,17 @@ package com.sollyw.biginv; +import com.mojang.datafixers.util.Pair; import com.sollyw.biginv.mixin.SlotAccessor; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.mob.MobEntity; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.screen.PlayerScreenHandler; import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.slot.Slot; +import net.minecraft.util.Identifier; public class BigInvScreenHandlerHelper { public static final EquipmentSlot[] EQUIPMENT_SLOT_ORDER = { @@ -36,21 +43,43 @@ public static Slot[] createSlots(ScreenHandler handler, PlayerInventory playerIn -9999)); } - slots[112] = handlerX.biginv$addSlot(SlotConstructors.OFFHAND.init( - playerInventory, - 112, - -9999, - -9999)); + + slots[112] = handlerX.biginv$addSlot(new Slot(playerInventory, 112, -9999, -9999) { + public void setStack(ItemStack stack) { + PlayerScreenHandler.onEquipStack(playerInventory.player, EquipmentSlot.OFFHAND, stack, this.getStack()); // I need to use PlayerEntity owner, not null + super.setStack(stack); + } + public Pair getBackgroundSprite() { + return Pair.of(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE, PlayerScreenHandler.EMPTY_OFFHAND_ARMOR_SLOT); + } + }); for(int i = 0; i < 4; ++i) { int index = 111 - i; - slots[index] = handlerX.biginv$addSlot(SlotConstructors.ARMOUR.init( - playerInventory, - index, - -9999, - -9999, - EQUIPMENT_SLOT_ORDER[i] - )); + final EquipmentSlot equipmentSlot = EQUIPMENT_SLOT_ORDER[i]; + slots[index] = handlerX.biginv$addSlot(new Slot(playerInventory, index, -9999, -9999) { + public void setStack(ItemStack stack) { + PlayerScreenHandler.onEquipStack(playerInventory.player, equipmentSlot, stack, this.getStack()); + super.setStack(stack); + } + + public int getMaxItemCount() { + return 1; + } + + public boolean canInsert(ItemStack stack) { + return equipmentSlot == MobEntity.getPreferredEquipmentSlot(stack); + } + + public boolean canTakeItems(PlayerEntity playerEntity) { + ItemStack itemStack = this.getStack(); + return (itemStack.isEmpty() || playerEntity.isCreative() || !EnchantmentHelper.hasBindingCurse(itemStack)) && super.canTakeItems(playerEntity); + } + + public Pair getBackgroundSprite() { + return Pair.of(PlayerScreenHandler.BLOCK_ATLAS_TEXTURE, PlayerScreenHandler.EMPTY_ARMOR_SLOT_TEXTURES[equipmentSlot.getEntitySlotId()]); + } + }); } handlerX.biginv$setModStage(BigInvModStage.FINISHED); @@ -58,6 +87,7 @@ public static Slot[] createSlots(ScreenHandler handler, PlayerInventory playerIn } public static void positionSlots(Slot[] slots, int offsetX, int offsetY, int armourOffsetX, int armourOffsetY) { + for(int row = 0; row < 5; ++row) { for(int col = 0; col < 18; ++col) { move(slots, diff --git a/src/main/java/com/sollyw/biginv/BigInvScreenHelper.java b/src/main/java/com/sollyw/biginv/BigInvScreenHelper.java index a3e1182..685fb14 100644 --- a/src/main/java/com/sollyw/biginv/BigInvScreenHelper.java +++ b/src/main/java/com/sollyw/biginv/BigInvScreenHelper.java @@ -15,7 +15,7 @@ public class BigInvScreenHelper { public static void patchScreen(MatrixStack matrices, int x, int y, int backgroundWidth, int backgroundHeight, int mouseX, int mouseY, LivingEntity entity, RightmostBehaviour rightmostBehaviour) { - RenderSystem.setShader(GameRenderer::getPositionTexShader); + RenderSystem.setShader(GameRenderer::getPositionTexProgram); RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 1.0f); RenderSystem.setShaderTexture(0, MOD_BACKGROUND); @@ -124,12 +124,12 @@ public static void patchScreen(MatrixStack matrices, int x, int y, int backgroun if (entity != null) { int x0 = x - 49; int y0 = y + backgroundHeight - 91; - InventoryScreen.drawEntity( + InventoryScreen.drawEntity(matrices, x0, y0, 30, - x0 - mouseX, - y0 - 50 - mouseY, + (float)(x0 - mouseX), + (float)(y0 - 50 - mouseY), entity); } } diff --git a/src/main/java/com/sollyw/biginv/SlotConstructors.java b/src/main/java/com/sollyw/biginv/SlotConstructors.java deleted file mode 100644 index fc76efa..0000000 --- a/src/main/java/com/sollyw/biginv/SlotConstructors.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.sollyw.biginv; - -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.inventory.Inventory; -import net.minecraft.screen.PlayerScreenHandler; -import net.minecraft.screen.slot.Slot; - -/** - * Functions to create instances of the anonymous classes in {@link net.minecraft.screen.PlayerScreenHandler} - * to allow other ScreenHandlers to use them rather than copypasting - */ -public class SlotConstructors { - public static ArmourSlot ARMOUR; - public static OffhandSlot OFFHAND; - - static { - try { - /* - Load the classes to ensure the static constructor has been called, - and the above constants are not null - */ - Class.forName(PlayerScreenHandler.class.getName() + "$1"); - Class.forName(PlayerScreenHandler.class.getName() + "$2"); - } catch (ClassNotFoundException e) { - BigInv.LOGGER.error("Poking PlayerScreenHandler anonymous class failed"); - e.printStackTrace(); - } - } - - @FunctionalInterface - public interface ArmourSlot { - Slot init(Inventory inventory, int index, int x, int y, EquipmentSlot equipmentSlot); - } - - @FunctionalInterface - public interface OffhandSlot { - Slot init(Inventory inventory, int index, int x, int y); - } -} diff --git a/src/main/java/com/sollyw/biginv/mixin/CraftingScreenHandlerMixin.java b/src/main/java/com/sollyw/biginv/mixin/CraftingScreenHandlerMixin.java index 4cfbc36..9e99cc7 100644 --- a/src/main/java/com/sollyw/biginv/mixin/CraftingScreenHandlerMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/CraftingScreenHandlerMixin.java @@ -7,13 +7,13 @@ @Mixin(CraftingScreenHandler.class) public abstract class CraftingScreenHandlerMixin { - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = @Constant(intValue = 46)) private int invEnd(int constant) { return 118; } - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = @Constant(intValue = 37)) private int hotbarStart(int constant) { return 100; diff --git a/src/main/java/com/sollyw/biginv/mixin/ForgingScreenHandlerMixin.java b/src/main/java/com/sollyw/biginv/mixin/ForgingScreenHandlerMixin.java index f8f0d7d..0b25550 100644 --- a/src/main/java/com/sollyw/biginv/mixin/ForgingScreenHandlerMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/ForgingScreenHandlerMixin.java @@ -7,7 +7,7 @@ @Mixin(ForgingScreenHandler.class) public abstract class ForgingScreenHandlerMixin { - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = @Constant(intValue = 39)) private int value(int constant) { return 111; diff --git a/src/main/java/com/sollyw/biginv/mixin/GenericContainerScreenHandlerMixin.java b/src/main/java/com/sollyw/biginv/mixin/GenericContainerScreenHandlerMixin.java index bc65c27..19528e3 100644 --- a/src/main/java/com/sollyw/biginv/mixin/GenericContainerScreenHandlerMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/GenericContainerScreenHandlerMixin.java @@ -3,8 +3,8 @@ import com.sollyw.biginv.BigInvModInfo; import com.sollyw.biginv.ScreenHandlerOverrides; import com.sollyw.biginv.ScreenHandlerExt; +import net.minecraft.registry.Registries; import net.minecraft.screen.GenericContainerScreenHandler; -import net.minecraft.util.registry.Registry; import org.spongepowered.asm.mixin.Mixin; @Mixin(GenericContainerScreenHandler.class) @@ -13,7 +13,7 @@ public abstract class GenericContainerScreenHandlerMixin implements ScreenHandle public BigInvModInfo biginv$getModInfo() { if (this.biginv$getType() != null) { return ScreenHandlerOverrides.SCREEN_HANDLER_OVERRIDES.getOrDefault( - Registry.SCREEN_HANDLER.getId(this.biginv$getType()), + Registries.SCREEN_HANDLER.getId(this.biginv$getType()), BigInvModInfo.GENERIC_CONTAINER); } return BigInvModInfo.GENERIC_CONTAINER; diff --git a/src/main/java/com/sollyw/biginv/mixin/MerchantScreenHandlerMixin.java b/src/main/java/com/sollyw/biginv/mixin/MerchantScreenHandlerMixin.java index 48d2ae7..c35b230 100644 --- a/src/main/java/com/sollyw/biginv/mixin/MerchantScreenHandlerMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/MerchantScreenHandlerMixin.java @@ -3,9 +3,9 @@ import com.sollyw.biginv.BigInvModInfo; import com.sollyw.biginv.ScreenHandlerOverrides; import com.sollyw.biginv.ScreenHandlerExt; +import net.minecraft.registry.Registries; import net.minecraft.screen.MerchantScreenHandler; import net.minecraft.screen.slot.Slot; -import net.minecraft.util.registry.Registry; import net.minecraft.village.MerchantInventory; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -30,7 +30,7 @@ private Slot addSlot(Slot par1) { public BigInvModInfo biginv$getModInfo() { if (this.biginv$getType() != null) { return ScreenHandlerOverrides.SCREEN_HANDLER_OVERRIDES.getOrDefault( - Registry.SCREEN_HANDLER.getId(this.biginv$getType()), + Registries.SCREEN_HANDLER.getId(this.biginv$getType()), BigInvModInfo.MERCHANT); } return BigInvModInfo.MERCHANT; diff --git a/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandler$1Mixin.java b/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandler$1Mixin.java deleted file mode 100644 index 6c0c913..0000000 --- a/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandler$1Mixin.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.sollyw.biginv.mixin; - -import com.sollyw.biginv.SlotConstructors; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.inventory.Inventory; -import net.minecraft.screen.PlayerScreenHandler; -import net.minecraft.screen.slot.Slot; -import org.spongepowered.asm.mixin.Mixin; - -@SuppressWarnings("unused") -@Mixin(targets = "net/minecraft/screen/PlayerScreenHandler$1") -public class PlayerScreenHandler$1Mixin { - private PlayerScreenHandler$1Mixin(PlayerScreenHandler playerScreenHandler, Inventory inventory, int i, int j, int k, EquipmentSlot equipmentSlot) { - throw new IllegalStateException(); - } - - static { - SlotConstructors.ARMOUR = ((inventory, index, x, y, equipmentSlot) -> - (Slot) (Object) new PlayerScreenHandler$1Mixin(null, inventory, index, x, y, equipmentSlot)); - } -} diff --git a/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandler$2Mixin.java b/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandler$2Mixin.java deleted file mode 100644 index 3ab0b71..0000000 --- a/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandler$2Mixin.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.sollyw.biginv.mixin; - -import com.sollyw.biginv.SlotConstructors; -import net.minecraft.inventory.Inventory; -import net.minecraft.screen.PlayerScreenHandler; -import net.minecraft.screen.slot.Slot; -import org.spongepowered.asm.mixin.Mixin; - -@SuppressWarnings("unused") -@Mixin(targets = "net/minecraft/screen/PlayerScreenHandler$2") -public class PlayerScreenHandler$2Mixin { - private PlayerScreenHandler$2Mixin(PlayerScreenHandler playerScreenHandler, Inventory inventory, int i, int j, int k) { - throw new IllegalStateException(); - } - - static { - SlotConstructors.OFFHAND = ((inventory, index, x, y) -> - (Slot) (Object) new PlayerScreenHandler$2Mixin(null, inventory, index, x, y)); - } -} diff --git a/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandlerMixin.java b/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandlerMixin.java index 0e790a0..f4325ec 100644 --- a/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandlerMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/PlayerScreenHandlerMixin.java @@ -25,7 +25,7 @@ public static boolean isInHotbar(int slot) { return slot >= 108 && slot <= 126; } - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = { @Constant(intValue = 9, ordinal = 1), @@ -41,7 +41,7 @@ private int mainInvStart(int value) { return 5; } - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = { @Constant(intValue = 36, ordinal = 0), @@ -55,7 +55,7 @@ private int mainInvEndHotbarStart(int value) { return 95; } - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = { @Constant(intValue = 45, ordinal = 1), @@ -73,7 +73,7 @@ private int hotbarEndArmourStart(int value) { return 113; } - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = { @Constant(intValue = 8, ordinal = 0), @@ -83,7 +83,7 @@ private int armourLast(int value) { return 116; } - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = { @Constant(intValue = 9, ordinal = 2), @@ -95,7 +95,7 @@ private int armourEndOffhandStart(int value) { return 117; } - @ModifyConstant(method = "transferSlot", + @ModifyConstant(method = "quickMove", constant = @Constant(intValue = 46, ordinal = 0)) private int offhandEnd(int value) { diff --git a/src/main/java/com/sollyw/biginv/mixin/ScreenHandlerMixin.java b/src/main/java/com/sollyw/biginv/mixin/ScreenHandlerMixin.java index 833758b..6e394d1 100644 --- a/src/main/java/com/sollyw/biginv/mixin/ScreenHandlerMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/ScreenHandlerMixin.java @@ -2,10 +2,10 @@ import com.sollyw.biginv.*; import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.registry.Registries; import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.ScreenHandlerType; import net.minecraft.screen.slot.Slot; -import net.minecraft.util.registry.Registry; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -81,7 +81,7 @@ private void addSlot(Slot slot, CallbackInfoReturnable cir) { public BigInvModInfo biginv$getModInfo() { if (this.type != null) { return ScreenHandlerOverrides.SCREEN_HANDLER_OVERRIDES.getOrDefault( - Registry.SCREEN_HANDLER.getId(this.type), + Registries.SCREEN_HANDLER.getId(this.type), BigInvModInfo.DEFAULT); } @@ -95,6 +95,7 @@ private void addSlot(Slot slot, CallbackInfoReturnable cir) { @Override public void biginv$positionSlots(int offsetX, int offsetY, int armourOffsetX, int armourOffsetY) { + if (this.bigInvSlots != null) { BigInvScreenHandlerHelper.positionSlots(this.bigInvSlots, offsetX, offsetY, armourOffsetX, armourOffsetY); } diff --git a/src/main/java/com/sollyw/biginv/mixin/client/ClientPlayerInteractionManagerMixin.java b/src/main/java/com/sollyw/biginv/mixin/client/ClientPlayerInteractionManagerMixin.java index d62d627..8974842 100644 --- a/src/main/java/com/sollyw/biginv/mixin/client/ClientPlayerInteractionManagerMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/client/ClientPlayerInteractionManagerMixin.java @@ -14,4 +14,4 @@ public abstract class ClientPlayerInteractionManagerMixin { public boolean hasCreativeInventory() { return false; } -} +} \ No newline at end of file diff --git a/src/main/java/com/sollyw/biginv/mixin/client/InGameHudMixin.java b/src/main/java/com/sollyw/biginv/mixin/client/InGameHudMixin.java index c5b714c..9b9d59c 100644 --- a/src/main/java/com/sollyw/biginv/mixin/client/InGameHudMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/client/InGameHudMixin.java @@ -17,8 +17,9 @@ @Mixin(InGameHud.class) public abstract class InGameHudMixin { + @Shadow - protected abstract void renderHotbarItem(int x, int y, float tickDelta, PlayerEntity player, ItemStack stack, int seed); + protected abstract void renderHotbarItem(MatrixStack matrixStack, int i, int j, float f, PlayerEntity playerEntity, ItemStack itemStack, int k); @Shadow private int scaledWidth; @@ -32,18 +33,20 @@ public abstract class InGameHudMixin { @Redirect(method = "renderHotbar", at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(IIFLnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", + target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(Lnet/minecraft/client/util/math/MatrixStack;IIFLnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", ordinal = 0)) - private void renderHotbarItem(InGameHud instance, int x, int y, float tickDelta, PlayerEntity player, ItemStack stack, int seed) { + private void renderHotbarItem(InGameHud instance, MatrixStack matrixStack, int x, int y, float tickDelta, PlayerEntity player, ItemStack itemStack, int seed) { int n2 = (x + 88 - this.scaledWidth / 2) / 20; - this.renderHotbarItem(x - 90, + this.renderHotbarItem(matrixStack, + x - 90, y, tickDelta, player, this.getCameraPlayer().getInventory().main.get(n2), seed); - this.renderHotbarItem(x + 90, + this.renderHotbarItem(matrixStack, + x + 90, y, tickDelta, player, @@ -53,19 +56,19 @@ private void renderHotbarItem(InGameHud instance, int x, int y, float tickDelta, @ModifyArg(method = "renderHotbar", at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(IIFLnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", + target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(Lnet/minecraft/client/util/math/MatrixStack;IIFLnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", ordinal = 1), - index = 0) - private int moveOffhandLeft(int x, int y, float tickDelta, PlayerEntity player, ItemStack stack, int seed) { + index = 1) + private int moveOffhandLeft(int x) { return x - 90; } @ModifyArg(method = "renderHotbar", at = @At(value = "INVOKE", - target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(IIFLnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", + target = "Lnet/minecraft/client/gui/hud/InGameHud;renderHotbarItem(Lnet/minecraft/client/util/math/MatrixStack;IIFLnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/item/ItemStack;I)V", ordinal = 2), - index = 0) - private int moveOffhandRight(int x, int y, float tickDelta, PlayerEntity player, ItemStack stack, int seed) { + index = 1) + private int moveOffhandRight(int x) { return x + 90; } @@ -91,9 +94,9 @@ private int moveOffhandItemRight(MatrixStack matrices, int x, int y, int u, int at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/InGameHud;drawTexture(Lnet/minecraft/client/util/math/MatrixStack;IIIIII)V", ordinal = 0)) - private void drawTexture(InGameHud instance, MatrixStack matrices, int x, int y, int u, int v, int width, int height) { + private void drawTexture(MatrixStack matrices, int x, int y, int u, int v, int width, int height) { RenderSystem.setShaderTexture(0, BigInvScreenHelper.BIG_HOTBAR); - DrawableHelper.drawTexture(matrices, x - 90, y, instance.getZOffset(), 0, 0, width << 1, height, 512, 32); + DrawableHelper.drawTexture(matrices, x - 90, y, 0, 0, width << 1, height, 512, 32); RenderSystem.setShaderTexture(0, WIDGETS_TEXTURE); } diff --git a/src/main/java/com/sollyw/biginv/mixin/client/InventoryScreenMixin.java b/src/main/java/com/sollyw/biginv/mixin/client/InventoryScreenMixin.java index 2e25cb4..f7cad69 100644 --- a/src/main/java/com/sollyw/biginv/mixin/client/InventoryScreenMixin.java +++ b/src/main/java/com/sollyw/biginv/mixin/client/InventoryScreenMixin.java @@ -33,8 +33,8 @@ private void drawBackground(InventoryScreen instance, MatrixStack matrices, floa // nom } - @Redirect(method = "drawBackground", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/InventoryScreen;drawEntity(IIIFFLnet/minecraft/entity/LivingEntity;)V")) - private void drawEntity(int x, int y, int size, float mouseX, float mouseY, LivingEntity entity) { + @Redirect(method = "drawBackground", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/ingame/InventoryScreen;drawEntity(Lnet/minecraft/client/util/math/MatrixStack;IIIFFLnet/minecraft/entity/LivingEntity;)V")) + private void drawEntity(MatrixStack matrices, int x, int y, int size, float mouseX, float mouseY, LivingEntity entity) { // nom } } diff --git a/src/main/resources/biginv.accesswidener b/src/main/resources/biginv.accesswidener new file mode 100644 index 0000000..6dcf010 --- /dev/null +++ b/src/main/resources/biginv.accesswidener @@ -0,0 +1,3 @@ +accessWidener v1 named +accessible method net/minecraft/screen/PlayerScreenHandler onEquipStack (Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/entity/EquipmentSlot;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;)V +accessible field net/minecraft/screen/PlayerScreenHandler EMPTY_ARMOR_SLOT_TEXTURES [Lnet/minecraft/util/Identifier; \ No newline at end of file diff --git a/src/main/resources/biginv.mixins.json b/src/main/resources/biginv.mixins.json index b2b6083..48379e3 100644 --- a/src/main/resources/biginv.mixins.json +++ b/src/main/resources/biginv.mixins.json @@ -5,15 +5,11 @@ "compatibilityLevel": "JAVA_17", "mixins": [ "CraftingScreenHandlerMixin", - "ForgingScreenHandlerMixin", "GenericContainerScreenHandlerMixin", "MerchantScreenHandlerMixin", "PlayerInventoryMixin", - "PlayerScreenHandler$1Mixin", - "PlayerScreenHandler$2Mixin", "PlayerScreenHandlerMixin", "ScreenHandlerMixin", - "ServerPlayNetworkHandlerMixin", "ShulkerBoxScreenHandlerMixin", "SlotAccessor" ], diff --git a/src/main/resources/data/trinkets/slots/chest/group.json b/src/main/resources/data/trinkets/slots/chest/group.json new file mode 100644 index 0000000..0849ebe --- /dev/null +++ b/src/main/resources/data/trinkets/slots/chest/group.json @@ -0,0 +1,3 @@ +{ + "slot_id": 115 +} \ No newline at end of file diff --git a/src/main/resources/data/trinkets/slots/feet/group.json b/src/main/resources/data/trinkets/slots/feet/group.json new file mode 100644 index 0000000..f922349 --- /dev/null +++ b/src/main/resources/data/trinkets/slots/feet/group.json @@ -0,0 +1,3 @@ +{ + "slot_id": 117 +} \ No newline at end of file diff --git a/src/main/resources/data/trinkets/slots/head/group.json b/src/main/resources/data/trinkets/slots/head/group.json new file mode 100644 index 0000000..726f7df --- /dev/null +++ b/src/main/resources/data/trinkets/slots/head/group.json @@ -0,0 +1,3 @@ +{ + "slot_id": 114 +} \ No newline at end of file diff --git a/src/main/resources/data/trinkets/slots/legs/group.json b/src/main/resources/data/trinkets/slots/legs/group.json new file mode 100644 index 0000000..9d56df9 --- /dev/null +++ b/src/main/resources/data/trinkets/slots/legs/group.json @@ -0,0 +1,3 @@ +{ + "slot_id": 116 +} \ No newline at end of file diff --git a/src/main/resources/data/trinkets/slots/offhand/group.json b/src/main/resources/data/trinkets/slots/offhand/group.json new file mode 100644 index 0000000..278b288 --- /dev/null +++ b/src/main/resources/data/trinkets/slots/offhand/group.json @@ -0,0 +1,3 @@ +{ + "slot_id": 113 +} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 25b5b07..627053f 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -6,7 +6,8 @@ "name": "BigInv", "description": "Bigger inventory and hotbar", "authors": [ - "SollyW" + "SollyW", + "Andrew6rant (Andrew Grant)" ], "license": "Public Domain", @@ -20,9 +21,10 @@ "depends": { "fabricloader": ">=0.11.3", "fabric": "*", - "minecraft": "1.18.x", + "minecraft": ">=1.19.4", "java": ">=17" }, + "accessWidener" : "biginv.accesswidener", "recommends": { "roughlyenoughitems": "*"