Added /blockcommand

This commit is contained in:
Jerom van der Sar
2012-12-06 10:32:08 +01:00
parent 88000cd504
commit 2c0dc8c845
5 changed files with 66 additions and 4 deletions

View File

@ -0,0 +1,41 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_blockcommand extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length != 1) {
return false;
}
Player p;
try
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
playerdata.setCommandsBlocked(!playerdata.areCommandsBlocked());
TFM_Util.adminAction(sender.getName(), (playerdata.areCommandsBlocked() ? "B" : "Unb") + "locking all commands for " + p.getName(), true);
TFM_Util.playerMsg(sender, (playerdata.areCommandsBlocked() ? "B" : "Unb") + "locked all commands.");
return true;
}
}

View File

@ -397,6 +397,12 @@ public class TFM_PlayerListener implements Listener
return;
}
if(playerdata.areCommandsBlocked())
{
TFM_Util.playerMsg(p, "Your commands have been blocked by an admin", ChatColor.RED);
event.setCancelled(true);
}
if (TotalFreedomMod.preprocessLogEnabled)
{
TFM_Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", p.getName(), ChatColor.stripColor(p.getDisplayName()), command), true);

View File

@ -47,6 +47,7 @@ public class TFM_UserInfo
private int lockup_schedule_id = -1;
private String last_message = "";
private boolean in_adminchat = false;
private boolean commands_blocked = false;
public TFM_UserInfo(Player player)
{
@ -428,4 +429,14 @@ public class TFM_UserInfo
{
return this.in_adminchat;
}
public boolean areCommandsBlocked()
{
return this.commands_blocked;
}
public void setCommandsBlocked(boolean commands_blocked)
{
this.commands_blocked = commands_blocked;
}
}