From 07075fcee22b3b6a2b719b5fe6d8e38970325edb Mon Sep 17 00:00:00 2001 From: Andrei Hava Date: Mon, 29 Dec 2025 11:02:52 +0200 Subject: [PATCH] Rename methods to clearly indicate that they have side effects --- .../block/TileAdventureBackpack.java | 5 +++-- .../client/audio/CopterPackSound.java | 2 +- .../client/models/ModelCopterPack.java | 2 +- .../adventurebackpack/common/Constants.java | 1 + .../adventurebackpack/common/ServerActions.java | 9 +++++---- .../init/recipes/ShapedBackpackRecipe.java | 6 +++--- .../inventory/InventoryAdventure.java | 2 +- .../inventory/InventoryBackpack.java | 7 ++++--- .../item/ItemAdventureBackpack.java | 4 ++-- .../adventurebackpack/item/ItemCoalJetpack.java | 4 ++-- .../adventurebackpack/item/ItemCopterPack.java | 6 +++--- .../adventurebackpack/reference/BackpackTypes.java | 2 +- .../adventurebackpack/util/BackpackUtils.java | 14 ++++++-------- 13 files changed, 33 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/darkona/adventurebackpack/block/TileAdventureBackpack.java b/src/main/java/com/darkona/adventurebackpack/block/TileAdventureBackpack.java index 5b2f9c63..b3bfcb96 100644 --- a/src/main/java/com/darkona/adventurebackpack/block/TileAdventureBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/block/TileAdventureBackpack.java @@ -8,6 +8,7 @@ import static com.darkona.adventurebackpack.common.Constants.TAG_DISABLE_NVISION; import static com.darkona.adventurebackpack.common.Constants.TAG_EXTENDED_COMPOUND; import static com.darkona.adventurebackpack.common.Constants.TAG_INVENTORY; +import static com.darkona.adventurebackpack.common.Constants.TAG_LAST_TIME; import static com.darkona.adventurebackpack.common.Constants.TAG_LEFT_TANK; import static com.darkona.adventurebackpack.common.Constants.TAG_RIGHT_TANK; import static com.darkona.adventurebackpack.common.Constants.TAG_TYPE; @@ -134,7 +135,7 @@ public void loadFromNBT(NBTTagCompound compound) { extendedProperties = backpackTag.getCompoundTag(TAG_EXTENDED_COMPOUND); disableCycling = backpackTag.getBoolean(TAG_DISABLE_CYCLING); disableNVision = backpackTag.getBoolean(TAG_DISABLE_NVISION); - lastTime = backpackTag.getInteger("lastTime"); + lastTime = backpackTag.getInteger(TAG_LAST_TIME); } @Override @@ -161,7 +162,7 @@ public void saveToNBT(NBTTagCompound compound) { backpackTag.setTag(TAG_EXTENDED_COMPOUND, extendedProperties); backpackTag.setBoolean(TAG_DISABLE_CYCLING, disableCycling); backpackTag.setBoolean(TAG_DISABLE_NVISION, disableNVision); - backpackTag.setInteger("lastTime", lastTime); + backpackTag.setInteger(TAG_LAST_TIME, lastTime); compound.setTag(TAG_WEARABLE_COMPOUND, backpackTag); } diff --git a/src/main/java/com/darkona/adventurebackpack/client/audio/CopterPackSound.java b/src/main/java/com/darkona/adventurebackpack/client/audio/CopterPackSound.java index adfeba8c..b1938164 100644 --- a/src/main/java/com/darkona/adventurebackpack/client/audio/CopterPackSound.java +++ b/src/main/java/com/darkona/adventurebackpack/client/audio/CopterPackSound.java @@ -55,7 +55,7 @@ public void update() { return; } - status = BackpackUtils.getWearableCompound(copter).getByte(TAG_STATUS); + status = BackpackUtils.getOrCreateWearableCompound(copter).getByte(TAG_STATUS); if (status == ItemCopterPack.OFF_MODE) { setDonePlaying(); } else if (status == ItemCopterPack.HOVER_MODE) { diff --git a/src/main/java/com/darkona/adventurebackpack/client/models/ModelCopterPack.java b/src/main/java/com/darkona/adventurebackpack/client/models/ModelCopterPack.java index d2cada98..ba75d933 100644 --- a/src/main/java/com/darkona/adventurebackpack/client/models/ModelCopterPack.java +++ b/src/main/java/com/darkona/adventurebackpack/client/models/ModelCopterPack.java @@ -183,7 +183,7 @@ private void renderCopterPack(Entity entity, float scale) { InventoryCopterPack copterInv = new InventoryCopterPack(this.copterPack); copterInv.openInventory(); Axis.isHidden = true; - if (BackpackUtils.getWearableCompound(copterPack).getByte(TAG_STATUS) != ItemCopterPack.OFF_MODE) { + if (BackpackUtils.getOrCreateWearableCompound(copterPack).getByte(TAG_STATUS) != ItemCopterPack.OFF_MODE) { Axis.isHidden = false; int degrees; if (entity.onGround || (entity.isSneaking())) { diff --git a/src/main/java/com/darkona/adventurebackpack/common/Constants.java b/src/main/java/com/darkona/adventurebackpack/common/Constants.java index 9bd4d54f..56cf6ae0 100644 --- a/src/main/java/com/darkona/adventurebackpack/common/Constants.java +++ b/src/main/java/com/darkona/adventurebackpack/common/Constants.java @@ -45,6 +45,7 @@ public enum Source // TODO move to separate class? public static final String TAG_RIGHT_TANK = "rightTank"; public static final String TAG_DISABLE_CYCLING = "disableCycling"; public static final String TAG_DISABLE_NVISION = "disableNVision"; + public static final String TAG_LAST_TIME = "lastTime"; // NBT: Extended Properties public static final String TAG_HOLDING_SPACE = "holdingSpace"; diff --git a/src/main/java/com/darkona/adventurebackpack/common/ServerActions.java b/src/main/java/com/darkona/adventurebackpack/common/ServerActions.java index 73054fb8..2a78379b 100644 --- a/src/main/java/com/darkona/adventurebackpack/common/ServerActions.java +++ b/src/main/java/com/darkona/adventurebackpack/common/ServerActions.java @@ -250,7 +250,8 @@ public static void pistonBootsJump(EntityPlayer player) { } public static void copterSoundAtLogin(EntityPlayer player) { - byte status = BackpackUtils.getWearableCompound(BackpackProperty.get(player).getWearable()).getByte(TAG_STATUS); + byte status = BackpackUtils.getOrCreateWearableCompound(BackpackProperty.get(player).getWearable()) + .getByte(TAG_STATUS); if (!player.worldObj.isRemote && status != ItemCopterPack.OFF_MODE) { ModNetwork.sendToNearby(new EntitySoundPacket.Message(EntitySoundPacket.COPTER_SOUND, player), player); @@ -258,7 +259,7 @@ public static void copterSoundAtLogin(EntityPlayer player) { } public static void jetpackSoundAtLogin(EntityPlayer player) { - boolean isBoiling = BackpackUtils.getWearableCompound(BackpackProperty.get(player).getWearable()) + boolean isBoiling = BackpackUtils.getOrCreateWearableCompound(BackpackProperty.get(player).getWearable()) .getBoolean("boiling"); if (!player.worldObj.isRemote && isBoiling) { @@ -271,7 +272,7 @@ public static void jetpackSoundAtLogin(EntityPlayer player) { public static void toggleCopterPack(EntityPlayer player, ItemStack copter, byte type) { String message = ""; boolean actionPerformed = false; - byte mode = BackpackUtils.getWearableCompound(copter).getByte(TAG_STATUS); + byte mode = BackpackUtils.getOrCreateWearableCompound(copter).getByte(TAG_STATUS); byte newMode = ItemCopterPack.OFF_MODE; if (type == WearableModePacket.COPTER_ON_OFF) { @@ -305,7 +306,7 @@ public static void toggleCopterPack(EntityPlayer player, ItemStack copter, byte } if (actionPerformed) { - BackpackUtils.getWearableCompound(copter).setByte(TAG_STATUS, newMode); + BackpackUtils.getOrCreateWearableCompound(copter).setByte(TAG_STATUS, newMode); if (player.worldObj.isRemote && ConfigHandler.chatSpam) { player.addChatComponentMessage(new ChatComponentTranslation(message)); } diff --git a/src/main/java/com/darkona/adventurebackpack/init/recipes/ShapedBackpackRecipe.java b/src/main/java/com/darkona/adventurebackpack/init/recipes/ShapedBackpackRecipe.java index ef019177..caa695cf 100644 --- a/src/main/java/com/darkona/adventurebackpack/init/recipes/ShapedBackpackRecipe.java +++ b/src/main/java/com/darkona/adventurebackpack/init/recipes/ShapedBackpackRecipe.java @@ -38,9 +38,9 @@ public ItemStack getCraftingResult(InventoryCrafting craftMatrix) { for (int i = 0; i < craftMatrix.getSizeInventory(); i++) { ItemStack matrixStack = craftMatrix.getStackInSlot(i); if (matrixStack != null && matrixStack.getItem() == ModItems.adventureBackpack - && BackpackUtils.getWearableCompound(matrixStack).hasKey(TAG_INVENTORY)) { - NBTTagList itemList = BackpackUtils.getWearableInventory(matrixStack); - BackpackUtils.getWearableCompound(craftResult).setTag(TAG_INVENTORY, itemList); + && BackpackUtils.getOrCreateWearableCompound(matrixStack).hasKey(TAG_INVENTORY)) { + NBTTagList itemList = BackpackUtils.getOrCreateWearableInventory(matrixStack); + BackpackUtils.getOrCreateWearableCompound(craftResult).setTag(TAG_INVENTORY, itemList); LogHelper.info( "Successfully transferred inventory from the ingredient backpack [" diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java index 675e0bf7..d7be9f10 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryAdventure.java @@ -138,7 +138,7 @@ public void dirtyInventory() { } protected NBTTagCompound getWearableCompound() { - return BackpackUtils.getWearableCompound(containerStack); + return BackpackUtils.getOrCreateWearableCompound(containerStack); } protected void setInventoryFromTagList(NBTTagList items) { diff --git a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryBackpack.java b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryBackpack.java index 9ccf0c9c..bb03bddf 100644 --- a/src/main/java/com/darkona/adventurebackpack/inventory/InventoryBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/inventory/InventoryBackpack.java @@ -8,6 +8,7 @@ import static com.darkona.adventurebackpack.common.Constants.TAG_DISABLE_NVISION; import static com.darkona.adventurebackpack.common.Constants.TAG_EXTENDED_COMPOUND; import static com.darkona.adventurebackpack.common.Constants.TAG_INVENTORY; +import static com.darkona.adventurebackpack.common.Constants.TAG_LAST_TIME; import static com.darkona.adventurebackpack.common.Constants.TAG_LEFT_TANK; import static com.darkona.adventurebackpack.common.Constants.TAG_RIGHT_TANK; import static com.darkona.adventurebackpack.common.Constants.TAG_TYPE; @@ -103,7 +104,7 @@ public void loadFromNBT(NBTTagCompound compound) { loadSleepingBag(); disableCycling = backpackTag.getBoolean(TAG_DISABLE_CYCLING); disableNVision = backpackTag.getBoolean(TAG_DISABLE_NVISION); - lastTime = backpackTag.getInteger("lastTime"); + lastTime = backpackTag.getInteger(TAG_LAST_TIME); } @Override @@ -117,7 +118,7 @@ public void saveToNBT(NBTTagCompound compound) { saveSleepingBag(); backpackTag.setBoolean(TAG_DISABLE_CYCLING, disableCycling); backpackTag.setBoolean(TAG_DISABLE_NVISION, disableNVision); - backpackTag.setInteger("lastTime", lastTime); + backpackTag.setInteger(TAG_LAST_TIME, lastTime); compound.setTag(TAG_WEARABLE_COMPOUND, backpackTag); } @@ -145,7 +146,7 @@ public void dirtyExtended() // TODO is it redundant? @Override public void dirtyTime() { - getWearableCompound().setInteger("lastTime", lastTime); + getWearableCompound().setInteger(TAG_LAST_TIME, lastTime); } @Override diff --git a/src/main/java/com/darkona/adventurebackpack/item/ItemAdventureBackpack.java b/src/main/java/com/darkona/adventurebackpack/item/ItemAdventureBackpack.java index 0bc49460..f29796c4 100644 --- a/src/main/java/com/darkona/adventurebackpack/item/ItemAdventureBackpack.java +++ b/src/main/java/com/darkona/adventurebackpack/item/ItemAdventureBackpack.java @@ -72,7 +72,7 @@ public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List subItems) @SuppressWarnings({ "unchecked" }) @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List tooltips, boolean advanced) { - NBTTagCompound backpackTag = BackpackUtils.getWearableCompound(stack); + NBTTagCompound backpackTag = BackpackUtils.getOrCreateWearableCompound(stack); BackpackTypes type = BackpackTypes.getType(backpackTag.getByte(TAG_TYPE)); tooltips.add(Utils.getColoredSkinName(type)); @@ -278,7 +278,7 @@ public double getDurabilityForDisplay(ItemStack stack) { } private int getItemCount(ItemStack backpack) { - NBTTagList itemList = BackpackUtils.getWearableInventory(backpack); + NBTTagList itemList = BackpackUtils.getOrCreateWearableInventory(backpack); int itemCount = itemList.tagCount(); for (int i = itemCount - 1; i >= 0; i--) { int slotAtI = itemList.getCompoundTagAt(i).getInteger(Constants.TAG_SLOT); diff --git a/src/main/java/com/darkona/adventurebackpack/item/ItemCoalJetpack.java b/src/main/java/com/darkona/adventurebackpack/item/ItemCoalJetpack.java index 0e5bc242..1b8f39b0 100644 --- a/src/main/java/com/darkona/adventurebackpack/item/ItemCoalJetpack.java +++ b/src/main/java/com/darkona/adventurebackpack/item/ItemCoalJetpack.java @@ -58,7 +58,7 @@ public void getSubItems(Item item, CreativeTabs tab, List list) { public void addInformation(ItemStack stack, EntityPlayer player, List tooltips, boolean advanced) { FluidTank waterTank = new FluidTank(Constants.Jetpack.WATER_CAPACITY); FluidTank steamTank = new FluidTank(Constants.Jetpack.STEAM_CAPACITY); - NBTTagCompound jetpackTag = BackpackUtils.getWearableCompound(stack); + NBTTagCompound jetpackTag = BackpackUtils.getOrCreateWearableCompound(stack); if (GuiScreen.isShiftKeyDown()) { NBTTagList itemList = jetpackTag.getTagList(Constants.TAG_INVENTORY, NBT.TAG_COMPOUND); @@ -265,7 +265,7 @@ public double getDurabilityForDisplay(ItemStack stack) { } private int getTemperature(ItemStack jetpack) { - return BackpackUtils.getWearableCompound(jetpack).getInteger("temperature"); + return BackpackUtils.getOrCreateWearableCompound(jetpack).getInteger("temperature"); } @Override diff --git a/src/main/java/com/darkona/adventurebackpack/item/ItemCopterPack.java b/src/main/java/com/darkona/adventurebackpack/item/ItemCopterPack.java index 536749cb..7f79d6df 100644 --- a/src/main/java/com/darkona/adventurebackpack/item/ItemCopterPack.java +++ b/src/main/java/com/darkona/adventurebackpack/item/ItemCopterPack.java @@ -61,7 +61,7 @@ public void getSubItems(Item item, CreativeTabs tab, List list) { @SideOnly(Side.CLIENT) public void addInformation(ItemStack stack, EntityPlayer player, List tooltips, boolean advanced) { FluidTank fuelTank = new FluidTank(FUEL_CAPACITY); - NBTTagCompound copterTag = BackpackUtils.getWearableCompound(stack); + NBTTagCompound copterTag = BackpackUtils.getOrCreateWearableCompound(stack); if (GuiScreen.isShiftKeyDown()) { fuelTank.readFromNBT(copterTag.getCompoundTag(TAG_FUEL_TANK)); @@ -96,7 +96,7 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla @Override public void onEquipped(World world, EntityPlayer player, ItemStack stack) { - BackpackUtils.getWearableCompound(stack).setByte(TAG_STATUS, OFF_MODE); + BackpackUtils.getOrCreateWearableCompound(stack).setByte(TAG_STATUS, OFF_MODE); } @Override @@ -257,7 +257,7 @@ private void pushEntities(World world, EntityPlayer player, float speed) { @Override public void onUnequipped(World world, EntityPlayer player, ItemStack stack) { - BackpackUtils.getWearableCompound(stack).setByte(TAG_STATUS, OFF_MODE); + BackpackUtils.getOrCreateWearableCompound(stack).setByte(TAG_STATUS, OFF_MODE); } @Override diff --git a/src/main/java/com/darkona/adventurebackpack/reference/BackpackTypes.java b/src/main/java/com/darkona/adventurebackpack/reference/BackpackTypes.java index e6674177..f2c67d87 100644 --- a/src/main/java/com/darkona/adventurebackpack/reference/BackpackTypes.java +++ b/src/main/java/com/darkona/adventurebackpack/reference/BackpackTypes.java @@ -184,7 +184,7 @@ public static BackpackTypes getType(ItemStack backpack) { if (backpack == null) // well... Wearing.getWearingBackpack() may return null... //TODO solve this damn null return null; - NBTTagCompound backpackTag = BackpackUtils.getWearableCompound(backpack); + NBTTagCompound backpackTag = BackpackUtils.getOrCreateWearableCompound(backpack); if (backpackTag.getByte(TAG_TYPE) == UNKNOWN.meta) // TODO remove? are we rly need to normalize it? { backpackTag.setByte(TAG_TYPE, STANDARD.meta); diff --git a/src/main/java/com/darkona/adventurebackpack/util/BackpackUtils.java b/src/main/java/com/darkona/adventurebackpack/util/BackpackUtils.java index dd70f3b6..f2698021 100644 --- a/src/main/java/com/darkona/adventurebackpack/util/BackpackUtils.java +++ b/src/main/java/com/darkona/adventurebackpack/util/BackpackUtils.java @@ -79,8 +79,7 @@ public void run() { } } - public static NBTTagCompound getWearableCompound(ItemStack stack) { - // it also creates wearable compound if stack has no own, so maybe worth to rename the method + public static NBTTagCompound getOrCreateWearableCompound(ItemStack stack) { if (!stack.hasTagCompound() || !stack.stackTagCompound.hasKey(TAG_WEARABLE_COMPOUND)) createWearableCompound(stack); @@ -93,15 +92,14 @@ private static void createWearableCompound(ItemStack stack) { stack.stackTagCompound.setTag(TAG_WEARABLE_COMPOUND, new NBTTagCompound()); } - public static NBTTagList getWearableInventory(ItemStack stack) { - // it also creates TagList if stack has no own, so maybe worth to rename the method - if (!getWearableCompound(stack).hasKey(TAG_INVENTORY)) createWearableInventory(stack); + public static NBTTagList getOrCreateWearableInventory(ItemStack stack) { + if (!getOrCreateWearableCompound(stack).hasKey(TAG_INVENTORY)) createWearableInventory(stack); - return getWearableCompound(stack).getTagList(TAG_INVENTORY, Constants.NBT.TAG_COMPOUND); + return getOrCreateWearableCompound(stack).getTagList(TAG_INVENTORY, Constants.NBT.TAG_COMPOUND); } private static void createWearableInventory(ItemStack stack) { - getWearableCompound(stack).setTag(TAG_INVENTORY, new NBTTagList()); + getOrCreateWearableCompound(stack).setTag(TAG_INVENTORY, new NBTTagList()); } public static ItemStack createBackpackStack(BackpackTypes type) { @@ -111,7 +109,7 @@ public static ItemStack createBackpackStack(BackpackTypes type) { } public static void setBackpackType(ItemStack stack, BackpackTypes type) { - getWearableCompound(stack).setByte(TAG_TYPE, BackpackTypes.getMeta(type)); + getOrCreateWearableCompound(stack).setByte(TAG_TYPE, BackpackTypes.getMeta(type)); } public static ItemStack createCopterStack() {