From 6507828ab6d9719ed8fd81c77bf6904fa96bd17e Mon Sep 17 00:00:00 2001 From: P3pp3rF1y Date: Sat, 11 Jan 2025 23:49:14 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Fixed=20stashing=20to=20b?= =?UTF-8?q?ackpack=20to=20not=20work=20in=20creative=20screen=20because=20?= =?UTF-8?q?in=20this=20screen=20there's=20no=20serverside=20processing=20a?= =?UTF-8?q?nd=20thus=20items=20actually=20don't=20get=20moved=20to=20backp?= =?UTF-8?q?ack=20storage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../sophisticatedbackpacks/backpack/BackpackItem.java | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 542b8d4f..4c62d4c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ loader_version_range=[4,) mod_id=sophisticatedbackpacks mod_name=Sophisticated Backpacks mod_license=GNU General Public License v3.0 -mod_version=3.22.0 +mod_version=3.22.1 mod_group_id=sophisticatedbackpacks mod_authors=P3pp3rF1y, Ridanisaurus mod_description=Fancy and functional backpacks. diff --git a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/backpack/BackpackItem.java b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/backpack/BackpackItem.java index 95dfa2df..f502ee08 100644 --- a/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/backpack/BackpackItem.java +++ b/src/main/java/net/p3pp3rf1y/sophisticatedbackpacks/backpack/BackpackItem.java @@ -2,6 +2,7 @@ import net.minecraft.ChatFormatting; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.HolderLookup; @@ -328,7 +329,7 @@ public ItemStack getBackpack() { @Override public boolean overrideStackedOnOther(ItemStack storageStack, Slot slot, ClickAction action, Player player) { - if (storageStack.getCount() > 1 || !slot.mayPickup(player) || action != ClickAction.SECONDARY) { + if (hasCreativeScreenContainerOpen(player) || storageStack.getCount() > 1 || !slot.mayPickup(player) || action != ClickAction.SECONDARY) { return super.overrideStackedOnOther(storageStack, slot, action, player); } @@ -352,7 +353,7 @@ public boolean overrideStackedOnOther(ItemStack storageStack, Slot slot, ClickAc @Override public boolean overrideOtherStackedOnMe(ItemStack storageStack, ItemStack otherStack, Slot slot, ClickAction action, Player player, SlotAccess carriedAccess) { - if (storageStack.getCount() > 1 || !slot.mayPlace(storageStack) || action != ClickAction.SECONDARY) { + if (hasCreativeScreenContainerOpen(player) || storageStack.getCount() > 1 || !slot.mayPlace(storageStack) || action != ClickAction.SECONDARY) { return super.overrideOtherStackedOnMe(storageStack, otherStack, slot, action, player, carriedAccess); } @@ -366,6 +367,10 @@ public boolean overrideOtherStackedOnMe(ItemStack storageStack, ItemStack otherS return super.overrideOtherStackedOnMe(storageStack, otherStack, slot, action, player, carriedAccess); } + private boolean hasCreativeScreenContainerOpen(Player player) { + return player.level().isClientSide() && player.containerMenu instanceof CreativeModeInventoryScreen.ItemPickerMenu; + } + @Override public boolean canFitInsideContainerItems() { return Config.SERVER.canBePlacedInContainerItems.get();