From ed82272f5cfe241b9bf3170e5f4f54aba0294e11 Mon Sep 17 00:00:00 2001 From: Steven Lawson Date: Wed, 21 Nov 2012 22:42:05 -0500 Subject: [PATCH] A few of Darth's recent dev branch changes. -Made it so only superadmins can use qop and qdeop -Reformat of mute/stfu, now blocks essentials based communication commands as well as /say when someone is muted. -Blocked socialspy. --- .../Commands/Command_qdeop.java | 3 +- .../TotalFreedomMod/Commands/Command_qop.java | 3 +- .../Commands/Command_stfu.java | 63 ++++++++++--------- .../Listener/TFM_PlayerListener.java | 39 +++++++++++- src/superadmin.yml | 2 +- 5 files changed, 75 insertions(+), 35 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java index 82bd69a3..be6c71d6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qdeop.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; @@ -16,7 +17,7 @@ public class Command_qdeop extends TFM_Command return false; } - if (!(senderIsConsole || sender.isOp())) + if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) { sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java index 81d4e70a..f9272a0f 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_qop.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import org.bukkit.command.Command; @@ -16,7 +17,7 @@ public class Command_qop extends TFM_Command return false; } - if (!(senderIsConsole || sender.isOp())) + if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))) { sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java index 58125e37..fedaf056 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_stfu.java @@ -9,7 +9,6 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; //This command was coded initially by JeromSar - public class Command_stfu extends TFM_Command { @Override @@ -44,10 +43,8 @@ public class Command_stfu extends TFM_Command { TFM_Util.playerMsg(sender, "- none"); } - return true; } - - if (args[0].equalsIgnoreCase("purge")) + else if (args[0].equalsIgnoreCase("purge")) { TFM_Util.adminAction(sender.getName(), "Unmuting all players.", true); TFM_UserInfo info; @@ -62,10 +59,8 @@ public class Command_stfu extends TFM_Command } } TFM_Util.playerMsg(sender, "Unmuted " + count + " players."); - return true; } - - if (args[0].equalsIgnoreCase("all")) + else if (args[0].equalsIgnoreCase("all")) { TFM_Util.adminAction(sender.getName(), "Muting all non-Superadmins", true); @@ -82,32 +77,40 @@ public class Command_stfu extends TFM_Command } TFM_Util.playerMsg(sender, "Muted " + counter + " players."); - return true; - } - - Player p; - try - { - p = getPlayer(args[0]); - } - catch (CantFindPlayerException ex) - { - sender.sendMessage(ex.getMessage()); - return true; - } - - TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); - if (playerdata.isMuted()) - { - TFM_Util.adminAction(sender.getName(), "Unmuting " + p.getName(), true); - playerdata.setMuted(false); - TFM_Util.playerMsg(sender, "Unmuted " + p.getName()); } else { - TFM_Util.adminAction(sender.getName(), "Muting " + p.getName(), true); - playerdata.setMuted(true); - TFM_Util.playerMsg(sender, "Muted " + p.getName()); + Player p; + try + { + p = getPlayer(args[0]); + } + catch (CantFindPlayerException ex) + { + sender.sendMessage(ex.getMessage()); + return true; + } + + TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p); + if (playerdata.isMuted()) + { + TFM_Util.adminAction(sender.getName(), "Unmuting " + p.getName(), true); + playerdata.setMuted(false); + TFM_Util.playerMsg(sender, "Unmuted " + p.getName()); + } + else + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + TFM_Util.adminAction(sender.getName(), "Muting " + p.getName(), true); + playerdata.setMuted(true); + TFM_Util.playerMsg(sender, "Muted " + p.getName()); + } + else + { + TFM_Util.playerMsg(sender, p.getName() + " is a superadmin, and can't be muted."); + } + } } return true; diff --git a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java index ed22a20b..cbf690c6 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java +++ b/src/me/StevenLawson/TotalFreedomMod/Listener/TFM_PlayerListener.java @@ -1,7 +1,9 @@ package me.StevenLawson.TotalFreedomMod.Listener; import java.text.SimpleDateFormat; +import java.util.Arrays; import java.util.Iterator; +import java.util.List; import java.util.Map.Entry; import java.util.regex.Pattern; import me.StevenLawson.TotalFreedomMod.*; @@ -9,7 +11,12 @@ import net.minecraft.server.BanEntry; import net.minecraft.server.BanList; import net.minecraft.server.MinecraftServer; import net.minecraft.server.ServerConfigurationManagerAbstract; -import org.bukkit.*; +import org.apache.commons.lang.StringUtils; +import org.bukkit.ChatColor; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Server; import org.bukkit.block.Block; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -26,6 +33,7 @@ import org.bukkit.util.Vector; public class TFM_PlayerListener implements Listener { private static final SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); + private static final List BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply", ",")); @EventHandler(priority = EventPriority.HIGH) public void onPlayerInteract(PlayerInteractEvent event) @@ -99,7 +107,7 @@ public class TFM_PlayerListener implements Listener } case BLAZE_ROD: { - if (TotalFreedomMod.allowExplosions && (player.getName().equals("Madgeek1450") || player.getName().equals("markbyron"))) + if (TotalFreedomMod.allowExplosions && TFM_SuperadminList.isSeniorAdmin(player)) { Block target_block = null; @@ -449,6 +457,13 @@ public class TFM_PlayerListener implements Listener block_command = true; } } + else if (Pattern.compile("^/e?socialspy").matcher(command).find()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + block_command = true; + } + } else if (Pattern.compile("^/pardon").matcher(command).find()) { block_command = true; @@ -465,6 +480,26 @@ public class TFM_PlayerListener implements Listener event.setCancelled(true); return; } + + if (playerdata.isMuted()) + { + if (!TFM_SuperadminList.isUserSuperadmin(p)) + { + for (String test_command : BLOCKED_MUTED_CMDS) + { + if (Pattern.compile("^/" + test_command.toLowerCase() + " ").matcher(command.toLowerCase()).find()) + { + p.sendMessage(ChatColor.RED + "That command is blocked while you are muted."); + event.setCancelled(true); + return; + } + } + } + else + { + playerdata.setMuted(false); + } + } } @EventHandler(priority = EventPriority.NORMAL) diff --git a/src/superadmin.yml b/src/superadmin.yml index ed47ee80..4be36852 100644 --- a/src/superadmin.yml +++ b/src/superadmin.yml @@ -19,7 +19,7 @@ superadmins: is_senior_admin: true console_aliases: - madgeek - is_activated: false + is_activated: true markbyron: ips: - 74.125.224.72