Merge branch master into dev

This commit is contained in:
Jerom van der Sar 2012-11-27 20:56:42 +01:00
commit 2d9fafc05e
84 changed files with 1167 additions and 1373 deletions

View File

@ -0,0 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands;
public enum ADMIN_LEVEL
{
ALL, OP, SUPER, SENIOR
}

View File

@ -0,0 +1,16 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface CommandPermissions
{
ADMIN_LEVEL level();
SOURCE_TYPE_ALLOWED source();
boolean block_web_console() default false;
boolean ignore_permissions() default true;
}

View File

@ -3,22 +3,16 @@ 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.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_adminmode extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName()))
{
sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console.");
return true;
}
if (args[0].equalsIgnoreCase("off"))
{
TotalFreedomMod.adminOnlyMode = false;

View File

@ -1,9 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Location;
@ -12,36 +10,47 @@ 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 = false)
public class Command_cage extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length == 0)
{
if (args.length == 0)
{
return false;
}
return false;
}
Player p;
try
Player p;
try
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
Material cage_material_outer = Material.GLASS;
Material cage_material_inner = Material.AIR;
if (args.length >= 2)
{
if (TFM_Util.isStopCommand(args[1]))
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
TFM_Util.adminAction(sender.getName(), "Uncaging " + p.getName(), true);
playerdata.setCaged(false);
playerdata.regenerateHistory();
playerdata.clearHistory();
sender.sendMessage(ChatColor.GREEN + p.getName() + " uncaged.");
return true;
}
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
Material cage_material_outer = Material.GLASS;
Material cage_material_inner = Material.AIR;
if (args.length >= 2)
else
{
if (TFM_Util.isStopCommand(args[1]))
cage_material_outer = Material.matchMaterial(args[1]);
if (cage_material_outer == null)
{
TFM_Util.adminAction(sender.getName(), "Uncaging " + p.getName(), true);
playerdata.setCaged(false);
@ -52,42 +61,32 @@ public class Command_cage extends TFM_Command
}
else
{
cage_material_outer = Material.matchMaterial(args[1]);
if (cage_material_outer == null)
{
cage_material_outer = Material.GLASS;
}
cage_material_outer = Material.GLASS;
}
}
if (args.length >= 3)
{
if (args[2].equalsIgnoreCase("water"))
{
cage_material_inner = Material.STATIONARY_WATER;
}
else if (args[2].equalsIgnoreCase("lava"))
{
cage_material_inner = Material.STATIONARY_LAVA;
}
}
Location target_pos = p.getLocation().add(0, 1, 0);
playerdata.setCaged(true, target_pos, cage_material_outer, cage_material_inner);
playerdata.regenerateHistory();
playerdata.clearHistory();
TFM_Util.buildHistory(target_pos, 2, playerdata);
TFM_Util.generateCube(target_pos, 2, playerdata.getCageMaterial(TFM_UserInfo.CageLayer.OUTER));
TFM_Util.generateCube(target_pos, 1, playerdata.getCageMaterial(TFM_UserInfo.CageLayer.INNER));
p.setGameMode(GameMode.SURVIVAL);
TFM_Util.adminAction(sender.getName(), "Caging " + p.getName(), true);
}
else
if (args.length >= 3)
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
if (args[2].equalsIgnoreCase("water"))
{
cage_material_inner = Material.STATIONARY_WATER;
}
else if (args[2].equalsIgnoreCase("lava"))
{
cage_material_inner = Material.STATIONARY_LAVA;
}
}
Location target_pos = p.getLocation().add(0, 1, 0);
playerdata.setCaged(true, target_pos, cage_material_outer, cage_material_inner);
playerdata.regenerateHistory();
playerdata.clearHistory();
TFM_Util.buildHistory(target_pos, 2, playerdata);
TFM_Util.generateCube(target_pos, 2, playerdata.getCageMaterial(TFM_UserInfo.CageLayer.OUTER));
TFM_Util.generateCube(target_pos, 1, playerdata.getCageMaterial(TFM_UserInfo.CageLayer.INNER));
p.setGameMode(GameMode.SURVIVAL);
TFM_Util.adminAction(sender.getName(), "Caging " + p.getName(), true);
return true;
}
}

View File

@ -1,7 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.Random;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.Material;
@ -10,35 +9,29 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_cake extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
StringBuilder output = new StringBuilder();
Random randomGenerator = new Random();
for (String word : TotalFreedomMod.CAKE_LYRICS.split(" "))
{
StringBuilder output = new StringBuilder();
Random randomGenerator = new Random();
for (String word : TotalFreedomMod.CAKE_LYRICS.split(" "))
{
String color_code = Integer.toHexString(1 + randomGenerator.nextInt(14));
output.append("§").append(color_code).append(word).append(" ");
}
for (Player p : server.getOnlinePlayers())
{
ItemStack heldItem = new ItemStack(Material.CAKE, 1);
p.getInventory().setItem(p.getInventory().firstEmpty(), heldItem);
}
TFM_Util.bcastMsg(output.toString());
String color_code = Integer.toHexString(1 + randomGenerator.nextInt(14));
output.append("§").append(color_code).append(word).append(" ");
}
else
for (Player p : server.getOnlinePlayers())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
ItemStack heldItem = new ItemStack(Material.CAKE, 1);
p.getInventory().setItem(p.getInventory().firstEmpty(), heldItem);
}
TFM_Util.bcastMsg(output.toString());
return true;
}
}

View File

@ -6,6 +6,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Minecart;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_cartsit extends TFM_Command
{
@Override

View File

@ -1,36 +1,18 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
//This command was coded initially by JeromSar
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_clearall extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
}
CommandSender cSender;
if (senderIsConsole)
{
cSender = server.getConsoleSender();
}
else
{
cSender = sender;
}
server.dispatchCommand(cSender, "rd"); // remove entities
server.dispatchCommand(cSender, "denick"); // remove nicks
server.dispatchCommand(cSender, "uall"); // undisguise all
server.dispatchCommand(sender, "rd");
server.dispatchCommand(sender, "denick");
server.dispatchCommand(sender, "uall");
return true;
}

View File

@ -5,13 +5,14 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.apache.commons.lang.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginDescriptionFile;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_cmdlist extends TFM_Command
{
@Override
@ -42,7 +43,7 @@ public class Command_cmdlist extends TFM_Command
Collections.sort(commands);
sender.sendMessage(TFM_Util.implodeStringList(",", commands));
sender.sendMessage(StringUtils.join(commands, ","));
return true;
}

View File

@ -1,12 +1,12 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_creative extends TFM_Command
{
@Override
@ -21,12 +21,6 @@ public class Command_creative extends TFM_Command
}
}
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
Player p;
if (args.length == 0)
{

View File

@ -1,35 +1,21 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, ignore_permissions = false)
public class Command_csay extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
if (args.length > 0)
{
String sender_name = sender.getName();
sender_name = sender_name.split("-")[0];
StringBuilder outmessage_bldr = new StringBuilder();
for (int i = 0; i < args.length; i++)
{
outmessage_bldr.append(args[i]).append(" ");
}
TFM_Util.bcastMsg(String.format("§7[CONSOLE]§f<§c%s§f> %s", sender_name, outmessage_bldr.toString().trim()));
TFM_Util.bcastMsg(String.format("§7[CONSOLE]§f<§c%s§f> %s", sender.getName(), StringUtils.join(args, " ")));
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
}
return true;
}
}

View File

@ -1,26 +1,17 @@
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.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
//This command was coded initially by JeromSar
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_deop extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length != 1)
{
return false;

View File

@ -1,30 +1,23 @@
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;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_deopall extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)
{
TFM_Util.adminAction(sender.getName(), "De-opping all players on the server", true);
TFM_Util.adminAction(sender.getName(), "De-opping all players on the server", true);
for (Player p : server.getOnlinePlayers())
{
p.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
}
}
else
for (Player p : server.getOnlinePlayers())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
p.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
}
return true;

View File

@ -0,0 +1,107 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.ArrayList;
import java.util.List;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.Dispenser;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_dispfill extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length == 2)
{
int radius;
try
{
radius = Math.max(5, Math.min(25, Integer.parseInt(args[0])));
}
catch (NumberFormatException ex)
{
sender.sendMessage("Invalid radius.");
return true;
}
String[] items_raw = StringUtils.split(args[1], ",");
List<ItemStack> items = new ArrayList<ItemStack>();
for (String search_item : items_raw)
{
ItemStack is = null;
is = new ItemStack(Material.matchMaterial(search_item), 64);
if (is == null)
{
try
{
is = new ItemStack(Integer.parseInt(search_item), 64);
}
catch (NumberFormatException ex)
{
}
}
if (is != null)
{
items.add(is);
}
else
{
sender.sendMessage("Skipping invalid item: " + search_item);
}
}
ItemStack[] items_array = items.toArray(new ItemStack[items.size()]);
int affected = 0;
Location center_location = sender_p.getLocation();
Block center_block = center_location.getBlock();
for (int x_offset = -radius; x_offset <= radius; x_offset++)
{
for (int y_offset = -radius; y_offset <= radius; y_offset++)
{
for (int z_offset = -radius; z_offset <= radius; z_offset++)
{
Block target_block = center_block.getRelative(x_offset, y_offset, z_offset);
if (target_block.getLocation().distanceSquared(center_location) < (radius * radius))
{
if (target_block.getType().equals(Material.DISPENSER))
{
sender.sendMessage("Filling dispenser @ " + TFM_Util.formatLocation(target_block.getLocation()));
setDispenserContents(target_block, items_array);
affected++;
}
}
}
}
}
sender.sendMessage("Done. " + affected + " dispenser(s) filled.");
}
else
{
return false;
}
return true;
}
private static void setDispenserContents(Block target_block, ItemStack[] items)
{
Dispenser dispenser = (Dispenser) target_block.getState();
Inventory disp_inv = dispenser.getInventory();
disp_inv.clear();
disp_inv.addItem(items);
}
}

View File

@ -2,24 +2,18 @@ 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.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, ignore_permissions = false)
public class Command_doom extends TFM_Command
{
@Override
public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(senderIsConsole && TFM_SuperadminList.isSeniorAdmin(sender)))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length != 1)
{
return false;

View File

@ -1,29 +1,17 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_enchant extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
return true;
}
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length < 1)
{
return false;

View File

@ -5,6 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_ender extends TFM_Command
{
@Override

View File

@ -1,77 +1,65 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_expel extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
double radius = 50.0;
double strength = 100.0;
if (args.length >= 1)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
}
else if (TFM_SuperadminList.isUserSuperadmin(sender))
{
double radius = 50.0;
double strength = 100.0;
if (args.length >= 1)
try
{
try
{
radius = Math.max(1.0, Math.min(200.0, Double.parseDouble(args[0])));
}
catch (NumberFormatException nfex)
{
}
radius = Math.max(1.0, Math.min(200.0, Double.parseDouble(args[0])));
}
if (args.length >= 2)
catch (NumberFormatException nfex)
{
try
{
strength = Math.max(0.0, Math.min(200.0, Double.parseDouble(args[1])));
}
catch (NumberFormatException nfex)
{
}
}
Location sender_pos = sender_p.getLocation();
for (Player p : sender_pos.getWorld().getPlayers())
{
if (!p.equals(sender_p))
{
Location target_pos = p.getLocation();
boolean in_range = false;
try
{
in_range = target_pos.distanceSquared(sender_pos) < (radius * radius);
}
catch (IllegalArgumentException ex)
{
}
if (in_range)
{
sender.sendMessage("Pushing " + p.getName());
Vector expel_direction = target_pos.subtract(sender_pos).toVector().normalize();
p.setVelocity(expel_direction.multiply(strength));
}
}
}
}
else
if (args.length >= 2)
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
try
{
strength = Math.max(0.0, Math.min(200.0, Double.parseDouble(args[1])));
}
catch (NumberFormatException nfex)
{
}
}
Location sender_pos = sender_p.getLocation();
for (Player p : sender_pos.getWorld().getPlayers())
{
if (!p.equals(sender_p))
{
Location target_pos = p.getLocation();
boolean in_range = false;
try
{
in_range = target_pos.distanceSquared(sender_pos) < (radius * radius);
}
catch (IllegalArgumentException ex)
{
}
if (in_range)
{
sender.sendMessage("Pushing " + p.getName());
Vector expel_direction = target_pos.subtract(sender_pos).toVector().normalize();
p.setVelocity(expel_direction.multiply(strength));
}
}
}
return true;

View File

@ -1,48 +1,41 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
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 = false)
public class Command_explosives extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length == 0)
{
if (args.length == 0)
{
return false;
}
return false;
}
if (args.length == 2)
if (args.length == 2)
{
try
{
try
{
TotalFreedomMod.explosiveRadius = Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1])));
}
catch (NumberFormatException nfex)
{
}
TotalFreedomMod.explosiveRadius = Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1])));
}
catch (NumberFormatException nfex)
{
}
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowExplosions = true;
sender.sendMessage("Explosives are now enabled, radius set to " + TotalFreedomMod.explosiveRadius + " blocks.");
}
else
{
TotalFreedomMod.allowExplosions = false;
sender.sendMessage("Explosives are now disabled.");
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowExplosions = true;
sender.sendMessage("Explosives are now enabled, radius set to " + TotalFreedomMod.explosiveRadius + " blocks.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TotalFreedomMod.allowExplosions = false;
sender.sendMessage("Explosives are now disabled.");
}
return true;

View File

@ -1,37 +1,30 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
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 = false)
public class Command_fireplace extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length != 1)
{
if (args.length != 1)
{
return false;
}
return false;
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowFirePlace = true;
sender.sendMessage("Fire placement is now enabled.");
}
else
{
TotalFreedomMod.allowFirePlace = false;
sender.sendMessage("Fire placement is now disabled.");
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowFirePlace = true;
sender.sendMessage("Fire placement is now enabled.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TotalFreedomMod.allowFirePlace = false;
sender.sendMessage("Fire placement is now disabled.");
}
return true;

View File

@ -1,37 +1,30 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
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 = false)
public class Command_firespread extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length != 1)
{
if (args.length != 1)
{
return false;
}
return false;
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowFireSpread = true;
sender.sendMessage("Fire spread is now enabled.");
}
else
{
TotalFreedomMod.allowFireSpread = false;
sender.sendMessage("Fire spread is now disabled.");
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowFireSpread = true;
sender.sendMessage("Fire spread is now enabled.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TotalFreedomMod.allowFireSpread = false;
sender.sendMessage("Fire spread is now disabled.");
}
return true;

View File

@ -7,6 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_flatlands extends TFM_Command
{
@Override

View File

@ -1,37 +1,30 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
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 = false)
public class Command_fluidspread extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length != 1)
{
if (args.length != 1)
{
return false;
}
return false;
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowFliudSpread = true;
sender.sendMessage("Lava and water spread is now enabled.");
}
else
{
TotalFreedomMod.allowFliudSpread = false;
sender.sendMessage("Lava and water spread is now disabled.");
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowFliudSpread = true;
sender.sendMessage("Lava and water spread is now enabled.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TotalFreedomMod.allowFliudSpread = false;
sender.sendMessage("Lava and water spread is now disabled.");
}
return true;

View File

@ -1,6 +1,5 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
@ -9,68 +8,62 @@ 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 = false)
public class Command_fr extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length == 0)
{
if (args.length == 0)
{
TotalFreedomMod.allPlayersFrozen = !TotalFreedomMod.allPlayersFrozen;
TotalFreedomMod.allPlayersFrozen = !TotalFreedomMod.allPlayersFrozen;
if (TotalFreedomMod.allPlayersFrozen)
{
TotalFreedomMod.allPlayersFrozen = true;
sender.sendMessage("Players are now frozen.");
TFM_Util.adminAction(sender.getName(), "Freezing all players", false);
}
else
{
TotalFreedomMod.allPlayersFrozen = false;
sender.sendMessage("Players are now free to move.");
TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false);
}
if (TotalFreedomMod.allPlayersFrozen)
{
TotalFreedomMod.allPlayersFrozen = true;
sender.sendMessage("Players are now frozen.");
TFM_Util.adminAction(sender.getName(), "Freezing all players", false);
}
else
{
if (args[0].toLowerCase().equals("purge"))
{
TotalFreedomMod.allPlayersFrozen = false;
for (Player p : server.getOnlinePlayers())
{
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
playerdata.setFrozen(false);
}
TFM_Util.adminAction(sender.getName(), "Lifting all global and player freezes", false);
}
else
{
Player p;
try
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
playerdata.setFrozen(!playerdata.isFrozen());
sender.sendMessage(ChatColor.AQUA + p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
}
TotalFreedomMod.allPlayersFrozen = false;
sender.sendMessage("Players are now free to move.");
TFM_Util.adminAction(sender.getName(), "Unfreezing all players", false);
}
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
if (args[0].toLowerCase().equals("purge"))
{
TotalFreedomMod.allPlayersFrozen = false;
for (Player p : server.getOnlinePlayers())
{
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
playerdata.setFrozen(false);
}
TFM_Util.adminAction(sender.getName(), "Lifting all global and player freezes", false);
}
else
{
Player p;
try
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
playerdata.setFrozen(!playerdata.isFrozen());
sender.sendMessage(ChatColor.AQUA + p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
}
}
return true;

View File

@ -1,28 +1,16 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_fuckoff extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
return true;
}
if (!(TFM_SuperadminList.isUserSuperadmin(sender) || !TFM_SuperadminList.isSeniorAdmin(sender_p)))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length < 1)
{
return false;

View File

@ -1,6 +1,5 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
@ -9,6 +8,7 @@ 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 = false)
public class Command_gadmin extends TFM_Command
{
@Override
@ -21,100 +21,92 @@ public class Command_gadmin extends TFM_Command
String mode = args[0].toLowerCase();
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (mode.equals("list"))
{
sender.sendMessage(ChatColor.GRAY + "[ Real Name ] : [ Display Name ] - Hash:");
}
for (Player p : server.getOnlinePlayers())
{
String hash = p.getUniqueId().toString().substring(0, 4);
if (mode.equals("list"))
{
sender.sendMessage(ChatColor.GRAY + "[ Real Name ] : [ Display Name ] - Hash:");
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
p.getName(),
ChatColor.stripColor(p.getDisplayName()),
hash));
}
for (Player p : server.getOnlinePlayers())
else if (hash.equalsIgnoreCase(args[1]))
{
String hash = p.getUniqueId().toString().substring(0, 4);
if (mode.equals("list"))
if (mode.equals("kick"))
{
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
ChatColor.stripColor(p.getDisplayName()),
hash));
TFM_Util.adminAction(sender.getName(), "Kicking " + p.getName(), true);
p.kickPlayer("Kicked by Administrator");
}
else if (hash.equalsIgnoreCase(args[1]))
else if (mode.equals("nameban"))
{
if (mode.equals("kick"))
{
TFM_Util.adminAction(sender.getName(), "Kicking " + p.getName(), true);
p.kickPlayer("Kicked by Administrator");
}
else if (mode.equals("nameban"))
{
//server.getOfflinePlayer(p.getName()).setBanned(true);
TFM_Util.banUsername(p.getName(), null, null, null);
TFM_Util.adminAction(sender.getName(), "Banning name: " + p.getName(), true);
p.kickPlayer("Username banned by Administrator.");
}
else if (mode.equals("ipban"))
{
String user_ip = p.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4)
{
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
}
TFM_Util.adminAction(sender.getName(), "Banning name: " + p.getName(), true);
//server.banIP(user_ip);
TFM_Util.banIP(user_ip, null, null, null);
p.kickPlayer("IP address banned by Administrator.");
}
else if (mode.equals("ban"))
{
String user_ip = p.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4)
{
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
}
TFM_Util.adminAction(sender.getName(), "Banning " + p.getName() + ", IP " + user_ip, true);
//server.getOfflinePlayer(p.getName()).setBanned(true);
TFM_Util.banIP(user_ip, null, null, null);
TFM_Util.banUsername(p.getName(), null, null, null);
p.kickPlayer("IP and username banned by Administrator.");
}
else if (mode.equals("op"))
{
TFM_Util.adminAction(sender.getName(), "Opping " + p.getName(), false);
p.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_OP);
}
else if (mode.equals("deop"))
{
TFM_Util.adminAction(sender.getName(), "De-opping " + p.getName(), false);
p.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
}
else if (mode.equals("ci"))
{
p.getInventory().clear();
}
else if (mode.equals("fr"))
{
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
playerdata.setFrozen(!playerdata.isFrozen());
TFM_Util.adminAction(sender.getName(), "Freezing " + p.getName(), false);
p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
}
return true;
TFM_Util.banUsername(p.getName(), null, null, null);
TFM_Util.bcastMsg(String.format("Banning Name: %s.", p.getName()), ChatColor.RED);
p.kickPlayer("Username banned by Administrator.");
}
}
else if (mode.equals("ipban"))
{
String user_ip = p.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4)
{
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
}
TFM_Util.bcastMsg(String.format("Banning IP: %s.", p.getName(), user_ip), ChatColor.RED);
TFM_Util.banIP(user_ip, null, null, null);
p.kickPlayer("IP address banned by Administrator.");
}
else if (mode.equals("ban"))
{
String user_ip = p.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4)
{
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
}
TFM_Util.bcastMsg(String.format("Banning Name: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED);
TFM_Util.banIP(user_ip, null, null, null);
TFM_Util.banUsername(p.getName(), null, null, null);
p.kickPlayer("IP and username banned by Administrator.");
}
else if (mode.equals("op"))
{
TFM_Util.bcastMsg(String.format("(%s: Opping %s)", sender.getName(), p.getName()), ChatColor.GRAY);
p.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_OP);
}
else if (mode.equals("deop"))
{
TFM_Util.bcastMsg(String.format("(%s: De-opping %s)", sender.getName(), p.getName()), ChatColor.GRAY);
p.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
}
else if (mode.equals("ci"))
{
p.getInventory().clear();
}
else if (mode.equals("fr"))
{
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
playerdata.setFrozen(!playerdata.isFrozen());
if (!mode.equals("list"))
{
sender.sendMessage(ChatColor.RED + "Invalid hash.");
sender.sendMessage(ChatColor.AQUA + p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
}
return true;
}
}
else
if (!mode.equals("list"))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
sender.sendMessage(ChatColor.RED + "Invalid hash.");
}
return true;

View File

@ -1,71 +1,63 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
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 = false)
public class Command_gcmd extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length < 2)
{
if (args.length < 2)
{
return false;
}
return false;
}
Player p;
try
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
Player p;
try
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
String outcommand = "";
try
String outcommand = "";
try
{
StringBuilder outcommand_bldr = new StringBuilder();
for (int i = 1; i < args.length; i++)
{
StringBuilder outcommand_bldr = new StringBuilder();
for (int i = 1; i < args.length; i++)
{
outcommand_bldr.append(args[i]).append(" ");
}
outcommand = outcommand_bldr.toString().trim();
}
catch (Throwable ex)
{
sender.sendMessage(ChatColor.GRAY + "Error building command: " + ex.getMessage());
return true;
outcommand_bldr.append(args[i]).append(" ");
}
outcommand = outcommand_bldr.toString().trim();
}
catch (Throwable ex)
{
sender.sendMessage(ChatColor.GRAY + "Error building command: " + ex.getMessage());
return true;
}
try
try
{
sender.sendMessage(ChatColor.GRAY + "Sending command as " + p.getName() + ": " + outcommand);
if (server.dispatchCommand(p, outcommand))
{
sender.sendMessage(ChatColor.GRAY + "Sending command as " + p.getName() + ": " + outcommand);
if (server.dispatchCommand(p, outcommand))
{
sender.sendMessage(ChatColor.GRAY + "Command sent.");
}
else
{
sender.sendMessage(ChatColor.GRAY + "Unknown error sending command.");
}
sender.sendMessage(ChatColor.GRAY + "Command sent.");
}
catch (Throwable ex)
else
{
sender.sendMessage(ChatColor.GRAY + "Error sending command: " + ex.getMessage());
sender.sendMessage(ChatColor.GRAY + "Unknown error sending command.");
}
}
else
catch (Throwable ex)
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
sender.sendMessage(ChatColor.GRAY + "Error sending command: " + ex.getMessage());
}
return true;

View File

@ -2,15 +2,15 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.ArrayList;
import java.util.List;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
import me.StevenLawson.TotalFreedomMod.TFM_UserList.TFM_UserListEntry;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.StringUtils;
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 = false)
public class Command_glist extends TFM_Command
{
@Override
@ -21,97 +21,90 @@ public class Command_glist extends TFM_Command
return false;
}
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length == 1)
{
if (args.length == 1)
if (args[0].equalsIgnoreCase("purge"))
{
if (args[0].equalsIgnoreCase("purge"))
{
//Purge does not clear the banlist! This is not for clearing bans! This is for clearing the yaml file that stores the player/IP database!
TFM_UserList.getInstance(plugin).purge();
return true;
}
else
{
return false;
}
//Purge does not clear the banlist! This is not for clearing bans! This is for clearing the yaml file that stores the player/IP database!
TFM_UserList.getInstance(plugin).purge();
return true;
}
else if (args.length != 2)
else
{
return false;
}
}
else if (args.length != 2)
{
return false;
}
String username;
List<String> ip_addresses = new ArrayList<String>();
String username;
List<String> ip_addresses = new ArrayList<String>();
try
try
{
Player p = getPlayer(args[1]);
username = p.getName();
ip_addresses.add(p.getAddress().getAddress().getHostAddress());
}
catch (CantFindPlayerException ex)
{
TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]);
if (entry == null)
{
Player p = getPlayer(args[1]);
username = p.getName();
ip_addresses.add(p.getAddress().getAddress().getHostAddress());
}
catch (CantFindPlayerException ex)
{
TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]);
if (entry == null)
{
sender.sendMessage("Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
return true;
}
username = entry.getUsername();
ip_addresses = entry.getIpAddresses();
sender.sendMessage("Can't find that user. If target is not logged in, make sure that you spelled the name exactly.");
return true;
}
String mode = args[0].toLowerCase();
if (mode.equalsIgnoreCase("ban"))
username = entry.getUsername();
ip_addresses = entry.getIpAddresses();
}
String mode = args[0].toLowerCase();
if (mode.equalsIgnoreCase("ban"))
{
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true);
Player p = server.getPlayerExact(username);
if (p != null)
{
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + TFM_Util.implodeStringList(",", ip_addresses), true);
Player p = server.getPlayerExact(username);
if (p != null)
{
//p.setBanned(true);
TFM_Util.banUsername(p.getName(), null, null, null);
p.kickPlayer("IP and username banned by Administrator.");
}
else
{
//server.getOfflinePlayer(username).setBanned(true);
TFM_Util.banUsername(username, null, null, null);
}
for (String ip_address : ip_addresses)
{
//server.banIP(ip_address);
TFM_Util.banIP(ip_address, null, null, null);
String[] ip_address_parts = ip_address.split("\\.");
//server.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*");
TFM_Util.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", null, null, null);
}
//p.setBanned(true);
TFM_Util.banUsername(p.getName(), null, null, null);
p.kickPlayer("IP and username banned by Administrator.");
}
else if (mode.equalsIgnoreCase("unban"))
else
{
TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + TFM_Util.implodeStringList(",", ip_addresses), true);
//server.getOfflinePlayer(username).setBanned(true);
TFM_Util.banUsername(username, null, null, null);
}
//server.getOfflinePlayer(username).setBanned(false);
TFM_Util.unbanUsername(username);
for (String ip_address : ip_addresses)
{
//server.unbanIP(ip_address);
TFM_Util.unbanIP(ip_address);
String[] ip_address_parts = ip_address.split("\\.");
//server.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*");
TFM_Util.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*");
}
for (String ip_address : ip_addresses)
{
//server.banIP(ip_address);
TFM_Util.banIP(ip_address, null, null, null);
String[] ip_address_parts = ip_address.split("\\.");
//server.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*");
TFM_Util.banIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*", null, null, null);
}
}
else
else if (mode.equalsIgnoreCase("unban"))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TFM_Util.adminAction(sender.getName(), "Unbanning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true);
//server.getOfflinePlayer(username).setBanned(false);
TFM_Util.unbanUsername(username);
for (String ip_address : ip_addresses)
{
//server.unbanIP(ip_address);
TFM_Util.unbanIP(ip_address);
String[] ip_address_parts = ip_address.split("\\.");
//server.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*");
TFM_Util.unbanIP(ip_address_parts[0] + "." + ip_address_parts[1] + ".*.*");
}
}
return true;

View File

@ -1,8 +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.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Location;
@ -10,6 +8,7 @@ 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 = false)
public class Command_gtfo extends TFM_Command
{
@Override
@ -20,74 +19,66 @@ public class Command_gtfo extends TFM_Command
return false;
}
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
Player p;
try
{
Player p;
try
{
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
p = getPlayer(args[0]);
}
catch (CantFindPlayerException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
//Undo WorldEdits:
if (senderIsConsole)
{
}
else
{
server.dispatchCommand(sender, String.format("/undo %d %s", 15, p.getName()));
}
// deop
p.setOp(false);
// set gamemode to survival:
p.setGameMode(GameMode.SURVIVAL);
// clear inventory:
p.getInventory().clear();
// strike with lightning effect:
final Location target_pos = p.getLocation();
for (int x = -1; x <= 1; x++)
{
for (int z = -1; z <= 1; z++)
{
final Location strike_pos = new Location(target_pos.getWorld(), target_pos.getBlockX() + x, target_pos.getBlockY(), target_pos.getBlockZ() + z);
target_pos.getWorld().strikeLightning(strike_pos);
}
}
// ban IP address:
String user_ip = p.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4)
{
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
}
TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED);
//server.banIP(user_ip);
TFM_Util.banIP(user_ip, null, null, null);
// ban username:
// server.getOfflinePlayer(p.getName()).setBanned(true);
TFM_Util.banUsername(p.getName(), null, null, null);
// kick Player:
p.kickPlayer("GTFO");
//Undo WorldEdits:
if (senderIsConsole)
{
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
server.dispatchCommand(sender, String.format("/undo %d %s", 15, p.getName()));
}
return true;
// deop
p.setOp(false);
// set gamemode to survival:
p.setGameMode(GameMode.SURVIVAL);
// clear inventory:
p.getInventory().clear();
// strike with lightning effect:
final Location target_pos = p.getLocation();
for (int x = -1; x <= 1; x++)
{
for (int z = -1; z <= 1; z++)
{
final Location strike_pos = new Location(target_pos.getWorld(), target_pos.getBlockX() + x, target_pos.getBlockY(), target_pos.getBlockZ() + z);
target_pos.getWorld().strikeLightning(strike_pos);
}
}
// ban IP address:
String user_ip = p.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4)
{
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
}
TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", p.getName(), user_ip), ChatColor.RED);
//server.banIP(user_ip);
TFM_Util.banIP(user_ip, null, null, null);
// ban username:
// server.getOfflinePlayer(p.getName()).setBanned(true);
TFM_Util.banUsername(p.getName(), null, null, null);
// kick Player:
p.kickPlayer("GTFO");
return true;
}
}

View File

@ -3,23 +3,17 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.GameMode;
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 = false)
public class Command_halt extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length != 1)
{
return false;
@ -107,7 +101,7 @@ public class Command_halt extends TFM_Command
}
}
private void setHalted(Player p, boolean is_halted)
private static void setHalted(Player p, boolean is_halted)
{
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);

View File

@ -2,22 +2,16 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.BOTH, block_web_console = true, ignore_permissions = false)
public class Command_kicknoob extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName()))
{
sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console.");
return true;
}
TFM_Util.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true);
for (Player p : server.getOnlinePlayers())

View File

@ -10,16 +10,13 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_landmine extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
}
else if (!TotalFreedomMod.landminesEnabled)
if (!TotalFreedomMod.landminesEnabled)
{
sender.sendMessage(ChatColor.GREEN + "The landmine is currently disabled.");
}
@ -47,10 +44,6 @@ public class Command_landmine extends TFM_Command
sender.sendMessage(ChatColor.GREEN + "Landmine planted. Radius: " + radius + " blocks.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
}
return true;
}

View File

@ -1,37 +1,30 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
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 = false)
public class Command_lavadmg extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length != 1)
{
if (args.length != 1)
{
return false;
}
return false;
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowLavaDamage = true;
sender.sendMessage("Lava damage is now enabled.");
}
else
{
TotalFreedomMod.allowLavaDamage = false;
sender.sendMessage("Lava damage is now disabled.");
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowLavaDamage = true;
sender.sendMessage("Lava damage is now enabled.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TotalFreedomMod.allowLavaDamage = false;
sender.sendMessage("Lava damage is now disabled.");
}
return true;

View File

@ -1,37 +1,30 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
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 = false)
public class Command_lavaplace extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length != 1)
{
if (args.length != 1)
{
return false;
}
return false;
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowLavaPlace = true;
sender.sendMessage("Lava placement is now enabled.");
}
else
{
TotalFreedomMod.allowLavaPlace = false;
sender.sendMessage("Lava placement is now disabled.");
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowLavaPlace = true;
sender.sendMessage("Lava placement is now enabled.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TotalFreedomMod.allowLavaPlace = false;
sender.sendMessage("Lava placement is now disabled.");
}
return true;

View File

@ -10,6 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_list extends TFM_Command
{
@Override

View File

@ -1,27 +1,20 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.Random;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitScheduler;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_lockup extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(senderIsConsole && TFM_SuperadminList.isSeniorAdmin(sender)))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length == 1)
{
if (args[0].equalsIgnoreCase("all"))

View File

@ -1,23 +1,16 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, ignore_permissions = false)
public class Command_moblimiter extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName()))
{
sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console.");
return true;
}
if (args.length < 1)
{
return false;

View File

@ -1,40 +1,33 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.*;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_mp extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || sender.isOp())
{
sender.sendMessage(ChatColor.GRAY + "Purging all mobs...");
sender.sendMessage(ChatColor.GRAY + "Purging all mobs...");
int removed = 0;
for (World world : server.getWorlds())
int removed = 0;
for (World world : server.getWorlds())
{
for (Entity ent : world.getLivingEntities())
{
for (Entity ent : world.getLivingEntities())
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient)
{
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon || ent instanceof Ambient)
{
ent.remove();
removed++;
}
ent.remove();
removed++;
}
}
}
sender.sendMessage(ChatColor.GRAY + String.valueOf(removed) + " mobs removed.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
}
sender.sendMessage(ChatColor.GRAY + String.valueOf(removed) + " mobs removed.");
return true;
}

View File

@ -9,47 +9,39 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_mp44 extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
}
else if (!TotalFreedomMod.mp44Enabled)
if (!TotalFreedomMod.mp44Enabled)
{
sender.sendMessage(ChatColor.GREEN + "The mp44 is currently disabled.");
return true;
}
else if (sender.isOp())
if (args.length == 0)
{
if (args.length == 0)
{
return false;
}
return false;
}
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(sender_p);
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(sender_p);
if (args[0].equalsIgnoreCase("draw"))
{
playerdata.armMP44();
if (args[0].equalsIgnoreCase("draw"))
{
playerdata.armMP44();
sender.sendMessage(ChatColor.GREEN + "mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit.");
sender.sendMessage(ChatColor.GREEN + "Type /mp44 sling to disable. -by Madgeek1450");
sender.sendMessage(ChatColor.GREEN + "mp44 is ARMED! Left click with gunpowder to start firing, left click again to quit.");
sender.sendMessage(ChatColor.GREEN + "Type /mp44 sling to disable. -by Madgeek1450");
sender_p.setItemInHand(new ItemStack(Material.SULPHUR, 1));
}
else
{
playerdata.disarmMP44();
sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed.");
}
sender_p.setItemInHand(new ItemStack(Material.SULPHUR, 1));
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
playerdata.disarmMP44();
sender.sendMessage(ChatColor.GREEN + "mp44 Disarmed.");
}
return true;

View File

@ -5,6 +5,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_nether extends TFM_Command
{
@Override

View File

@ -1,23 +1,17 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_nonuke extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName()))
{
sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console.");
return true;
}
if (args.length < 1)
{
return false;

View File

@ -2,24 +2,18 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_Log;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.PropertyManager;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_onlinemode extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length < 1)
{
sender.sendMessage("Server is currently running with 'online-mode=" + (server.getOnlineMode() ? "true" : "false") + "'.");

View File

@ -2,26 +2,18 @@ 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.ChatColor;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
//This command was coded initially by JeromSar
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_op extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length != 1)
{
return false;
@ -54,7 +46,6 @@ public class Command_op extends TFM_Command
TFM_Util.playerMsg(sender, "That player is not online.");
TFM_Util.playerMsg(sender, "You don't have permissions to OP offline players.", ChatColor.YELLOW);
return true;
}
}

View File

@ -1,6 +1,5 @@
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.GameMode;
@ -8,45 +7,39 @@ 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 = false)
public class Command_opall extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)
TFM_Util.adminAction(sender.getName(), "Opping all players on the server", false);
boolean doSetGamemode = false;
GameMode targetGamemode = GameMode.CREATIVE;
if (args.length != 0)
{
TFM_Util.adminAction(sender.getName(), "Opping all players on the server", false);
boolean doSetGamemode = false;
GameMode targetGamemode = GameMode.CREATIVE;
if (args.length != 0)
if (args[0].equals("-c"))
{
if (args[0].equals("-c"))
{
doSetGamemode = true;
targetGamemode = GameMode.CREATIVE;
}
else if (args[0].equals("-s"))
{
doSetGamemode = true;
targetGamemode = GameMode.SURVIVAL;
}
doSetGamemode = true;
targetGamemode = GameMode.CREATIVE;
}
for (Player p : server.getOnlinePlayers())
else if (args[0].equals("-s"))
{
p.setOp(true);
p.sendMessage(TotalFreedomMod.YOU_ARE_OP);
if (doSetGamemode)
{
p.setGameMode(targetGamemode);
}
doSetGamemode = true;
targetGamemode = GameMode.SURVIVAL;
}
}
else
for (Player p : server.getOnlinePlayers())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
p.setOp(true);
p.sendMessage(TotalFreedomMod.YOU_ARE_OP);
if (doSetGamemode)
{
p.setGameMode(targetGamemode);
}
}
return true;

View File

@ -1,31 +1,20 @@
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;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_opme extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
}
else if (TFM_SuperadminList.isUserSuperadmin(sender))
{
TFM_Util.adminAction(sender.getName(), "Opping " + sender.getName(), false);
sender.setOp(true);
sender.sendMessage(TotalFreedomMod.YOU_ARE_OP);
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
}
TFM_Util.adminAction(sender.getName(), "Opping " + sender.getName(), false);
sender.setOp(true);
sender.sendMessage(TotalFreedomMod.YOU_ARE_OP);
return true;
}

View File

@ -8,17 +8,12 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_ops extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(senderIsConsole || sender.isOp()))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length < 1 || args.length > 1)
{
return false;

View File

@ -1,72 +1,67 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.util.Vector;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_orbit extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length == 0)
{
if (args.length == 0)
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);
double strength = 10.0;
if (args.length >= 2)
{
if (TFM_Util.isStopCommand(args[1]))
{
return false;
sender.sendMessage(ChatColor.GRAY + "Stopped orbiting " + p.getName());
playerdata.stopOrbiting();
return true;
}
Player p;
try
{
p = getPlayer(args[0]);
strength = Math.max(1.0, Math.min(150.0, Double.parseDouble(args[1])));
}
catch (CantFindPlayerException ex)
catch (NumberFormatException ex)
{
sender.sendMessage(ex.getMessage());
return true;
}
TFM_UserInfo playerdata = TFM_UserInfo.getPlayerData(p);
double strength = 10.0;
if (args.length >= 2)
{
if (TFM_Util.isStopCommand(args[1]))
{
TFM_Util.adminAction(sender.getName(), "Stopping " + p.getName() + "'s Orbit", true);
playerdata.stopOrbiting();
return true;
}
try
{
strength = Math.max(1.0, Math.min(150.0, Double.parseDouble(args[1])));
}
catch (NumberFormatException nfex)
{
}
}
p.setGameMode(GameMode.SURVIVAL);
playerdata.startOrbiting(strength);
p.setVelocity(new Vector(0, strength, 0));
TFM_Util.adminAction(sender.getName(), "Orbiting " + p.getName(), true);
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
}
p.setGameMode(GameMode.SURVIVAL);
playerdata.startOrbiting(strength);
p.setVelocity(new Vector(0, strength, 0));
TFM_Util.adminAction(sender.getName(), "Orbiting " + p.getName(), true);
return true;
}
}

View File

@ -7,17 +7,12 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_permban extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length != 1)
{
return false;
@ -26,24 +21,19 @@ public class Command_permban extends TFM_Command
if (args[0].equalsIgnoreCase("list"))
{
dumplist(sender);
return true;
}
if (!senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args[0].equalsIgnoreCase("reload"))
else if (args[0].equalsIgnoreCase("reload"))
{
TFM_Util.playerMsg(sender, "Reloading permban list...", ChatColor.RED);
plugin.loadPermbanConfig();
dumplist(sender);
return true;
}
else
{
return false;
}
return false;
return true;
}
private void dumplist(CommandSender sender)

View File

@ -3,7 +3,6 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.ArrayList;
import java.util.List;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
@ -12,17 +11,12 @@ import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_potion extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length == 1 || args.length == 2)
{
if (args[0].equalsIgnoreCase("list"))

View File

@ -1,37 +1,30 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_prelog extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args.length != 1)
{
if (args.length != 1)
{
return false;
}
return false;
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.preprocessLogEnabled = true;
sender.sendMessage("Command preprocess logging is now enabled. This will be spammy in the log.");
}
else
{
TotalFreedomMod.preprocessLogEnabled = false;
sender.sendMessage("Command preprocess logging is now disabled.");
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.preprocessLogEnabled = true;
sender.sendMessage("Command preprocess logging is now enabled. This will be spammy in the log.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TotalFreedomMod.preprocessLogEnabled = false;
sender.sendMessage("Command preprocess logging is now disabled.");
}
return true;

View File

@ -1,24 +1,18 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.StringUtils;
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 = false)
public class Command_protectarea extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!TFM_SuperadminList.isUserSuperadmin(sender))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (!TotalFreedomMod.protectedAreasEnabled)
{
sender.sendMessage("Protected areas are currently disabled in the TotalFreedomMod configuration.");
@ -97,7 +91,9 @@ public class Command_protectarea extends TFM_Command
return true;
}
return false;
else
{
return false;
}
}
}

View File

@ -7,6 +7,7 @@ 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 = false)
public class Command_qdeop extends TFM_Command
{
@Override
@ -16,13 +17,6 @@ public class Command_qdeop extends TFM_Command
{
return false;
}
if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
boolean silent = false;
if (args.length == 2)
{

View File

@ -6,6 +6,7 @@ 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 = false)
public class Command_qop extends TFM_Command
{
@Override
@ -16,12 +17,6 @@ public class Command_qop extends TFM_Command
return false;
}
if (!(senderIsConsole || sender.isOp()))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
boolean silent = false;
if (args.length == 2)
{

View File

@ -4,24 +4,18 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import me.StevenLawson.TotalFreedomMod.TFM_RadarData;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_radar extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
return true;
}
Location sender_pos = sender_p.getLocation();
List<TFM_RadarData> radar_data = new ArrayList<TFM_RadarData>();

View File

@ -6,6 +6,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_rank extends TFM_Command
{
@Override

View File

@ -1,30 +1,22 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.Arrays;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.bukkit.ChatColor;
import org.apache.commons.lang.StringUtils;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_rawsay extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName()))
if (args.length > 0)
{
sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console.");
return true;
TFM_Util.bcastMsg(StringUtils.join(args, " "));
}
if (args.length == 0)
{
return false;
}
TFM_Util.bcastMsg(TFM_Util.implodeStringList(" ", Arrays.asList(args)));
return true;
}
}

View File

@ -1,24 +1,17 @@
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.ChatColor;
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 = false)
public class Command_rd extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
// This terminology is wrong, this doesn't remove *all* entities, by far. - Madgeek
// Back when I was just a player, I didn't even know what "entity" meant... :P - Darth
TFM_Util.adminAction(sender.getName(), "Removing all server entities.", false);

View File

@ -10,6 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_saconfig extends TFM_Command
{
@Override

View File

@ -1,14 +1,13 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.Arrays;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
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 = false)
public class Command_say extends TFM_Command
{
@Override
@ -19,11 +18,11 @@ public class Command_say extends TFM_Command
return false;
}
String message = TFM_Util.implodeStringList(" ", Arrays.asList(args));
String message = StringUtils.join(args, " ");
if (senderIsConsole && sender.getName().equals("Rcon"))
if (senderIsConsole && TFM_Util.isFromClanforge(sender.getName()))
{
if (message.equals("WARNING: Server is restarting, you will be kicked"))
if (message.equalsIgnoreCase("WARNING: Server is restarting, you will be kicked"))
{
TFM_Util.bcastMsg("Server is going offline.", ChatColor.GRAY);
@ -38,14 +37,7 @@ public class Command_say extends TFM_Command
}
}
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
{
TFM_Util.bcastMsg(String.format("[Server:%s] %s", sender.getName(), message), ChatColor.LIGHT_PURPLE);
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
}
TFM_Util.bcastMsg(String.format("[Server:%s] %s", sender.getName(), message), ChatColor.LIGHT_PURPLE);
return true;
}

View File

@ -1,28 +1,16 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_setlevel extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
return true;
}
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args.length != 1)
{
return false;

View File

@ -1,7 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
@ -10,23 +9,12 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_setspawnworld extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
return true;
}
if (!TFM_SuperadminList.isUserSuperadmin(sender))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
Location pos = sender_p.getLocation();
sender_p.getWorld().setSpawnLocation(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ());

View File

@ -1,8 +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.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.Location;
@ -11,7 +9,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
// readded by JeromSar
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_smite extends TFM_Command
{
@Override
@ -22,12 +20,6 @@ public class Command_smite extends TFM_Command
return false;
}
if (!TFM_SuperadminList.isUserSuperadmin(sender))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
Player p;
try
{

View File

@ -7,6 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.ALL, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = true)
public class Command_status extends TFM_Command
{
@Override

View File

@ -3,13 +3,11 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_UserInfo;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
//This command was coded initially by JeromSar
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_stfu extends TFM_Command
{
@Override
@ -20,12 +18,6 @@ public class Command_stfu extends TFM_Command
return false;
}
if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
if (args[0].equalsIgnoreCase("list"))
{
TFM_Util.playerMsg(sender, "Muted players:");
@ -44,10 +36,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 +52,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 +70,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;

View File

@ -1,34 +1,27 @@
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.ChatColor;
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 = false)
public class Command_stop extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
{
TFM_Util.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
for (Player p : server.getOnlinePlayers())
{
p.kickPlayer("Server is going offline, come back in a few minutes.");
}
TFM_Util.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
server.shutdown();
}
else
for (Player p : server.getOnlinePlayers())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
p.kickPlayer("Server is going offline, come back in a few minutes.");
}
server.shutdown();
return true;
}
}

View File

@ -1,12 +1,12 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_survival extends TFM_Command
{
@Override
@ -21,12 +21,6 @@ public class Command_survival extends TFM_Command
}
}
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
Player p;
if (args.length == 0)
{

View File

@ -2,15 +2,14 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import java.text.SimpleDateFormat;
import java.util.Date;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
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 = false)
public class Command_tempban extends TFM_Command
{
private static final SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z");
@ -23,12 +22,6 @@ public class Command_tempban extends TFM_Command
return false;
}
if (!(senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender)))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
Player p;
try
{

View File

@ -1,23 +1,17 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_RunSystemCommand;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_terminal extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName()))
{
sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console.");
return true;
}
String command;
try
{

View File

@ -10,6 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_tfbanlist extends TFM_Command
{
@Override

View File

@ -12,6 +12,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_tfipbanlist extends TFM_Command
{
@Override

View File

@ -12,6 +12,7 @@ import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.ONLY_IN_GAME, ignore_permissions = false)
public class Command_tossmob extends TFM_Command
{
@Override
@ -23,74 +24,63 @@ public class Command_tossmob extends TFM_Command
return true;
}
if (senderIsConsole)
TFM_UserInfo playerData = TFM_UserInfo.getPlayerData(sender_p);
EntityType creature = EntityType.PIG;
if (args.length >= 1)
{
sender.sendMessage(TotalFreedomMod.NOT_FROM_CONSOLE);
if (TFM_Util.isStopCommand(args[0]))
{
playerData.disableMobThrower();
sender.sendMessage(ChatColor.GREEN + "MobThrower is disabled.");
return true;
}
if (args[0].equalsIgnoreCase("list"))
{
sender.sendMessage(ChatColor.GREEN + "Supported mobs: " + StringUtils.join(TFM_Util.mobtypes.keySet(), ", "));
return true;
}
try
{
creature = TFM_Util.getEntityType(args[0]);
}
catch (Exception ex)
{
sender.sendMessage(ChatColor.RED + args[0] + " is not a supported mob type. Using a pig instead.");
sender.sendMessage(ChatColor.RED + "By the way, you can type /tossmob list to see all possible mobs.");
creature = EntityType.PIG;
}
}
else if (sender.isOp())
double speed = 1.0;
if (args.length >= 2)
{
TFM_UserInfo playerData = TFM_UserInfo.getPlayerData(sender_p);
EntityType creature = EntityType.PIG;
if (args.length >= 1)
try
{
if (TFM_Util.isStopCommand(args[0]))
{
playerData.disableMobThrower();
sender.sendMessage(ChatColor.GREEN + "MobThrower is disabled.");
return true;
}
if (args[0].equalsIgnoreCase("list"))
{
sender.sendMessage(ChatColor.GREEN + "Supported mobs: " + StringUtils.join(TFM_Util.mobtypes.keySet(), ", "));
return true;
}
try
{
creature = TFM_Util.getEntityType(args[0]);
}
catch (Exception ex)
{
sender.sendMessage(ChatColor.RED + args[0] + " is not a supported mob type. Using a pig instead.");
sender.sendMessage(ChatColor.RED + "By the way, you can type /tossmob list to see all possible mobs.");
creature = EntityType.PIG;
}
speed = Double.parseDouble(args[1]);
}
double speed = 1.0;
if (args.length >= 2)
catch (NumberFormatException nfex)
{
try
{
speed = Double.parseDouble(args[1]);
}
catch (NumberFormatException nfex)
{
}
}
if (speed < 1.0)
{
speed = 1.0;
}
else if (speed > 5.0)
{
speed = 5.0;
}
playerData.enableMobThrower(creature, speed);
sender.sendMessage(ChatColor.GREEN + "MobThrower is enabled. Creature: " + creature + " - Speed: " + speed + ".");
sender.sendMessage(ChatColor.GREEN + "Left click while holding a stick to throw mobs!");
sender.sendMessage(ChatColor.GREEN + "Type '/tossmob off' to disable. -By Madgeek1450");
sender_p.setItemInHand(new ItemStack(Material.STICK, 1));
}
else
if (speed < 1.0)
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
speed = 1.0;
}
else if (speed > 5.0)
{
speed = 5.0;
}
playerData.enableMobThrower(creature, speed);
sender.sendMessage(ChatColor.GREEN + "MobThrower is enabled. Creature: " + creature + " - Speed: " + speed + ".");
sender.sendMessage(ChatColor.GREEN + "Left click while holding a stick to throw mobs!");
sender.sendMessage(ChatColor.GREEN + "Type '/tossmob off' to disable. -By Madgeek1450");
sender_p.setItemInHand(new ItemStack(Material.STICK, 1));
return true;
}

View File

@ -1,37 +1,29 @@
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.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
//This command was coded initially by JeromSar
@CommandPermissions(level = ADMIN_LEVEL.SUPER, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_uall extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
TFM_Util.adminAction(sender.getName(), "Undisguising all players", true);
try
if (senderIsConsole)
{
for (Player p : server.getOnlinePlayers())
for (Player p : Bukkit.getOnlinePlayers())
{
server.dispatchCommand(p, "u");
}
}
catch (Throwable e)
else
{
sender.sendMessage(ChatColor.GRAY + "Error sending command: " + e.getMessage());
server.dispatchCommand(sender, "u *");
}
return true;

View File

@ -6,32 +6,27 @@ 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 = false)
public class Command_waterplace extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
{
if (args.length != 1)
{
return false;
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowWaterPlace = true;
sender.sendMessage("Water placement is now enabled.");
}
else
{
TotalFreedomMod.allowWaterPlace = false;
sender.sendMessage("Water placement is now disabled.");
}
if (args.length != 1)
{
return false;
}
if (args[0].equalsIgnoreCase("on"))
{
TotalFreedomMod.allowWaterPlace = true;
sender.sendMessage("Water placement is now enabled.");
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
TotalFreedomMod.allowWaterPlace = false;
sender.sendMessage("Water placement is now disabled.");
}
return true;

View File

@ -11,6 +11,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.OP, source = SOURCE_TYPE_ALLOWED.BOTH, ignore_permissions = false)
public class Command_whitelist extends TFM_Command
{
@Override
@ -21,12 +22,6 @@ public class Command_whitelist extends TFM_Command
return false;
}
if (!sender.isOp())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
// list
if (args[0].equalsIgnoreCase("list"))
{

View File

@ -1,38 +1,29 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.Arrays;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.StringUtils;
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 = false)
public class Command_wildcard extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (senderIsConsole || TFM_SuperadminList.isUserSuperadmin(sender))
if (args[0].equals("wildcard"))
{
if (args[0].equals("wildcard"))
{
sender.sendMessage("What the hell are you trying to do, you stupid idiot...");
return true;
}
String base_command = TFM_Util.implodeStringList(" ", Arrays.asList(args));
for (Player p : server.getOnlinePlayers())
{
String out_command = base_command.replaceAll("\\x3f", p.getName());
sender.sendMessage("Running Command: " + out_command);
server.dispatchCommand(sender, out_command);
}
sender.sendMessage("What the hell are you trying to do, you stupid idiot...");
return true;
}
else
String base_command = StringUtils.join(args, " ");
for (Player p : server.getOnlinePlayers())
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
String out_command = base_command.replaceAll("\\x3f", p.getName());
sender.sendMessage("Running Command: " + out_command);
server.dispatchCommand(sender, out_command);
}
return true;

View File

@ -1,24 +1,17 @@
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.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_wipeflatlands extends TFM_Command
{
@Override
public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!(senderIsConsole && TFM_SuperadminList.isSeniorAdmin(sender)))
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
TFM_Util.setSavedFlag("do_wipe_flatlands", true);
TFM_Util.bcastMsg("Server is going offline for flatlands wipe.", ChatColor.GRAY);

View File

@ -4,54 +4,48 @@ import java.io.File;
import java.io.IOException;
import me.StevenLawson.TotalFreedomMod.TFM_Log;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = ADMIN_LEVEL.SENIOR, source = SOURCE_TYPE_ALLOWED.ONLY_CONSOLE, block_web_console = true, ignore_permissions = false)
public class Command_ziptool extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (!senderIsConsole || TFM_Util.isFromClanforge(sender.getName()))
{
sender.sendMessage(ChatColor.GRAY + "This command may only be used from the Telnet or BukkitHttpd console.");
return true;
}
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length <= 1)
{
return false;
}
if (args.length <= 1)
{
return false;
}
if (args[0].equalsIgnoreCase("zip"))
{
File directory = new File("./" + args[1]);
if (args[0].equalsIgnoreCase("zip"))
{
File directory = new File("./" + args[1]);
if (!directory.isDirectory())
{
sender.sendMessage(directory.getPath() + " is not a directory.");
return true;
}
if (!directory.isDirectory())
{
sender.sendMessage(directory.getPath() + " is not a directory.");
return true;
}
File output = new File(directory.getParent() + "/" + directory.getName() + ".zip");
File output = new File(directory.getParent() + "/" + directory.getName() + ".zip");
sender.sendMessage("Zipping '" + directory.getPath() + "' to '" + output.getPath() + "'.");
sender.sendMessage("Zipping '" + directory.getPath() + "' to '" + output.getPath() + "'.");
try
{
TFM_Util.zip(directory, output, true, sender);
}
catch (IOException ex)
{
TFM_Log.severe(ex);
}
try
{
TFM_Util.zip(directory, output, true, sender);
}
catch (IOException ex)
{
TFM_Log.severe(ex);
}
sender.sendMessage("Zip finished.");
}
else if (args[0].equalsIgnoreCase("unzip"))
{
}
else if (args[0].equalsIgnoreCase("unzip"))
{
File output = new File(args[1]);
if (!output.exists() || !output.isFile())
@ -60,24 +54,24 @@ public class Command_ziptool extends TFM_Command
return true;
}
sender.sendMessage("Unzipping '" + output.getPath() + "'.");
sender.sendMessage("Unzipping '" + output.getPath() + "'.");
try
{
TFM_Util.unzip(output, output.getParentFile());
}
catch (IOException ex)
{
TFM_Log.severe(ex);
}
try
{
TFM_Util.unzip(output, output.getParentFile());
}
catch (IOException ex)
{
TFM_Log.severe(ex);
}
sender.sendMessage("Unzip finished.");
}
else
{
return false;
}
}
else
{
return false;
}
return true;
}
return true;
}
}

View File

@ -0,0 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands;
public enum SOURCE_TYPE_ALLOWED
{
ONLY_IN_GAME, ONLY_CONSOLE, BOTH
}

View File

@ -2,6 +2,8 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.List;
import me.StevenLawson.TotalFreedomMod.TFM_Log;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor;
import org.bukkit.Server;
@ -31,6 +33,76 @@ public class TFM_Command
this.server = plugin.getServer();
}
public boolean senderHasPermission(Class<?> cmd_class, CommandSender sender)
{
CommandPermissions permissions = cmd_class.getAnnotation(CommandPermissions.class);
if (permissions != null)
{
if (permissions.ignore_permissions())
{
return true;
}
else
{
boolean is_super = TFM_SuperadminList.isUserSuperadmin(sender);
boolean is_senior = false;
if (is_super)
{
is_senior = TFM_SuperadminList.isSeniorAdmin(sender);
}
ADMIN_LEVEL level = permissions.level();
SOURCE_TYPE_ALLOWED source = permissions.source();
boolean block_web_console = permissions.block_web_console();
//TFM_Log.info("Level: " + level + ", Source: " + source + ", BWC: " + block_web_console);
Player sender_p = null;
if (sender instanceof Player)
{
sender_p = (Player) sender;
}
if (sender_p == null)
{
if (source == SOURCE_TYPE_ALLOWED.ONLY_IN_GAME)
{
return false;
}
else if (level == ADMIN_LEVEL.SENIOR && !is_senior)
{
return false;
}
else if (block_web_console && TFM_Util.isFromClanforge(sender.getName()))
{
return false;
}
}
else
{
if (source == SOURCE_TYPE_ALLOWED.ONLY_CONSOLE)
{
return false;
}
else if (level == ADMIN_LEVEL.SENIOR && !is_senior)
{
return false;
}
else if (level == ADMIN_LEVEL.SUPER && !is_super)
{
return false;
}
else if (level == ADMIN_LEVEL.OP && !sender_p.isOp())
{
return false;
}
}
return true;
}
}
return true;
}
public Player getPlayer(String partialname) throws CantFindPlayerException
{
List<Player> matches = server.matchPlayer(partialname);

View File

@ -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,8 +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 String[] MutedCommands = {"^/msg", "^/m","^/reply", "^/r", "^/tell", "^/me"};
private static final List<String> BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply", ","));
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerInteract(PlayerInteractEvent event)
@ -95,18 +101,14 @@ public class TFM_PlayerListener implements Listener
}
event.setCancelled(true);
return;
}
break;
}
case BLAZE_ROD:
{
if (TotalFreedomMod.allowExplosions && (
player.getName().equals("Madgeek1450")
|| player.getName().equals("markbyron")
|| player.getName().equals("DarthSalamon")))
if (TotalFreedomMod.allowExplosions && TFM_SuperadminList.isSeniorAdmin(player))
{
Block target_block = null;
Block target_block;
if (event.getAction().equals(Action.LEFT_CLICK_AIR))
{
@ -128,7 +130,6 @@ public class TFM_PlayerListener implements Listener
}
event.setCancelled(true);
return;
}
break;
@ -476,6 +477,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;
@ -506,17 +514,23 @@ public class TFM_PlayerListener implements Listener
}
// block muted commands
if(playerdata.isMuted())
{
for(String mc : MutedCommands)
if (!TFM_SuperadminList.isUserSuperadmin(p))
{
if (Pattern.compile(mc).matcher(command).find())
for (String test_command : BLOCKED_MUTED_CMDS)
{
p.sendMessage(ChatColor.RED + "You are muted, STFU!");
event.setCancelled(true);
return;
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);
}
}
}
@ -698,33 +712,7 @@ public class TFM_PlayerListener implements Listener
break;
}
String[] test_ip_parts = test_ip.split("\\.");
String[] player_ip_parts = player_ip.split("\\.");
boolean is_match = false;
for (int i = 0; i < test_ip_parts.length && i < player_ip_parts.length; i++)
{
if (test_ip_parts[i].equals("*") && i >= 2)
{
is_match = true;
}
else if (test_ip_parts[i].equals(player_ip_parts[i]))
{
is_match = true;
}
else
{
is_match = false;
}
if (!is_match)
{
break;
}
}
if (is_match)
if (TFM_Util.fuzzyIpMatch(test_ip, player_ip, 4))
{
ban_entry = (BanEntry) banByIP.getEntries().get(test_ip);
is_ip_banned = true;
@ -759,9 +747,7 @@ public class TFM_PlayerListener implements Listener
for (String test_ip : TotalFreedomMod.permbanned_ips)
{
//TODO: Add support for wildcards in permbanned_ips list.
//TODO: Create generic wildcard IP matching method since we do this several times already in this project.
if (test_ip.equalsIgnoreCase(player_ip))
if (TFM_Util.fuzzyIpMatch(test_ip, player_ip, 4))
{
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, ChatColor.RED + "Your IP address is permanently banned from this server.");
return;

View File

@ -264,23 +264,13 @@ public class TFM_SuperadminList
}
else
{
String[] user_octets = user_ip.split("\\.");
if (user_octets.length != 4)
{
return false;
}
String match_ip = null;
for (String test_ip : getSuperadminIPs())
{
String[] test_octets = test_ip.split("\\.");
if (test_octets.length == 4)
if (TFM_Util.fuzzyIpMatch(user_ip, test_ip, 3))
{
if (user_octets[0].equals(test_octets[0]) && user_octets[1].equals(test_octets[1]) && user_octets[2].equals(test_octets[2]))
{
match_ip = test_ip;
break;
}
match_ip = test_ip;
break;
}
}
@ -327,27 +317,34 @@ public class TFM_SuperadminList
public static void addSuperadmin(String admin_name, List<String> ips)
{
admin_name = admin_name.toLowerCase();
if (superadminList.containsKey(admin_name))
try
{
TFM_Superadmin superadmin = superadminList.get(admin_name);
superadmin.setActivated(true);
superadmin.getIps().addAll(ips);
superadmin.setLastLogin(new Date());
admin_name = admin_name.toLowerCase();
if (superadminList.containsKey(admin_name))
{
TFM_Superadmin superadmin = superadminList.get(admin_name);
superadmin.setActivated(true);
superadmin.getIps().addAll(ips);
superadmin.setLastLogin(new Date());
}
else
{
Date last_login = new Date();
String custom_login_message = "";
boolean is_senior_admin = false;
List<String> console_aliases = new ArrayList<String>();
TFM_Superadmin superadmin = new TFM_Superadmin(admin_name, ips, last_login, custom_login_message, is_senior_admin, console_aliases, true);
superadminList.put(admin_name.toLowerCase(), superadmin);
}
saveSuperadminList();
}
else
catch (Exception ex)
{
Date last_login = new Date();
String custom_login_message = "";
boolean is_senior_admin = false;
List<String> console_aliases = new ArrayList<String>();
TFM_Superadmin superadmin = new TFM_Superadmin(admin_name, ips, last_login, custom_login_message, is_senior_admin, console_aliases, true);
superadminList.put(admin_name.toLowerCase(), superadmin);
TFM_Log.severe(ex);
}
saveSuperadminList();
}
public static void addSuperadmin(Player p)
@ -365,13 +362,20 @@ public class TFM_SuperadminList
public static void removeSuperadmin(String admin_name)
{
admin_name = admin_name.toLowerCase();
if (superadminList.containsKey(admin_name))
try
{
TFM_Superadmin superadmin = superadminList.get(admin_name);
superadmin.setActivated(false);
saveSuperadminList();
admin_name = admin_name.toLowerCase();
if (superadminList.containsKey(admin_name))
{
TFM_Superadmin superadmin = superadminList.get(admin_name);
superadmin.setActivated(false);
saveSuperadminList();
}
}
catch (Exception ex)
{
TFM_Log.severe(ex);
}
}

View File

@ -26,7 +26,7 @@ public class TFM_Util
private static final Map<String, Integer> eject_tracker = new HashMap<String, Integer>();
public static final Map<String, EntityType> mobtypes = new HashMap<String, EntityType>();
public static final List<String> stop_commands = Arrays.asList("stop", "off", "end", "halt", "die");
public static final List<String> restricted_senders = Arrays.asList("rcon, remotebukkit");
public static final List<String> restricted_senders = Arrays.asList("rcon", "remotebukkit");
static
{
@ -83,6 +83,7 @@ public class TFM_Util
TFM_Util.bcastMsg(adminName + " - " + action, (isRed ? ChatColor.RED : ChatColor.AQUA));
}
@Deprecated
public static String implodeStringList(String glue, List<String> pieces)
{
return StringUtils.join(pieces, glue);
@ -884,7 +885,6 @@ public class TFM_Util
}
}
}
public static String DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z";
public static String dateToString(Date date)
@ -909,13 +909,55 @@ public class TFM_Util
return restricted_senders.contains(sender_name.toLowerCase());
}
public static List<String> removeDuplicates(List<String> list)
public static List<String> removeDuplicates(List<String> old_list)
{
HashSet<String> hash = new HashSet<String>();
hash.addAll(list);
list.clear();
list.addAll(hash);
return list;
List<String> new_list = new ArrayList<String>();
for (String entry : old_list)
{
if (!new_list.contains(entry))
{
new_list.add(entry);
}
}
return new_list;
}
public static boolean fuzzyIpMatch(String a, String b, int required_octets)
{
boolean is_match = true;
String[] a_parts = StringUtils.split(a, '.');
String[] b_parts = StringUtils.split(b, '.');
if (a_parts.length != 4 || b_parts.length != 4)
{
return false;
}
if (required_octets > 4)
{
required_octets = 4;
}
else if (required_octets < 1)
{
required_octets = 1;
}
for (int i = 0; i < required_octets && i < 4; i++)
{
if (a_parts[i].equals("*") || b_parts[i].equals("*"))
{
continue;
}
if (!a_parts[i].equals(b_parts[i]))
{
is_match = false;
break;
}
}
return is_match;
}
// I wrote all this before i discovered getTargetBlock >.> - might come in handy some day...
// public static final double LOOKAT_VIEW_HEIGHT = 1.65;

View File

@ -8,6 +8,7 @@ import me.StevenLawson.TotalFreedomMod.Listener.TFM_BlockListener;
import me.StevenLawson.TotalFreedomMod.Listener.TFM_EntityListener;
import me.StevenLawson.TotalFreedomMod.Listener.TFM_PlayerListener;
import me.StevenLawson.TotalFreedomMod.Listener.TFM_WeatherListener;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@ -122,7 +123,7 @@ public class TotalFreedomMod extends JavaPlugin
sender_p.getName(),
ChatColor.stripColor(sender_p.getDisplayName()),
commandLabel,
TFM_Util.implodeStringList(" ", Arrays.asList(args))), true);
StringUtils.join(args, " ")), true);
}
else
{
@ -130,7 +131,7 @@ public class TotalFreedomMod extends JavaPlugin
TFM_Log.info(String.format("[CONSOLE_COMMAND] %s: /%s %s",
sender.getName(),
commandLabel,
TFM_Util.implodeStringList(" ", Arrays.asList(args))), true);
StringUtils.join(args, " ")), true);
}
TFM_Command dispatcher;
@ -149,7 +150,14 @@ public class TotalFreedomMod extends JavaPlugin
try
{
return dispatcher.run(sender, sender_p, cmd, commandLabel, args, senderIsConsole);
if (dispatcher.senderHasPermission(dispatcher.getClass(), sender))
{
return dispatcher.run(sender, sender_p, cmd, commandLabel, args, senderIsConsole);
}
else
{
sender.sendMessage(TotalFreedomMod.MSG_NO_PERMS);
}
}
catch (Throwable ex)
{

View File

@ -34,6 +34,9 @@ commands:
deopall:
description: Superadmin command - Deop everyone on the server.
usage: /<command>
dispfill:
description: Fill nearby dispensers with a set of items of your choice.
usage: /<command> <radius> <comma,separated,items>
doom:
description: Owner command - For the bad Superadmins.
usage: /<command> <playername>

View File

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