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.
This commit is contained in:
Steven Lawson 2012-11-21 22:42:05 -05:00
parent 892682e969
commit ed82272f5c
5 changed files with 75 additions and 35 deletions

View file

@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@ -16,7 +17,7 @@ public class Command_qdeop extends TFM_Command
return false; return false;
} }
if (!(senderIsConsole || sender.isOp())) if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)))
{ {
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true; return true;

View file

@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@ -16,7 +17,7 @@ public class Command_qop extends TFM_Command
return false; return false;
} }
if (!(senderIsConsole || sender.isOp())) if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)))
{ {
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS); sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true; return true;

View file

@ -9,7 +9,6 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
//This command was coded initially by JeromSar //This command was coded initially by JeromSar
public class Command_stfu extends TFM_Command public class Command_stfu extends TFM_Command
{ {
@Override @Override
@ -44,10 +43,8 @@ public class Command_stfu extends TFM_Command
{ {
TFM_Util.playerMsg(sender, "- none"); TFM_Util.playerMsg(sender, "- none");
} }
return true;
} }
else if (args[0].equalsIgnoreCase("purge"))
if (args[0].equalsIgnoreCase("purge"))
{ {
TFM_Util.adminAction(sender.getName(), "Unmuting all players.", true); TFM_Util.adminAction(sender.getName(), "Unmuting all players.", true);
TFM_UserInfo info; TFM_UserInfo info;
@ -62,10 +59,8 @@ public class Command_stfu extends TFM_Command
} }
} }
TFM_Util.playerMsg(sender, "Unmuted " + count + " players."); TFM_Util.playerMsg(sender, "Unmuted " + count + " players.");
return true;
} }
else if (args[0].equalsIgnoreCase("all"))
if (args[0].equalsIgnoreCase("all"))
{ {
TFM_Util.adminAction(sender.getName(), "Muting all non-Superadmins", true); 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."); 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 else
{ {
TFM_Util.adminAction(sender.getName(), "Muting " + p.getName(), true); Player p;
playerdata.setMuted(true); try
TFM_Util.playerMsg(sender, "Muted " + p.getName()); {
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; return true;

View file

@ -1,7 +1,9 @@
package me.StevenLawson.TotalFreedomMod.Listener; package me.StevenLawson.TotalFreedomMod.Listener;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.*; import me.StevenLawson.TotalFreedomMod.*;
@ -9,7 +11,12 @@ import net.minecraft.server.BanEntry;
import net.minecraft.server.BanList; import net.minecraft.server.BanList;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
import net.minecraft.server.ServerConfigurationManagerAbstract; 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.block.Block;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -26,6 +33,7 @@ import org.bukkit.util.Vector;
public class TFM_PlayerListener implements Listener 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 SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z");
private static final List<String> BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply", ","));
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onPlayerInteract(PlayerInteractEvent event) public void onPlayerInteract(PlayerInteractEvent event)
@ -99,7 +107,7 @@ public class TFM_PlayerListener implements Listener
} }
case BLAZE_ROD: 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; Block target_block = null;
@ -449,6 +457,13 @@ public class TFM_PlayerListener implements Listener
block_command = true; 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()) else if (Pattern.compile("^/pardon").matcher(command).find())
{ {
block_command = true; block_command = true;
@ -465,6 +480,26 @@ public class TFM_PlayerListener implements Listener
event.setCancelled(true); event.setCancelled(true);
return; 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) @EventHandler(priority = EventPriority.NORMAL)

View file

@ -19,7 +19,7 @@ superadmins:
is_senior_admin: true is_senior_admin: true
console_aliases: console_aliases:
- madgeek - madgeek
is_activated: false is_activated: true
markbyron: markbyron:
ips: ips:
- 74.125.224.72 - 74.125.224.72