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
This commit is contained in:
parent
960aca6240
commit
b4450b3bdb
@ -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
|
||||
// -------------------------------------------- //
|
||||
|
@ -30,16 +30,9 @@ public class FactionsChatEarlyListener extends PlayerListener
|
||||
{
|
||||
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?
|
||||
|
@ -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
|
||||
(
|
||||
|
Loading…
Reference in New Issue
Block a user