From a335674b36c784b7cb330973dd0eac4aead93da4 Mon Sep 17 00:00:00 2001 From: Astoria Date: Sat, 18 Mar 2023 11:36:51 -0500 Subject: [PATCH] Add config option for the inventory type. --- .../afloydironchest/IronChestMain.java | 12 ++++++------ .../mixin/MixinEntityPlayerMP.java | 16 +++++++++++++++- .../mixin/MixinNetClientHandler.java | 16 +++++++++++++++- src/main/resources/assets/ironchest/config.toml | 3 ++- 4 files changed, 38 insertions(+), 9 deletions(-) diff --git a/src/main/java/net/brokenmoon/afloydironchest/IronChestMain.java b/src/main/java/net/brokenmoon/afloydironchest/IronChestMain.java index 1b025dc..f6ca5c8 100644 --- a/src/main/java/net/brokenmoon/afloydironchest/IronChestMain.java +++ b/src/main/java/net/brokenmoon/afloydironchest/IronChestMain.java @@ -31,10 +31,10 @@ public class IronChestMain implements ModInitializer { LOGGER.info("AFloydIronChest initialized."); //Config Toml toml = new Toml().read(this.getConfig()); - int ironChestId = toml.getLong("ids.ironChestID").intValue(); - int goldChestId = toml.getLong("ids.goldChestID").intValue(); - int diamondChestId = toml.getLong("ids.diamondChestID").intValue(); - int steelChestId = toml.getLong("ids.steelChestID").intValue(); + int ironChestId = toml.getLong("ids.ironChestID", (long)800).intValue(); + int goldChestId = toml.getLong("ids.goldChestID", (long)801).intValue(); + int diamondChestId = toml.getLong("ids.diamondChestID", (long)802).intValue(); + int steelChestId = toml.getLong("ids.steelChestID", (long)803).intValue(); //Blocks @@ -95,14 +95,14 @@ public class IronChestMain implements ModInitializer { }); } - public File getConfig() { + public static File getConfig() { File config = new File("config/AstoriaIronChest.toml"); if (!config.exists()) { LOGGER.warn("Config For afloydironchest Not Found! Creating new config based upon default :)"); InputStream in; OutputStream out; try { - in = getClass().getClassLoader().getResourceAsStream("assets/ironchest/config.toml"); + in = IronChestMain.class.getClassLoader().getResourceAsStream("assets/ironchest/config.toml"); out = new FileOutputStream(config); byte[] buffer = new byte[1024]; int length; diff --git a/src/main/java/net/brokenmoon/afloydironchest/mixin/MixinEntityPlayerMP.java b/src/main/java/net/brokenmoon/afloydironchest/mixin/MixinEntityPlayerMP.java index deda0f0..3f4df73 100644 --- a/src/main/java/net/brokenmoon/afloydironchest/mixin/MixinEntityPlayerMP.java +++ b/src/main/java/net/brokenmoon/afloydironchest/mixin/MixinEntityPlayerMP.java @@ -1,5 +1,7 @@ package net.brokenmoon.afloydironchest.mixin; +import com.moandjiezana.toml.Toml; +import net.brokenmoon.afloydironchest.IronChestMain; import net.brokenmoon.afloydironchest.MixinInterfaces.IEntityPlayerMP; import net.brokenmoon.afloydironchest.gui.ContainerWideChest; import net.minecraft.src.*; @@ -17,6 +19,8 @@ public class MixinEntityPlayerMP implements IEntityPlayerMP { @Shadow public NetServerHandler playerNetServerHandler; + public int ironchest_windowid = 0; + public void displayGUIIronChest(IInventory iinventory) { this.getNextWindowId(); NetServerHandler.logger.info(((EntityPlayerMP)(Object)this).username + " interacted with chest at (" + ((EntityPlayerMP)(Object)this).posX + ", " + ((EntityPlayerMP)(Object)this).posY + ", " + ((EntityPlayerMP)(Object)this).posZ + ")"); @@ -29,9 +33,19 @@ public class MixinEntityPlayerMP implements IEntityPlayerMP { public void displayGUIDiamondChest(IInventory iinventory) { this.getNextWindowId(); NetServerHandler.logger.info(((EntityPlayerMP)(Object)this).username + " interacted with chest at (" + ((EntityPlayerMP)(Object)this).posX + ", " + ((EntityPlayerMP)(Object)this).posY + ", " + ((EntityPlayerMP)(Object)this).posZ + ")"); - this.playerNetServerHandler.sendPacket(new Packet100OpenWindow(this.currentWindowId, 7, iinventory.getInvName(), iinventory.getSizeInventory())); + this.playerNetServerHandler.sendPacket(new Packet100OpenWindow(this.currentWindowId, getIronchest_windowid(), iinventory.getInvName(), iinventory.getSizeInventory())); ((EntityPlayerMP)(Object)this).craftingInventory = new ContainerWideChest(((EntityPlayerMP)(Object)this).inventory, iinventory); ((EntityPlayerMP)(Object)this).craftingInventory.windowId = this.currentWindowId; ((EntityPlayerMP)(Object)this).craftingInventory.onContainerInit(((EntityPlayerMP)(Object)this)); } + + public int getIronchest_windowid(){ + if (ironchest_windowid != 0 ){ + return ironchest_windowid; + } else{ + Toml toml = new Toml().read(IronChestMain.getConfig()); + ironchest_windowid = toml.getLong("ids.diamondWindowID", (long)7).intValue(); + return getIronchest_windowid(); + } + } } diff --git a/src/main/java/net/brokenmoon/afloydironchest/mixin/MixinNetClientHandler.java b/src/main/java/net/brokenmoon/afloydironchest/mixin/MixinNetClientHandler.java index bdf382e..686e330 100644 --- a/src/main/java/net/brokenmoon/afloydironchest/mixin/MixinNetClientHandler.java +++ b/src/main/java/net/brokenmoon/afloydironchest/mixin/MixinNetClientHandler.java @@ -1,5 +1,7 @@ package net.brokenmoon.afloydironchest.mixin; +import com.moandjiezana.toml.Toml; +import net.brokenmoon.afloydironchest.IronChestMain; import net.brokenmoon.afloydironchest.MixinInterfaces.IEntityPlayerSP; import net.brokenmoon.afloydironchest.tileEntities.TileEntityDiamondChest; import net.minecraft.client.Minecraft; @@ -14,16 +16,28 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(value = NetClientHandler.class, remap = false) public class MixinNetClientHandler { + private int ironchest_windowid = 0; + @Shadow private Minecraft mc; @Inject(method = "handleOpenWindow", at = @At("TAIL")) public void injectMethod(Packet100OpenWindow packet100openwindow, CallbackInfo info) { - if (packet100openwindow.inventoryType == 7) { + if (packet100openwindow.inventoryType == getIronchest_windowid()) { TileEntityDiamondChest dchest = new TileEntityDiamondChest(); ((IEntityPlayerSP)this.mc.thePlayer).displayGUIDiamondChest(dchest); this.mc.thePlayer.craftingInventory.windowId = packet100openwindow.windowId; } } + public int getIronchest_windowid(){ + if (ironchest_windowid != 0 ){ + return ironchest_windowid; + } else{ + Toml toml = new Toml().read(IronChestMain.getConfig()); + ironchest_windowid = toml.getLong("ids.diamondWindowID", (long)7).intValue(); + return getIronchest_windowid(); + } + } + } diff --git a/src/main/resources/assets/ironchest/config.toml b/src/main/resources/assets/ironchest/config.toml index f04f9fe..54f654e 100644 --- a/src/main/resources/assets/ironchest/config.toml +++ b/src/main/resources/assets/ironchest/config.toml @@ -2,4 +2,5 @@ ironChestID = 900 goldChestID = 901 diamondChestID = 902 -steelChestID = 903 \ No newline at end of file +steelChestID = 903 +diamondWindowID = 7 \ No newline at end of file