From 0a15fa5dfff62b55294e1946b9c6ce181d6268c6 Mon Sep 17 00:00:00 2001 From: isokissa3 Date: Sun, 23 Jul 2017 00:29:57 +0300 Subject: [PATCH] Fixed opping & deopping players even when it's not needed --- pom.xml | 2 +- .../flags/handlers/CommandOnEntryFlag.java | 32 +++++++++++-------- .../flags/handlers/CommandOnExitFlag.java | 32 +++++++++++-------- src/main/resources/plugin.yml | 5 ++- 4 files changed, 41 insertions(+), 30 deletions(-) diff --git a/pom.xml b/pom.xml index a7fef41..b327644 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 net.goldtreeservers worldguardextraflags - 2.14 + 2.14.1 WorldGuardExtraFlags WorldGuardExtraFlagsPlugin diff --git a/src/main/java/net/goldtreeservers/worldguardextraflags/flags/handlers/CommandOnEntryFlag.java b/src/main/java/net/goldtreeservers/worldguardextraflags/flags/handlers/CommandOnEntryFlag.java index 46614e5..5d66f65 100644 --- a/src/main/java/net/goldtreeservers/worldguardextraflags/flags/handlers/CommandOnEntryFlag.java +++ b/src/main/java/net/goldtreeservers/worldguardextraflags/flags/handlers/CommandOnEntryFlag.java @@ -45,29 +45,35 @@ public class CommandOnEntryFlag extends Handler { Collection> commands = toSet.queryAllValues(WorldGuardUtils.wrapPlayer(player), FlagUtils.COMMAND_ON_ENTRY); - boolean isOp = player.isOp(); - - try + for(Set commands_ : commands) { - player.setOp(true); - - for(Set commands_ : commands) + if (!this.lastCommands.contains(commands_)) { - if (!this.lastCommands.contains(commands_)) + boolean isOp = player.isOp(); + + try { + if (!isOp) + { + player.setOp(true); + } + for(String command : commands_) { WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(player, command.substring(1).replace("%username%", player.getName())); //TODO: Make this better } - - break; } + finally + { + if (!isOp) + { + player.setOp(isOp); + } + } + + break; } } - finally - { - player.setOp(isOp); - } this.lastCommands = new ArrayList>(commands); diff --git a/src/main/java/net/goldtreeservers/worldguardextraflags/flags/handlers/CommandOnExitFlag.java b/src/main/java/net/goldtreeservers/worldguardextraflags/flags/handlers/CommandOnExitFlag.java index ea7be6f..60b210e 100644 --- a/src/main/java/net/goldtreeservers/worldguardextraflags/flags/handlers/CommandOnExitFlag.java +++ b/src/main/java/net/goldtreeservers/worldguardextraflags/flags/handlers/CommandOnExitFlag.java @@ -63,29 +63,35 @@ public class CommandOnExitFlag extends Handler } } - boolean isOp = player.isOp(); - - try + for(Set commands_ : commands) { - player.setOp(true); - - for(Set commands_ : commands) + if (!this.lastCommands.contains(commands_)) { - if (!this.lastCommands.contains(commands_)) + boolean isOp = player.isOp(); + + try { + if (!isOp) + { + player.setOp(true); + } + for(String command : commands_) { WorldGuardExtraFlagsPlugin.getPlugin().getServer().dispatchCommand(player, command.substring(1).replace("%username%", player.getName())); //TODO: Make this better } - - break; } + finally + { + if (!isOp) + { + player.setOp(isOp); + } + } + + break; } } - finally - { - player.setOp(isOp); - } this.lastCommands = commands; } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 9427b6c..af8baf1 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,8 +1,7 @@ name: WorldGuardExtraFlags -version: 2.14 -description: Add more flags to worldguard to help manage your server easily! +version: 2.14.1 +description: Adds more flags to worldguard to help manage your server easily! author: isokissa3 -authors: [isokissa3] website: https://goldtreevers.net depend: [ WorldGuard ] softdepend: [ MythicMobs, FastAsyncWorldEdit, Essentials ]