Compare commits

..

64 Commits
v2.22 ... v3.1

Author SHA1 Message Date
75ec2330f5 Incremented version number, changed startup logic
Improved logging, small changes
2013-08-20 17:35:00 +02:00
5c32c66390 Finish getting rid of old command blocker. 2013-08-18 16:45:35 -04:00
4494a4c039 Config migration, stage 3 2013-08-18 15:52:32 -04:00
f53b67abf1 Config migration, stage 2 2013-08-18 15:27:17 -04:00
2827ca98a7 Config migration, stage 1 2013-08-18 14:52:46 -04:00
64b1e568b3 Deprecated old config vars 2013-08-17 18:28:55 -04:00
3e57696a21 Delegate to TFM_ConfigEntry 2013-08-17 18:24:40 -04:00
fd1bd995ed Another version of TFM_ConfigEntry... 2013-08-17 18:07:57 -04:00
f646a5122a Fixed wilee's glitch. 2013-08-15 17:44:09 -04:00
86ee0e96d2 Add TFM_Util.isRemoveCommand 2013-08-15 17:36:55 -04:00
57efdd2269 Merge pull request #72 from Wilee999/master
/tban's alias is now /noob, instead of /nope
2013-08-15 02:39:52 -07:00
26bcd3ec1c Changes to /tban 2013-08-14 13:54:54 -07:00
fd372066eb Incremented version to 3.00 2013-08-14 17:39:51 +02:00
122bef2d5a DromedaryCase 2013-08-14 16:55:37 +02:00
339518f4f4 Take two: Cleanup 2013-08-14 16:01:42 +02:00
8ce0defb52 Readd Command_premium.java 2013-08-14 09:32:14 -04:00
ec6e8431e3 Revert "Added /premium"
This reverts commit 0964871e8b.
2013-08-14 09:28:19 -04:00
0964871e8b Added /premium
cleanup
2013-08-14 15:12:30 +02:00
422a7716f3 /nf tweaks. 2013-08-13 21:39:12 -04:00
f1ab8296e4 Tweaks to jumppad physics. 2013-08-13 16:54:20 -04:00
f9cbf11abb JumpPads cleanup 2013-08-13 14:53:33 -04:00
b0090a5412 More tweaks to nonuke and spam prevention. 2013-08-13 13:42:43 -04:00
b94efb525f Added timeout check to nonuke, so lag doesn't ban people. 2013-08-13 13:22:29 -04:00
5c8f98089e Merge branch 'master' into mg_untested 2013-08-13 12:29:12 -04:00
7879fa24e4 Minor changes to JumpPads 2013-08-13 18:21:37 +02:00
6fcaed6253 Finished Jumppads 2013-08-13 17:16:33 +02:00
656dbf8867 Started work on Jumppads 2013-08-13 16:08:00 +02:00
23032e6f9a Added NickFilter. 2013-08-13 09:51:20 -04:00
ad5a236bc2 PlayerMoveEvent optimization. 2013-08-13 08:36:33 -04:00
e23db244a5 Add teleport listener to AdminWorld monitor. 2013-08-12 22:01:28 -04:00
eb4622fc28 AdminWorld tweaks. 2013-08-12 21:33:21 -04:00
0f6b053727 Added /findip 2013-08-12 21:35:59 +02:00
259335958a Merge branch 'master' of https://github.com/TotalFreedom/TotalFreedomMod 2013-08-12 20:54:35 +02:00
31375b82c3 Tweaked /tag some more, I think this will work best. 2013-08-12 20:54:19 +02:00
0a2d5c8258 Reworked /dtoggle. 2013-08-12 14:49:33 -04:00
bac25258b0 Added /lockdown 2013-08-12 20:47:36 +02:00
c69918d725 Create Command_dtoggle
This is a replacement for DisdFreedom dtoggle, something we had to add on CJFreedom shortly after we lost his plugin :)
2013-08-12 19:28:41 +01:00
c1d0c01524 Merge branch 'master' of https://github.com/TotalFreedom/TotalFreedomMod 2013-08-12 14:19:33 -04:00
a59e6added Tweaks to Command_tag 2013-08-12 14:19:17 -04:00
56493adcae Merge pull request #67 from Wild1145/patch-4
Block Op's from using &k.
2013-08-12 10:59:52 -07:00
4b91de7414 More AdminWorld tweaks. 2013-08-12 12:51:30 -04:00
c636ee043a Merge branch 'mg_incomplete' of https://github.com/TotalFreedom/TotalFreedomMod into mg_incomplete 2013-08-12 12:41:12 -04:00
6a5306dd7a More AdminWorld tweaks. 2013-08-12 12:38:46 -04:00
4603dc5613 Block Op's from using bad codes
This will block a op from using a set of colour codes you to not want them to use, like &k
2013-08-12 17:10:08 +01:00
af7e6c5d41 AdminWorld welcome sign now facing the right direction :)
Added teleporting message to /adminworld
2013-08-12 17:58:28 +02:00
699d366efb Revert accidental change of this file. 2013-08-12 10:11:04 -04:00
41ed416a51 Merge branch 'master' into mg_incomplete 2013-08-12 10:05:01 -04:00
074630f720 Finished adminworld, still needs testing. 2013-08-12 10:03:12 -04:00
4e3c9a6b9e Batch format fix 2013-08-12 14:41:04 +02:00
bea480c1f1 Merge branch 'master' into mg_incomplete
Conflicts:
	appinfo.properties
	buildnumber.properties
2013-08-12 08:14:55 -04:00
69fd3566af Added /tag clearall and /tag clear <name> 2013-08-12 12:50:39 +02:00
f3ac19a616 Added /tag
Minor cleanup
2013-08-12 12:31:30 +02:00
696ec119c6 Made /saconfig clean a senior command 2013-08-12 11:24:23 +02:00
326c3f6a2b Incomplete features:
-Adminworld
-Better entity wiping
2013-08-11 22:02:18 -04:00
38b1035020 Added Command_trail.
+1 points for no external changes.
2013-08-10 15:50:45 -04:00
1ae6eb8a5a Consolidate loggers. 2013-08-10 15:50:07 -04:00
2c4eca8551 Remove deprecated methods and variables. 2013-08-10 13:17:32 -04:00
f23c61d0b3 Rework Command_health 2013-08-10 12:39:50 -04:00
c10e0deb8b Added formatting parameters to project configuration. 2013-08-09 20:17:08 -04:00
d4dfe06ec0 Formatting cleanup.
Added ignore for unchecked cast warning.
2013-08-09 20:11:17 -04:00
bcd9658b3d Added release link to permban kick message 2013-08-09 17:57:45 +02:00
9b62731e94 Merged branch unfinished 2013-08-09 17:11:30 +02:00
03553b6254 Finished TFM_ServiceChecker, added /services 2013-08-09 17:09:13 +02:00
5b34facdd3 Started work on ServiceChecker 2013-08-04 20:49:43 +02:00
121 changed files with 3022 additions and 1674 deletions

View File

@ -1,6 +1,5 @@
#Fri, 09 Aug 2013 15:38:23 +0200 #Tue, 20 Aug 2013 17:31:27 +0200
program.VERSION=2.22
program.BUILDNUM=378
program.BUILDDATE=08/09/2013 03\:38 PM
program.VERSION=3.1
program.BUILDNUM=469
program.BUILDDATE=08/20/2013 05\:31 PM

View File

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit! #Build Number for ANT. Do not edit!
#Fri Aug 09 15:38:23 CEST 2013 #Tue Aug 20 17:31:27 CEST 2013
build.number=379 build.number=470

View File

@ -5,6 +5,22 @@ annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
application.title=TotalFreedomMod application.title=TotalFreedomMod
application.vendor=Michael application.vendor=Michael
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs=true
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width=4
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.spaces-per-tab=4
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.tab-size=4
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-limit-width=0
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.text-line-wrap=none
auxiliary.org-netbeans-modules-editor-indent.CodeStyle.usedProfile=project
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.blankLinesAfterClassHeader=0
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.classDeclBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.enableCommentFormatting=false
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.methodDeclBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.otherBracePlacement=NEW_LINE
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeCatchOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeElseOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeFinallyOnNewLine=true
auxiliary.org-netbeans-modules-editor-indent.text.x-java.CodeStyle.project.placeWhileOnNewLine=true
build.classes.dir=${build.dir}/classes build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned: # This directory is removed when the project is cleaned:

View File

@ -1,4 +1,4 @@
# TotalFreedomMod v2.22 Configuration # TotalFreedomMod v3.1 Configuration
# by Madgeek1450 and DarthSalamon # by Madgeek1450 and DarthSalamon
# Block placement prevention: # Block placement prevention:
@ -12,7 +12,7 @@ allow_tnt_minecarts: false
# Explosion management: # Explosion management:
allow_explosions: false allow_explosions: false
explosiveRadius: 4.0 explosive_radius: 4.0
# Blocked commands: # Blocked commands:
# #
@ -126,12 +126,15 @@ host_sender_names:
# TwitterBot - Used to allow superadmins to verify themselves using twitter # TwitterBot - Used to allow superadmins to verify themselves using twitter
twitterbot_enabled: false twitterbot_enabled: false
twitterbot_url: twitterbot_url: ''
twitterbot_secret: twitterbot_secret: ''
# Pet Protect - Prevent tamed pets from being killed. # Pet Protect - Prevent tamed pets from being killed.
pet_protect_enabled: true pet_protect_enabled: true
# Logs Registration # Logs Registration
logs_register_password: logs_register_password: ''
logs_register_url: logs_register_url: ''
# Mojang service checker
service_checker_url: http://status.mojang.com/check

View File

@ -23,6 +23,7 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.World; import org.bukkit.World;
@ -31,7 +32,7 @@ import org.bukkit.generator.ChunkGenerator;
public class CleanroomChunkGenerator extends ChunkGenerator public class CleanroomChunkGenerator extends ChunkGenerator
{ {
private Logger log = Logger.getLogger("Minecraft-Server"); private static final Logger log = Bukkit.getLogger();
private short[] layer; private short[] layer;
private byte[] layerDataValues; private byte[] layerDataValues;

View File

@ -1,8 +1,8 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -21,19 +21,19 @@ public class Command_adminmode extends TFM_Command
if (args[0].equalsIgnoreCase("off")) if (args[0].equalsIgnoreCase("off"))
{ {
TotalFreedomMod.adminOnlyMode = false; TFM_ConfigEntry.ADMIN_ONLY_MODE.setBoolean(false);
TFM_Util.adminAction(sender.getName(), "Opening the server to all players.", true); TFM_Util.adminAction(sender.getName(), "Opening the server to all players.", true);
return true; return true;
} }
else if (args[0].equalsIgnoreCase("on")) else if (args[0].equalsIgnoreCase("on"))
{ {
TotalFreedomMod.adminOnlyMode = true; TFM_ConfigEntry.ADMIN_ONLY_MODE.setBoolean(true);
TFM_Util.adminAction(sender.getName(), "Closing the server to non-superadmins.", true); TFM_Util.adminAction(sender.getName(), "Closing the server to non-superadmins.", true);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
p.kickPlayer("Server is now closed to non-superadmins."); player.kickPlayer("Server is now closed to non-superadmins.");
} }
} }
return true; return true;

View File

@ -0,0 +1,27 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_AdminWorld;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Go to the AdminWorld.", usage = "/<command>")
public class Command_adminworld extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (sender_p.getWorld() == TFM_AdminWorld.getInstance().getAdminWorld())
{
playerMsg("Going to the main world.");
sender_p.teleport(server.getWorlds().get(0).getSpawnLocation());
}
else
{
playerMsg("Going to the AdminWorld.");
TFM_AdminWorld.getInstance().sendToAdminWorld(sender_p);
}
return true;
}
}

View File

@ -23,9 +23,9 @@ public class Command_blockcmd extends TFM_Command
{ {
TFM_Util.adminAction(sender.getName(), "Unblocking commands for all players", true); TFM_Util.adminAction(sender.getName(), "Unblocking commands for all players", true);
int counter = 0; int counter = 0;
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
if (playerdata.allCommandsBlocked()) if (playerdata.allCommandsBlocked())
{ {
counter += 1; counter += 1;
@ -36,28 +36,28 @@ public class Command_blockcmd extends TFM_Command
return true; return true;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage()); playerMsg(ex.getMessage());
return true; return true;
} }
if (TFM_SuperadminList.isUserSuperadmin(p)) if (TFM_SuperadminList.isUserSuperadmin(player))
{ {
playerMsg(p.getName() + " is a Superadmin, and cannot have their commands blocked."); playerMsg(player.getName() + " is a Superadmin, and cannot have their commands blocked.");
return true; return true;
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.setCommandsBlocked(!playerdata.allCommandsBlocked()); playerdata.setCommandsBlocked(!playerdata.allCommandsBlocked());
TFM_Util.adminAction(sender.getName(), (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locking all commands for " + p.getName(), true); TFM_Util.adminAction(sender.getName(), (playerdata.allCommandsBlocked() ? "B" : "Unb") + "locking all commands for " + player.getName(), true);
playerMsg((playerdata.allCommandsBlocked() ? "B" : "Unb") + "locked all commands."); playerMsg((playerdata.allCommandsBlocked() ? "B" : "Unb") + "locked all commands.");
return true; return true;

View File

@ -21,18 +21,18 @@ public class Command_cage extends TFM_Command
return false; return false;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
Material cage_material_outer = Material.GLASS; Material cage_material_outer = Material.GLASS;
Material cage_material_inner = Material.AIR; Material cage_material_inner = Material.AIR;
@ -40,7 +40,7 @@ public class Command_cage extends TFM_Command
{ {
if (TFM_Util.isStopCommand(args[1])) if (TFM_Util.isStopCommand(args[1]))
{ {
TFM_Util.adminAction(sender.getName(), "Uncaging " + p.getName() + ".", true); TFM_Util.adminAction(sender.getName(), "Uncaging " + player.getName() + ".", true);
playerdata.setCaged(false); playerdata.setCaged(false);
playerdata.regenerateHistory(); playerdata.regenerateHistory();
@ -70,17 +70,17 @@ public class Command_cage extends TFM_Command
} }
} }
Location target_pos = p.getLocation().add(0, 1, 0); Location targetPos = player.getLocation().add(0, 1, 0);
playerdata.setCaged(true, target_pos, cage_material_outer, cage_material_inner); playerdata.setCaged(true, targetPos, cage_material_outer, cage_material_inner);
playerdata.regenerateHistory(); playerdata.regenerateHistory();
playerdata.clearHistory(); playerdata.clearHistory();
TFM_Util.buildHistory(target_pos, 2, playerdata); TFM_Util.buildHistory(targetPos, 2, playerdata);
TFM_Util.generateCube(target_pos, 2, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER)); TFM_Util.generateCube(targetPos, 2, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER));
TFM_Util.generateCube(target_pos, 1, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER)); TFM_Util.generateCube(targetPos, 1, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER));
p.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
TFM_Util.adminAction(sender.getName(), "Caging " + p.getName() + ".", true); TFM_Util.adminAction(sender.getName(), "Caging " + player.getName() + ".", true);
return true; return true;
} }

View File

@ -28,14 +28,14 @@ public class Command_cake extends TFM_Command
output.append(ChatColor.COLOR_CHAR).append(color_code).append(word).append(" "); output.append(ChatColor.COLOR_CHAR).append(color_code).append(word).append(" ");
} }
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
ItemStack heldItem = new ItemStack(Material.CAKE, 1); ItemStack heldItem = new ItemStack(Material.CAKE, 1);
p.getInventory().setItem(p.getInventory().firstEmpty(), heldItem); player.getInventory().setItem(player.getInventory().firstEmpty(), heldItem);
p.awardAchievement(Achievement.MINE_WOOD); player.awardAchievement(Achievement.MINE_WOOD);
p.awardAchievement(Achievement.BUILD_WORKBENCH); player.awardAchievement(Achievement.BUILD_WORKBENCH);
p.awardAchievement(Achievement.BUILD_HOE); player.awardAchievement(Achievement.BUILD_HOE);
p.awardAchievement(Achievement.BAKE_CAKE); player.awardAchievement(Achievement.BAKE_CAKE);
} }
TFM_Util.bcastMsg(output.toString()); TFM_Util.bcastMsg(output.toString());

View File

@ -13,15 +13,15 @@ public class Command_cartsit extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
Player target_player = sender_p; Player targetPlayer = sender_p;
if (args.length == 1) if (args.length == 1)
{ {
try try
{ {
target_player = getPlayer(args[0]); targetPlayer = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
@ -30,26 +30,26 @@ public class Command_cartsit extends TFM_Command
if (senderIsConsole) if (senderIsConsole)
{ {
if (target_player == null) if (targetPlayer == null)
{ {
sender.sendMessage("When used from the console, you must define a target player: /cartsit <player>"); sender.sendMessage("When used from the console, you must define a target player: /cartsit <player>");
return true; return true;
} }
} }
else if (target_player != sender_p && !TFM_SuperadminList.isUserSuperadmin(sender)) else if (targetPlayer != sender_p && !TFM_SuperadminList.isUserSuperadmin(sender))
{ {
sender.sendMessage("Only superadmins can select another player as a /cartsit target."); sender.sendMessage("Only superadmins can select another player as a /cartsit target.");
return true; return true;
} }
if (target_player.isInsideVehicle()) if (targetPlayer.isInsideVehicle())
{ {
target_player.getVehicle().eject(); targetPlayer.getVehicle().eject();
} }
else else
{ {
Minecart nearest_cart = null; Minecart nearest_cart = null;
for (Minecart cart : target_player.getWorld().getEntitiesByClass(Minecart.class)) for (Minecart cart : targetPlayer.getWorld().getEntitiesByClass(Minecart.class))
{ {
if (cart.isEmpty()) if (cart.isEmpty())
{ {
@ -59,7 +59,7 @@ public class Command_cartsit extends TFM_Command
} }
else else
{ {
if (cart.getLocation().distanceSquared(target_player.getLocation()) < nearest_cart.getLocation().distanceSquared(target_player.getLocation())) if (cart.getLocation().distanceSquared(targetPlayer.getLocation()) < nearest_cart.getLocation().distanceSquared(targetPlayer.getLocation()))
{ {
nearest_cart = cart; nearest_cart = cart;
} }
@ -69,7 +69,7 @@ public class Command_cartsit extends TFM_Command
if (nearest_cart != null) if (nearest_cart != null)
{ {
nearest_cart.setPassenger(target_player); nearest_cart.setPassenger(targetPlayer);
} }
else else
{ {

View File

@ -21,11 +21,11 @@ public class Command_cmdlist extends TFM_Command
{ {
List<String> commands = new ArrayList<String>(); List<String> commands = new ArrayList<String>();
for (Plugin p : server.getPluginManager().getPlugins()) for (Plugin targetPlugin : server.getPluginManager().getPlugins())
{ {
try try
{ {
PluginDescriptionFile desc = p.getDescription(); PluginDescriptionFile desc = targetPlugin.getDescription();
Map<String, Map<String, Object>> map = (Map<String, Map<String, Object>>) desc.getCommands(); Map<String, Map<String, Object>> map = (Map<String, Map<String, Object>>) desc.getCommands();
if (map != null) if (map != null)

View File

@ -24,10 +24,10 @@ public class Command_creative extends TFM_Command
} }
} }
Player p; Player player;
if (args.length == 0) if (args.length == 0)
{ {
p = sender_p; player = sender_p;
} }
else else
{ {
@ -39,9 +39,9 @@ public class Command_creative extends TFM_Command
return true; return true;
} }
for (Player player : server.getOnlinePlayers()) for (Player targetPlayer : server.getOnlinePlayers())
{ {
player.setGameMode(GameMode.CREATIVE); targetPlayer.setGameMode(GameMode.CREATIVE);
} }
TFM_Util.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false); TFM_Util.adminAction(sender.getName(), "Changing everyone's gamemode to creative", false);
@ -56,9 +56,9 @@ public class Command_creative extends TFM_Command
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
@ -66,9 +66,9 @@ public class Command_creative extends TFM_Command
} }
playerMsg("Setting " + p.getName() + " to game mode 'Creative'."); playerMsg("Setting " + player.getName() + " to game mode 'Creative'.");
playerMsg(p, sender.getName() + " set your game mode to 'Creative'."); playerMsg(player, sender.getName() + " set your game mode to 'Creative'.");
p.setGameMode(GameMode.CREATIVE); player.setGameMode(GameMode.CREATIVE);
return true; return true;
} }

View File

@ -18,7 +18,7 @@ public class Command_deafen extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
for (final Player p : server.getOnlinePlayers()) for (final Player player : server.getOnlinePlayers())
{ {
for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS)) for (double percent = 0.0; percent <= 1.0; percent += (1.0 / STEPS))
{ {
@ -29,7 +29,7 @@ public class Command_deafen extends TFM_Command
@Override @Override
public void run() public void run()
{ {
p.playSound(randomOffset(p.getLocation(), 5.0), Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch); player.playSound(randomOffset(player.getLocation(), 5.0), Sound.values()[random.nextInt(Sound.values().length)], 100.0f, pitch);
} }
}.runTaskLater(plugin, Math.round(20.0 * percent * 2.0)); }.runTaskLater(plugin, Math.round(20.0 * percent * 2.0));
} }

View File

@ -18,25 +18,25 @@ public class Command_deop extends TFM_Command
return false; return false;
} }
OfflinePlayer p = null; OfflinePlayer player = null;
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
if (args[0].equalsIgnoreCase(onlinePlayer.getName())) if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
{ {
p = onlinePlayer; player = onlinePlayer;
} }
} }
// if the player is not online // if the player is not online
if (p == null) if (player == null)
{ {
p = server.getOfflinePlayer(args[0]); player = server.getOfflinePlayer(args[0]);
} }
TFM_Util.adminAction(sender.getName(), "De-opping " + p.getName(), false); TFM_Util.adminAction(sender.getName(), "De-opping " + player.getName(), false);
p.setOp(false); player.setOp(false);
return true; return true;
} }

View File

@ -15,10 +15,10 @@ public class Command_deopall extends TFM_Command
{ {
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()) for (Player player : server.getOnlinePlayers())
{ {
p.setOp(false); player.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP); player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
} }
return true; return true;

View File

@ -74,13 +74,13 @@ public class Command_dispfill extends TFM_Command
{ {
for (int z_offset = -radius; z_offset <= radius; z_offset++) for (int z_offset = -radius; z_offset <= radius; z_offset++)
{ {
Block target_block = center_block.getRelative(x_offset, y_offset, z_offset); Block targetBlock = center_block.getRelative(x_offset, y_offset, z_offset);
if (target_block.getLocation().distanceSquared(center_location) < (radius * radius)) if (targetBlock.getLocation().distanceSquared(center_location) < (radius * radius))
{ {
if (target_block.getType().equals(Material.DISPENSER)) if (targetBlock.getType().equals(Material.DISPENSER))
{ {
sender.sendMessage("Filling dispenser @ " + TFM_Util.formatLocation(target_block.getLocation())); sender.sendMessage("Filling dispenser @ " + TFM_Util.formatLocation(targetBlock.getLocation()));
setDispenserContents(target_block, items_array); setDispenserContents(targetBlock, items_array);
affected++; affected++;
} }
} }
@ -98,9 +98,9 @@ public class Command_dispfill extends TFM_Command
return true; return true;
} }
private static void setDispenserContents(Block target_block, ItemStack[] items) private static void setDispenserContents(Block targetBlock, ItemStack[] items)
{ {
Dispenser dispenser = (Dispenser) target_block.getState(); Dispenser dispenser = (Dispenser) targetBlock.getState();
Inventory disp_inv = dispenser.getInventory(); Inventory disp_inv = dispenser.getInventory();
disp_inv.clear(); disp_inv.clear();
disp_inv.addItem(items); disp_inv.addItem(items);

View File

@ -22,53 +22,53 @@ public class Command_doom extends TFM_Command
return false; return false;
} }
final Player p; final Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
} }
TFM_Util.adminAction(sender.getName(), "Casting oblivion over " + p.getName(), true); TFM_Util.adminAction(sender.getName(), "Casting oblivion over " + player.getName(), true);
TFM_Util.bcastMsg(p.getName() + " will be completely obliviated!", ChatColor.RED); TFM_Util.bcastMsg(player.getName() + " will be completely obliviated!", ChatColor.RED);
final String IP = p.getAddress().getAddress().getHostAddress().trim(); final String IP = player.getAddress().getAddress().getHostAddress().trim();
// remove from superadmin // remove from superadmin
if (TFM_SuperadminList.isUserSuperadmin(p)) if (TFM_SuperadminList.isUserSuperadmin(player))
{ {
TFM_Util.adminAction(sender.getName(), "Removing " + p.getName() + " from the superadmin list.", true); TFM_Util.adminAction(sender.getName(), "Removing " + player.getName() + " from the superadmin list.", true);
TFM_SuperadminList.removeSuperadmin(p); TFM_SuperadminList.removeSuperadmin(player);
} }
// remove from whitelist // remove from whitelist
p.setWhitelisted(false); player.setWhitelisted(false);
// deop // deop
p.setOp(false); player.setOp(false);
// ban IP // ban IP
TFM_ServerInterface.banIP(IP, null, null, null); TFM_ServerInterface.banIP(IP, null, null, null);
// ban name // ban name
TFM_ServerInterface.banUsername(p.getName(), null, null, null); TFM_ServerInterface.banUsername(player.getName(), null, null, null);
// set gamemode to survival // set gamemode to survival
p.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
// clear inventory // clear inventory
p.closeInventory(); player.closeInventory();
p.getInventory().clear(); player.getInventory().clear();
// ignite player // ignite player
p.setFireTicks(10000); player.setFireTicks(10000);
// generate explosion // generate explosion
p.getWorld().createExplosion(p.getLocation(), 4F); player.getWorld().createExplosion(player.getLocation(), 4F);
new BukkitRunnable() new BukkitRunnable()
{ {
@ -76,10 +76,10 @@ public class Command_doom extends TFM_Command
public void run() public void run()
{ {
// strike lightning // strike lightning
p.getWorld().strikeLightning(p.getLocation()); player.getWorld().strikeLightning(player.getLocation());
// kill (if not done already) // kill (if not done already)
p.setHealth(0.0); player.setHealth(0.0);
} }
}.runTaskLater(plugin, 20L * 2L); }.runTaskLater(plugin, 20L * 2L);
@ -89,13 +89,13 @@ public class Command_doom extends TFM_Command
public void run() public void run()
{ {
// message // message
TFM_Util.adminAction(sender.getName(), "Banning " + p.getName() + ", IP: " + IP, true); TFM_Util.adminAction(sender.getName(), "Banning " + player.getName() + ", IP: " + IP, true);
// generate explosion // generate explosion
p.getWorld().createExplosion(p.getLocation(), 4F); player.getWorld().createExplosion(player.getLocation(), 4F);
// kick player // kick player
p.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!"); player.kickPlayer(ChatColor.RED + "FUCKOFF, and get your shit together!");
} }
}.runTaskLater(plugin, 20L * 3L); }.runTaskLater(plugin, 20L * 3L);

View File

@ -1,7 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -18,7 +18,7 @@ public class Command_droptoggle extends TFM_Command
return false; return false;
} }
TFM_Util.adminAction(sender.getName(), TFM_Util.adminAction(sender.getName(),
((TotalFreedomMod.autoEntityWipe = !args[0].equalsIgnoreCase("off")) ? "Enabled" : "Disabled") (TFM_ConfigEntry.AUTO_ENTITY_WIPE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "Enabled" : "Disabled")
+ " automatic entity wiping.", false); + " automatic entity wiping.", false);
return true; return true;
} }

View File

@ -0,0 +1,42 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
@CommandParameters(description = "Shortcut to enable/disable DisguiseCraft.", usage = "/<command>")
public class Command_dtoggle extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
Plugin disguiseCraft = server.getPluginManager().getPlugin("DisguiseCraft");
if (disguiseCraft != null)
{
PluginManager pluginManager = plugin.getServer().getPluginManager();
boolean enabled = disguiseCraft.isEnabled();
if (enabled)
{
pluginManager.disablePlugin(disguiseCraft);
}
else
{
pluginManager.enablePlugin(disguiseCraft);
}
TFM_Util.adminAction(sender.getName(), (!enabled ? "Enabled" : "Disabled") + " DisguiseCraft.", true);
}
else
{
sender.sendMessage("DisguiseCraft is not installed on this server.");
}
return true;
}
}

View File

@ -1,6 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TFM_Log;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment; import org.bukkit.enchantments.Enchantment;
@ -121,7 +122,7 @@ public class Command_enchant extends TFM_Command
playerMsg("Can't use this enchantment on held item."); playerMsg("Can't use this enchantment on held item.");
} }
} }
else if (args[0].equalsIgnoreCase("remove")) else if (TFM_Util.isRemoveCommand(args[0]))
{ {
itemInHand.removeEnchantment(ench); itemInHand.removeEnchantment(ench);

View File

@ -38,16 +38,16 @@ public class Command_expel extends TFM_Command
} }
Location sender_pos = sender_p.getLocation(); Location sender_pos = sender_p.getLocation();
for (Player p : sender_pos.getWorld().getPlayers()) for (Player player : sender_pos.getWorld().getPlayers())
{ {
if (!p.equals(sender_p)) if (!player.equals(sender_p))
{ {
Location target_pos = p.getLocation(); Location targetPos = player.getLocation();
boolean in_range = false; boolean in_range = false;
try try
{ {
in_range = target_pos.distanceSquared(sender_pos) < (radius * radius); in_range = targetPos.distanceSquared(sender_pos) < (radius * radius);
} }
catch (IllegalArgumentException ex) catch (IllegalArgumentException ex)
{ {
@ -55,8 +55,8 @@ public class Command_expel extends TFM_Command
if (in_range) if (in_range)
{ {
p.setVelocity(target_pos.clone().subtract(sender_pos).toVector().normalize().multiply(strength)); player.setVelocity(targetPos.clone().subtract(sender_pos).toVector().normalize().multiply(strength));
playerMsg("Pushing " + p.getName() + "."); playerMsg("Pushing " + player.getName() + ".");
} }
} }
} }

View File

@ -1,7 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -22,7 +22,7 @@ public class Command_explosives extends TFM_Command
{ {
try try
{ {
TotalFreedomMod.explosiveRadius = Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))); TFM_ConfigEntry.EXPLOSIVE_RADIUS.setDouble(Math.max(1.0, Math.min(30.0, Double.parseDouble(args[1]))));
} }
catch (NumberFormatException nfex) catch (NumberFormatException nfex)
{ {
@ -33,12 +33,12 @@ public class Command_explosives extends TFM_Command
if (args[0].equalsIgnoreCase("on")) if (args[0].equalsIgnoreCase("on"))
{ {
TotalFreedomMod.allowExplosions = true; TFM_ConfigEntry.ALLOW_EXPLOSIONS.setBoolean(true);
playerMsg("Explosives are now enabled, radius set to " + TotalFreedomMod.explosiveRadius + " blocks."); playerMsg("Explosives are now enabled, radius set to " + TFM_ConfigEntry.EXPLOSIVE_RADIUS.getDouble() + " blocks.");
} }
else else
{ {
TotalFreedomMod.allowExplosions = false; TFM_ConfigEntry.ALLOW_EXPLOSIONS.setBoolean(false);
playerMsg("Explosives are now disabled."); playerMsg("Explosives are now disabled.");
} }

View File

@ -0,0 +1,37 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_UserList;
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 = AdminLevel.SUPER, source = SourceType.BOTH)
@CommandParameters(description = "Shows all IPs registered to a player", usage = "/<command> <player>")
public class Command_findip extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length != 1)
{
return false;
}
final Player player;
try
{
player = getPlayer(args[0]);
}
catch (PlayerNotFoundException ex)
{
playerMsg(ex.getMessage());
return true;
}
playerMsg("Player IPs: " + StringUtils.join(TFM_UserList.getInstance(TotalFreedomMod.plugin).getEntry(player).getIpAddresses(), ", "));
return true;
}
}

View File

@ -1,6 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -19,12 +19,12 @@ public class Command_fireplace extends TFM_Command
if (args[0].equalsIgnoreCase("on")) if (args[0].equalsIgnoreCase("on"))
{ {
TotalFreedomMod.allowFirePlace = true; TFM_ConfigEntry.ALLOW_FIRE_PLACE.setBoolean(true);
playerMsg("Fire placement is now enabled."); playerMsg("Fire placement is now enabled.");
} }
else else
{ {
TotalFreedomMod.allowFirePlace = false; TFM_ConfigEntry.ALLOW_FIRE_PLACE.setBoolean(false);
playerMsg("Fire placement is now disabled."); playerMsg("Fire placement is now disabled.");
} }

View File

@ -1,7 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler; import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -18,9 +18,13 @@ public class Command_firespread extends TFM_Command
return false; return false;
} }
playerMsg("Fire spread is now " + ((TotalFreedomMod.allowFireSpread = !args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + "."); boolean fireSpread = !args[0].equalsIgnoreCase("off");
TFM_GameRuleHandler.setGameRule(TFM_GameRuleHandler.TFM_GameRule.DO_FIRE_TICK, TotalFreedomMod.allowFireSpread); TFM_ConfigEntry.ALLOW_FIRE_SPREAD.setBoolean(fireSpread);
playerMsg("Fire spread is now " + (fireSpread ? "enabled" : "disabled") + ".");
TFM_GameRuleHandler.setGameRule(TFM_GameRuleHandler.TFM_GameRule.DO_FIRE_TICK, fireSpread);
return true; return true;
} }

View File

@ -1,7 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -13,7 +13,7 @@ public class Command_flatlands extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
if (TotalFreedomMod.generateFlatlands) if (TFM_ConfigEntry.GENERATE_FLATLANDS.getBoolean())
{ {
TFM_Util.gotoWorld(sender, "flatlands"); TFM_Util.gotoWorld(sender, "flatlands");
} }

View File

@ -1,6 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -17,16 +17,7 @@ public class Command_fluidspread extends TFM_Command
return false; return false;
} }
if (args[0].equalsIgnoreCase("on")) playerMsg("Lava and water spread is now " + (TFM_ConfigEntry.ALLOW_FLIUD_SPREAD.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
{
TotalFreedomMod.allowFliudSpread = true;
playerMsg("Lava and water spread is now enabled.");
}
else
{
TotalFreedomMod.allowFliudSpread = false;
playerMsg("Lava and water spread is now disabled.");
}
return true; return true;
} }

View File

@ -62,9 +62,9 @@ public class Command_fr extends TFM_Command
TotalFreedomMod.freezePurgeTask.cancel(); TotalFreedomMod.freezePurgeTask.cancel();
} }
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.setFrozen(false); playerdata.setFrozen(false);
} }
@ -72,22 +72,22 @@ public class Command_fr extends TFM_Command
} }
else else
{ {
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.setFrozen(!playerdata.isFrozen()); playerdata.setFrozen(!playerdata.isFrozen());
playerMsg(p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); playerMsg(player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
playerMsg(p, "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".", ChatColor.AQUA); playerMsg(player, "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".", ChatColor.AQUA);
} }
} }

View File

@ -30,77 +30,77 @@ public class Command_gadmin extends TFM_Command
playerMsg("[ Real Name ] : [ Display Name ] - Hash:"); playerMsg("[ Real Name ] : [ Display Name ] - Hash:");
} }
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
String hash = p.getUniqueId().toString().substring(0, 4); String hash = player.getUniqueId().toString().substring(0, 4);
if (mode.equals("list")) if (mode.equals("list"))
{ {
sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s", sender.sendMessage(ChatColor.GRAY + String.format("[ %s ] : [ %s ] - %s",
p.getName(), player.getName(),
ChatColor.stripColor(p.getDisplayName()), ChatColor.stripColor(player.getDisplayName()),
hash)); hash));
} }
else if (hash.equalsIgnoreCase(args[1])) else if (hash.equalsIgnoreCase(args[1]))
{ {
if (mode.equals("kick")) if (mode.equals("kick"))
{ {
TFM_Util.adminAction(sender.getName(), String.format("Kicking: %s.", p.getName()), false); TFM_Util.adminAction(sender.getName(), String.format("Kicking: %s.", player.getName()), false);
p.kickPlayer("Kicked by Administrator"); player.kickPlayer("Kicked by Administrator");
} }
else if (mode.equals("nameban")) else if (mode.equals("nameban"))
{ {
TFM_ServerInterface.banUsername(p.getName(), null, null, null); TFM_ServerInterface.banUsername(player.getName(), null, null, null);
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", p.getName()), true); TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s.", player.getName()), true);
p.kickPlayer("Username banned by Administrator."); player.kickPlayer("Username banned by Administrator.");
} }
else if (mode.equals("ipban")) else if (mode.equals("ipban"))
{ {
String user_ip = p.getAddress().getAddress().getHostAddress(); String user_ip = player.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\."); String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4) if (ip_parts.length == 4)
{ {
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
} }
TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", p.getName(), user_ip), true); TFM_Util.adminAction(sender.getName(), String.format("Banning IP: %s.", player.getName(), user_ip), true);
TFM_ServerInterface.banIP(user_ip, null, null, null); TFM_ServerInterface.banIP(user_ip, null, null, null);
p.kickPlayer("IP address banned by Administrator."); player.kickPlayer("IP address banned by Administrator.");
} }
else if (mode.equals("ban")) else if (mode.equals("ban"))
{ {
String user_ip = p.getAddress().getAddress().getHostAddress(); String user_ip = player.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\."); String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4) if (ip_parts.length == 4)
{ {
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]);
} }
TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", p.getName(), user_ip), true); TFM_Util.adminAction(sender.getName(), String.format("Banning Name: %s, IP: %s.", player.getName(), user_ip), true);
TFM_ServerInterface.banIP(user_ip, null, null, null); TFM_ServerInterface.banIP(user_ip, null, null, null);
TFM_ServerInterface.banUsername(p.getName(), null, null, null); TFM_ServerInterface.banUsername(player.getName(), null, null, null);
p.kickPlayer("IP and username banned by Administrator."); player.kickPlayer("IP and username banned by Administrator.");
} }
else if (mode.equals("op")) else if (mode.equals("op"))
{ {
TFM_Util.adminAction(sender.getName(), String.format("Opping %s.", p.getName()), false); TFM_Util.adminAction(sender.getName(), String.format("Opping %s.", player.getName()), false);
p.setOp(false); player.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_OP); player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
} }
else if (mode.equals("deop")) else if (mode.equals("deop"))
{ {
TFM_Util.adminAction(sender.getName(), String.format("Deopping %s.", p.getName()), false); TFM_Util.adminAction(sender.getName(), String.format("Deopping %s.", player.getName()), false);
p.setOp(false); player.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP); player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
} }
else if (mode.equals("ci")) else if (mode.equals("ci"))
{ {
p.getInventory().clear(); player.getInventory().clear();
} }
else if (mode.equals("fr")) else if (mode.equals("fr"))
{ {
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.setFrozen(!playerdata.isFrozen()); playerdata.setFrozen(!playerdata.isFrozen());
playerMsg(p.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); playerMsg(player.getName() + " has been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
p.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + "."); player.sendMessage(ChatColor.AQUA + "You have been " + (playerdata.isFrozen() ? "frozen" : "unfrozen") + ".");
} }
return true; return true;

View File

@ -17,12 +17,12 @@ public class Command_gcmd extends TFM_Command
return false; return false;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
@ -46,8 +46,8 @@ public class Command_gcmd extends TFM_Command
try try
{ {
playerMsg("Sending command as " + p.getName() + ": " + outcommand); playerMsg("Sending command as " + player.getName() + ": " + outcommand);
if (server.dispatchCommand(p, outcommand)) if (server.dispatchCommand(player, outcommand))
{ {
playerMsg("Command sent."); playerMsg("Command sent.");
} }

View File

@ -51,12 +51,12 @@ public class Command_glist extends TFM_Command
try try
{ {
Player p = getPlayer(args[1]); Player player = getPlayer(args[1]);
username = p.getName(); username = player.getName();
ip_addresses.add(p.getAddress().getAddress().getHostAddress()); ip_addresses.add(player.getAddress().getAddress().getHostAddress());
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]); TFM_UserListEntry entry = TFM_UserList.getInstance(plugin).getEntry(args[1]);
@ -75,11 +75,11 @@ public class Command_glist extends TFM_Command
{ {
TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true); TFM_Util.adminAction(sender.getName(), "Banning " + username + " and IPs: " + StringUtils.join(ip_addresses, ","), true);
Player p = server.getPlayerExact(username); Player player = server.getPlayerExact(username);
if (p != null) if (player != null)
{ {
TFM_ServerInterface.banUsername(p.getName(), null, null, null); TFM_ServerInterface.banUsername(player.getName(), null, null, null);
p.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: http://www.totalfreedom.boards.net"); player.kickPlayer("You have been banned by " + sender.getName() + "\n If you think you have been banned wrongly, appeal here: http://www.totalfreedom.boards.net");
} }
else else
{ {

View File

@ -25,12 +25,12 @@ public class Command_gtfo extends TFM_Command
return false; return false;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
@ -42,49 +42,49 @@ public class Command_gtfo extends TFM_Command
ban_reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " "); ban_reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
} }
TFM_Util.bcastMsg(p.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED); TFM_Util.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);
// Undo WorldEdits: // Undo WorldEdits:
TFM_WorldEditBridge.getInstance().undo(p, 15); TFM_WorldEditBridge.getInstance().undo(player, 15);
// rollback // rollback
TFM_RollbackManager.rollback(p.getName()); TFM_RollbackManager.rollback(player.getName());
// deop // deop
p.setOp(false); player.setOp(false);
// set gamemode to survival: // set gamemode to survival:
p.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
// clear inventory: // clear inventory:
p.getInventory().clear(); player.getInventory().clear();
// strike with lightning effect: // strike with lightning effect:
final Location target_pos = p.getLocation(); final Location targetPos = player.getLocation();
for (int x = -1; x <= 1; x++) for (int x = -1; x <= 1; x++)
{ {
for (int z = -1; z <= 1; z++) 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); final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
target_pos.getWorld().strikeLightning(strike_pos); targetPos.getWorld().strikeLightning(strike_pos);
} }
} }
// ban IP address: // ban IP address:
String user_ip = p.getAddress().getAddress().getHostAddress(); String user_ip = player.getAddress().getAddress().getHostAddress();
String[] ip_parts = user_ip.split("\\."); String[] ip_parts = user_ip.split("\\.");
if (ip_parts.length == 4) if (ip_parts.length == 4)
{ {
user_ip = String.format("%s.%s.*.*", ip_parts[0], ip_parts[1]); 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); TFM_Util.bcastMsg(String.format("Banning: %s, IP: %s.", player.getName(), user_ip), ChatColor.RED);
TFM_ServerInterface.banIP(user_ip, ban_reason, null, null); TFM_ServerInterface.banIP(user_ip, ban_reason, null, null);
// ban username: // ban username:
TFM_ServerInterface.banUsername(p.getName(), ban_reason, null, null); TFM_ServerInterface.banUsername(player.getName(), ban_reason, null, null);
// kick Player: // kick Player:
p.kickPlayer(ChatColor.RED + "GTFO" + (ban_reason != null ? ("\nReason: " + ChatColor.YELLOW + ban_reason) : "")); player.kickPlayer(ChatColor.RED + "GTFO" + (ban_reason != null ? ("\nReason: " + ChatColor.YELLOW + ban_reason) : ""));
return true; return true;
} }

View File

@ -23,11 +23,11 @@ public class Command_halt extends TFM_Command
{ {
TFM_Util.adminAction(sender.getName(), "Halting all non-superadmins.", true); TFM_Util.adminAction(sender.getName(), "Halting all non-superadmins.", true);
int counter = 0; int counter = 0;
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
TFM_PlayerData.getPlayerData(p).setHalted(true); TFM_PlayerData.getPlayerData(player).setHalted(true);
counter++; counter++;
} }
} }
@ -39,10 +39,10 @@ public class Command_halt extends TFM_Command
{ {
TFM_Util.adminAction(sender.getName(), "Unhalting all players.", true); TFM_Util.adminAction(sender.getName(), "Unhalting all players.", true);
int counter = 0; int counter = 0;
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
if (TFM_PlayerData.getPlayerData(p).isHalted()) if (TFM_PlayerData.getPlayerData(player).isHalted())
{ {
playerdata.setHalted(false); playerdata.setHalted(false);
counter++; counter++;
@ -76,28 +76,28 @@ public class Command_halt extends TFM_Command
return true; return true;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
if (!playerdata.isHalted()) if (!playerdata.isHalted())
{ {
TFM_Util.adminAction(sender.getName(), "Halting " + p.getName(), true); TFM_Util.adminAction(sender.getName(), "Halting " + player.getName(), true);
playerdata.setHalted(true); playerdata.setHalted(true);
return true; return true;
} }
else else
{ {
TFM_Util.adminAction(sender.getName(), "Unhalting " + p.getName(), true); TFM_Util.adminAction(sender.getName(), "Unhalting " + player.getName(), true);
playerdata.setHalted(false); playerdata.setHalted(false);
return true; return true;
} }

View File

@ -1,62 +1,100 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.concurrent.atomic.AtomicInteger;
import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TFM_Log;
import me.StevenLawson.TotalFreedomMod.TFM_TickMeter;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.exception.ExceptionUtils; import org.apache.commons.lang.math.DoubleRange;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.scheduler.BukkitTask;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
@CommandParameters(description = "View ticks-per-second", usage = "/<command>") @CommandParameters(description = "View ticks-per-second", usage = "/<command>")
public class Command_health extends TFM_Command public class Command_health extends TFM_Command
{ {
private static final int BYTES_PER_MB = 1024 * 1024;
private static final DoubleRange TPS_RANGE = new DoubleRange(20.0 - 0.1, 20.0 + 0.1);
@Override @Override
public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(final CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
Runtime runtime = Runtime.getRuntime();
long usedMem = runtime.totalMemory() - runtime.freeMemory();
playerMsg("Reserved Memory: " + (double) runtime.totalMemory() / (double) BYTES_PER_MB + "mb");
playerMsg("Used Memory: " + new DecimalFormat("#").format((double) usedMem / (double) BYTES_PER_MB) + "mb (" + new DecimalFormat("#").format(((double) usedMem / (double) runtime.totalMemory()) * 100.0) + "%)");
playerMsg("Max Memory: " + (double) runtime.maxMemory() / (double) BYTES_PER_MB + "mb");
playerMsg("Calculating ticks per second, please wait...");
new BukkitRunnable() new BukkitRunnable()
{ {
@Override @Override
public void run() public void run()
{ {
try try
{ {
final TFM_TickMeter meter = new TFM_TickMeter(plugin); TFM_TickMeter tickMeter = new TFM_TickMeter(plugin);
meter.startTicking(); tickMeter.startTicking();
Thread.sleep(1000); // per second Thread.sleep(2500);
meter.stopTicking(); final double ticksPerSecond = tickMeter.stopTicking();
final Runtime runtime = Runtime.getRuntime();
final int mb = 1048576; // 1024 * 1024
final float usedMem = runtime.totalMemory() - runtime.freeMemory();
new BukkitRunnable() new BukkitRunnable()
{ {
@Override @Override
public void run() { public void run()
playerMsg("Reserved Memory: " + runtime.totalMemory() / mb + "mb"); {
playerMsg("Used Memory: " + new DecimalFormat("#").format(usedMem / mb) + "mb (" + new DecimalFormat("#").format((usedMem / runtime.totalMemory()) * 100) + "%)"); playerMsg("Ticks per second: " + (TPS_RANGE.containsDouble(ticksPerSecond) ? ChatColor.GREEN : ChatColor.RED) + ticksPerSecond);
playerMsg("Max Memory: " + runtime.maxMemory() / mb + "mb");
playerMsg("Ticks per second: " + (meter.getTicks() == 20 ? ChatColor.GREEN : ChatColor.RED) + meter.getTicks());
} }
}.runTask(TotalFreedomMod.plugin); }.runTask(plugin);
} }
catch (Exception iex) catch (Exception ex)
{ {
TFM_Log.warning("Exception in TFM_TickMeter: Thread was interupted in sleeping process."); TFM_Log.severe(ex);
TFM_Log.warning(ExceptionUtils.getStackTrace(iex));
} }
} }
}.runTaskAsynchronously(plugin);
}.runTaskAsynchronously(TotalFreedomMod.plugin);
return true; return true;
} }
private class TFM_TickMeter
{
private final AtomicInteger ticks = new AtomicInteger();
private final TotalFreedomMod plugin;
private long startTime;
private BukkitTask task;
public TFM_TickMeter(TotalFreedomMod plugin)
{
this.plugin = plugin;
}
public void startTicking()
{
startTime = System.currentTimeMillis();
ticks.set(0);
task = new BukkitRunnable()
{
@Override
public void run()
{
ticks.incrementAndGet();
}
}.runTaskTimer(plugin, 0L, 1L);
}
public double stopTicking()
{
task.cancel();
long elapsed = System.currentTimeMillis() - startTime;
int tickCount = ticks.get();
return (double) tickCount / ((double) elapsed / 1000.0);
}
}
} }

View File

@ -33,14 +33,14 @@ public class Command_invis extends TFM_Command
List<String> players = new ArrayList<String>(); List<String> players = new ArrayList<String>();
int smites = 0; int smites = 0;
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (p.hasPotionEffect(PotionEffectType.INVISIBILITY)) if (player.hasPotionEffect(PotionEffectType.INVISIBILITY))
{ {
players.add(p.getName()); players.add(player.getName());
if (smite && !TFM_SuperadminList.isUserSuperadmin(p)) if (smite && !TFM_SuperadminList.isUserSuperadmin(player))
{ {
Command_smite.smite(p); Command_smite.smite(player);
smites++; smites++;
} }
} }

View File

@ -0,0 +1,94 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_Jumppads;
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 = AdminLevel.SUPER, source = SourceType.BOTH)
@CommandParameters(description = "Manage jumppads", usage = "/<command> <on | off | info |sideways <on | off> | strength <strength (1-10)>>", aliases = "launchpads,jp")
public class Command_jumppads extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length == 0 || args.length > 2)
{
return false;
}
if (args.length == 1)
{
if (args[0].equalsIgnoreCase("info"))
{
playerMsg("Jumppads: " + (TFM_Jumppads.getInstance().getMode().isOn() ? "Enabled" : "Disabled"), ChatColor.BLUE);
playerMsg("Sideways: " + (TFM_Jumppads.getInstance().getMode() == TFM_Jumppads.JumpPadMode.NORMAL_AND_SIDEWAYS ? "Enabled" : "Disabled"), ChatColor.BLUE);
playerMsg("Strength: " + (TFM_Jumppads.getInstance().getStrength() * 10 - 1), ChatColor.BLUE);
return true;
}
if (TFM_Util.isStopCommand(args[0]))
{
TFM_Util.adminAction(sender.getName(), "Disabling Jumppads", false);
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.OFF);
}
else
{
TFM_Util.adminAction(sender.getName(), "Enabling Jumppads", false);
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
}
}
else
{
if (TFM_Jumppads.getInstance().getMode() == TFM_Jumppads.JumpPadMode.OFF)
{
playerMsg("Jumppads are currently disabled, please enable them before changing jumppads settings.");
return true;
}
if (args[0].equalsIgnoreCase("sideways"))
{
if (TFM_Util.isStopCommand(args[1]))
{
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Madgeek", false);
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.MADGEEK);
}
else
{
TFM_Util.adminAction(sender.getName(), "Setting Jumppads mode to: Normal and Sideways", false);
TFM_Jumppads.getInstance().setMode(TFM_Jumppads.JumpPadMode.NORMAL_AND_SIDEWAYS);
}
}
else if (args[0].equalsIgnoreCase("strength"))
{
final float strength;
try
{
strength = Float.parseFloat(args[1]);
}
catch (NumberFormatException ex)
{
playerMsg("Invalid Strength");
return true;
}
if (strength > 10 || strength < 1)
{
playerMsg("Invalid Strength: The strength may be 1 through 10.");
return true;
}
TFM_Util.adminAction(sender.getName(), "Setting Jumppads strength to: " + String.valueOf(strength), false);
TFM_Jumppads.getInstance().setStrength((strength / 10) + 0.1F);
}
else
{
return false;
}
}
return true;
}
}

View File

@ -16,11 +16,11 @@ public class Command_kicknoob extends TFM_Command
{ {
TFM_Util.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true); TFM_Util.adminAction(sender.getName(), "Disconnecting all non-superadmins.", true);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
p.kickPlayer(ChatColor.RED + "Disconnected by admin."); player.kickPlayer(ChatColor.RED + "Disconnected by admin.");
} }
} }

View File

@ -1,7 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_LandmineData; import me.StevenLawson.TotalFreedomMod.TFM_LandmineData;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.Block; import org.bukkit.block.Block;
@ -17,11 +17,11 @@ public class Command_landmine extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
if (!TotalFreedomMod.landminesEnabled) if (!TFM_ConfigEntry.LANDMINES_ENABLED.getBoolean())
{ {
playerMsg("The landmine is currently disabled.", ChatColor.GREEN); playerMsg("The landmine is currently disabled.", ChatColor.GREEN);
} }
else if (!TotalFreedomMod.allowExplosions) else if (!TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
playerMsg("Explosions are currently disabled.", ChatColor.GREEN); playerMsg("Explosions are currently disabled.", ChatColor.GREEN);
} }

View File

@ -18,18 +18,18 @@ public class Command_lastcmd extends TFM_Command
return false; return false;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
if (playerdata != null) if (playerdata != null)
{ {
@ -38,7 +38,7 @@ public class Command_lastcmd extends TFM_Command
{ {
last_command = "(none)"; last_command = "(none)";
} }
playerMsg(p.getName() + " - Last Command: " + last_command, ChatColor.GRAY); playerMsg(player.getName() + " - Last Command: " + last_command, ChatColor.GRAY);
} }
return true; return true;

View File

@ -1,6 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -17,16 +17,7 @@ public class Command_lavadmg extends TFM_Command
return false; return false;
} }
if (args[0].equalsIgnoreCase("on")) playerMsg("Lava damage is now " + (TFM_ConfigEntry.ALLOW_LAVA_DAMAGE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
{
TotalFreedomMod.allowLavaDamage = true;
playerMsg("Lava damage is now enabled.");
}
else
{
TotalFreedomMod.allowLavaDamage = false;
playerMsg("Lava damage is now disabled.");
}
return true; return true;
} }

View File

@ -1,6 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -17,16 +17,7 @@ public class Command_lavaplace extends TFM_Command
return false; return false;
} }
if (args[0].equalsIgnoreCase("on")) playerMsg("Lava placement is now " + (TFM_ConfigEntry.ALLOW_LAVA_PLACE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
{
TotalFreedomMod.allowLavaPlace = true;
playerMsg("Lava placement is now enabled.");
}
else
{
TotalFreedomMod.allowLavaPlace = false;
playerMsg("Lava placement is now disabled.");
}
return true; return true;
} }

View File

@ -25,9 +25,9 @@ public class Command_list extends TFM_Command
if (TFM_Util.isFromHostConsole(sender.getName())) if (TFM_Util.isFromHostConsole(sender.getName()))
{ {
List<String> player_names = new ArrayList<String>(); List<String> player_names = new ArrayList<String>();
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
player_names.add(p.getName()); player_names.add(player.getName());
} }
playerMsg("There are " + player_names.size() + "/" + server.getMaxPlayers() + " players online:\n" + StringUtils.join(player_names, ", "), ChatColor.WHITE); playerMsg("There are " + player_names.size() + "/" + server.getMaxPlayers() + " players online:\n" + StringUtils.join(player_names, ", "), ChatColor.WHITE);
return true; return true;
@ -50,9 +50,9 @@ public class Command_list extends TFM_Command
onlineStats.append(ChatColor.BLUE).append(" players online."); onlineStats.append(ChatColor.BLUE).append(" players online.");
List<String> player_names = new ArrayList<String>(); List<String> player_names = new ArrayList<String>();
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
boolean userSuperadmin = TFM_SuperadminList.isUserSuperadmin(p); boolean userSuperadmin = TFM_SuperadminList.isUserSuperadmin(player);
if (listFilter == ListFilter.SHOW_ADMINS && !userSuperadmin) if (listFilter == ListFilter.SHOW_ADMINS && !userSuperadmin)
{ {
@ -63,7 +63,7 @@ public class Command_list extends TFM_Command
if (userSuperadmin) if (userSuperadmin)
{ {
if (TFM_SuperadminList.isSeniorAdmin(p)) if (TFM_SuperadminList.isSeniorAdmin(player))
{ {
prefix = (ChatColor.LIGHT_PURPLE + "[SrA]"); prefix = (ChatColor.LIGHT_PURPLE + "[SrA]");
} }
@ -72,25 +72,25 @@ public class Command_list extends TFM_Command
prefix = (ChatColor.GOLD + "[SA]"); prefix = (ChatColor.GOLD + "[SA]");
} }
if (TFM_Util.DEVELOPERS.contains(p.getName())) if (TFM_Util.DEVELOPERS.contains(player.getName()))
{ {
prefix = (ChatColor.DARK_PURPLE + "[Dev]"); prefix = (ChatColor.DARK_PURPLE + "[Dev]");
} }
if (p.getName().equals("markbyron")) if (player.getName().equals("markbyron"))
{ {
prefix = (ChatColor.BLUE + "[Owner]"); prefix = (ChatColor.BLUE + "[Owner]");
} }
} }
else else
{ {
if (p.isOp()) if (player.isOp())
{ {
prefix = (ChatColor.RED + "[OP]"); prefix = (ChatColor.RED + "[OP]");
} }
} }
player_names.add(prefix + p.getName() + ChatColor.WHITE); player_names.add(prefix + player.getName() + ChatColor.WHITE);
} }
onlineUsers.append("Connected ").append(listFilter == ListFilter.SHOW_ADMINS ? "admins" : "players").append(": ").append(StringUtils.join(player_names, ", ")); onlineUsers.append("Connected ").append(listFilter == ListFilter.SHOW_ADMINS ? "admins" : "players").append(": ").append(StringUtils.join(player_names, ", "));

View File

@ -0,0 +1,34 @@
package me.StevenLawson.TotalFreedomMod.Commands;
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 = AdminLevel.SUPER, source = SourceType.BOTH)
@CommandParameters(description = "Prevents new players from joining the server", usage = "/<command> <on | off>")
public class Command_lockdown extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length != 1)
{
return false;
}
if (TFM_Util.isStopCommand(args[0]))
{
TFM_Util.adminAction(sender.getName(), "De-activating server lockdown", true);
TotalFreedomMod.lockdownEnabled = false;
}
else
{
TFM_Util.adminAction(sender.getName(), "Activating server lockdown", true);
TotalFreedomMod.lockdownEnabled = true;
}
return true;
}
}

View File

@ -21,18 +21,18 @@ public class Command_lockup extends TFM_Command
{ {
TFM_Util.adminAction(sender.getName(), "Locking up all players", true); TFM_Util.adminAction(sender.getName(), "Locking up all players", true);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
startLockup(p); startLockup(player);
} }
playerMsg("Locked up all players."); playerMsg("Locked up all players.");
} }
else if (args[0].equalsIgnoreCase("purge")) else if (args[0].equalsIgnoreCase("purge"))
{ {
TFM_Util.adminAction(sender.getName(), "Unlocking all players", true); TFM_Util.adminAction(sender.getName(), "Unlocking all players", true);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
cancelLockup(p); cancelLockup(player);
} }
playerMsg("Unlocked all players."); playerMsg("Unlocked all players.");
@ -46,37 +46,37 @@ public class Command_lockup extends TFM_Command
{ {
if (args[1].equalsIgnoreCase("on")) if (args[1].equalsIgnoreCase("on"))
{ {
final Player p; final Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
} }
TFM_Util.adminAction(sender.getName(), "Locking up " + p.getName(), true); TFM_Util.adminAction(sender.getName(), "Locking up " + player.getName(), true);
startLockup(p); startLockup(player);
playerMsg("Locked up " + p.getName() + "."); playerMsg("Locked up " + player.getName() + ".");
} }
else if (TFM_Util.isStopCommand(args[1])) else if (TFM_Util.isStopCommand(args[1]))
{ {
final Player p; final Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
} }
TFM_Util.adminAction(sender.getName(), "Unlocking " + p.getName(), true); TFM_Util.adminAction(sender.getName(), "Unlocking " + player.getName(), true);
cancelLockup(p); cancelLockup(player);
playerMsg("Unlocked " + p.getName() + "."); playerMsg("Unlocked " + player.getName() + ".");
} }
else else
{ {
@ -101,14 +101,14 @@ public class Command_lockup extends TFM_Command
} }
} }
private void cancelLockup(final Player p) private void cancelLockup(final Player player)
{ {
cancelLockup(TFM_PlayerData.getPlayerData(p)); cancelLockup(TFM_PlayerData.getPlayerData(player));
} }
private void startLockup(final Player p) private void startLockup(final Player player)
{ {
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
cancelLockup(playerdata); cancelLockup(playerdata);
@ -117,9 +117,9 @@ public class Command_lockup extends TFM_Command
@Override @Override
public void run() public void run()
{ {
if (p.isOnline()) if (player.isOnline())
{ {
p.openInventory(p.getInventory()); player.openInventory(player.getInventory());
} }
else else
{ {

View File

@ -9,6 +9,7 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.TFM_Log;
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin; import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
@ -46,12 +47,10 @@ public class Command_logs extends TFM_Command
public static void updateLogsRegistration(final CommandSender sender, final String targetName, final String targetIP, final LogsRegistrationMode mode) public static void updateLogsRegistration(final CommandSender sender, final String targetName, final String targetIP, final LogsRegistrationMode mode)
{ {
if (TotalFreedomMod.logsRegisterURL == null || TotalFreedomMod.logsRegisterPassword == null) final String logsRegisterURL = TFM_ConfigEntry.LOGS_REGISTER_URL.getString();
{ final String logsRegisterPassword = TFM_ConfigEntry.LOGS_REGISTER_PASSWORD.getString();
return;
}
if (TotalFreedomMod.logsRegisterPassword.isEmpty() || TotalFreedomMod.logsRegisterURL.isEmpty()) if (logsRegisterURL == null || logsRegisterPassword == null || logsRegisterURL.isEmpty() || logsRegisterPassword.isEmpty())
{ {
return; return;
} }
@ -68,9 +67,9 @@ public class Command_logs extends TFM_Command
sender.sendMessage(ChatColor.YELLOW + "Connecting..."); sender.sendMessage(ChatColor.YELLOW + "Connecting...");
} }
URL url = new URLBuilder(TotalFreedomMod.logsRegisterURL) URL url = new URLBuilder(logsRegisterURL)
.addQueryParameter("mode", mode.toString()) .addQueryParameter("mode", mode.toString())
.addQueryParameter("password", TotalFreedomMod.logsRegisterPassword) .addQueryParameter("password", logsRegisterPassword)
.addQueryParameter("name", targetName) .addQueryParameter("name", targetName)
.addQueryParameter("ip", targetIP) .addQueryParameter("ip", targetIP)
.getURL(); .getURL();

View File

@ -1,7 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler; import me.StevenLawson.TotalFreedomMod.TFM_GameRuleHandler;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -20,27 +20,27 @@ public class Command_moblimiter extends TFM_Command
if (args[0].equalsIgnoreCase("on")) if (args[0].equalsIgnoreCase("on"))
{ {
TotalFreedomMod.mobLimiterEnabled = true; TFM_ConfigEntry.MOB_LIMITER_ENABLED.setBoolean(true);
} }
else if (args[0].equalsIgnoreCase("off")) else if (args[0].equalsIgnoreCase("off"))
{ {
TotalFreedomMod.mobLimiterEnabled = false; TFM_ConfigEntry.MOB_LIMITER_ENABLED.setBoolean(false);
} }
else if (args[0].equalsIgnoreCase("dragon")) else if (args[0].equalsIgnoreCase("dragon"))
{ {
TotalFreedomMod.mobLimiterDisableDragon = !TotalFreedomMod.mobLimiterDisableDragon; TFM_ConfigEntry.MOB_LIMITER_DISABLE_DRAGON.setBoolean(!TFM_ConfigEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean());
} }
else if (args[0].equalsIgnoreCase("giant")) else if (args[0].equalsIgnoreCase("giant"))
{ {
TotalFreedomMod.mobLimiterDisableGiant = !TotalFreedomMod.mobLimiterDisableGiant; TFM_ConfigEntry.MOB_LIMITER_DISABLE_GIANT.setBoolean(!TFM_ConfigEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean());
} }
else if (args[0].equalsIgnoreCase("slime")) else if (args[0].equalsIgnoreCase("slime"))
{ {
TotalFreedomMod.mobLimiterDisableSlime = !TotalFreedomMod.mobLimiterDisableSlime; TFM_ConfigEntry.MOB_LIMITER_DISABLE_SLIME.setBoolean(!TFM_ConfigEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean());
} }
else if (args[0].equalsIgnoreCase("ghast")) else if (args[0].equalsIgnoreCase("ghast"))
{ {
TotalFreedomMod.mobLimiterDisableGhast = !TotalFreedomMod.mobLimiterDisableGhast; TFM_ConfigEntry.MOB_LIMITER_DISABLE_GHAST.setBoolean(!TFM_ConfigEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean());
} }
else else
{ {
@ -53,7 +53,7 @@ public class Command_moblimiter extends TFM_Command
{ {
try try
{ {
TotalFreedomMod.mobLimiterMax = Math.max(0, Math.min(2000, Integer.parseInt(args[1]))); TFM_ConfigEntry.MOB_LIMITER_MAX.setInteger(Math.max(0, Math.min(2000, Integer.parseInt(args[1]))));
} }
catch (NumberFormatException nfex) catch (NumberFormatException nfex)
{ {
@ -61,21 +61,21 @@ public class Command_moblimiter extends TFM_Command
} }
} }
if (TotalFreedomMod.mobLimiterEnabled) if (TFM_ConfigEntry.MOB_LIMITER_ENABLED.getBoolean())
{ {
sender.sendMessage("Moblimiter enabled. Maximum mobcount set to: " + TotalFreedomMod.mobLimiterMax + "."); sender.sendMessage("Moblimiter enabled. Maximum mobcount set to: " + TFM_ConfigEntry.MOB_LIMITER_MAX.getInteger() + ".");
playerMsg("Dragon: " + (TotalFreedomMod.mobLimiterDisableDragon ? "disabled" : "enabled") + "."); playerMsg("Dragon: " + (TFM_ConfigEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean() ? "disabled" : "enabled") + ".");
playerMsg("Giant: " + (TotalFreedomMod.mobLimiterDisableGiant ? "disabled" : "enabled") + "."); playerMsg("Giant: " + (TFM_ConfigEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean() ? "disabled" : "enabled") + ".");
playerMsg("Slime: " + (TotalFreedomMod.mobLimiterDisableSlime ? "disabled" : "enabled") + "."); playerMsg("Slime: " + (TFM_ConfigEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean() ? "disabled" : "enabled") + ".");
playerMsg("Ghast: " + (TotalFreedomMod.mobLimiterDisableGhast ? "disabled" : "enabled") + "."); playerMsg("Ghast: " + (TFM_ConfigEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean() ? "disabled" : "enabled") + ".");
} }
else else
{ {
playerMsg("Moblimiter is disabled. No mob restrictions are in effect."); playerMsg("Moblimiter is disabled. No mob restrictions are in effect.");
} }
TFM_GameRuleHandler.setGameRule(TFM_GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING, !TotalFreedomMod.mobLimiterEnabled); TFM_GameRuleHandler.setGameRule(TFM_GameRuleHandler.TFM_GameRule.DO_MOB_SPAWNING, !TFM_ConfigEntry.MOB_LIMITER_ENABLED.getBoolean());
return true; return true;
} }

View File

@ -1,7 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@ -16,7 +16,7 @@ public class Command_mp44 extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
if (!TotalFreedomMod.mp44Enabled) if (!TFM_ConfigEntry.MP44_ENABLED.getBoolean())
{ {
playerMsg("The mp44 is currently disabled.", ChatColor.GREEN); playerMsg("The mp44 is currently disabled.", ChatColor.GREEN);
return true; return true;

View File

@ -0,0 +1,125 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
@CommandParameters(description = "NickFilter: Prefix any command with this command to replace nicknames in that command with real names. Nicknames should be prefixed with a !.", usage = "/<command> <other_command> !<playernick>")
public class Command_nf extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
boolean nickMatched = false;
final List<String> outputCommand = new ArrayList<String>();
if (args.length >= 1)
{
final List<String> argsList = Arrays.asList(args);
for (String arg : argsList)
{
Player player = null;
Matcher matcher = Pattern.compile("^!(.+)$").matcher(arg);
if (matcher.find())
{
String displayName = matcher.group(1);
try
{
player = getPlayerByDisplayName(displayName);
}
catch (PlayerNotFoundException ex)
{
}
if (player == null)
{
try
{
player = getPlayerByDisplayNameAlt(displayName);
}
catch (PlayerNotFoundException ex)
{
sender.sendMessage(ChatColor.GRAY + "Can't find player by nickname: " + displayName);
return true;
}
}
}
if (player == null)
{
outputCommand.add(arg);
}
else
{
nickMatched = true;
outputCommand.add(player.getName());
}
}
}
if (!nickMatched)
{
sender.sendMessage("No nicknames replaced in command.");
return true;
}
String newCommand = StringUtils.join(outputCommand, " ");
sender.sendMessage("Sending command: \"" + newCommand + "\".");
server.dispatchCommand(sender, newCommand);
return true;
}
private static Player getPlayerByDisplayName(String needle) throws PlayerNotFoundException
{
needle = needle.toLowerCase().trim();
Player[] onlinePlayers = Bukkit.getOnlinePlayers();
for (Player player : onlinePlayers)
{
if (player.getDisplayName().toLowerCase().trim().contains(needle))
{
return player;
}
}
throw new PlayerNotFoundException();
}
private static Player getPlayerByDisplayNameAlt(String needle) throws PlayerNotFoundException
{
needle = needle.toLowerCase().trim();
Integer minEditDistance = null;
Player minEditMatch = null;
Player[] onlinePlayers = Bukkit.getOnlinePlayers();
for (Player player : onlinePlayers)
{
String haystack = player.getDisplayName().toLowerCase().trim();
int editDistance = StringUtils.getLevenshteinDistance(needle, haystack.toLowerCase());
if (minEditDistance == null || minEditDistance.intValue() > editDistance)
{
minEditDistance = editDistance;
minEditMatch = player;
}
}
if (minEditMatch == null)
{
throw new PlayerNotFoundException();
}
return minEditMatch;
}
}

View File

@ -1,6 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -21,7 +21,7 @@ public class Command_nonuke extends TFM_Command
{ {
try try
{ {
TotalFreedomMod.nukeMonitorRange = Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1]))); TFM_ConfigEntry.NUKE_MONITOR_RANGE.setDouble(Math.max(1.0, Math.min(500.0, Double.parseDouble(args[1]))));
} }
catch (NumberFormatException nfex) catch (NumberFormatException nfex)
{ {
@ -32,7 +32,7 @@ public class Command_nonuke extends TFM_Command
{ {
try try
{ {
TotalFreedomMod.nukeMonitorCountBreak = Math.max(1, Math.min(500, Integer.parseInt(args[2]))); TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.setInteger(Math.max(1, Math.min(500, Integer.parseInt(args[2]))));
} }
catch (NumberFormatException nfex) catch (NumberFormatException nfex)
{ {
@ -41,14 +41,14 @@ public class Command_nonuke extends TFM_Command
if (args[0].equalsIgnoreCase("on")) if (args[0].equalsIgnoreCase("on"))
{ {
TotalFreedomMod.nukeMonitor = true; TFM_ConfigEntry.NUKE_MONITOR.setBoolean(true);
playerMsg("Nuke monitor is enabled."); playerMsg("Nuke monitor is enabled.");
playerMsg("Anti-freecam range is set to " + TotalFreedomMod.nukeMonitorRange + " blocks."); playerMsg("Anti-freecam range is set to " + TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble() + " blocks.");
playerMsg("Block throttle rate is set to " + TotalFreedomMod.nukeMonitorCountBreak + " blocks destroyed per 5 seconds."); playerMsg("Block throttle rate is set to " + TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.getInteger() + " blocks destroyed per 5 seconds.");
} }
else else
{ {
TotalFreedomMod.nukeMonitor = false; TFM_ConfigEntry.NUKE_MONITOR.setBoolean(false);
playerMsg("Nuke monitor is disabled."); playerMsg("Nuke monitor is disabled.");
} }

View File

@ -43,9 +43,9 @@ public class Command_onlinemode extends TFM_Command
if (online_mode) if (online_mode)
{ {
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
p.kickPlayer("Server is activating \"online-mode=true\". Please reconnect."); player.kickPlayer("Server is activating \"online-mode=true\". Please reconnect.");
} }
} }

View File

@ -26,21 +26,21 @@ public class Command_op extends TFM_Command
return true; return true;
} }
OfflinePlayer p = null; OfflinePlayer player = null;
for (Player onlinePlayer : server.getOnlinePlayers()) for (Player onlinePlayer : server.getOnlinePlayers())
{ {
if (args[0].equalsIgnoreCase(onlinePlayer.getName())) if (args[0].equalsIgnoreCase(onlinePlayer.getName()))
{ {
p = onlinePlayer; player = onlinePlayer;
} }
} }
// if the player is not online // if the player is not online
if (p == null) if (player == null)
{ {
if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole) if (TFM_SuperadminList.isUserSuperadmin(sender) || senderIsConsole)
{ {
p = server.getOfflinePlayer(args[0]); player = server.getOfflinePlayer(args[0]);
} }
else else
{ {
@ -50,8 +50,8 @@ public class Command_op extends TFM_Command
} }
} }
TFM_Util.adminAction(sender.getName(), "Opping " + p.getName(), false); TFM_Util.adminAction(sender.getName(), "Opping " + player.getName(), false);
p.setOp(true); player.setOp(true);
return true; return true;
} }

View File

@ -32,14 +32,14 @@ public class Command_opall extends TFM_Command
} }
} }
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
p.setOp(true); player.setOp(true);
p.sendMessage(TotalFreedomMod.YOU_ARE_OP); player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
if (doSetGamemode) if (doSetGamemode)
{ {
p.setGameMode(targetGamemode); player.setGameMode(targetGamemode);
} }
} }

View File

@ -31,9 +31,9 @@ public class Command_ops extends TFM_Command
int offlineOPs = 0; int offlineOPs = 0;
int totalOPs = 0; int totalOPs = 0;
for (OfflinePlayer p : server.getOperators()) for (OfflinePlayer player : server.getOperators())
{ {
if (p.isOnline()) if (player.isOnline())
{ {
onlineOPs++; onlineOPs++;
} }
@ -61,13 +61,13 @@ public class Command_ops extends TFM_Command
TFM_Util.adminAction(sender.getName(), "Removing all operators", true); TFM_Util.adminAction(sender.getName(), "Removing all operators", true);
for (OfflinePlayer p : server.getOperators()) for (OfflinePlayer player : server.getOperators())
{ {
p.setOp(false); player.setOp(false);
if (p.isOnline()) if (player.isOnline())
{ {
p.getPlayer().sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP); player.getPlayer().sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
} }
} }

View File

@ -21,18 +21,18 @@ public class Command_orbit extends TFM_Command
return false; return false;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
double strength = 10.0; double strength = 10.0;
@ -40,7 +40,7 @@ public class Command_orbit extends TFM_Command
{ {
if (TFM_Util.isStopCommand(args[1])) if (TFM_Util.isStopCommand(args[1]))
{ {
playerMsg("Stopped orbiting " + p.getName()); playerMsg("Stopped orbiting " + player.getName());
playerdata.stopOrbiting(); playerdata.stopOrbiting();
return true; return true;
} }
@ -56,11 +56,11 @@ public class Command_orbit extends TFM_Command
} }
} }
p.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
playerdata.startOrbiting(strength); playerdata.startOrbiting(strength);
p.setVelocity(new Vector(0, strength, 0)); player.setVelocity(new Vector(0, strength, 0));
TFM_Util.adminAction(sender.getName(), "Orbiting " + p.getName() + ".", false); TFM_Util.adminAction(sender.getName(), "Orbiting " + player.getName() + ".", false);
return true; return true;
} }

View File

@ -1,7 +1,7 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -18,11 +18,9 @@ public class Command_petprotect extends TFM_Command
return false; return false;
} }
TotalFreedomMod.petProtectEnabled = !TFM_Util.isStopCommand(args[0]);
TFM_Util.adminAction( TFM_Util.adminAction(
sender.getName(), sender.getName(),
"Tamed pet protection is now " + (TotalFreedomMod.petProtectEnabled ? "enabled" : "disabled") + ".", "Tamed pet protection is now " + (TFM_ConfigEntry.PET_PROTECT_ENABLED.setBoolean(!TFM_Util.isStopCommand(args[0])) ? "enabled" : "disabled") + ".",
false); false);
return true; return true;

View File

@ -58,20 +58,20 @@ public class Command_plugincontrol extends TFM_Command
else if (commandMode == CommandMode.RELOAD) else if (commandMode == CommandMode.RELOAD)
{ {
playerMsg("Disabling all plugins."); playerMsg("Disabling all plugins.");
for (Plugin p : pluginManager.getPlugins()) for (Plugin targetPlugin : pluginManager.getPlugins())
{ {
if (!p.getName().toLowerCase().startsWith("totalfreedommod")) if (!targetPlugin.getName().toLowerCase().startsWith("totalfreedommod"))
{ {
pluginManager.disablePlugin(p); pluginManager.disablePlugin(targetPlugin);
} }
} }
playerMsg("Enabling all plugins."); playerMsg("Enabling all plugins.");
for (Plugin p : pluginManager.getPlugins()) for (Plugin targetPlugin : pluginManager.getPlugins())
{ {
if (!p.getName().toLowerCase().startsWith("totalfreedommod")) if (!targetPlugin.getName().toLowerCase().startsWith("totalfreedommod"))
{ {
pluginManager.enablePlugin(p); pluginManager.enablePlugin(targetPlugin);
} }
} }
} }
@ -81,11 +81,11 @@ public class Command_plugincontrol extends TFM_Command
Plugin targetPlugin = null; Plugin targetPlugin = null;
for (Plugin p : pluginManager.getPlugins()) for (Plugin serverPlugin : pluginManager.getPlugins())
{ {
if (searchPluginName.equalsIgnoreCase(p.getName().toLowerCase().trim())) if (searchPluginName.equalsIgnoreCase(serverPlugin.getName().toLowerCase().trim()))
{ {
targetPlugin = p; targetPlugin = serverPlugin;
break; break;
} }
} }

View File

@ -16,7 +16,7 @@ import org.bukkit.potion.PotionEffectType;
@CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH) @CommandPermissions(level = AdminLevel.OP, source = SourceType.BOTH)
@CommandParameters( @CommandParameters(
description = "Manipulate potion effects. Duration is measured in server ticks (~20 ticks per second).", description = "Manipulate potion effects. Duration is measured in server ticks (~20 ticks per second).",
usage = "/<command> <list | clear [target_name] | add <type> <duration> <amplifier> [target_name]>") usage = "/<command> <list | clear [target name] | add <type> <duration> <amplifier> [target name]>")
public class Command_potion extends TFM_Command public class Command_potion extends TFM_Command
{ {
@Override @Override
@ -62,7 +62,7 @@ public class Command_potion extends TFM_Command
{ {
target = getPlayer(args[1]); target = getPlayer(args[1]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
@ -107,7 +107,7 @@ public class Command_potion extends TFM_Command
{ {
target = getPlayer(args[4]); target = getPlayer(args[4]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;

View File

@ -1,6 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -21,12 +21,12 @@ public class Command_prelog extends TFM_Command
if (args[0].equalsIgnoreCase("on")) if (args[0].equalsIgnoreCase("on"))
{ {
TotalFreedomMod.preprocessLogEnabled = true; TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.setBoolean(true);
playerMsg("Command preprocess logging is now enabled. This will be spammy in the log."); playerMsg("Command preprocess logging is now enabled. This will be spammy in the log.");
} }
else else
{ {
TotalFreedomMod.preprocessLogEnabled = false; TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.setBoolean(false);
playerMsg("Command preprocess logging is now disabled."); playerMsg("Command preprocess logging is now disabled.");
} }

View File

@ -0,0 +1,72 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import me.StevenLawson.TotalFreedomMod.TFM_Log;
import org.apache.commons.lang.exception.ExceptionUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
@CommandParameters(description = "Validates if a given account is premium.", usage = "/<command> <player>", aliases = "prem")
public class Command_premium extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length != 1)
{
return false;
}
String name;
try
{
name = getPlayer(args[0]).getName();
}
catch (PlayerNotFoundException ex)
{
name = args[0];
}
final String playername = name;
new BukkitRunnable()
{
@Override
public void run()
{
try
{
final URL getUrl = new URL("https://minecraft.net/haspaid.jsp?user=" + playername);
final URLConnection urlConnection = getUrl.openConnection();
// Read the response
final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
final String message = ("false".equalsIgnoreCase(in.readLine()) ? ChatColor.RED + "No" : ChatColor.DARK_GREEN + "Yes");
in.close();
new BukkitRunnable()
{
@Override
public void run()
{
playerMsg("Player " + playername + " is premium: " + message);
}
}.runTask(plugin);
}
catch (Exception ex)
{
TFM_Log.severe(ExceptionUtils.getStackTrace(ex));
playerMsg("There was an error querying the mojang server.", ChatColor.RED);
}
}
}.runTaskAsynchronously(plugin);
return true;
}
}

View File

@ -1,7 +1,8 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea; import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -16,7 +17,7 @@ public class Command_protectarea extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
if (!TotalFreedomMod.protectedAreasEnabled) if (!TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
{ {
playerMsg("Protected areas are currently disabled in the TotalFreedomMod configuration."); playerMsg("Protected areas are currently disabled in the TotalFreedomMod configuration.");
return true; return true;
@ -43,7 +44,7 @@ public class Command_protectarea extends TFM_Command
} }
else if (args.length == 2) else if (args.length == 2)
{ {
if (args[0].equalsIgnoreCase("remove")) if (TFM_Util.isRemoveCommand(args[0]))
{ {
TFM_ProtectedArea.removeProtectedArea(args[1]); TFM_ProtectedArea.removeProtectedArea(args[1]);

View File

@ -19,14 +19,14 @@ public class Command_purgeall extends TFM_Command
TFM_Util.adminAction(sender.getName(), "Purging all player data", true); TFM_Util.adminAction(sender.getName(), "Purging all player data", true);
// Purge entities // Purge entities
TFM_Util.wipeEntities(true, true); TFM_Util.TFM_EntityWiper.wipeEntities(true, true);
// Undisguise all players // Undisguise all players
TFM_DisguiseCraftBridge.undisguiseAllPlayers(); TFM_DisguiseCraftBridge.undisguiseAllPlayers();
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
// Unmute all players // Unmute all players
if (playerdata.isMuted()) if (playerdata.isMuted())
@ -59,9 +59,9 @@ public class Command_purgeall extends TFM_Command
} }
// Purge potion effects // Purge potion effects
for (PotionEffect potion_effect : p.getActivePotionEffects()) for (PotionEffect potion_effect : player.getActivePotionEffects())
{ {
p.removePotionEffect(potion_effect.getType()); player.removePotionEffect(potion_effect.getType());
} }
// Uncage // Uncage

View File

@ -26,20 +26,20 @@ public class Command_qdeop extends TFM_Command
boolean matched_player = false; boolean matched_player = false;
String target_name = args[0].toLowerCase(); String targetName = args[0].toLowerCase();
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (p.getName().toLowerCase().indexOf(target_name) != -1 || p.getDisplayName().toLowerCase().indexOf(target_name) != -1) if (player.getName().toLowerCase().indexOf(targetName) != -1 || player.getDisplayName().toLowerCase().indexOf(targetName) != -1)
{ {
matched_player = true; matched_player = true;
if (!silent) if (!silent)
{ {
TFM_Util.adminAction(sender.getName(), "De-opping " + p.getName(), false); TFM_Util.adminAction(sender.getName(), "De-opping " + player.getName(), false);
} }
p.setOp(false); player.setOp(false);
p.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP); player.sendMessage(TotalFreedomMod.YOU_ARE_NOT_OP);
} }
} }

View File

@ -26,20 +26,20 @@ public class Command_qop extends TFM_Command
boolean matched_player = false; boolean matched_player = false;
String target_name = args[0].toLowerCase(); String targetName = args[0].toLowerCase();
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (p.getName().toLowerCase().indexOf(target_name) != -1 || p.getDisplayName().toLowerCase().indexOf(target_name) != -1) if (player.getName().toLowerCase().indexOf(targetName) != -1 || player.getDisplayName().toLowerCase().indexOf(targetName) != -1)
{ {
matched_player = true; matched_player = true;
if (!silent) if (!silent)
{ {
TFM_Util.adminAction(sender.getName(), "Opping " + p.getName(), false); TFM_Util.adminAction(sender.getName(), "Opping " + player.getName(), false);
} }
p.setOp(true); player.setOp(true);
p.sendMessage(TotalFreedomMod.YOU_ARE_OP); player.sendMessage(TotalFreedomMod.YOU_ARE_OP);
} }
} }

View File

@ -21,13 +21,13 @@ public class Command_radar extends TFM_Command
List<TFM_RadarData> radar_data = new ArrayList<TFM_RadarData>(); List<TFM_RadarData> radar_data = new ArrayList<TFM_RadarData>();
for (Player p : sender_pos.getWorld().getPlayers()) for (Player player : sender_pos.getWorld().getPlayers())
{ {
if (!p.equals(sender_p)) if (!player.equals(sender_p))
{ {
try try
{ {
radar_data.add(new TFM_RadarData(p, sender_pos.distance(p.getLocation()), p.getLocation())); radar_data.add(new TFM_RadarData(player, sender_pos.distance(player.getLocation()), player.getLocation()));
} }
catch (IllegalArgumentException ex) catch (IllegalArgumentException ex)
{ {

View File

@ -15,9 +15,9 @@ public class Command_rank extends TFM_Command
{ {
if (senderIsConsole && args.length < 1) if (senderIsConsole && args.length < 1)
{ {
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
playerMsg(p.getName() + " is " + TFM_Util.getRank(p)); playerMsg(player.getName() + " is " + TFM_Util.getRank(player));
} }
return true; return true;
} }
@ -33,18 +33,18 @@ public class Command_rank extends TFM_Command
return true; return true;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
} }
playerMsg(p.getName() + " is " + TFM_Util.getRank(p), ChatColor.AQUA); playerMsg(player.getName() + " is " + TFM_Util.getRank(player), ChatColor.AQUA);
return true; return true;
} }

View File

@ -2,7 +2,6 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -16,7 +15,7 @@ public class Command_rawsay extends TFM_Command
{ {
if (args.length > 0) if (args.length > 0)
{ {
TFM_Util.bcastMsg(ChatColor.translateAlternateColorCodes('&', StringUtils.join(args, " "))); TFM_Util.bcastMsg(TFM_Util.colorise(StringUtils.join(args, " ")));
} }
return true; return true;

View File

@ -13,7 +13,7 @@ public class Command_rd extends TFM_Command
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
TFM_Util.adminAction(sender.getName(), "Removing all server entities.", true); TFM_Util.adminAction(sender.getName(), "Removing all server entities.", true);
playerMsg((TFM_Util.wipeEntities(true, true)) + " enties removed."); playerMsg((TFM_Util.TFM_EntityWiper.wipeEntities(true, true)) + " enties removed.");
return true; return true;
} }

View File

@ -51,14 +51,14 @@ public class Command_ro extends TFM_Command
} }
} }
Player target_player = null; Player targetPlayer = null;
if (args.length == 3) if (args.length == 3)
{ {
try try
{ {
target_player = getPlayer(args[2]); targetPlayer = getPlayer(args[2]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
@ -67,18 +67,18 @@ public class Command_ro extends TFM_Command
int affected = 0; int affected = 0;
if (target_player == null) if (targetPlayer == null)
{ {
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of all players. Brace for lag...", senderIsConsole); TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of all players. Brace for lag...", senderIsConsole);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
affected += TFM_Util.replaceBlocks(p.getLocation(), from_material, Material.AIR, radius); affected += TFM_Util.replaceBlocks(player.getLocation(), from_material, Material.AIR, radius);
} }
} }
else else
{ {
TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of " + target_player.getName() + ".", senderIsConsole); TFM_Util.adminAction(sender.getName(), "Removing all " + from_material.name() + " within " + radius + " blocks of " + targetPlayer.getName() + ".", senderIsConsole);
affected += TFM_Util.replaceBlocks(target_player.getLocation(), from_material, Material.AIR, radius); affected += TFM_Util.replaceBlocks(targetPlayer.getLocation(), from_material, Material.AIR, radius);
} }
TFM_Util.adminAction(sender.getName(), "Remove complete. " + affected + " blocks removed.", senderIsConsole); TFM_Util.adminAction(sender.getName(), "Remove complete. " + affected + " blocks removed.", senderIsConsole);

View File

@ -60,7 +60,7 @@ public class Command_rollback extends TFM_Command
playerName = player.getName(); playerName = player.getName();
} }
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
} }

View File

@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_Superadmin; import me.StevenLawson.TotalFreedomMod.TFM_Superadmin;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler; import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler;
@ -26,15 +27,15 @@ public class Command_saconfig extends TFM_Command
} }
else else
{ {
if (!senderIsConsole) if (!TFM_SuperadminList.isSeniorAdmin(sender))
{ {
playerMsg("This command may only be used from the console."); playerMsg(TotalFreedomMod.MSG_NO_PERMS);
return true; return true;
} }
if (args[0].equals("clean")) if (args[0].equals("clean"))
{ {
TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list.", true); TFM_Util.adminAction(sender.getName(), "Cleaning superadmin list", true);
TFM_SuperadminList.cleanSuperadminList(true); TFM_SuperadminList.cleanSuperadminList(true);
playerMsg("Superadmins: " + StringUtils.join(TFM_SuperadminList.getSuperadminNames(), ", "), ChatColor.YELLOW); playerMsg("Superadmins: " + StringUtils.join(TFM_SuperadminList.getSuperadminNames(), ", "), ChatColor.YELLOW);
} }
@ -66,7 +67,7 @@ public class Command_saconfig extends TFM_Command
{ {
superadmin = TFM_SuperadminList.getAdminEntry(getPlayer(args[1]).getName().toLowerCase()); superadmin = TFM_SuperadminList.getAdminEntry(getPlayer(args[1]).getName().toLowerCase());
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
} }
} }
@ -77,7 +78,7 @@ public class Command_saconfig extends TFM_Command
} }
else else
{ {
playerMsg(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', superadmin.toString()))); playerMsg(ChatColor.stripColor(TFM_Util.colorise(superadmin.toString())));
} }
return true; return true;
@ -91,14 +92,14 @@ public class Command_saconfig extends TFM_Command
if (args[0].equalsIgnoreCase("add")) if (args[0].equalsIgnoreCase("add"))
{ {
Player p = null; Player player = null;
String admin_name = null; String admin_name = null;
try try
{ {
p = getPlayer(args[1]); player = getPlayer(args[1]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
TFM_Superadmin superadmin = TFM_SuperadminList.getAdminEntry(args[1].toLowerCase()); TFM_Superadmin superadmin = TFM_SuperadminList.getAdminEntry(args[1].toLowerCase());
if (superadmin != null) if (superadmin != null)
@ -112,10 +113,10 @@ public class Command_saconfig extends TFM_Command
} }
} }
if (p != null) if (player != null)
{ {
TFM_Util.adminAction(sender.getName(), "Adding " + p.getName() + " to the superadmin list.", true); TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the superadmin list.", true);
TFM_SuperadminList.addSuperadmin(p); TFM_SuperadminList.addSuperadmin(player);
} }
else if (admin_name != null) else if (admin_name != null)
{ {
@ -123,7 +124,7 @@ public class Command_saconfig extends TFM_Command
TFM_SuperadminList.addSuperadmin(admin_name); TFM_SuperadminList.addSuperadmin(admin_name);
} }
} }
else if (args[0].equalsIgnoreCase("delete") || args[0].equalsIgnoreCase("del") || args[0].equalsIgnoreCase("remove")) else if (TFM_Util.isRemoveCommand(args[0]))
{ {
if (!TFM_SuperadminList.isSeniorAdmin(sender)) if (!TFM_SuperadminList.isSeniorAdmin(sender))
{ {
@ -131,41 +132,41 @@ public class Command_saconfig extends TFM_Command
return true; return true;
} }
String target_name = args[1]; String targetName = args[1];
try try
{ {
target_name = getPlayer(target_name).getName(); targetName = getPlayer(targetName).getName();
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
} }
if (!TFM_SuperadminList.getSuperadminNames().contains(target_name.toLowerCase())) if (!TFM_SuperadminList.getSuperadminNames().contains(targetName.toLowerCase()))
{ {
playerMsg("Superadmin not found: " + target_name); playerMsg("Superadmin not found: " + targetName);
return true; return true;
} }
TFM_Util.adminAction(sender.getName(), "Removing " + target_name + " from the superadmin list", true); TFM_Util.adminAction(sender.getName(), "Removing " + targetName + " from the superadmin list", true);
TFM_SuperadminList.removeSuperadmin(target_name); TFM_SuperadminList.removeSuperadmin(targetName);
if (!TotalFreedomMod.twitterbotEnabled) if (!TFM_ConfigEntry.TWITTERBOT_ENABLED.getBoolean())
{ {
return true; return true;
} }
// Twitterbot // Twitterbot
TFM_TwitterHandler twitterbot = TFM_TwitterHandler.getInstance(plugin); TFM_TwitterHandler twitterbot = TFM_TwitterHandler.getInstance();
String reply = twitterbot.delTwitter(target_name); String reply = twitterbot.delTwitter(targetName);
if ("ok".equals(reply)) if ("ok".equals(reply))
{ {
TFM_Util.adminAction(sender.getName(), "Removing " + target_name + " from TwitterBot", true); TFM_Util.adminAction(sender.getName(), "Removing " + targetName + " from TwitterBot", true);
} }
else if ("disabled".equals(reply)) else if ("disabled".equals(reply))
{ {
TFM_Util.playerMsg(sender, "Warning: Could not check if player has a twitter handle!"); TFM_Util.playerMsg(sender, "Warning: Could not check if player has a twitter handle!");
TFM_Util.playerMsg(sender, "TwitterBot has been temporarily disabled,, please wait until it get re-enabled", ChatColor.RED); TFM_Util.playerMsg(sender, "TwitterBot has been temporarily disabled, please wait until it gets re-enabled", ChatColor.RED);
} }
else if ("failed".equals(reply)) else if ("failed".equals(reply))
{ {
@ -184,7 +185,7 @@ public class Command_saconfig extends TFM_Command
} }
else if ("notfound".equals(reply)) else if ("notfound".equals(reply))
{ {
TFM_Util.playerMsg(sender, target_name + " did not have a twitter handle registered to their name.", ChatColor.GREEN); TFM_Util.playerMsg(sender, targetName + " did not have a twitter handle registered to their name.", ChatColor.GREEN);
} }
} }

View File

@ -27,9 +27,9 @@ public class Command_say extends TFM_Command
{ {
TFM_Util.bcastMsg("Server is going offline.", ChatColor.GRAY); TFM_Util.bcastMsg("Server is going offline.", ChatColor.GRAY);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
p.kickPlayer("Server is going offline, come back in a few minutes."); player.kickPlayer("Server is going offline, come back in a few minutes.");
} }
server.shutdown(); server.shutdown();

View File

@ -0,0 +1,28 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ServiceChecker;
import me.StevenLawson.TotalFreedomMod.TFM_ServiceChecker.TFM_ServiceChecker_ServiceStatus;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
@CommandParameters(description = "Shows the status of all Mojang services", usage = "/<command>")
public class Command_services extends TFM_Command
{
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
playerMsg("Mojang Services" + ChatColor.WHITE + ":", ChatColor.BLUE);
for (TFM_ServiceChecker_ServiceStatus service : TFM_ServiceChecker.getInstance().getAllStatuses())
{
playerMsg(service.getFormattedStatus());
}
playerMsg("Version" + ChatColor.WHITE + ": " + TFM_ServiceChecker.getInstance().version, ChatColor.DARK_PURPLE);
playerMsg("Last Check" + ChatColor.WHITE + ": " + TFM_ServiceChecker.getInstance().lastCheck, ChatColor.DARK_PURPLE);
return true;
}
}

View File

@ -15,9 +15,9 @@ public class Command_setl extends TFM_Command
{ {
TFM_Util.adminAction(sender.getName(), "Setting everyone's Worldedit block modification limit to 500.", true); TFM_Util.adminAction(sender.getName(), "Setting everyone's Worldedit block modification limit to 500.", true);
TFM_WorldEditBridge web = TFM_WorldEditBridge.getInstance(); TFM_WorldEditBridge web = TFM_WorldEditBridge.getInstance();
for (final Player p : server.getOnlinePlayers()) for (final Player player : server.getOnlinePlayers())
{ {
web.setLimit(p, 500); web.setLimit(player, 500);
} }
return true; return true;
} }

View File

@ -1,8 +1,8 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea; import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@ -20,9 +20,9 @@ public class Command_setspawnworld extends TFM_Command
playerMsg("Spawn location for this world set to: " + TFM_Util.formatLocation(sender_p.getWorld().getSpawnLocation())); playerMsg("Spawn location for this world set to: " + TFM_Util.formatLocation(sender_p.getWorld().getSpawnLocation()));
if (TotalFreedomMod.protectedAreasEnabled && TotalFreedomMod.autoProtectSpawnpoints) if (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean() && TFM_ConfigEntry.AUTO_PROTECT_SPAWNPOINTS.getBoolean())
{ {
TFM_ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, TotalFreedomMod.autoProtectRadius); TFM_ProtectedArea.addProtectedArea("spawn_" + sender_p.getWorld().getName(), pos, TFM_ConfigEntry.AUTO_PROTECT_RADIUS.getDouble());
} }
return true; return true;

View File

@ -21,48 +21,48 @@ public class Command_smite extends TFM_Command
return false; return false;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
} }
smite(p); smite(player);
return true; return true;
} }
public static void smite(final Player p) public static void smite(final Player player)
{ {
TFM_Util.bcastMsg(p.getName() + " has been a naughty, naughty boy.", ChatColor.RED); TFM_Util.bcastMsg(player.getName() + " has been a naughty, naughty boy.", ChatColor.RED);
//Deop //Deop
p.setOp(false); player.setOp(false);
//Set gamemode to survival: //Set gamemode to survival:
p.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
//Clear inventory: //Clear inventory:
p.getInventory().clear(); player.getInventory().clear();
//Strike with lightning effect: //Strike with lightning effect:
final Location target_pos = p.getLocation(); final Location targetPos = player.getLocation();
final World world = p.getWorld(); final World world = player.getWorld();
for (int x = -1; x <= 1; x++) for (int x = -1; x <= 1; x++)
{ {
for (int z = -1; z <= 1; z++) for (int z = -1; z <= 1; z++)
{ {
final Location strike_pos = new Location(world, target_pos.getBlockX() + x, target_pos.getBlockY(), target_pos.getBlockZ() + z); final Location strike_pos = new Location(world, targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z);
world.strikeLightning(strike_pos); world.strikeLightning(strike_pos);
} }
} }
//Kill: //Kill:
p.setHealth(0.0); player.setHealth(0.0);
} }
} }

View File

@ -1,25 +1,12 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry;
import me.StevenLawson.TotalFreedomMod.TFM_Log;
import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
@CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH) @CommandPermissions(level = AdminLevel.ALL, source = SourceType.BOTH)
@CommandParameters(description = "Show misc. server info.", usage = "/<command>") @CommandParameters(description = "Show misc. server info.", usage = "/<command>")
@ -50,66 +37,6 @@ public class Command_status extends TFM_Command
playerMsg(String.format("World %d: %s - %d players.", i++, world.getName(), world.getPlayers().size()), ChatColor.BLUE); playerMsg(String.format("World %d: %s - %d players.", i++, world.getName(), world.getPlayers().size()), ChatColor.BLUE);
} }
new BukkitRunnable()
{
@SuppressWarnings("unchecked")
@Override
public void run()
{
try
{
URL mojang_status = new URL("http://status.mojang.com/check");
BufferedReader in = new BufferedReader(new InputStreamReader(mojang_status.openStream()));
JSONArray status_json = (JSONArray) JSONValue.parse(in.readLine());
in.close();
Map<String, Boolean> service_status = new HashMap<String, Boolean>();
Iterator status_it = status_json.iterator();
while (status_it.hasNext())
{
JSONObject service = (JSONObject) status_it.next();
Iterator service_it = service.entrySet().iterator();
while (service_it.hasNext())
{
Entry<String, String> pair = (Entry<String, String>) service_it.next();
service_status.put(pair.getKey(), (pair.getValue().equals("green") ? Boolean.TRUE : Boolean.FALSE));
}
}
final List<String> status_output = new ArrayList<String>();
Iterator<Entry<String, Boolean>> output_it = service_status.entrySet().iterator();
while (output_it.hasNext())
{
Entry<String, Boolean> pair = output_it.next();
String service_name = pair.getKey();
boolean service_online = pair.getValue().booleanValue();
if (SERVICE_MAP.containsKey(service_name))
{
service_name = SERVICE_MAP.get(service_name);
}
status_output.add(String.format("%s is %s", service_name, (service_online ? ChatColor.GREEN + "ONLINE" + ChatColor.GRAY : ChatColor.RED + "OFFLINE" + ChatColor.GRAY)));
}
new BukkitRunnable()
{
@Override
public void run()
{
playerMsg(String.format("Mojang Service Status: %s.", StringUtils.join(status_output, ", ")), ChatColor.GRAY);
}
}.runTask(plugin);
}
catch (Exception ex)
{
TFM_Log.severe(ex);
}
}
}.runTaskAsynchronously(plugin);
return true; return true;
} }
} }

View File

@ -66,11 +66,11 @@ public class Command_stfu extends TFM_Command
TFM_PlayerData playerdata; TFM_PlayerData playerdata;
int counter = 0; int counter = 0;
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
playerdata = TFM_PlayerData.getPlayerData(p); playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.setMuted(true); playerdata.setMuted(true);
counter++; counter++;
} }
@ -87,9 +87,9 @@ public class Command_stfu extends TFM_Command
public void run() public void run()
{ {
TFM_Util.adminAction("MuteTimer", "Unmuting all players", false); TFM_Util.adminAction("MuteTimer", "Unmuting all players", false);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
TFM_PlayerData.getPlayerData(p).setMuted(false); TFM_PlayerData.getPlayerData(player).setMuted(false);
} }
} }
}.runTaskLater(plugin, 20L * 60L * 5L); }.runTaskLater(plugin, 20L * 60L * 5L);
@ -98,35 +98,35 @@ public class Command_stfu extends TFM_Command
} }
else else
{ {
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
sender.sendMessage(ex.getMessage()); sender.sendMessage(ex.getMessage());
return true; return true;
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
if (playerdata.isMuted()) if (playerdata.isMuted())
{ {
TFM_Util.adminAction(sender.getName(), "Unmuting " + p.getName(), true); TFM_Util.adminAction(sender.getName(), "Unmuting " + player.getName(), true);
playerdata.setMuted(false); playerdata.setMuted(false);
playerMsg("Unmuted " + p.getName()); playerMsg("Unmuted " + player.getName());
} }
else else
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
TFM_Util.adminAction(sender.getName(), "Muting " + p.getName(), true); TFM_Util.adminAction(sender.getName(), "Muting " + player.getName(), true);
playerdata.setMuted(true); playerdata.setMuted(true);
playerMsg("Muted " + p.getName()); playerMsg("Muted " + player.getName());
} }
else else
{ {
playerMsg(p.getName() + " is a superadmin, and can't be muted."); playerMsg(player.getName() + " is a superadmin, and can't be muted.");
} }
} }
} }

View File

@ -15,9 +15,9 @@ public class Command_stop extends TFM_Command
{ {
TFM_Util.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE); TFM_Util.bcastMsg("Server is going offline!", ChatColor.LIGHT_PURPLE);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
p.kickPlayer("Server is going offline, come back in about 20 seconds."); player.kickPlayer("Server is going offline, come back in about 20 seconds.");
} }
server.shutdown(); server.shutdown();

View File

@ -3,7 +3,6 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.command.Command; import org.bukkit.command.Command;
@ -26,11 +25,11 @@ public class Command_survival extends TFM_Command
} }
} }
Player p; Player player;
if (args.length == 0) if (args.length == 0)
{ {
p = sender_p; player = sender_p;
} }
else else
{ {
@ -42,9 +41,9 @@ public class Command_survival extends TFM_Command
return true; return true;
} }
for (Player player : server.getOnlinePlayers()) for (Player targetPlayer : server.getOnlinePlayers())
{ {
player.setGameMode(GameMode.SURVIVAL); targetPlayer.setGameMode(GameMode.SURVIVAL);
} }
TFM_Util.adminAction(sender.getName(), "Changing everyone's gamemode to survival", false); TFM_Util.adminAction(sender.getName(), "Changing everyone's gamemode to survival", false);
@ -55,9 +54,9 @@ public class Command_survival extends TFM_Command
{ {
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
@ -70,9 +69,9 @@ public class Command_survival extends TFM_Command
} }
} }
playerMsg("Setting " + p.getName() + " to game mode 'Survival'."); playerMsg("Setting " + player.getName() + " to game mode 'Survival'.");
p.sendMessage(sender.getName() + " set your game mode to 'Survival'."); player.sendMessage(sender.getName() + " set your game mode to 'Survival'.");
p.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
return true; return true;
} }

View File

@ -0,0 +1,128 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.Arrays;
import java.util.List;
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
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 = AdminLevel.OP, source = SourceType.BOTH)
@CommandParameters(description = "Sets yourself a prefix", usage = "/<command> <<prefix> | off | clear <player> | clearall>")
public class Command_tag extends TFM_Command
{
public static final List<String> FORBIDDEN_WORDS = Arrays.asList(new String[]
{
"admin", "owner", "moderator", "developer", "&k"
});
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length == 1)
{
if ("clearall".equals(args[0]))
{
if (!TFM_SuperadminList.isUserSuperadmin(sender))
{
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
TFM_Util.adminAction(sender.getName(), "Removing all tags", false);
int count = 0;
for (Player player : server.getOnlinePlayers())
{
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
if (playerdata.getTag() != null)
{
count++;
TFM_PlayerData.getPlayerData(player).setTag(null);
}
}
playerMsg(count + " tag(s) removed.");
return true;
}
if (senderIsConsole)
{
playerMsg("Only in-game players can set tags. Use \"/tag clearall\" to reset all tags.");
return true;
}
if (TFM_Util.isStopCommand(args[0]))
{
TFM_PlayerData.getPlayerData(sender_p).setTag(null);
playerMsg("Your tag has been removed.");
return true;
}
if (args[0].length() > 15)
{
playerMsg("That tag is too long.");
return true;
}
if (!TFM_SuperadminList.isUserSuperadmin(sender))
{
for (String word : FORBIDDEN_WORDS)
{
if (args[0].toLowerCase().contains(word.toLowerCase()))
{
if (word.contains(String.valueOf(ChatColor.COLOR_CHAR)))
{
playerMsg("That tag contains a forbidden color-code.");
}
else
{
playerMsg("That tag contains a forbidden word.");
}
return true;
}
}
}
TFM_PlayerData.getPlayerData(sender_p).setTag(args[0]);
playerMsg("Tag set.");
return true;
}
else if (args.length == 2)
{
if ("clear".equals(args[0]))
{
if (!TFM_SuperadminList.isUserSuperadmin(sender))
{
playerMsg(TotalFreedomMod.MSG_NO_PERMS);
return true;
}
final Player player;
try
{
player = getPlayer(args[1]);
}
catch (PlayerNotFoundException ex)
{
playerMsg(ex.getMessage());
return true;
}
TFM_PlayerData.getPlayerData(player).setTag(null);
playerMsg("Removed " + player.getName() + "'s tag.");
return true;
}
return false;
}
return false;
}
}

View File

@ -8,7 +8,7 @@ import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH) @CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH)
@CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/<command> <partialname>", aliases = "nope") @CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/<command> <partialname>", aliases = "noob")
public class Command_tban extends TFM_Command public class Command_tban extends TFM_Command
{ {
@Override @Override
@ -19,21 +19,20 @@ public class Command_tban extends TFM_Command
return false; return false;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
} }
TFM_Util.adminAction(sender.getName(), "NOPE: " + p.getName(), true); TFM_Util.adminAction(sender.getName(), "Tempbanning: " + player.getName() + " for 5 minutes.", true);
TFM_ServerInterface.banUsername(p.getName(), ChatColor.RED + "You have been temporarily banned for 5 minutes", TFM_ServerInterface.banUsername(player.getName(), ChatColor.RED + "You have been temporarily banned for 5 minutes.", sender.getName(), TFM_Util.parseDateOffset("5m"));
sender.getName(), TFM_Util.parseDateOffset("5m")); player.kickPlayer(ChatColor.RED + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info.");
p.kickPlayer(ChatColor.RED + "NOPE!\nYou have been temporarily banned for five minutes.");
return true; return true;
} }

View File

@ -25,18 +25,18 @@ public class Command_tempban extends TFM_Command
return false; return false;
} }
Player p; Player player;
try try
{ {
p = getPlayer(args[0]); player = getPlayer(args[0]);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
playerMsg(ex.getMessage(), ChatColor.RED); playerMsg(ex.getMessage(), ChatColor.RED);
return true; return true;
} }
StringBuilder bcast_msg = new StringBuilder("Temporarily banned " + p.getName()); StringBuilder bcast_msg = new StringBuilder("Temporarily banned " + player.getName());
Date ban_duration = TFM_Util.parseDateOffset("30m"); Date ban_duration = TFM_Util.parseDateOffset("30m");
if (args.length >= 2) if (args.length >= 2)
@ -57,9 +57,9 @@ public class Command_tempban extends TFM_Command
} }
TFM_Util.adminAction(sender.getName(), bcast_msg.toString(), true); TFM_Util.adminAction(sender.getName(), bcast_msg.toString(), true);
TFM_ServerInterface.banUsername(p.getName(), ban_reason, sender.getName(), ban_duration); TFM_ServerInterface.banUsername(player.getName(), ban_reason, sender.getName(), ban_duration);
TFM_ServerInterface.banIP(p.getAddress().getAddress().getHostAddress().trim(), ban_reason, sender.getName(), ban_duration); TFM_ServerInterface.banIP(player.getAddress().getAddress().getHostAddress().trim(), ban_reason, sender.getName(), ban_duration);
p.kickPlayer(sender.getName() + " - " + bcast_msg.toString()); player.kickPlayer(sender.getName() + " - " + bcast_msg.toString());
return true; return true;
} }

View File

@ -46,14 +46,14 @@ public class Command_tfbanlist extends TFM_Command
StringBuilder banned_players = new StringBuilder(); StringBuilder banned_players = new StringBuilder();
banned_players.append("Banned Players: "); banned_players.append("Banned Players: ");
boolean first = true; boolean first = true;
for (OfflinePlayer p : server.getBannedPlayers()) for (OfflinePlayer player : server.getBannedPlayers())
{ {
if (!first) if (!first)
{ {
banned_players.append(", "); banned_players.append(", ");
} }
first = false; first = false;
banned_players.append(p.getName().trim()); banned_players.append(player.getName().trim());
} }
playerMsg(banned_players.toString()); playerMsg(banned_players.toString());

View File

@ -12,13 +12,12 @@ public class Command_tfm extends TFM_Command
{ {
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
playerMsg("TotalFreedomMod for 'TotalFreedom', the original all-op server.", ChatColor.GOLD); playerMsg("TotalFreedomMod for 'TotalFreedom', the original all-op server.", ChatColor.GOLD);
playerMsg(String.format("Version " + ChatColor.BLUE + "%s.%s" + ChatColor.BLUE + ", built %s.", TotalFreedomMod.pluginVersion, TotalFreedomMod.buildNumber, TotalFreedomMod.buildDate), ChatColor.GOLD); playerMsg(String.format("Version " + ChatColor.BLUE + "%s.%s" + ChatColor.BLUE + ", built %s.", TotalFreedomMod.pluginVersion, TotalFreedomMod.buildNumber, TotalFreedomMod.buildDate), ChatColor.GOLD);
playerMsg("Created by Madgeek1450 and DarthSalamon.", ChatColor.GOLD); playerMsg("Created by Madgeek1450 and DarthSalamon.", ChatColor.GOLD);
playerMsg("Visit " + ChatColor.AQUA + "http://totalfreedom.me/" + ChatColor.GREEN + " for more information.", ChatColor.DARK_GREEN); playerMsg("Visit " + ChatColor.AQUA + "http://totalfreedom.me/" + ChatColor.GREEN + " for more information.", ChatColor.GREEN);
return true; return true;
} }
} }

View File

@ -1,8 +1,8 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
@ -19,7 +19,7 @@ public class Command_tossmob extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
if (!TotalFreedomMod.tossmobEnabled) if (!TFM_ConfigEntry.TOSSMOB_ENABLED.getBoolean())
{ {
playerMsg("Tossmob is currently disabled."); playerMsg("Tossmob is currently disabled.");
return true; return true;

View File

@ -0,0 +1,108 @@
package me.StevenLawson.TotalFreedomMod.Commands;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.RegisteredListener;
@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.ONLY_IN_GAME)
@CommandParameters(description = "Pretty rainbow trails.", usage = "/<command> [off]")
public class Command_trail extends TFM_Command
{
private static Listener movementListener = null;
private static final List<Player> trailPlayers = new ArrayList<Player>();
private static final Random RANDOM = new Random();
@Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{
if (args.length > 0 && TFM_Util.isStopCommand(args[0]))
{
trailPlayers.remove(sender_p);
playerMsg("Trail disabled.");
}
else
{
if (!trailPlayers.contains(sender_p))
{
trailPlayers.add(sender_p);
}
playerMsg("Trail enabled. Use \"/trail off\" to disable.");
}
if (!trailPlayers.isEmpty())
{
registerMovementHandler();
}
else
{
unregisterMovementHandler();
}
return true;
}
private static void registerMovementHandler()
{
if (getRegisteredListener(movementListener) == null)
{
Bukkit.getPluginManager().registerEvents(movementListener = new Listener()
{
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerMove(PlayerMoveEvent event)
{
Player player = event.getPlayer();
if (trailPlayers.contains(player))
{
Block fromBlock = event.getFrom().getBlock();
if (fromBlock.isEmpty())
{
Block toBlock = event.getTo().getBlock();
if (!fromBlock.equals(toBlock))
{
fromBlock.setType(Material.WOOL);
fromBlock.setData((byte) RANDOM.nextInt(16));
}
}
}
}
}, TotalFreedomMod.plugin);
}
}
private static void unregisterMovementHandler()
{
Listener registeredListener = getRegisteredListener(movementListener);
if (registeredListener != null)
{
PlayerMoveEvent.getHandlerList().unregister(registeredListener);
}
}
private static Listener getRegisteredListener(Listener listener)
{
RegisteredListener[] registeredListeners = PlayerMoveEvent.getHandlerList().getRegisteredListeners();
for (RegisteredListener registeredListener : registeredListeners)
{
if (registeredListener.getListener() == listener)
{
return listener;
}
}
return null;
}
}

View File

@ -1,5 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler; import me.StevenLawson.TotalFreedomMod.TFM_TwitterHandler;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
@ -15,7 +16,7 @@ public class Command_twitter extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
if (!TotalFreedomMod.twitterbotEnabled) if (!TFM_ConfigEntry.TWITTERBOT_ENABLED.getBoolean())
{ {
TFM_Util.playerMsg(sender, "TwitterBot has been disabled in config.", ChatColor.RED); TFM_Util.playerMsg(sender, "TwitterBot has been disabled in config.", ChatColor.RED);
return true; return true;
@ -26,7 +27,7 @@ public class Command_twitter extends TFM_Command
return false; return false;
} }
TFM_TwitterHandler twitterbot = TFM_TwitterHandler.getInstance(plugin); TFM_TwitterHandler twitterbot = TFM_TwitterHandler.getInstance();
if ("set".equals(args[0])) if ("set".equals(args[0]))
{ {

View File

@ -1,6 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Commands; package me.StevenLawson.TotalFreedomMod.Commands;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -12,22 +12,12 @@ public class Command_waterplace extends TFM_Command
@Override @Override
public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole)
{ {
if (args.length != 1) if (args.length != 1)
{ {
return false; return false;
} }
if (args[0].equalsIgnoreCase("on")) playerMsg("Water placement is now " + (TFM_ConfigEntry.ALLOW_WATER_PLACE.setBoolean(!args[0].equalsIgnoreCase("off")) ? "enabled" : "disabled") + ".");
{
TotalFreedomMod.allowWaterPlace = true;
playerMsg("Water placement is now enabled.");
}
else
{
TotalFreedomMod.allowWaterPlace = false;
playerMsg("Water placement is now disabled.");
}
return true; return true;
} }

View File

@ -35,9 +35,9 @@ public class Command_whitelist extends TFM_Command
int offlineWPs = 0; int offlineWPs = 0;
int totalWPs = 0; int totalWPs = 0;
for (OfflinePlayer p : server.getWhitelistedPlayers()) for (OfflinePlayer player : server.getWhitelistedPlayers())
{ {
if (p.isOnline()) if (player.isOnline())
{ {
onlineWPs++; onlineWPs++;
} }
@ -88,23 +88,23 @@ public class Command_whitelist extends TFM_Command
String search_name = args[1].trim().toLowerCase(); String search_name = args[1].trim().toLowerCase();
OfflinePlayer p; OfflinePlayer player;
try try
{ {
p = getPlayer(search_name); player = getPlayer(search_name);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
p = server.getOfflinePlayer(search_name); player = server.getOfflinePlayer(search_name);
} }
TFM_Util.adminAction(sender.getName(), "Adding " + p.getName() + " to the whitelist.", false); TFM_Util.adminAction(sender.getName(), "Adding " + player.getName() + " to the whitelist.", false);
p.setWhitelisted(true); player.setWhitelisted(true);
return true; return true;
} }
// remove // remove
if (args[0].equalsIgnoreCase("remove")) if (TFM_Util.isRemoveCommand(args[0]))
{ {
if (args.length < 2) if (args.length < 2)
{ {
@ -113,20 +113,20 @@ public class Command_whitelist extends TFM_Command
String search_name = args[1].trim().toLowerCase(); String search_name = args[1].trim().toLowerCase();
OfflinePlayer p; OfflinePlayer player;
try try
{ {
p = getPlayer(search_name); player = getPlayer(search_name);
} }
catch (CantFindPlayerException ex) catch (PlayerNotFoundException ex)
{ {
p = server.getOfflinePlayer(search_name); player = server.getOfflinePlayer(search_name);
} }
if (p.isWhitelisted()) if (player.isWhitelisted())
{ {
TFM_Util.adminAction(sender.getName(), "Removing " + p.getName() + " from the whitelist.", false); TFM_Util.adminAction(sender.getName(), "Removing " + player.getName() + " from the whitelist.", false);
p.setWhitelisted(false); player.setWhitelisted(false);
return true; return true;
} }
else else
@ -142,11 +142,11 @@ public class Command_whitelist extends TFM_Command
{ {
TFM_Util.adminAction(sender.getName(), "Adding all online players to the whitelist.", false); TFM_Util.adminAction(sender.getName(), "Adding all online players to the whitelist.", false);
int counter = 0; int counter = 0;
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (!p.isWhitelisted()) if (!player.isWhitelisted())
{ {
p.setWhitelisted(true); player.setWhitelisted(true);
counter++; counter++;
} }
} }

View File

@ -52,14 +52,14 @@ public class Command_whohas extends TFM_Command
List<String> players = new ArrayList<String>(); List<String> players = new ArrayList<String>();
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (p.getInventory().contains(material)) if (player.getInventory().contains(material))
{ {
players.add(p.getName()); players.add(player.getName());
if (smite & !TFM_SuperadminList.isUserSuperadmin(p)) if (smite & !TFM_SuperadminList.isUserSuperadmin(player))
{ {
Command_smite.smite(p); Command_smite.smite(player);
} }
} }
} }

View File

@ -36,9 +36,9 @@ public class Command_wildcard extends TFM_Command
String base_command = StringUtils.join(args, " "); String base_command = StringUtils.join(args, " ");
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
String out_command = base_command.replaceAll("\\x3f", p.getName()); String out_command = base_command.replaceAll("\\x3f", player.getName());
playerMsg("Running Command: " + out_command); playerMsg("Running Command: " + out_command);
server.dispatchCommand(sender, out_command); server.dispatchCommand(sender, out_command);
} }

View File

@ -17,9 +17,9 @@ public class Command_wipeflatlands extends TFM_Command
TFM_Util.bcastMsg("Server is going offline for flatlands wipe.", ChatColor.GRAY); TFM_Util.bcastMsg("Server is going offline for flatlands wipe.", ChatColor.GRAY);
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
p.kickPlayer("Server is going offline for flatlands wipe, come back in a few minutes."); player.kickPlayer("Server is going offline for flatlands wipe, come back in a few minutes.");
} }
server.shutdown(); server.shutdown();

View File

@ -2,17 +2,17 @@ package me.StevenLawson.TotalFreedomMod.Commands;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
public class CantFindPlayerException extends Exception public class PlayerNotFoundException extends Exception
{ {
// apparently, java needs this // apparently, java needs this
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public CantFindPlayerException() public PlayerNotFoundException()
{ {
super(ChatColor.GRAY + "Can't find player."); super(ChatColor.GRAY + "Can't find player.");
} }
public CantFindPlayerException(String msg) public PlayerNotFoundException(String msg)
{ {
super(ChatColor.GRAY + "Can't find player: " + msg); super(ChatColor.GRAY + "Can't find player: " + msg);
} }

View File

@ -138,19 +138,19 @@ public abstract class TFM_Command
return true; return true;
} }
public Player getPlayer(final String partialname) throws CantFindPlayerException public Player getPlayer(final String partialname) throws PlayerNotFoundException
{ {
List<Player> matches = server.matchPlayer(partialname); List<Player> matches = server.matchPlayer(partialname);
if (matches.isEmpty()) if (matches.isEmpty())
{ {
for (Player p : server.getOnlinePlayers()) for (Player player : server.getOnlinePlayers())
{ {
if (p.getDisplayName().toLowerCase().contains(partialname.toLowerCase())) if (player.getDisplayName().toLowerCase().contains(partialname.toLowerCase()))
{ {
return p; return player;
} }
} }
throw new CantFindPlayerException(partialname); throw new PlayerNotFoundException(partialname);
} }
else else
{ {

View File

@ -65,7 +65,6 @@ public class TFM_CommandLoader
Command existing = commandMap.getCommand(dynamicCommand.getName()); Command existing = commandMap.getCommand(dynamicCommand.getName());
if (existing != null) if (existing != null)
{ {
TFM_Log.info("Replacing command: " + existing.getName());
unregisterCommand(existing, commandMap); unregisterCommand(existing, commandMap);
} }

View File

@ -1,12 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Listener; package me.StevenLawson.TotalFreedomMod.Listener;
import me.StevenLawson.TotalFreedomMod.TFM_Log; import me.StevenLawson.TotalFreedomMod.*;
import me.StevenLawson.TotalFreedomMod.TFM_PlayerData;
import me.StevenLawson.TotalFreedomMod.TFM_ProtectedArea;
import me.StevenLawson.TotalFreedomMod.TFM_RollbackManager;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
@ -22,7 +16,7 @@ public class TFM_BlockListener implements Listener
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onBlockBurn(BlockBurnEvent event) public void onBlockBurn(BlockBurnEvent event)
{ {
if (!TotalFreedomMod.allowFireSpread) if (!TFM_ConfigEntry.ALLOW_FIRE_SPREAD.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@ -31,7 +25,7 @@ public class TFM_BlockListener implements Listener
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onBlockIgnite(BlockIgniteEvent event) public void onBlockIgnite(BlockIgniteEvent event)
{ {
if (!TotalFreedomMod.allowFirePlace) if (!TFM_ConfigEntry.ALLOW_FIRE_PLACE.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@ -40,32 +34,33 @@ public class TFM_BlockListener implements Listener
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onBlockBreak(BlockBreakEvent event) public void onBlockBreak(BlockBreakEvent event)
{ {
Player p = event.getPlayer(); Player player = event.getPlayer();
Location block_pos = event.getBlock().getLocation(); Location block_pos = event.getBlock().getLocation();
if (TotalFreedomMod.nukeMonitor) if (TFM_ConfigEntry.NUKE_MONITOR.getBoolean())
{ {
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
Location player_pos = p.getLocation(); Location player_pos = player.getLocation();
final double nukeMonitorRange = TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble().doubleValue();
boolean out_of_range = false; boolean out_of_range = false;
if (!player_pos.getWorld().equals(block_pos.getWorld())) if (!player_pos.getWorld().equals(block_pos.getWorld()))
{ {
out_of_range = true; out_of_range = true;
} }
else if (player_pos.distanceSquared(block_pos) > (TotalFreedomMod.nukeMonitorRange * TotalFreedomMod.nukeMonitorRange)) else if (player_pos.distanceSquared(block_pos) > (nukeMonitorRange * nukeMonitorRange))
{ {
out_of_range = true; out_of_range = true;
} }
if (out_of_range) if (out_of_range)
{ {
playerdata.incrementFreecamDestroyCount(); if (playerdata.incrementAndGetFreecamDestroyCount() > TFM_ConfigEntry.FREECAM_TRIGGER_COUNT.getInteger())
if (playerdata.getFreecamDestroyCount() > TotalFreedomMod.freecamTriggerCount)
{ {
TFM_Util.bcastMsg(p.getName() + " has been flagged for possible freecam nuking.", ChatColor.RED); TFM_Util.bcastMsg(player.getName() + " has been flagged for possible freecam nuking.", ChatColor.RED);
TFM_Util.autoEject(p, "Freecam (extended range) block breaking is not permitted on this server."); TFM_Util.autoEject(player, "Freecam (extended range) block breaking is not permitted on this server.");
playerdata.resetFreecamDestroyCount(); playerdata.resetFreecamDestroyCount();
@ -74,22 +69,29 @@ public class TFM_BlockListener implements Listener
} }
} }
playerdata.incrementBlockDestroyCount(); Long lastRan = TFM_Heartbeat.getLastRan();
if (playerdata.getBlockDestroyCount() > TotalFreedomMod.nukeMonitorCountBreak) if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis())
{ {
TFM_Util.bcastMsg(p.getName() + " is breaking blocks too fast!", ChatColor.RED); //TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates.");
TFM_Util.autoEject(p, "You are breaking blocks too fast. Nukers are not permitted on this server."); }
else
{
if (playerdata.incrementAndGetBlockDestroyCount() > TFM_ConfigEntry.NUKE_MONITOR_COUNT_BREAK.getInteger())
{
TFM_Util.bcastMsg(player.getName() + " is breaking blocks too fast!", ChatColor.RED);
TFM_Util.autoEject(player, "You are breaking blocks too fast. Nukers are not permitted on this server.");
playerdata.resetBlockDestroyCount(); playerdata.resetBlockDestroyCount();
event.setCancelled(true); event.setCancelled(true);
return; return;
}
} }
} }
if (TotalFreedomMod.protectedAreasEnabled) if (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
if (TFM_ProtectedArea.isInProtectedArea(block_pos)) if (TFM_ProtectedArea.isInProtectedArea(block_pos))
{ {
@ -108,32 +110,33 @@ public class TFM_BlockListener implements Listener
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onBlockPlace(BlockPlaceEvent event) public void onBlockPlace(BlockPlaceEvent event)
{ {
Player p = event.getPlayer(); Player player = event.getPlayer();
Location block_pos = event.getBlock().getLocation(); Location block_pos = event.getBlock().getLocation();
if (TotalFreedomMod.nukeMonitor) if (TFM_ConfigEntry.NUKE_MONITOR.getBoolean())
{ {
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
Location player_pos = p.getLocation(); Location player_pos = player.getLocation();
double nukeMonitorRange = TFM_ConfigEntry.NUKE_MONITOR_RANGE.getDouble().doubleValue();
boolean out_of_range = false; boolean out_of_range = false;
if (!player_pos.getWorld().equals(block_pos.getWorld())) if (!player_pos.getWorld().equals(block_pos.getWorld()))
{ {
out_of_range = true; out_of_range = true;
} }
else if (player_pos.distanceSquared(block_pos) > (TotalFreedomMod.nukeMonitorRange * TotalFreedomMod.nukeMonitorRange)) else if (player_pos.distanceSquared(block_pos) > (nukeMonitorRange * nukeMonitorRange))
{ {
out_of_range = true; out_of_range = true;
} }
if (out_of_range) if (out_of_range)
{ {
playerdata.incrementFreecamPlaceCount(); if (playerdata.incrementAndGetFreecamPlaceCount() > TFM_ConfigEntry.FREECAM_TRIGGER_COUNT.getInteger())
if (playerdata.getFreecamPlaceCount() > TotalFreedomMod.freecamTriggerCount)
{ {
TFM_Util.bcastMsg(p.getName() + " has been flagged for possible freecam building.", ChatColor.RED); TFM_Util.bcastMsg(player.getName() + " has been flagged for possible freecam building.", ChatColor.RED);
TFM_Util.autoEject(p, "Freecam (extended range) block building is not permitted on this server."); TFM_Util.autoEject(player, "Freecam (extended range) block building is not permitted on this server.");
playerdata.resetFreecamPlaceCount(); playerdata.resetFreecamPlaceCount();
@ -142,22 +145,29 @@ public class TFM_BlockListener implements Listener
} }
} }
playerdata.incrementBlockPlaceCount(); Long lastRan = TFM_Heartbeat.getLastRan();
if (playerdata.getBlockPlaceCount() > TotalFreedomMod.nukeMonitorCountPlace) if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis())
{ {
TFM_Util.bcastMsg(p.getName() + " is placing blocks too fast!", ChatColor.RED); //TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates.");
TFM_Util.autoEject(p, "You are placing blocks too fast."); }
else
{
if (playerdata.incrementAndGetBlockPlaceCount() > TFM_ConfigEntry.NUKE_MONITOR_COUNT_PLACE.getInteger())
{
TFM_Util.bcastMsg(player.getName() + " is placing blocks too fast!", ChatColor.RED);
TFM_Util.autoEject(player, "You are placing blocks too fast.");
playerdata.resetBlockPlaceCount(); playerdata.resetBlockPlaceCount();
event.setCancelled(true); event.setCancelled(true);
return; return;
}
} }
} }
if (TotalFreedomMod.protectedAreasEnabled) if (TFM_ConfigEntry.PROTECTED_AREAS_ENABLED.getBoolean())
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
if (TFM_ProtectedArea.isInProtectedArea(block_pos)) if (TFM_ProtectedArea.isInProtectedArea(block_pos))
{ {
@ -172,16 +182,16 @@ public class TFM_BlockListener implements Listener
case LAVA: case LAVA:
case STATIONARY_LAVA: case STATIONARY_LAVA:
{ {
if (TotalFreedomMod.allowLavaPlace) if (TFM_ConfigEntry.ALLOW_LAVA_PLACE.getBoolean())
{ {
TFM_Log.info(String.format("%s placed lava @ %s", p.getName(), TFM_Util.formatLocation(event.getBlock().getLocation()))); TFM_Log.info(String.format("%s placed lava @ %s", player.getName(), TFM_Util.formatLocation(event.getBlock().getLocation())));
p.getInventory().clear(p.getInventory().getHeldItemSlot()); player.getInventory().clear(player.getInventory().getHeldItemSlot());
} }
else else
{ {
p.getInventory().setItem(p.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
p.sendMessage(ChatColor.GRAY + "Lava placement is currently disabled."); player.sendMessage(ChatColor.GRAY + "Lava placement is currently disabled.");
event.setCancelled(true); event.setCancelled(true);
} }
@ -190,16 +200,16 @@ public class TFM_BlockListener implements Listener
case WATER: case WATER:
case STATIONARY_WATER: case STATIONARY_WATER:
{ {
if (TotalFreedomMod.allowWaterPlace) if (TFM_ConfigEntry.ALLOW_WATER_PLACE.getBoolean())
{ {
TFM_Log.info(String.format("%s placed water @ %s", p.getName(), TFM_Util.formatLocation(event.getBlock().getLocation()))); TFM_Log.info(String.format("%s placed water @ %s", player.getName(), TFM_Util.formatLocation(event.getBlock().getLocation())));
p.getInventory().clear(p.getInventory().getHeldItemSlot()); player.getInventory().clear(player.getInventory().getHeldItemSlot());
} }
else else
{ {
p.getInventory().setItem(p.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
p.sendMessage(ChatColor.GRAY + "Water placement is currently disabled."); player.sendMessage(ChatColor.GRAY + "Water placement is currently disabled.");
event.setCancelled(true); event.setCancelled(true);
} }
@ -207,16 +217,16 @@ public class TFM_BlockListener implements Listener
} }
case FIRE: case FIRE:
{ {
if (TotalFreedomMod.allowFirePlace) if (TFM_ConfigEntry.ALLOW_FIRE_PLACE.getBoolean())
{ {
TFM_Log.info(String.format("%s placed fire @ %s", p.getName(), TFM_Util.formatLocation(event.getBlock().getLocation()))); TFM_Log.info(String.format("%s placed fire @ %s", player.getName(), TFM_Util.formatLocation(event.getBlock().getLocation())));
p.getInventory().clear(p.getInventory().getHeldItemSlot()); player.getInventory().clear(player.getInventory().getHeldItemSlot());
} }
else else
{ {
p.getInventory().setItem(p.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
p.sendMessage(ChatColor.GRAY + "Fire placement is currently disabled."); player.sendMessage(ChatColor.GRAY + "Fire placement is currently disabled.");
event.setCancelled(true); event.setCancelled(true);
} }
@ -224,17 +234,17 @@ public class TFM_BlockListener implements Listener
} }
case TNT: case TNT:
{ {
if (TotalFreedomMod.allowExplosions) if (TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
TFM_Log.info(String.format("%s placed TNT @ %s", p.getName(), TFM_Util.formatLocation(event.getBlock().getLocation()))); TFM_Log.info(String.format("%s placed TNT @ %s", player.getName(), TFM_Util.formatLocation(event.getBlock().getLocation())));
p.getInventory().clear(p.getInventory().getHeldItemSlot()); player.getInventory().clear(player.getInventory().getHeldItemSlot());
} }
else else
{ {
p.getInventory().setItem(p.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
p.sendMessage(ChatColor.GRAY + "TNT is currently disabled."); player.sendMessage(ChatColor.GRAY + "TNT is currently disabled.");
event.setCancelled(true); event.setCancelled(true);
} }
break; break;
@ -251,7 +261,7 @@ public class TFM_BlockListener implements Listener
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onBlockFromTo(BlockFromToEvent event) public void onBlockFromTo(BlockFromToEvent event)
{ {
if (!TotalFreedomMod.allowFliudSpread) if (!TFM_ConfigEntry.ALLOW_FLIUD_SPREAD.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
} }

View File

@ -1,6 +1,6 @@
package me.StevenLawson.TotalFreedomMod.Listener; package me.StevenLawson.TotalFreedomMod.Listener;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import org.bukkit.entity.*; import org.bukkit.entity.*;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
@ -12,7 +12,7 @@ public class TFM_EntityListener implements Listener
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onEntityExplode(EntityExplodeEvent event) public void onEntityExplode(EntityExplodeEvent event)
{ {
if (!TotalFreedomMod.allowExplosions) if (!TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -24,19 +24,19 @@ public class TFM_EntityListener implements Listener
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onExplosionPrime(ExplosionPrimeEvent event) public void onExplosionPrime(ExplosionPrimeEvent event)
{ {
if (!TotalFreedomMod.allowExplosions) if (!TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
event.setRadius((float) TotalFreedomMod.explosiveRadius); event.setRadius((float) TFM_ConfigEntry.EXPLOSIVE_RADIUS.getDouble().doubleValue());
} }
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onEntityCombust(EntityCombustEvent event) public void onEntityCombust(EntityCombustEvent event)
{ {
if (!TotalFreedomMod.allowExplosions) if (!TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@ -49,7 +49,7 @@ public class TFM_EntityListener implements Listener
{ {
case LAVA: case LAVA:
{ {
if (!TotalFreedomMod.allowLavaDamage) if (!TFM_ConfigEntry.ALLOW_LAVA_DAMAGE.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -57,7 +57,7 @@ public class TFM_EntityListener implements Listener
} }
} }
if (TotalFreedomMod.petProtectEnabled) if (TFM_ConfigEntry.PET_PROTECT_ENABLED.getBoolean())
{ {
Entity entity = event.getEntity(); Entity entity = event.getEntity();
if (entity instanceof Tameable) if (entity instanceof Tameable)
@ -73,7 +73,7 @@ public class TFM_EntityListener implements Listener
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onCreatureSpawn(CreatureSpawnEvent event) public void onCreatureSpawn(CreatureSpawnEvent event)
{ {
if (TotalFreedomMod.mobLimiterEnabled) if (TFM_ConfigEntry.MOB_LIMITER_ENABLED.getBoolean())
{ {
if (event.getSpawnReason().equals(CreatureSpawnEvent.SpawnReason.EGG)) if (event.getSpawnReason().equals(CreatureSpawnEvent.SpawnReason.EGG))
{ {
@ -85,7 +85,7 @@ public class TFM_EntityListener implements Listener
if (spawned instanceof EnderDragon) if (spawned instanceof EnderDragon)
{ {
if (TotalFreedomMod.mobLimiterDisableDragon) if (TFM_ConfigEntry.MOB_LIMITER_DISABLE_DRAGON.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -93,7 +93,7 @@ public class TFM_EntityListener implements Listener
} }
else if (spawned instanceof Ghast) else if (spawned instanceof Ghast)
{ {
if (TotalFreedomMod.mobLimiterDisableGhast) if (TFM_ConfigEntry.MOB_LIMITER_DISABLE_GHAST.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -101,7 +101,7 @@ public class TFM_EntityListener implements Listener
} }
else if (spawned instanceof Slime) else if (spawned instanceof Slime)
{ {
if (TotalFreedomMod.mobLimiterDisableSlime) if (TFM_ConfigEntry.MOB_LIMITER_DISABLE_SLIME.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -109,7 +109,7 @@ public class TFM_EntityListener implements Listener
} }
else if (spawned instanceof Giant) else if (spawned instanceof Giant)
{ {
if (TotalFreedomMod.mobLimiterDisableGiant) if (TFM_ConfigEntry.MOB_LIMITER_DISABLE_GIANT.getBoolean())
{ {
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -121,19 +121,21 @@ public class TFM_EntityListener implements Listener
return; return;
} }
if (TotalFreedomMod.mobLimiterMax > 0) int mobLimiterMax = TFM_ConfigEntry.MOB_LIMITER_MAX.getInteger().intValue();
if (mobLimiterMax > 0)
{ {
int mobcount = 0; int mobcount = 0;
for (Entity ent : event.getLocation().getWorld().getLivingEntities()) for (Entity entity : event.getLocation().getWorld().getLivingEntities())
{ {
if (ent instanceof Creature || ent instanceof Ghast || ent instanceof Slime || ent instanceof EnderDragon) if (!(entity instanceof HumanEntity))
{ {
mobcount++; mobcount++;
} }
} }
if (mobcount > TotalFreedomMod.mobLimiterMax) if (mobcount > mobLimiterMax)
{ {
event.setCancelled(true); event.setCancelled(true);
} }
@ -144,7 +146,7 @@ public class TFM_EntityListener implements Listener
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onEntityDeath(EntityDeathEvent event) public void onEntityDeath(EntityDeathEvent event)
{ {
if (TotalFreedomMod.autoEntityWipe) if (TFM_ConfigEntry.AUTO_ENTITY_WIPE.getBoolean())
{ {
event.setDroppedExp(0); event.setDroppedExp(0);
} }
@ -153,7 +155,7 @@ public class TFM_EntityListener implements Listener
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onProjectileHit(ProjectileHitEvent event) public void onProjectileHit(ProjectileHitEvent event)
{ {
if (TotalFreedomMod.allowExplosions) if (TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
Projectile entity = event.getEntity(); Projectile entity = event.getEntity();
if (event.getEntityType() == EntityType.ARROW && entity.getShooter() instanceof Player) if (event.getEntityType() == EntityType.ARROW && entity.getShooter() instanceof Player)

View File

@ -30,6 +30,7 @@ import org.bukkit.util.Vector;
public class TFM_PlayerListener implements Listener public class TFM_PlayerListener implements Listener
{ {
private static final List<String> BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply,mail,email", ",")); private static final List<String> BLOCKED_MUTED_CMDS = Arrays.asList(StringUtils.split("say,me,msg,m,tell,r,reply,mail,email", ","));
private static final int MSG_PER_HEARTBEAT = 10;
@EventHandler(priority = EventPriority.HIGH) @EventHandler(priority = EventPriority.HIGH)
public void onPlayerInteract(PlayerInteractEvent event) public void onPlayerInteract(PlayerInteractEvent event)
@ -45,29 +46,27 @@ public class TFM_PlayerListener implements Listener
{ {
case WATER_BUCKET: case WATER_BUCKET:
{ {
if (!TotalFreedomMod.allowWaterPlace) if (!TFM_ConfigEntry.ALLOW_WATER_PLACE.getBoolean())
{ {
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
player.sendMessage(ChatColor.GRAY + "Water buckets are currently disabled."); player.sendMessage(ChatColor.GRAY + "Water buckets are currently disabled.");
event.setCancelled(true); event.setCancelled(true);
return;
} }
break; break;
} }
case LAVA_BUCKET: case LAVA_BUCKET:
{ {
if (!TotalFreedomMod.allowLavaPlace) if (!TFM_ConfigEntry.ALLOW_LAVA_PLACE.getBoolean())
{ {
player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1)); player.getInventory().setItem(player.getInventory().getHeldItemSlot(), new ItemStack(Material.COOKIE, 1));
player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled."); player.sendMessage(ChatColor.GRAY + "Lava buckets are currently disabled.");
event.setCancelled(true); event.setCancelled(true);
return;
} }
break; break;
} }
case EXPLOSIVE_MINECART: case EXPLOSIVE_MINECART:
{ {
if (!TotalFreedomMod.allowTntMinecarts) if (!TFM_ConfigEntry.ALLOW_TNT_MINECARTS.getBoolean())
{ {
player.getInventory().clear(player.getInventory().getHeldItemSlot()); player.getInventory().clear(player.getInventory().getHeldItemSlot());
player.sendMessage(ChatColor.GRAY + "TNT minecarts are currently disabled."); player.sendMessage(ChatColor.GRAY + "TNT minecarts are currently disabled.");
@ -119,25 +118,25 @@ public class TFM_PlayerListener implements Listener
} }
case BLAZE_ROD: case BLAZE_ROD:
{ {
if (TotalFreedomMod.allowExplosions) if (TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
if (TFM_SuperadminList.isSeniorAdmin(player, true)) if (TFM_SuperadminList.isSeniorAdmin(player, true))
{ {
Block target_block; Block targetBlock;
if (event.getAction().equals(Action.LEFT_CLICK_AIR)) if (event.getAction().equals(Action.LEFT_CLICK_AIR))
{ {
target_block = player.getTargetBlock(null, 120); targetBlock = player.getTargetBlock(null, 120);
} }
else else
{ {
target_block = event.getClickedBlock(); targetBlock = event.getClickedBlock();
} }
if (target_block != null) if (targetBlock != null)
{ {
player.getWorld().createExplosion(target_block.getLocation(), 4F, true); player.getWorld().createExplosion(targetBlock.getLocation(), 4F, true);
player.getWorld().strikeLightning(target_block.getLocation()); player.getWorld().strikeLightning(targetBlock.getLocation());
} }
else else
{ {
@ -151,7 +150,7 @@ public class TFM_PlayerListener implements Listener
} }
case CARROT: case CARROT:
{ {
if (TotalFreedomMod.allowExplosions) if (TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
if (TFM_SuperadminList.isSeniorAdmin(player, true)) if (TFM_SuperadminList.isSeniorAdmin(player, true))
{ {
@ -161,10 +160,10 @@ public class TFM_PlayerListener implements Listener
Vector player_dir = player_location.getDirection().normalize(); Vector player_dir = player_location.getDirection().normalize();
double distance = 150.0; double distance = 150.0;
Block target_block = player.getTargetBlock(null, Math.round((float) distance)); Block targetBlock = player.getTargetBlock(null, Math.round((float) distance));
if (target_block != null) if (targetBlock != null)
{ {
distance = player_location.distance(target_block.getLocation()); distance = player_location.distance(targetBlock.getLocation());
} }
final List<Block> affected = new ArrayList<Block>(); final List<Block> affected = new ArrayList<Block>();
@ -215,24 +214,49 @@ public class TFM_PlayerListener implements Listener
} }
} }
@EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerTeleport(PlayerTeleportEvent event)
{
TFM_AdminWorld.getInstance().validateMovement(event);
}
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onPlayerMove(PlayerMoveEvent event) public void onPlayerMove(PlayerMoveEvent event)
{ {
Player p = event.getPlayer(); final Location from = event.getFrom();
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); final Location to = event.getTo();
try
{
if (from.getWorld() == to.getWorld() && from.distanceSquared(to) < (0.0001 * 0.0001))
{
// If player just rotated, but didn't move, don't process this event.
return;
}
}
catch (IllegalArgumentException ex)
{
}
if (!TFM_AdminWorld.getInstance().validateMovement(event))
{
return;
}
Player player = event.getPlayer();
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
for (Entry<Player, Double> fuckoff : TotalFreedomMod.fuckoffEnabledFor.entrySet()) for (Entry<Player, Double> fuckoff : TotalFreedomMod.fuckoffEnabledFor.entrySet())
{ {
Player fuckoff_player = fuckoff.getKey(); Player fuckoff_player = fuckoff.getKey();
if (fuckoff_player.equals(p) || !fuckoff_player.isOnline()) if (fuckoff_player.equals(player) || !fuckoff_player.isOnline())
{ {
continue; continue;
} }
double fuckoff_range = fuckoff.getValue().doubleValue(); double fuckoff_range = fuckoff.getValue().doubleValue();
Location mover_pos = p.getLocation(); Location mover_pos = player.getLocation();
Location fuckoff_pos = fuckoff_player.getLocation(); Location fuckoff_pos = fuckoff_player.getLocation();
double distanceSquared; double distanceSquared;
@ -255,7 +279,7 @@ public class TFM_PlayerListener implements Listener
boolean do_freeze = false; boolean do_freeze = false;
if (TotalFreedomMod.allPlayersFrozen) if (TotalFreedomMod.allPlayersFrozen)
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
do_freeze = true; do_freeze = true;
} }
@ -270,50 +294,54 @@ public class TFM_PlayerListener implements Listener
if (do_freeze) if (do_freeze)
{ {
Location from = event.getFrom(); Location freezeTo = to.clone();
Location to = event.getTo().clone();
to.setX(from.getX()); freezeTo.setX(from.getX());
to.setY(from.getY()); freezeTo.setY(from.getY());
to.setZ(from.getZ()); freezeTo.setZ(from.getZ());
event.setTo(to); event.setTo(freezeTo);
} }
if (playerdata.isCaged()) if (playerdata.isCaged())
{ {
Location target_pos = p.getLocation().add(0, 1, 0); Location targetPos = player.getLocation().add(0, 1, 0);
boolean out_of_cage; boolean out_of_cage;
if (!target_pos.getWorld().equals(playerdata.getCagePos().getWorld())) if (!targetPos.getWorld().equals(playerdata.getCagePos().getWorld()))
{ {
out_of_cage = true; out_of_cage = true;
} }
else else
{ {
out_of_cage = target_pos.distanceSquared(playerdata.getCagePos()) > (2.5 * 2.5); out_of_cage = targetPos.distanceSquared(playerdata.getCagePos()) > (2.5 * 2.5);
} }
if (out_of_cage) if (out_of_cage)
{ {
playerdata.setCaged(true, target_pos, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER), playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER)); playerdata.setCaged(true, targetPos, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER), playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER));
playerdata.regenerateHistory(); playerdata.regenerateHistory();
playerdata.clearHistory(); playerdata.clearHistory();
TFM_Util.buildHistory(target_pos, 2, playerdata); TFM_Util.buildHistory(targetPos, 2, playerdata);
TFM_Util.generateCube(target_pos, 2, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER)); TFM_Util.generateCube(targetPos, 2, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.OUTER));
TFM_Util.generateCube(target_pos, 1, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER)); TFM_Util.generateCube(targetPos, 1, playerdata.getCageMaterial(TFM_PlayerData.CageLayer.INNER));
} }
} }
if (playerdata.isOrbiting()) if (playerdata.isOrbiting())
{ {
if (p.getVelocity().length() < playerdata.orbitStrength() * (2.0 / 3.0)) if (player.getVelocity().length() < playerdata.orbitStrength() * (2.0 / 3.0))
{ {
p.setVelocity(new Vector(0, playerdata.orbitStrength(), 0)); player.setVelocity(new Vector(0, playerdata.orbitStrength(), 0));
} }
} }
if (TotalFreedomMod.landminesEnabled && TotalFreedomMod.allowExplosions) if (TFM_Jumppads.getInstance().getMode().isOn())
{
TFM_Jumppads.getInstance().PlayerMoveEvent(event);
}
if (TFM_ConfigEntry.LANDMINES_ENABLED.getBoolean() && TFM_ConfigEntry.ALLOW_EXPLOSIONS.getBoolean())
{ {
Iterator<TFM_LandmineData> landmines = TFM_LandmineData.landmines.iterator(); Iterator<TFM_LandmineData> landmines = TFM_LandmineData.landmines.iterator();
while (landmines.hasNext()) while (landmines.hasNext())
@ -327,29 +355,30 @@ public class TFM_PlayerListener implements Listener
continue; continue;
} }
if (!landmine.player.equals(p)) if (!landmine.player.equals(player))
{ {
if (p.getWorld().equals(landmine_pos.getWorld())) if (player.getWorld().equals(landmine_pos.getWorld()))
{ {
if (p.getLocation().distanceSquared(landmine_pos) <= (landmine.radius * landmine.radius)) if (player.getLocation().distanceSquared(landmine_pos) <= (landmine.radius * landmine.radius))
{ {
landmine.landmine_pos.getBlock().setType(Material.AIR); landmine.landmine_pos.getBlock().setType(Material.AIR);
TNTPrimed tnt1 = landmine_pos.getWorld().spawn(landmine_pos, TNTPrimed.class); TNTPrimed tnt1 = landmine_pos.getWorld().spawn(landmine_pos, TNTPrimed.class);
tnt1.setFuseTicks(40); tnt1.setFuseTicks(40);
tnt1.setPassenger(p); tnt1.setPassenger(player);
tnt1.setVelocity(new Vector(0.0, 2.0, 0.0)); tnt1.setVelocity(new Vector(0.0, 2.0, 0.0));
TNTPrimed tnt2 = landmine_pos.getWorld().spawn(p.getLocation(), TNTPrimed.class); TNTPrimed tnt2 = landmine_pos.getWorld().spawn(player.getLocation(), TNTPrimed.class);
tnt2.setFuseTicks(1); tnt2.setFuseTicks(1);
p.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
landmines.remove(); landmines.remove();
} }
} }
} }
} }
} }
} }
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
@ -363,28 +392,35 @@ public class TFM_PlayerListener implements Listener
{ {
try try
{ {
final Player p = event.getPlayer(); final Player player = event.getPlayer();
String message = event.getMessage().trim(); String message = event.getMessage().trim();
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.incrementMsgCount();
// Check for spam // Check for spam
if (playerdata.getMsgCount() > 10) Long lastRan = TFM_Heartbeat.getLastRan();
if (lastRan == null || lastRan + TotalFreedomMod.HEARTBEAT_RATE * 1000L < System.currentTimeMillis())
{ {
TFM_Util.bcastMsg(p.getName() + " was automatically kicked for spamming chat.", ChatColor.RED); //TFM_Log.warning("Heartbeat service timeout - can't check block place/break rates.");
TFM_Util.autoEject(p, "Kicked for spamming chat."); }
else
{
if (playerdata.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT)
{
TFM_Util.bcastMsg(player.getName() + " was automatically kicked for spamming chat.", ChatColor.RED);
TFM_Util.autoEject(player, "Kicked for spamming chat.");
playerdata.resetMsgCount(); playerdata.resetMsgCount();
event.setCancelled(true); event.setCancelled(true);
return; return;
}
} }
// Check for message repeat // Check for message repeat
if (playerdata.getLastMessage().equalsIgnoreCase(message)) if (playerdata.getLastMessage().equalsIgnoreCase(message))
{ {
TFM_Util.playerMsg(p, "Please do not repeat messages."); TFM_Util.playerMsg(player, "Please do not repeat messages.");
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
@ -393,9 +429,9 @@ public class TFM_PlayerListener implements Listener
// Check for muted // Check for muted
if (playerdata.isMuted()) if (playerdata.isMuted())
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
p.sendMessage(ChatColor.RED + "You are muted, STFU!"); player.sendMessage(ChatColor.RED + "You are muted, STFU!");
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
@ -412,7 +448,7 @@ public class TFM_PlayerListener implements Listener
if (message.length() > 100) if (message.length() > 100)
{ {
message = message.substring(0, 100); message = message.substring(0, 100);
TFM_Util.playerMsg(p, "Message was shortened because it was too long to send."); TFM_Util.playerMsg(player, "Message was shortened because it was too long to send.");
} }
// Check for caps // Check for caps
@ -435,13 +471,20 @@ public class TFM_PlayerListener implements Listener
// Check for adminchat // Check for adminchat
if (playerdata.inAdminChat()) if (playerdata.inAdminChat())
{ {
TFM_Util.adminChatMessage(p, message, false); TFM_Util.adminChatMessage(player, message, false);
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
// Finally, set message // Finally, set message
event.setMessage(message); event.setMessage(message);
// Set the tag
if (playerdata.getTag() != null)
{
player.setDisplayName((playerdata.getTag() + " " + player.getDisplayName().replaceAll(" ", "")));
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -453,20 +496,19 @@ public class TFM_PlayerListener implements Listener
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
{ {
String command = event.getMessage(); String command = event.getMessage();
Player p = event.getPlayer(); Player player = event.getPlayer();
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.incrementMsgCount();
playerdata.setLastCommand(command); playerdata.setLastCommand(command);
if (playerdata.getMsgCount() > 10) if (playerdata.incrementAndGetMsgCount() > MSG_PER_HEARTBEAT)
{ {
TFM_Util.bcastMsg(p.getName() + " was automatically kicked for spamming commands.", ChatColor.RED); TFM_Util.bcastMsg(player.getName() + " was automatically kicked for spamming commands.", ChatColor.RED);
TFM_Util.autoEject(p, "Kicked for spamming commands."); TFM_Util.autoEject(player, "Kicked for spamming commands.");
playerdata.resetMsgCount(); playerdata.resetMsgCount();
TFM_Util.wipeEntities(true, true); TFM_Util.TFM_EntityWiper.wipeEntities(true, true);
event.setCancelled(true); event.setCancelled(true);
return; return;
@ -474,7 +516,7 @@ public class TFM_PlayerListener implements Listener
if (playerdata.allCommandsBlocked()) if (playerdata.allCommandsBlocked())
{ {
TFM_Util.playerMsg(p, "Your commands have been blocked by an admin.", ChatColor.RED); TFM_Util.playerMsg(player, "Your commands have been blocked by an admin.", ChatColor.RED);
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
@ -482,13 +524,13 @@ public class TFM_PlayerListener implements Listener
// Block commands if player is muted // Block commands if player is muted
if (playerdata.isMuted()) if (playerdata.isMuted())
{ {
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
for (String test_command : BLOCKED_MUTED_CMDS) for (String test_command : BLOCKED_MUTED_CMDS)
{ {
if (Pattern.compile("^/" + test_command.toLowerCase() + " ").matcher(command).find()) if (Pattern.compile("^/" + test_command.toLowerCase() + " ").matcher(command).find())
{ {
p.sendMessage(ChatColor.RED + "That command is blocked while you are muted."); player.sendMessage(ChatColor.RED + "That command is blocked while you are muted.");
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
@ -500,27 +542,27 @@ public class TFM_PlayerListener implements Listener
} }
} }
if (TotalFreedomMod.preprocessLogEnabled) if (TFM_ConfigEntry.PREPROCESS_LOG_ENABLED.getBoolean())
{ {
TFM_Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", p.getName(), ChatColor.stripColor(p.getDisplayName()), command), true); TFM_Log.info(String.format("[PREPROCESS_COMMAND] %s(%s): %s", player.getName(), ChatColor.stripColor(player.getDisplayName()), command), true);
} }
command = command.toLowerCase().trim(); command = command.toLowerCase().trim();
// Blocked commands // Blocked commands
if (TFM_CommandBlockerNew.getInstance().isCommandBlocked(command, event.getPlayer())) if (TFM_CommandBlocker.getInstance().isCommandBlocked(command, event.getPlayer()))
{ {
// CommandBlocker handles messages and broadcasts // CommandBlocker handles messages and broadcasts
event.setCancelled(true); event.setCancelled(true);
} }
if (!TFM_SuperadminList.isUserSuperadmin(p)) if (!TFM_SuperadminList.isUserSuperadmin(player))
{ {
for (Player pl : Bukkit.getOnlinePlayers()) for (Player pl : Bukkit.getOnlinePlayers())
{ {
if (TFM_SuperadminList.isUserSuperadmin(pl) && TFM_PlayerData.getPlayerData(pl).cmdspyEnabled()) if (TFM_SuperadminList.isUserSuperadmin(pl) && TFM_PlayerData.getPlayerData(pl).cmdspyEnabled())
{ {
TFM_Util.playerMsg(pl, p.getName() + ": " + command); TFM_Util.playerMsg(pl, player.getName() + ": " + command);
} }
} }
} }
@ -529,7 +571,7 @@ public class TFM_PlayerListener implements Listener
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onPlayerDropItem(PlayerDropItemEvent event) public void onPlayerDropItem(PlayerDropItemEvent event)
{ {
if (TotalFreedomMod.autoEntityWipe) if (TFM_ConfigEntry.AUTO_ENTITY_WIPE.getBoolean())
{ {
if (event.getPlayer().getWorld().getEntities().size() > 750) if (event.getPlayer().getWorld().getEntities().size() > 750)
{ {
@ -545,12 +587,12 @@ public class TFM_PlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent event) public void onPlayerKick(PlayerKickEvent event)
{ {
Player p = event.getPlayer(); Player player = event.getPlayer();
if (TotalFreedomMod.fuckoffEnabledFor.containsKey(p)) if (TotalFreedomMod.fuckoffEnabledFor.containsKey(player))
{ {
TotalFreedomMod.fuckoffEnabledFor.remove(p); TotalFreedomMod.fuckoffEnabledFor.remove(player);
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.disarmMP44(); playerdata.disarmMP44();
if (playerdata.isCaged()) if (playerdata.isCaged())
{ {
@ -562,12 +604,12 @@ public class TFM_PlayerListener implements Listener
@EventHandler(priority = EventPriority.MONITOR) @EventHandler(priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) public void onPlayerQuit(PlayerQuitEvent event)
{ {
Player p = event.getPlayer(); Player player = event.getPlayer();
if (TotalFreedomMod.fuckoffEnabledFor.containsKey(p)) if (TotalFreedomMod.fuckoffEnabledFor.containsKey(player))
{ {
TotalFreedomMod.fuckoffEnabledFor.remove(p); TotalFreedomMod.fuckoffEnabledFor.remove(player);
} }
TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.disarmMP44(); playerdata.disarmMP44();
if (playerdata.isCaged()) if (playerdata.isCaged())
{ {
@ -581,52 +623,52 @@ public class TFM_PlayerListener implements Listener
{ {
try try
{ {
final Player p = event.getPlayer(); final Player player = event.getPlayer();
final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(p); final TFM_PlayerData playerdata = TFM_PlayerData.getPlayerData(player);
playerdata.setSuperadminIdVerified(null); playerdata.setSuperadminIdVerified(null);
TFM_UserList.getInstance(TotalFreedomMod.plugin).addUser(p); TFM_UserList.getInstance(TotalFreedomMod.plugin).addUser(player);
boolean superadmin_impostor = TFM_SuperadminList.isSuperadminImpostor(p); boolean superadmin_impostor = TFM_SuperadminList.isSuperadminImpostor(player);
if (superadmin_impostor || TFM_SuperadminList.isUserSuperadmin(p)) if (superadmin_impostor || TFM_SuperadminList.isUserSuperadmin(player))
{ {
TFM_Util.bcastMsg(ChatColor.AQUA + p.getName() + " is " + TFM_Util.getRank(p)); TFM_Util.bcastMsg(ChatColor.AQUA + player.getName() + " is " + TFM_Util.getRank(player));
if (superadmin_impostor) if (superadmin_impostor)
{ {
p.getInventory().clear(); player.getInventory().clear();
p.setOp(false); player.setOp(false);
p.setGameMode(GameMode.SURVIVAL); player.setGameMode(GameMode.SURVIVAL);
TFM_Util.bcastMsg("Warning: " + p.getName() + " has been flagged as an impostor!", ChatColor.RED); TFM_Util.bcastMsg("Warning: " + player.getName() + " has been flagged as an impostor!", ChatColor.RED);
} }
else else
{ {
if (TFM_SuperadminList.verifyIdentity(p.getName(), p.getAddress().getAddress().getHostAddress())) if (TFM_SuperadminList.verifyIdentity(player.getName(), player.getAddress().getAddress().getHostAddress()))
{ {
playerdata.setSuperadminIdVerified(Boolean.TRUE); playerdata.setSuperadminIdVerified(Boolean.TRUE);
TFM_SuperadminList.updateLastLogin(p); TFM_SuperadminList.updateLastLogin(player);
} }
else else
{ {
playerdata.setSuperadminIdVerified(Boolean.FALSE); playerdata.setSuperadminIdVerified(Boolean.FALSE);
TFM_Util.bcastMsg("Warning: " + p.getName() + " is an admin, but is using a username not registered to one of their IPs.", ChatColor.RED); TFM_Util.bcastMsg("Warning: " + player.getName() + " is an admin, but is using a username not registered to one of their IPs.", ChatColor.RED);
} }
p.setOp(true); player.setOp(true);
} }
} }
if (TotalFreedomMod.adminOnlyMode) if (TFM_ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
{ {
new BukkitRunnable() new BukkitRunnable()
{ {
@Override @Override
public void run() public void run()
{ {
p.sendMessage(ChatColor.RED + "Server is currently closed to non-superadmins."); player.sendMessage(ChatColor.RED + "Server is currently closed to non-superadmins.");
} }
}.runTaskLater(TotalFreedomMod.plugin, 20L * 3L); }.runTaskLater(TotalFreedomMod.plugin, 20L * 3L);
} }

View File

@ -3,11 +3,11 @@ package me.StevenLawson.TotalFreedomMod.Listener;
import java.util.Set; import java.util.Set;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import me.StevenLawson.TotalFreedomMod.TFM_CommandBlockerNew; import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker;
import me.StevenLawson.TotalFreedomMod.TFM_ConfigEntry;
import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface; import me.StevenLawson.TotalFreedomMod.TFM_ServerInterface;
import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList; import me.StevenLawson.TotalFreedomMod.TFM_SuperadminList;
import me.StevenLawson.TotalFreedomMod.TFM_Util; import me.StevenLawson.TotalFreedomMod.TFM_Util;
import me.StevenLawson.TotalFreedomMod.TotalFreedomMod;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Server; import org.bukkit.Server;
@ -51,8 +51,8 @@ public class TFM_ServerListener implements Listener
{ {
topLevelCommand = topLevelCommand.toLowerCase().trim(); topLevelCommand = topLevelCommand.toLowerCase().trim();
//We need to make it look like the command is coming from the console, so keep the player's name without the Player instance via dummy: // We need to make it look like the command is coming from the console, so keep the player's name without the Player instance via dummy:
if (TFM_CommandBlockerNew.getInstance().isCommandBlocked(topLevelCommand, new TFM_ServerListener_DummyCommandSender(player.getName()), false)) if (TFM_CommandBlocker.getInstance().isCommandBlocked(topLevelCommand, new TFM_ServerListener_DummyCommandSender(player.getName()), false))
{ {
player.sendMessage(ChatColor.GRAY + "That command is blocked."); player.sendMessage(ChatColor.GRAY + "That command is blocked.");
event.setCancelled(true); event.setCancelled(true);
@ -64,7 +64,7 @@ public class TFM_ServerListener implements Listener
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onRemoteServerCommand(RemoteServerCommandEvent event) public void onRemoteServerCommand(RemoteServerCommandEvent event)
{ {
if (TFM_CommandBlockerNew.getInstance().isCommandBlocked(event.getCommand(), event.getSender())) if (TFM_CommandBlocker.getInstance().isCommandBlocked(event.getCommand(), event.getSender()))
{ {
event.setCommand(""); event.setCommand("");
} }
@ -73,7 +73,7 @@ public class TFM_ServerListener implements Listener
@EventHandler(priority = EventPriority.NORMAL) @EventHandler(priority = EventPriority.NORMAL)
public void onServerCommand(ServerCommandEvent event) public void onServerCommand(ServerCommandEvent event)
{ {
if (TFM_CommandBlockerNew.getInstance().isCommandBlocked(event.getCommand(), event.getSender())) if (TFM_CommandBlocker.getInstance().isCommandBlocked(event.getCommand(), event.getSender()))
{ {
event.setCommand(""); event.setCommand("");
} }
@ -88,7 +88,7 @@ public class TFM_ServerListener implements Listener
{ {
event.setMotd(ChatColor.RED + "You are banned."); event.setMotd(ChatColor.RED + "You are banned.");
} }
else if (TotalFreedomMod.adminOnlyMode) else if (TFM_ConfigEntry.ADMIN_ONLY_MODE.getBoolean())
{ {
event.setMotd(ChatColor.RED + "Server is closed."); event.setMotd(ChatColor.RED + "Server is closed.");
} }

Some files were not shown because too many files have changed in this diff Show More