From e77a1032d30841cdbbb175a923b6f6101128098e Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 30 Jan 2025 18:13:04 -0500 Subject: [PATCH] commit --- .../kamkeel/npcs/network/AbstractPacket.java | 17 +++++++++++++++++ .../kamkeel/npcs/network/PacketHandler.java | 18 +++++++++++++++--- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/main/java/kamkeel/npcs/network/AbstractPacket.java b/src/main/java/kamkeel/npcs/network/AbstractPacket.java index 527f50547..9965ddd4b 100644 --- a/src/main/java/kamkeel/npcs/network/AbstractPacket.java +++ b/src/main/java/kamkeel/npcs/network/AbstractPacket.java @@ -4,6 +4,8 @@ import cpw.mods.fml.common.network.internal.FMLProxyPacket; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import net.minecraft.entity.player.EntityPlayer; +import noppes.npcs.CustomNpcsPermissions; +import noppes.npcs.entity.EntityNPCInterface; import java.io.IOException; import java.util.Collections; @@ -11,6 +13,8 @@ import java.util.List; public abstract class AbstractPacket { + public EntityNPCInterface npc; + public FMLProxyPacket generatePacket() { PacketChannel packetChannel = getChannel(); ByteBuf buf = Unpooled.buffer(); @@ -36,6 +40,19 @@ public abstract class AbstractPacket { public abstract Enum getType(); public abstract PacketChannel getChannel(); + + public CustomNpcsPermissions.Permission getPermission(){ + return null; + } + + public boolean needsNPC(){ + return false; + } + + public void setNPC(EntityNPCInterface npc){ + this.npc = npc; + } + public abstract void sendData(ByteBuf out) throws IOException; //"player" on the server side is the client who sent this packet diff --git a/src/main/java/kamkeel/npcs/network/PacketHandler.java b/src/main/java/kamkeel/npcs/network/PacketHandler.java index d40e44b19..6425de62d 100644 --- a/src/main/java/kamkeel/npcs/network/PacketHandler.java +++ b/src/main/java/kamkeel/npcs/network/PacketHandler.java @@ -18,7 +18,10 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.NetHandlerPlayServer; import noppes.npcs.CustomNpcs; +import noppes.npcs.CustomNpcsPermissions; import noppes.npcs.LogWriter; +import noppes.npcs.NoppesUtilServer; +import noppes.npcs.entity.EntityNPCInterface; import java.util.*; @@ -154,9 +157,18 @@ public final class PacketHandler { return; } - if(packetType == EnumChannelType.REQUEST){ - EnumRequestPacket requestPacket = EnumRequestPacket.values()[packetId]; - if() + // Check if permission is allowed + if(abstractPacket.getPermission() != null && !CustomNpcsPermissions.hasPermission(player, abstractPacket.getPermission())){ + return; + } + + // Check for required NPC + if(abstractPacket.needsNPC()){ + EntityNPCInterface npc = NoppesUtilServer.getEditingNpc(player); + if(npc == null) + return; + + abstractPacket.setNPC(npc); } // Let the packet parse the rest