From b4450b3bdb1ff3e8369ce5c9f1eb7fdb68d8b932 Mon Sep 17 00:00:00 2001 From: Brettflan Date: Wed, 18 Jan 2012 22:42:58 -0600 Subject: [PATCH] fix for factions-specific commands not being prevented properly if they were in "territoryNeutralDenyCommands" or "territoryEnemyDenyCommands" also got rid of a command preprocess listener which is now unnecessary --- src/com/massivecraft/factions/P.java | 10 +++++++++- .../listeners/FactionsChatEarlyListener.java | 11 ++-------- .../listeners/FactionsPlayerListener.java | 20 ++++++++----------- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/com/massivecraft/factions/P.java b/src/com/massivecraft/factions/P.java index 2b28d16f..15529d0d 100644 --- a/src/com/massivecraft/factions/P.java +++ b/src/com/massivecraft/factions/P.java @@ -9,6 +9,7 @@ import java.util.Set; import org.bukkit.block.Block; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.Event; import org.bukkit.event.player.PlayerChatEvent; @@ -112,7 +113,6 @@ public class P extends MPlugin // Player Events this.registerEvent(Event.Type.PLAYER_CHAT, this.playerListener, Event.Priority.Highest); this.registerEvent(Event.Type.PLAYER_CHAT, this.chatEarlyListener, Event.Priority.Lowest); - this.registerEvent(Event.Type.PLAYER_COMMAND_PREPROCESS, this.playerListener, Event.Priority.Normal); this.registerEvent(Event.Type.PLAYER_INTERACT, this.playerListener, Event.Priority.Normal); this.registerEvent(Event.Type.PLAYER_MOVE, this.playerListener, Event.Priority.Normal); this.registerEvent(Event.Type.PLAYER_JOIN, this.playerListener, Event.Priority.Normal); @@ -182,6 +182,14 @@ public class P extends MPlugin Conf.save(); } + @Override + public boolean handleCommand(CommandSender sender, String commandString, boolean testOnly) + { + if (sender instanceof Player && FactionsPlayerListener.preventCommand(commandString, (Player)sender)) return true; + + return super.handleCommand(sender, commandString, testOnly); + } + // -------------------------------------------- // // Integration with other plugins // -------------------------------------------- // diff --git a/src/com/massivecraft/factions/listeners/FactionsChatEarlyListener.java b/src/com/massivecraft/factions/listeners/FactionsChatEarlyListener.java index a5209f0a..a98f304b 100644 --- a/src/com/massivecraft/factions/listeners/FactionsChatEarlyListener.java +++ b/src/com/massivecraft/factions/listeners/FactionsChatEarlyListener.java @@ -29,17 +29,10 @@ public class FactionsChatEarlyListener extends PlayerListener public void onPlayerChat(PlayerChatEvent event) { if (event.isCancelled()) return; - - if (p.handleCommand(event.getPlayer(), event.getMessage())) - { - event.setCancelled(true); - return; - } - + Player talkingPlayer = event.getPlayer(); String msg = event.getMessage(); - - // ... it was not a command. This means that it is a chat message! + FPlayer me = FPlayers.i.get(talkingPlayer); // Is it a faction chat message? diff --git a/src/com/massivecraft/factions/listeners/FactionsPlayerListener.java b/src/com/massivecraft/factions/listeners/FactionsPlayerListener.java index 0c223a43..eb88d166 100644 --- a/src/com/massivecraft/factions/listeners/FactionsPlayerListener.java +++ b/src/com/massivecraft/factions/listeners/FactionsPlayerListener.java @@ -314,17 +314,6 @@ public class FactionsPlayerListener extends PlayerListener } } - @Override - public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) - { - if (event.isCancelled()) return; - - if (preventCommand(event.getMessage().toLowerCase(), event.getPlayer())) - { - event.setCancelled(true); - } - } - public static boolean preventCommand(String fullCmd, Player player) { if ((Conf.territoryNeutralDenyCommands.isEmpty() && Conf.territoryEnemyDenyCommands.isEmpty())) @@ -340,7 +329,14 @@ public class FactionsPlayerListener extends PlayerListener return false; } - String shortCmd = fullCmd.substring(1); // Get rid of the slash at the beginning + String shortCmd; // command without the slash at the beginning + if (fullCmd.startsWith("/")) + shortCmd = fullCmd.substring(1); + else + { + shortCmd = fullCmd; + fullCmd = "/" + fullCmd; + } if (