From 10f12ad03691cac047f58335402a2ad5bdf331ba Mon Sep 17 00:00:00 2001 From: somehussar <148253652+somehussar@users.noreply.github.com> Date: Mon, 3 Feb 2025 04:32:59 +0100 Subject: [PATCH] Get NPC Role packet --- .../kamkeel/npcs/network/PacketHandler.java | 2 + .../npcs/network/enums/EnumPlayerPacket.java | 4 +- .../network/packets/player/GetNPCRole.java | 47 +++++++++++++++++++ .../java/noppes/npcs/PacketHandlerPlayer.java | 14 +++--- .../client/gui/player/GuiNpcFollower.java | 3 +- .../companion/GuiNpcCompanionStats.java | 6 ++- .../npcs/constants/EnumPlayerPacket.java | 2 +- 7 files changed, 65 insertions(+), 13 deletions(-) create mode 100644 src/main/java/kamkeel/npcs/network/packets/player/GetNPCRole.java diff --git a/src/main/java/kamkeel/npcs/network/PacketHandler.java b/src/main/java/kamkeel/npcs/network/PacketHandler.java index a5a5fec17..57c31e506 100644 --- a/src/main/java/kamkeel/npcs/network/PacketHandler.java +++ b/src/main/java/kamkeel/npcs/network/PacketHandler.java @@ -357,6 +357,8 @@ public class PacketHandler { PLAYER_PACKET.registerPacket(new CompanionActionPacket()); + PLAYER_PACKET.registerPacket(new GetNPCRole()); + PLAYER_PACKET.registerPacket(new InputDevicePacket()); PLAYER_PACKET.registerPacket(new ScreenSizePacket()); diff --git a/src/main/java/kamkeel/npcs/network/enums/EnumPlayerPacket.java b/src/main/java/kamkeel/npcs/network/enums/EnumPlayerPacket.java index bbc69f64c..6ba1c7c64 100644 --- a/src/main/java/kamkeel/npcs/network/enums/EnumPlayerPacket.java +++ b/src/main/java/kamkeel/npcs/network/enums/EnumPlayerPacket.java @@ -10,8 +10,8 @@ public enum EnumPlayerPacket { MailSend, SaveSign, // TODO SaveBook, // TODO - CompanionAction, // TODO: OpenInv, TalentExp - GetRole, // TODO + CompanionAction, + GetRole, InputDevice, ScreenSize } diff --git a/src/main/java/kamkeel/npcs/network/packets/player/GetNPCRole.java b/src/main/java/kamkeel/npcs/network/packets/player/GetNPCRole.java new file mode 100644 index 000000000..1056ddb48 --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/player/GetNPCRole.java @@ -0,0 +1,47 @@ +package kamkeel.npcs.network.packets.player; + +import io.netty.buffer.ByteBuf; +import kamkeel.npcs.network.AbstractPacket; +import kamkeel.npcs.network.PacketChannel; +import kamkeel.npcs.network.PacketHandler; +import kamkeel.npcs.network.enums.EnumPlayerPacket; +import kamkeel.npcs.network.packets.data.large.GuiDataPacket; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.constants.EnumRoleType; + +import java.io.IOException; + +public class GetNPCRole extends AbstractPacket { + public static final String packetName = "Player|GetNPCRole"; + + @Override + public Enum getType() { + return EnumPlayerPacket.GetRole; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.PLAYER_PACKET; + } + + @Override + public boolean needsNPC() { + return true; + } + + @Override + public void sendData(ByteBuf out) throws IOException { + + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + if(!(player instanceof EntityPlayerMP)) + return; + if (npc.advanced.role == EnumRoleType.None) + return; + GuiDataPacket.sendGuiData((EntityPlayerMP) player, npc.roleInterface.writeToNBT(new NBTTagCompound())); + } +} diff --git a/src/main/java/noppes/npcs/PacketHandlerPlayer.java b/src/main/java/noppes/npcs/PacketHandlerPlayer.java index b68b434f5..e0d9f297b 100644 --- a/src/main/java/noppes/npcs/PacketHandlerPlayer.java +++ b/src/main/java/noppes/npcs/PacketHandlerPlayer.java @@ -146,12 +146,12 @@ public class PacketHandlerPlayer{ // NoppesUtilPlayer.changeFollowerState(player,npc); // GuiDataPacket.sendGuiData(player, npc.roleInterface.writeToNBT(new NBTTagCompound())); // } - if(type == EnumPlayerPacket.RoleGet){ - EntityNPCInterface npc = NoppesUtilServer.getEditingNpc(player); - if(npc == null || npc.advanced.role == EnumRoleType.None) - return; - GuiDataPacket.sendGuiData(player, npc.roleInterface.writeToNBT(new NBTTagCompound())); - } +// if(type == EnumPlayerPacket.RoleGet){ +// EntityNPCInterface npc = NoppesUtilServer.getEditingNpc(player); +// if(npc == null || npc.advanced.role == EnumRoleType.None) +// return; +// GuiDataPacket.sendGuiData(player, npc.roleInterface.writeToNBT(new NBTTagCompound())); +// } // else if(type == EnumPlayerPacket.Transport){ // EntityNPCInterface npc = NoppesUtilServer.getEditingNpc(player); // if(npc == null || npc.advanced.role != EnumRoleType.Transporter) @@ -281,7 +281,7 @@ public class PacketHandlerPlayer{ // } // } // } - else if(type == EnumPlayerPacket.SignSave) { + if(type == EnumPlayerPacket.SignSave) { int x = buffer.readInt(), y = buffer.readInt(), z = buffer.readInt(); if (player.worldObj.blockExists(x, y, z)) { TileEntity tile = player.worldObj.getTileEntity(x, y, z); diff --git a/src/main/java/noppes/npcs/client/gui/player/GuiNpcFollower.java b/src/main/java/noppes/npcs/client/gui/player/GuiNpcFollower.java index 9b92d571a..815ae9c9a 100644 --- a/src/main/java/noppes/npcs/client/gui/player/GuiNpcFollower.java +++ b/src/main/java/noppes/npcs/client/gui/player/GuiNpcFollower.java @@ -2,6 +2,7 @@ package noppes.npcs.client.gui.player; import kamkeel.npcs.network.PacketClient; import kamkeel.npcs.network.packets.player.FollowerPacket; +import kamkeel.npcs.network.packets.player.GetNPCRole; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.item.ItemStack; @@ -31,7 +32,7 @@ public class GuiNpcFollower extends GuiContainerNPCInterface implements IGuiDat role = (RoleFollower) npc.roleInterface; closeOnEsc = true; - NoppesUtilPlayer.sendData(EnumPlayerPacket.RoleGet); + PacketClient.sendClient(new GetNPCRole()); } @Override public void initGui(){ diff --git a/src/main/java/noppes/npcs/client/gui/player/companion/GuiNpcCompanionStats.java b/src/main/java/noppes/npcs/client/gui/player/companion/GuiNpcCompanionStats.java index 73e3b8c7e..c95927985 100644 --- a/src/main/java/noppes/npcs/client/gui/player/companion/GuiNpcCompanionStats.java +++ b/src/main/java/noppes/npcs/client/gui/player/companion/GuiNpcCompanionStats.java @@ -1,6 +1,8 @@ package noppes.npcs.client.gui.player.companion; +import kamkeel.npcs.network.PacketClient; import kamkeel.npcs.network.packets.player.CompanionActionPacket; +import kamkeel.npcs.network.packets.player.GetNPCRole; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.item.ItemStack; @@ -29,7 +31,7 @@ public class GuiNpcCompanionStats extends GuiNPCInterface implements IGuiData { setBackground("companion.png"); xSize = 171; ySize = 166; - NoppesUtilPlayer.sendData(EnumPlayerPacket.RoleGet); + PacketClient.sendClient(new GetNPCRole()); } @Override @@ -88,7 +90,7 @@ public class GuiNpcCompanionStats extends GuiNPCInterface implements IGuiData { public void drawScreen(int i, int j, float f) { super.drawScreen(i, j, f); if(isEating && !role.isEating()){ - NoppesUtilPlayer.sendData(EnumPlayerPacket.RoleGet); + PacketClient.sendClient(new GetNPCRole()); } isEating = role.isEating(); diff --git a/src/main/java/noppes/npcs/constants/EnumPlayerPacket.java b/src/main/java/noppes/npcs/constants/EnumPlayerPacket.java index ec781e13b..de1a15d1b 100644 --- a/src/main/java/noppes/npcs/constants/EnumPlayerPacket.java +++ b/src/main/java/noppes/npcs/constants/EnumPlayerPacket.java @@ -21,7 +21,7 @@ public enum EnumPlayerPacket { SignSave, SaveBook, // CompanionOpenInv, - RoleGet, +// RoleGet, // KeyPressed, // MouseClicked, // CompanionTalentExp,