From 1e5cc66f2fdac714ea2cf5288b12f5e7be7e3dff Mon Sep 17 00:00:00 2001 From: Kam Date: Fri, 31 Jan 2025 01:58:54 -0500 Subject: [PATCH] packet progress --- .../npcs/network/enums/EnumRequestPacket.java | 5 + .../packets/request/AnimationCachePacket.java | 41 ++++++++ .../request/CustomGuiButtonPacket.java | 62 ++++++++++++ .../packets/request/CustomGuiClosePacket.java | 57 +++++++++++ .../request/CustomGuiUnfocusedPacket.java | 62 ++++++++++++ .../request/CustomScrollClickPacket.java | 75 ++++++++++++++ .../packets/request/DimensionsGetPacket.java | 50 ++++++++++ .../packets/request/IsGuiOpenPacket.java | 52 ++++++++++ .../request/PartyLogToServerPacket.java | 51 ++++++++++ .../request/QuestLogToServerPacket.java | 55 +++++++++++ .../packets/request/QuestUntrackPacket.java | 43 ++++++++ .../packets/request/REQUESTPacket.java | 60 +++++++++++ .../packets/request/TagsGetPacket.java | 45 +++++++++ .../packets/request/TagsNpcGetPacket.java | 60 +++++++++++ .../java/noppes/npcs/PacketHandlerServer.java | 99 +++++-------------- 15 files changed, 744 insertions(+), 73 deletions(-) create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/AnimationCachePacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/CustomGuiButtonPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/CustomGuiClosePacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/CustomGuiUnfocusedPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/CustomScrollClickPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/DimensionsGetPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/IsGuiOpenPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/PartyLogToServerPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/QuestLogToServerPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/QuestUntrackPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/REQUESTPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/TagsGetPacket.java create mode 100644 src/main/java/kamkeel/npcs/network/packets/request/TagsNpcGetPacket.java diff --git a/src/main/java/kamkeel/npcs/network/enums/EnumRequestPacket.java b/src/main/java/kamkeel/npcs/network/enums/EnumRequestPacket.java index f6573f7a8..087e35190 100644 --- a/src/main/java/kamkeel/npcs/network/enums/EnumRequestPacket.java +++ b/src/main/java/kamkeel/npcs/network/enums/EnumRequestPacket.java @@ -11,6 +11,8 @@ public enum EnumRequestPacket { SpawnMob, MobSpawner, + DimensionsGet, + MainmenuAISave, MainmenuAIGet, MainmenuInvSave, @@ -58,6 +60,8 @@ public enum EnumRequestPacket { NpcTagsGet, TagRemove, + QuestUntrack, + QuestLogToServer, QuestCategorySave, QuestCategoriesGet, QuestRemove, @@ -104,6 +108,7 @@ public enum EnumRequestPacket { CustomGuiClose, CustomGuiUnfocused, + PartyLogToServer, SavePartyData, CreateParty, GetPartyData, diff --git a/src/main/java/kamkeel/npcs/network/packets/request/AnimationCachePacket.java b/src/main/java/kamkeel/npcs/network/packets/request/AnimationCachePacket.java new file mode 100644 index 000000000..7496f08df --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/AnimationCachePacket.java @@ -0,0 +1,41 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import noppes.npcs.NoppesUtilServer; + +import java.io.IOException; + +public final class AnimationCachePacket extends AbstractPacket { + public static final String packetName = "Request|AnimationCache"; + + public AnimationCachePacket() {} + + @Override + public Enum getType() { + return EnumRequestPacket.CacheAnimation; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException {} + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + NoppesUtilServer.sendTagDataAll((EntityPlayerMP) player); + } + + +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiButtonPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiButtonPacket.java new file mode 100644 index 000000000..b8a18cd2c --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiButtonPacket.java @@ -0,0 +1,62 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.util.ByteBufUtils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.EventHooks; +import noppes.npcs.api.entity.IPlayer; +import noppes.npcs.containers.ContainerCustomGui; +import noppes.npcs.scripted.NpcAPI; + +import java.io.IOException; + +public final class CustomGuiButtonPacket extends AbstractPacket { + public static final String packetName = "Request|CustomGuiButton"; + + private NBTTagCompound compound; + private int id; + + public CustomGuiButtonPacket() {} + + public CustomGuiButtonPacket(int id, NBTTagCompound comp){ + this.compound = comp; + this.id = id; + } + + @Override + public Enum getType() { + return EnumRequestPacket.CustomGuiButton; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException { + out.writeInt(id); + ByteBufUtils.writeNBT(out, compound); + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + if(!(player.openContainer instanceof ContainerCustomGui)) + return; + + int id = in.readInt(); + NBTTagCompound comp = ByteBufUtils.readNBT(in); + + ((ContainerCustomGui) player.openContainer).customGui.fromNBT(comp); + EventHooks.onCustomGuiButton((IPlayer) NpcAPI.Instance().getIEntity(player), ((ContainerCustomGui) player.openContainer).customGui, id); + } +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiClosePacket.java b/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiClosePacket.java new file mode 100644 index 000000000..787481f7d --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiClosePacket.java @@ -0,0 +1,57 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.util.ByteBufUtils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.EventHooks; +import noppes.npcs.api.entity.IPlayer; +import noppes.npcs.containers.ContainerCustomGui; +import noppes.npcs.scripted.NpcAPI; +import noppes.npcs.scripted.gui.ScriptGui; + +import java.io.IOException; + +public final class CustomGuiClosePacket extends AbstractPacket { + public static final String packetName = "Request|CustomGuiClose"; + + private NBTTagCompound compound; + + public CustomGuiClosePacket() {} + + public CustomGuiClosePacket(int id, NBTTagCompound comp){ + this.compound = comp; + } + + @Override + public Enum getType() { + return EnumRequestPacket.CustomGuiClose; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException { + ByteBufUtils.writeNBT(out, compound); + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + if(!(player.openContainer instanceof ContainerCustomGui)) + return; + + NBTTagCompound comp = ByteBufUtils.readNBT(in); + EventHooks.onCustomGuiClose((IPlayer) NpcAPI.Instance().getIEntity(player), (new ScriptGui()).fromNBT(comp)); + } +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiUnfocusedPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiUnfocusedPacket.java new file mode 100644 index 000000000..0f81ce863 --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/CustomGuiUnfocusedPacket.java @@ -0,0 +1,62 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.util.ByteBufUtils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.EventHooks; +import noppes.npcs.api.entity.IPlayer; +import noppes.npcs.containers.ContainerCustomGui; +import noppes.npcs.scripted.NpcAPI; + +import java.io.IOException; + +public final class CustomGuiUnfocusedPacket extends AbstractPacket { + public static final String packetName = "Request|CustomGuiUnfocused"; + + private NBTTagCompound compound; + private int id; + + public CustomGuiUnfocusedPacket() {} + + public CustomGuiUnfocusedPacket(int id, NBTTagCompound comp){ + this.compound = comp; + this.id = id; + } + + @Override + public Enum getType() { + return EnumRequestPacket.CustomGuiUnfocused; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException { + out.writeInt(id); + ByteBufUtils.writeNBT(out, compound); + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + if(!(player.openContainer instanceof ContainerCustomGui)) + return; + + int id = in.readInt(); + NBTTagCompound comp = ByteBufUtils.readNBT(in); + + ((ContainerCustomGui) player.openContainer).customGui.fromNBT(comp); + EventHooks.onCustomGuiUnfocused((IPlayer) NpcAPI.Instance().getIEntity(player), ((ContainerCustomGui) player.openContainer).customGui, id); + } +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/CustomScrollClickPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/CustomScrollClickPacket.java new file mode 100644 index 000000000..27b2a6e0a --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/CustomScrollClickPacket.java @@ -0,0 +1,75 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.util.ByteBufUtils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.EventHooks; +import noppes.npcs.api.entity.IPlayer; +import noppes.npcs.containers.ContainerCustomGui; +import noppes.npcs.controllers.CustomGuiController; +import noppes.npcs.scripted.NpcAPI; + +import java.io.IOException; + +public final class CustomScrollClickPacket extends AbstractPacket { + public static final String packetName = "Request|CustomGuiScrollClick"; + + private int scrollId; + private int scrollIndex; + private NBTTagCompound selection; + private boolean doubleClick; + private NBTTagCompound compound; + + public CustomScrollClickPacket() {} + + public CustomScrollClickPacket(NBTTagCompound compound, int scrollId, int scrollIndex, NBTTagCompound selection, boolean doubleClick) { + this.compound = compound; + this.scrollId = scrollId; + this.scrollIndex = scrollIndex; + this.selection = selection; + this.doubleClick = doubleClick; + } + + @Override + public Enum getType() { + return EnumRequestPacket.CustomGuiScrollClick; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException { + ByteBufUtils.writeNBT(out, compound); + out.writeInt(this.scrollId); + out.writeInt(this.scrollIndex); + ByteBufUtils.writeNBT(out, selection); + out.writeBoolean(this.doubleClick); + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + if(!(player.openContainer instanceof ContainerCustomGui)) + return; + + NBTTagCompound comp = ByteBufUtils.readNBT(in); + int scrollId = in.readInt(); + int scrollIndex = in.readInt(); + String[] list = CustomGuiController.readScrollSelection(in); + boolean doubleClick = in.readBoolean(); + + ((ContainerCustomGui) player.openContainer).customGui.fromNBT(comp); + EventHooks.onCustomGuiScrollClick((IPlayer) NpcAPI.Instance().getIEntity(player), ((ContainerCustomGui) player.openContainer).customGui, scrollId, scrollIndex, list, doubleClick); + } +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/DimensionsGetPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/DimensionsGetPacket.java new file mode 100644 index 000000000..5e678765c --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/DimensionsGetPacket.java @@ -0,0 +1,50 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.network.packets.data.large.ScrollDataPacket; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.world.WorldProvider; +import net.minecraftforge.common.DimensionManager; +import noppes.npcs.NoppesUtilPlayer; + +import java.io.IOException; +import java.util.HashMap; + +public final class DimensionsGetPacket extends AbstractPacket { + public static final String packetName = "Request|DimensionsGet"; + + public DimensionsGetPacket() {} + + @Override + public Enum getType() { + return EnumRequestPacket.DimensionsGet; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException {} + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + HashMap map = new HashMap(); + for(int id : DimensionManager.getStaticDimensionIDs()){ + WorldProvider provider = DimensionManager.createProviderFor(id); + map.put(provider.getDimensionName(), id); + } + ScrollDataPacket.sendScrollData((EntityPlayerMP) player, map); + } + + +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/IsGuiOpenPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/IsGuiOpenPacket.java new file mode 100644 index 000000000..ce2a8298c --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/IsGuiOpenPacket.java @@ -0,0 +1,52 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import net.minecraft.entity.player.EntityPlayer; +import noppes.npcs.CustomNpcsPermissions; +import noppes.npcs.NoppesUtilServer; +import noppes.npcs.controllers.PlayerDataController; +import noppes.npcs.controllers.data.PlayerData; + +import java.io.IOException; + +public final class IsGuiOpenPacket extends AbstractPacket { + public static final String packetName = "Request|IsGuiOpen"; + + private boolean isOpen; + + public IsGuiOpenPacket() {} + + public IsGuiOpenPacket(boolean isOpen){ + this.isOpen = isOpen; + } + + @Override + public Enum getType() { + return EnumRequestPacket.IsGuiOpen; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException { + out.writeBoolean(this.isOpen); + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + PlayerData playerdata = PlayerDataController.Instance.getPlayerData(player); + boolean isGUIOpen = in.readBoolean(); + playerdata.setGUIOpen(isGUIOpen); + } +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/PartyLogToServerPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/PartyLogToServerPacket.java new file mode 100644 index 000000000..0c3db732e --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/PartyLogToServerPacket.java @@ -0,0 +1,51 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.util.ByteBufUtils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.NoppesUtilPlayer; + +import java.io.IOException; + +public final class PartyLogToServerPacket extends AbstractPacket { + public static final String packetName = "Request|PartyLogToServer"; + + private String key; + + public PartyLogToServerPacket() {} + + public PartyLogToServerPacket(String key) { + this.key = key; + } + + @Override + public Enum getType() { + return EnumRequestPacket.PartyLogToServer; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException { + ByteBufUtils.writeString(out, this.key); + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + NoppesUtilPlayer.updatePartyQuestLogData(in, (EntityPlayerMP) player); + } + + +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/QuestLogToServerPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/QuestLogToServerPacket.java new file mode 100644 index 000000000..56e3da3b6 --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/QuestLogToServerPacket.java @@ -0,0 +1,55 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.util.ByteBufUtils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.CustomNpcsPermissions; +import noppes.npcs.NoppesUtilPlayer; + +import java.io.IOException; + +public final class QuestLogToServerPacket extends AbstractPacket { + public static final String packetName = "Request|QuestLogToServer"; + + private NBTTagCompound compound; + private String key; + + public QuestLogToServerPacket() {} + + public QuestLogToServerPacket(NBTTagCompound compound, String key) { + this.compound = compound; + this.key = key; + } + + @Override + public Enum getType() { + return EnumRequestPacket.QuestLogToServer; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException { + ByteBufUtils.writeNBT(out, this.compound); + ByteBufUtils.writeString(out, this.key); + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + NoppesUtilPlayer.updateQuestLogData(in, (EntityPlayerMP) player); + } + + +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/QuestUntrackPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/QuestUntrackPacket.java new file mode 100644 index 000000000..7f4667cea --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/QuestUntrackPacket.java @@ -0,0 +1,43 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.util.ByteBufUtils; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.NoppesUtilPlayer; + +import java.io.IOException; + +public final class QuestUntrackPacket extends AbstractPacket { + public static final String packetName = "Request|QuestUntrack"; + + public QuestUntrackPacket() {} + + @Override + public Enum getType() { + return EnumRequestPacket.QuestUntrack; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException {} + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + NoppesUtilPlayer.clearTrackQuest((EntityPlayerMP) player); + } + + +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/REQUESTPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/REQUESTPacket.java new file mode 100644 index 000000000..a6432b7cd --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/REQUESTPacket.java @@ -0,0 +1,60 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumDataPacket; +import kamkeel.npcs.network.enums.EnumRequestPacket; +import kamkeel.npcs.util.ByteBufUtils; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import noppes.npcs.CustomNpcsPermissions; +import noppes.npcs.controllers.data.MarkData; +import noppes.npcs.entity.EntityNPCInterface; + +import java.io.IOException; + +public final class REQUESTPacket extends AbstractPacket { + public static final String packetName = "Request|Name"; + + public REQUESTPacket() {} + + + @Override + public Enum getType() { + return EnumRequestPacket.Delete; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + @Override + public CustomNpcsPermissions.Permission getPermission(){ + return null; + } + + @Override + public boolean needsNPC(){ + return false; + } + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException { + + + } + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + + } + + +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/TagsGetPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/TagsGetPacket.java new file mode 100644 index 000000000..b07d54b96 --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/TagsGetPacket.java @@ -0,0 +1,45 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +import kamkeel.npcs.network.packets.data.large.ScrollDataPacket; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.world.WorldProvider; +import net.minecraftforge.common.DimensionManager; +import noppes.npcs.NoppesUtilServer; + +import java.io.IOException; +import java.util.HashMap; + +public final class TagsGetPacket extends AbstractPacket { + public static final String packetName = "Request|TagsGet"; + + public TagsGetPacket() {} + + @Override + public Enum getType() { + return EnumRequestPacket.TagsGet; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException {} + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + NoppesUtilServer.sendTagDataAll((EntityPlayerMP) player); + } + + +} diff --git a/src/main/java/kamkeel/npcs/network/packets/request/TagsNpcGetPacket.java b/src/main/java/kamkeel/npcs/network/packets/request/TagsNpcGetPacket.java new file mode 100644 index 000000000..ef9257985 --- /dev/null +++ b/src/main/java/kamkeel/npcs/network/packets/request/TagsNpcGetPacket.java @@ -0,0 +1,60 @@ +package kamkeel.npcs.network.packets.request; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +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.EnumRequestPacket; +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 net.minecraft.nbt.NBTTagList; +import net.minecraft.nbt.NBTTagString; +import noppes.npcs.NoppesUtilServer; +import noppes.npcs.controllers.TagController; +import noppes.npcs.controllers.data.Tag; + +import java.io.IOException; +import java.util.UUID; + +public final class TagsNpcGetPacket extends AbstractPacket { + public static final String packetName = "Request|NpcTagsGet"; + + public TagsNpcGetPacket() {} + + @Override + public Enum getType() { + return EnumRequestPacket.NpcTagsGet; + } + + @Override + public PacketChannel getChannel() { + return PacketHandler.REQUEST_PACKET; + } + + @Override + public boolean needsNPC(){ + return true; + } + + @SideOnly(Side.CLIENT) + @Override + public void sendData(ByteBuf out) throws IOException {} + + @Override + public void receiveData(ByteBuf in, EntityPlayer player) throws IOException { + NBTTagCompound compound = new NBTTagCompound(); + NBTTagList tagList = new NBTTagList(); + for (UUID uuid : npc.advanced.tagUUIDs) { + Tag tag = TagController.getInstance().getTagFromUUID(uuid); + if (tag != null) { + tagList.appendTag(new NBTTagString(tag.name)); + } + } + compound.setTag("TagNames",tagList); + GuiDataPacket.sendGuiData((EntityPlayerMP) player, compound); + } +} diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index 4f7e0989f..2ead5179a 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -66,64 +66,17 @@ public class PacketHandlerServer{ warn(player, "tried to use custom npcs without being an op"); return; } - ByteBuf buffer = event.packet.payload(); + ByteBuf in = event.packet.payload(); EnumPacketServer type = null; try { - type = EnumPacketServer.values()[buffer.readInt()]; + type = EnumPacketServer.values()[in.readInt()]; ItemStack item = player.inventory.getCurrentItem(); EntityNPCInterface npc = NoppesUtilServer.getEditingNpc(player); - if (type == EnumPacketServer.IsGuiOpen) { - isGuiOpenPacket(buffer, player); - return; - } else if (type == EnumPacketServer.CustomGuiButton && player.openContainer instanceof ContainerCustomGui) { - ((ContainerCustomGui) player.openContainer).customGui.fromNBT(ByteBufUtils.readNBT(buffer)); - EventHooks.onCustomGuiButton((IPlayer) NpcAPI.Instance().getIEntity(player), ((ContainerCustomGui) player.openContainer).customGui, buffer.readInt()); - return; - } else if (type == EnumPacketServer.CustomGuiUnfocused && player.openContainer instanceof ContainerCustomGui) { - ((ContainerCustomGui) player.openContainer).customGui.fromNBT(ByteBufUtils.readNBT(buffer)); - EventHooks.onCustomGuiUnfocused((IPlayer) NpcAPI.Instance().getIEntity(player), ((ContainerCustomGui) player.openContainer).customGui, buffer.readInt()); - return; - } else if (type == EnumPacketServer.CustomGuiScrollClick && player.openContainer instanceof ContainerCustomGui) { - ((ContainerCustomGui) player.openContainer).customGui.fromNBT(ByteBufUtils.readNBT(buffer)); - EventHooks.onCustomGuiScrollClick((IPlayer) NpcAPI.Instance().getIEntity(player), ((ContainerCustomGui) player.openContainer).customGui, buffer.readInt(), buffer.readInt(), CustomGuiController.readScrollSelection(buffer), buffer.readBoolean()); - return; - } else if (type == EnumPacketServer.CustomGuiClose) { - EventHooks.onCustomGuiClose((IPlayer) NpcAPI.Instance().getIEntity(player), (new ScriptGui()).fromNBT(ByteBufUtils.readNBT(buffer))); - return; - } else if (type == EnumPacketServer.QuestLogToServer) { - NoppesUtilPlayer.updateQuestLogData(buffer, player); - return; - } else if (type == EnumPacketServer.PartyLogToServer) { - NoppesUtilPlayer.updatePartyQuestLogData(buffer, player); - return; - } else if (type == EnumPacketServer.UntrackQuest) { - NoppesUtilPlayer.clearTrackQuest(player); - return; - } else if(type == EnumPacketServer.DimensionsGet){ - HashMap map = new HashMap(); - for(int id : DimensionManager.getStaticDimensionIDs()){ - WorldProvider provider = DimensionManager.createProviderFor(id); - map.put(provider.getDimensionName(), id); - } - ScrollDataPacket.sendScrollData(player, map); - } else if(type == EnumPacketServer.TagsGet){ - NoppesUtilServer.sendTagDataAll(player); - } else if (type == EnumPacketServer.NpcTagsGet) { - NBTTagCompound compound = new NBTTagCompound(); - NBTTagList tagList = new NBTTagList(); - for (UUID uuid : npc.advanced.tagUUIDs) { - Tag tag = TagController.getInstance().getTagFromUUID(uuid); - if (tag != null) { - tagList.appendTag(new NBTTagString(tag.name)); - } - } - compound.setTag("TagNames",tagList); - GuiDataPacket.sendGuiData(player, compound); - } else if (type == EnumPacketServer.CacheAnimation) { - PlayerDataController.Instance.getPlayerData(player).animationData.cacheAnimation(buffer.readInt()); + if (type == EnumPacketServer.CacheAnimation) { + PlayerDataController.Instance.getPlayerData(player).animationData.cacheAnimation(in.readInt()); return; } else if (type == EnumPacketServer.GetPartyData || type == EnumPacketServer.CreateParty) { if(!ConfigMain.PartiesEnabled) @@ -144,7 +97,7 @@ public class PacketHandlerServer{ compound.setBoolean("Disband", true); PartyDataPacket.sendPartyData(player, compound); } else if (type == EnumPacketServer.KickPlayer) { - String kickPlayerName = ByteBufUtils.readString(buffer); + String kickPlayerName = ByteBufUtils.readString(in); EntityPlayer kickPlayer = NoppesUtilServer.getPlayerByName(kickPlayerName); PlayerData playerData = null; UUID playerUUID = null; @@ -181,7 +134,7 @@ public class PacketHandlerServer{ } } } else if (type == EnumPacketServer.LeavePlayer) { - EntityPlayer leavingPlayer = NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(buffer)); + EntityPlayer leavingPlayer = NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(in)); if (leavingPlayer != null) { PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); if (playerData.partyUUID != null) { @@ -200,19 +153,19 @@ public class PacketHandlerServer{ PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); if (playerData.partyUUID != null) { Party party = PartyController.Instance().getParty(playerData.partyUUID); - party.readClientNBT(ByteBufUtils.readNBT(buffer)); + party.readClientNBT(ByteBufUtils.readNBT(in)); } } else if (type == EnumPacketServer.SetPartyLeader) { PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); if (playerData.partyUUID != null) { Party party = PartyController.Instance().getParty(playerData.partyUUID); if (!party.getIsLocked()) { - party.setLeader(NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(buffer))); + party.setLeader(NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(in))); PartyController.Instance().pingPartyUpdate(party); } } } else if (type == EnumPacketServer.PartyInvite) { - EntityPlayer invitedPlayer = NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(buffer)); + EntityPlayer invitedPlayer = NoppesUtilServer.getPlayerByName(ByteBufUtils.readString(in)); if (invitedPlayer != null) { PlayerData senderData = PlayerDataController.Instance.getPlayerData(player); PlayerData invitedData = PlayerDataController.Instance.getPlayerData(invitedPlayer); @@ -232,14 +185,14 @@ public class PacketHandlerServer{ sendInviteData(player); } else if (type == EnumPacketServer.AcceptInvite) { PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); - String uuidString = ByteBufUtils.readString(buffer); + String uuidString = ByteBufUtils.readString(in); if (uuidString != null) { UUID uuid = UUID.fromString(uuidString); playerData.acceptInvite(uuid); } } else if (type == EnumPacketServer.IgnoreInvite) { PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); - String uuidString = ByteBufUtils.readString(buffer); + String uuidString = ByteBufUtils.readString(in); if (uuidString != null) { UUID uuid = UUID.fromString(uuidString); playerData.ignoreInvite(uuid); @@ -250,7 +203,7 @@ public class PacketHandlerServer{ Party party = PartyController.Instance().getParty(playerData.partyUUID); if (party != null) { if (party.getLeaderUUID().equals(player.getUniqueID())) { - int questID = buffer.readInt(); + int questID = in.readInt(); party.setQuest(null); if(questID != -1){ Quest foundQuest = QuestController.Instance.quests.get(questID); @@ -288,34 +241,34 @@ public class PacketHandlerServer{ else { if (item != null) { if (item.getItem() == CustomItems.wand) - wandPackets(type, buffer, player, npc); + wandPackets(type, in, player, npc); else if (item.getItem() == CustomItems.moving) - movingPackets(type, buffer, player, npc); + movingPackets(type, in, player, npc); else if (item.getItem() == CustomItems.mount) - mountPackets(type, buffer, player); + mountPackets(type, in, player); else if (item.getItem() == CustomItems.cloner) - clonePackets(type, buffer, player); + clonePackets(type, in, player); else if (item.getItem() == CustomItems.teleporter) - featherPackets(type, buffer, player); + featherPackets(type, in, player); else if (item.getItem() == Item.getItemFromBlock(CustomItems.waypoint) || item.getItem() == Item.getItemFromBlock(CustomItems.border) || item.getItem() == Item.getItemFromBlock(CustomItems.redstoneBlock)) - blockPackets(type, buffer, player); + blockPackets(type, in, player); else if (ConfigScript.canScript(player, CustomNpcsPermissions.SCRIPT)) { if (type == EnumPacketServer.EventScriptDataGet || type == EnumPacketServer.EventScriptDataSave) - npcEventScriptPackets(type, buffer, player, npc); + npcEventScriptPackets(type, in, player, npc); else if (type == EnumPacketServer.ScriptPlayerGet || type == EnumPacketServer.ScriptPlayerSave) - playerScriptPackets(type, buffer, player); + playerScriptPackets(type, in, player); else if (type == EnumPacketServer.ScriptGlobalNPCGet || type == EnumPacketServer.ScriptGlobalNPCSave) - npcGlobalScriptPackets(type, buffer, player); + npcGlobalScriptPackets(type, in, player); else if (type == EnumPacketServer.ScriptForgeGet || type == EnumPacketServer.ScriptForgeSave) - forgeScriptPackets(type, buffer, player); + forgeScriptPackets(type, in, player); else if (type == EnumPacketServer.ScriptItemDataGet || type == EnumPacketServer.ScriptItemDataSave) - itemScriptPackets(type, buffer, player); + itemScriptPackets(type, in, player); else if (type == EnumPacketServer.ScriptBlockDataGet || type == EnumPacketServer.ScriptBlockDataSave) - blockScriptPackets(type, buffer, player); + blockScriptPackets(type, in, player); else if (type == EnumPacketServer.ScriptGlobalGuiDataGet || type == EnumPacketServer.ScriptGlobalGuiDataSave) - getScriptsEnabled(type, buffer, player); + getScriptsEnabled(type, in, player); else if (item.getItem() == CustomItems.scripter) - scriptPackets(type, buffer, player, npc); + scriptPackets(type, in, player, npc); } } }