From b10dad8bcc5bd043f1fb7ccfdba56c29584ececb Mon Sep 17 00:00:00 2001 From: Kam Date: Sun, 8 Mar 2026 15:39:16 -0400 Subject: [PATCH] Fix some Categorical Assign Packets --- .../request/effects/EffectSavePacket.java | 2 ++ .../request/linked/LinkedItemSavePacket.java | 2 ++ .../client/gui/global/GuiAbilityDirectory.java | 9 +++++++++ .../client/gui/util/GuiDirectoryCategorized.java | 16 +++++++++++++--- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/main/java/kamkeel/npcs/network/packets/request/effects/EffectSavePacket.java b/src/main/java/kamkeel/npcs/network/packets/request/effects/EffectSavePacket.java index 785ccdf4f..b0c4b5ed6 100644 --- a/src/main/java/kamkeel/npcs/network/packets/request/effects/EffectSavePacket.java +++ b/src/main/java/kamkeel/npcs/network/packets/request/effects/EffectSavePacket.java @@ -7,6 +7,7 @@ import kamkeel.npcs.network.PacketHandler; import kamkeel.npcs.network.PacketUtil; import kamkeel.npcs.network.enums.EnumItemPacketType; import kamkeel.npcs.network.enums.EnumRequestPacket; +import kamkeel.npcs.network.packets.data.large.GuiDataPacket; import kamkeel.npcs.util.ByteBufUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -72,5 +73,6 @@ public class EffectSavePacket extends AbstractPacket { } NoppesUtilServer.sendCustomEffectDataAll((EntityPlayerMP) player); + GuiDataPacket.sendGuiData((EntityPlayerMP) player, effect.writeToNBT(false)); } } diff --git a/src/main/java/kamkeel/npcs/network/packets/request/linked/LinkedItemSavePacket.java b/src/main/java/kamkeel/npcs/network/packets/request/linked/LinkedItemSavePacket.java index d7fd58eeb..2e1e2ae52 100644 --- a/src/main/java/kamkeel/npcs/network/packets/request/linked/LinkedItemSavePacket.java +++ b/src/main/java/kamkeel/npcs/network/packets/request/linked/LinkedItemSavePacket.java @@ -9,6 +9,7 @@ import kamkeel.npcs.network.PacketHandler; import kamkeel.npcs.network.PacketUtil; import kamkeel.npcs.network.enums.EnumItemPacketType; import kamkeel.npcs.network.enums.EnumRequestPacket; +import kamkeel.npcs.network.packets.data.large.GuiDataPacket; import kamkeel.npcs.util.ByteBufUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; @@ -73,5 +74,6 @@ public final class LinkedItemSavePacket extends AbstractPacket { } NoppesUtilServer.sendLinkedItemDataAll((EntityPlayerMP) player); + GuiDataPacket.sendGuiData((EntityPlayerMP) player, linkedItem.writeToNBT(false)); } } diff --git a/src/main/java/noppes/npcs/client/gui/global/GuiAbilityDirectory.java b/src/main/java/noppes/npcs/client/gui/global/GuiAbilityDirectory.java index c52a6c0d5..8c37c1e39 100644 --- a/src/main/java/noppes/npcs/client/gui/global/GuiAbilityDirectory.java +++ b/src/main/java/noppes/npcs/client/gui/global/GuiAbilityDirectory.java @@ -304,6 +304,15 @@ public class GuiAbilityDirectory extends GuiDirectoryCategorized // Not used — we override executeMoveItems for name-based moves } + @Override + protected void onMoveNewItem(int catId) { + String name = prevItemName; + if (name != null && !name.isEmpty()) { + PacketClient.sendClient(new AbilityCategoryMovePacket(getCategoryType(), name, catId)); + if (selectedCatId >= 0) requestItemsInCategory(selectedCatId); + } + } + @Override protected GuiScreen getWindowedVariant() { return new GuiNpcManageAbilities(originalNpc, false); diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiDirectoryCategorized.java b/src/main/java/noppes/npcs/client/gui/util/GuiDirectoryCategorized.java index e663c5c31..5c49d3dcc 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiDirectoryCategorized.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiDirectoryCategorized.java @@ -145,6 +145,12 @@ public abstract class GuiDirectoryCategorized extends GuiDirectory protected void drawItemDetails(int x, int y, int w) {} protected void saveCurrentItem() {} + /** + * Hook for name-based items (e.g. abilities) that don't use numeric IDs. + * Called when a new item needs to be moved to a category but getSelectedItemId() returns -1. + */ + protected void onMoveNewItem(int catId) {} + protected void setPrevItemName(String name) { this.prevItemName = name; } @@ -728,9 +734,13 @@ public abstract class GuiDirectoryCategorized extends GuiDirectory return; } onItemReceived(compound); - if (pendingNewItemCatId > 0 && hasSelectedItem() && getSelectedItemId() >= 0) { - sendMovePacket(getSelectedItemId(), pendingNewItemCatId); - if (selectedCatId >= 0) requestItemsInCategory(selectedCatId); + if (pendingNewItemCatId > 0 && hasSelectedItem()) { + if (getSelectedItemId() >= 0) { + sendMovePacket(getSelectedItemId(), pendingNewItemCatId); + if (selectedCatId >= 0) requestItemsInCategory(selectedCatId); + } else { + onMoveNewItem(pendingNewItemCatId); + } } pendingNewItemCatId = -1; initGui();