Fix some Categorical Assign Packets

This commit is contained in:
Kam committed 2026-03-08 15:39:16 -04:00
1 parent 2e21b36796
commit b10dad8bcc
4 files changed
+26 -3

No files matched your search

@@ -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));
}
}
@@ -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));
}
}
@@ -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);
@@ -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();