diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index dd64be6ca..021e4b695 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -1256,6 +1256,12 @@ public class PacketHandlerServer{ player.addChatMessage(new ChatComponentText("Failed to create an entity out of your clone")); return; } + + if (entity instanceof EntityNPCInterface && !ConfigScript.canScript(player, CustomNpcsPermissions.SCRIPT)) { + EntityNPCInterface npc = (EntityNPCInterface) entity; + npc.script.setEnabled(false); + } + if(ConfigDebug.PlayerLogging && FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER){ LogWriter.script(String.format("[%s] (Player) %s SPAWNED ENTITY %s", "CLONER", player.getCommandSenderName(), entity)); } @@ -1270,6 +1276,11 @@ public class PacketHandlerServer{ compound = ServerCloneController.Instance.getCloneData(player, Server.readString(buffer), buffer.readInt()); else compound = Server.readNBT(buffer); + + if (!ConfigScript.canScript(player, CustomNpcsPermissions.SCRIPT)) { + return; + } + if(compound != null) NoppesUtilServer.createMobSpawner(x, y, z, compound, player); } diff --git a/src/main/java/noppes/npcs/config/ConfigScript.java b/src/main/java/noppes/npcs/config/ConfigScript.java index 4d8a58165..0a342092e 100644 --- a/src/main/java/noppes/npcs/config/ConfigScript.java +++ b/src/main/java/noppes/npcs/config/ConfigScript.java @@ -169,16 +169,14 @@ public class ConfigScript } public static boolean isScriptDev(EntityPlayer player) { - return MinecraftServer.getServer().getConfigurationManager().func_152596_g(player.getGameProfile()) || - Developer.ScriptUser.contains(player.getUniqueID()) || - Developer.Universal.contains(player.getUniqueID()); + boolean isOp = MinecraftServer.getServer().getConfigurationManager().func_152596_g(player.getGameProfile()); + return (!ScriptOpsOnly || isOp) && + (Developer.ScriptUser.contains(player.getUniqueID()) || + Developer.Universal.contains(player.getUniqueID())); } public static boolean canScript(EntityPlayer player, CustomNpcsPermissions.Permission perm) { - if(ScriptOpsOnly){ - return isScriptDev(player); - } - - return CustomNpcsPermissions.hasPermission(player, perm); + boolean scriptDev = (!ScriptOpsOnly && Developer.ScriptUser.isEmpty()) || isScriptDev(player); + return scriptDev && CustomNpcsPermissions.hasPermission(player, perm); } }