From 739bc932f90ef0e7efe2d3d3b2d14c1f444a3b13 Mon Sep 17 00:00:00 2001 From: Kam Date: Thu, 7 Mar 2024 19:34:25 -0500 Subject: [PATCH] Fix Script Permission --- src/main/java/noppes/npcs/CustomNpcsPermissions.java | 1 + src/main/java/noppes/npcs/PacketHandlerServer.java | 2 +- src/main/java/noppes/npcs/config/ConfigScript.java | 11 ++++++++++- src/main/java/noppes/npcs/items/ItemNpcScripter.java | 2 +- src/main/java/noppes/npcs/items/ItemScripted.java | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/noppes/npcs/CustomNpcsPermissions.java b/src/main/java/noppes/npcs/CustomNpcsPermissions.java index 071e63a51..17fd9269f 100644 --- a/src/main/java/noppes/npcs/CustomNpcsPermissions.java +++ b/src/main/java/noppes/npcs/CustomNpcsPermissions.java @@ -72,6 +72,7 @@ public class CustomNpcsPermissions{ public static final Permission SOULSTONE_ALL = new Permission("customnpcs.soulstone.all"); // Modify / Save Scripts + public static final Permission SCRIPT = new Permission("customnpcs.script"); public static final Permission SCRIPT_NPC = new Permission("customnpcs.script.npc"); public static final Permission SCRIPT_FORGE = new Permission("customnpcs.script.forge"); public static final Permission SCRIPT_PLAYER = new Permission("customnpcs.script.player"); diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index f0bd5402b..be99524fa 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -285,7 +285,7 @@ public class PacketHandlerServer{ featherPackets(type, buffer, 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); - else if (ConfigScript.isScriptDev(player)) { + else if (ConfigScript.canScript(player, CustomNpcsPermissions.SCRIPT)) { if (type == EnumPacketServer.EventScriptDataGet || type == EnumPacketServer.EventScriptDataSave) npcEventScriptPackets(type, buffer, player, npc); else if (type == EnumPacketServer.ScriptPlayerGet || type == EnumPacketServer.ScriptPlayerSave) diff --git a/src/main/java/noppes/npcs/config/ConfigScript.java b/src/main/java/noppes/npcs/config/ConfigScript.java index 32af30968..4d8a58165 100644 --- a/src/main/java/noppes/npcs/config/ConfigScript.java +++ b/src/main/java/noppes/npcs/config/ConfigScript.java @@ -7,6 +7,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; import noppes.npcs.CustomNpcs; +import noppes.npcs.CustomNpcsPermissions; import noppes.npcs.config.legacy.LegacyConfig; import org.apache.logging.log4j.Level; @@ -168,8 +169,16 @@ public class ConfigScript } public static boolean isScriptDev(EntityPlayer player) { - return ScriptOpsOnly && MinecraftServer.getServer().getConfigurationManager().func_152596_g(player.getGameProfile()) || + return MinecraftServer.getServer().getConfigurationManager().func_152596_g(player.getGameProfile()) || 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); + } } diff --git a/src/main/java/noppes/npcs/items/ItemNpcScripter.java b/src/main/java/noppes/npcs/items/ItemNpcScripter.java index 55146dd9f..196880778 100644 --- a/src/main/java/noppes/npcs/items/ItemNpcScripter.java +++ b/src/main/java/noppes/npcs/items/ItemNpcScripter.java @@ -37,7 +37,7 @@ public class ItemNpcScripter extends Item{ public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player){ if(!world.isRemote) return itemStack; - if(!ConfigScript.isScriptDev(player) && !CustomNpcsPermissions.hasPermission(player, CustomNpcsPermissions.TOOL_SCRIPTER)){ + if(!ConfigScript.canScript(player, CustomNpcsPermissions.TOOL_SCRIPTER)){ player.addChatMessage(new ChatComponentTranslation("availability.permission")); } else { CustomNpcs.proxy.openGui(0, 0, 0, EnumGuiType.ScriptEvent, player); diff --git a/src/main/java/noppes/npcs/items/ItemScripted.java b/src/main/java/noppes/npcs/items/ItemScripted.java index 5131171a7..5d2334fa3 100644 --- a/src/main/java/noppes/npcs/items/ItemScripted.java +++ b/src/main/java/noppes/npcs/items/ItemScripted.java @@ -59,7 +59,7 @@ public class ItemScripted extends Item implements ItemRenderInterface { public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { if(player.isSneaking() && player.capabilities.isCreativeMode) { - if(!ConfigScript.isScriptDev(player) && !CustomNpcsPermissions.Instance.hasPermission(player, CustomNpcsPermissions.TOOL_SCRIPTED_ITEM)){ + if(!ConfigScript.canScript(player, CustomNpcsPermissions.TOOL_SCRIPTED_ITEM)){ player.addChatMessage(new ChatComponentTranslation("availability.permission")); } else { CustomNpcs.proxy.openGui(0, 0, 0, EnumGuiType.ScriptItem, player);