From 310ce4f75a6e0d2e4fed8a6122b29ab484f7283b Mon Sep 17 00:00:00 2001 From: WickedGamingUK <> Date: Mon, 27 Oct 2014 11:23:08 +0000 Subject: [PATCH] Ported all useful features from MobArena over to TFM --- buildnumber.properties | 4 +- .../Commands/Command_report.java | 55 ++++++++++++++++++ .../Commands/Command_saconfig.java | 1 - .../Commands/Command_warn.java | 57 +++++++++++++++++++ .../HTTPD/Module_schematic.java | 3 +- .../TotalFreedomMod/TFM_PlayerData.java | 18 ++++++ .../TotalFreedomMod/TFM_Util.java | 11 ++++ 7 files changed, 144 insertions(+), 5 deletions(-) create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_report.java create mode 100644 src/me/StevenLawson/TotalFreedomMod/Commands/Command_warn.java diff --git a/buildnumber.properties b/buildnumber.properties index ff32cd2b..9d425768 100644 --- a/buildnumber.properties +++ b/buildnumber.properties @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Sat Aug 30 16:14:15 CEST 2014 -build.number=949 +#Sun Nov 02 13:49:36 CET 2014 +build.number=950 diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_report.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_report.java new file mode 100644 index 00000000..8f6fecb1 --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_report.java @@ -0,0 +1,55 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import me.StevenLawson.TotalFreedomMod.TFM_AdminList; +import me.StevenLawson.TotalFreedomMod.TFM_Util; +import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import net.minecraft.util.org.apache.commons.lang3.ArrayUtils; +import net.minecraft.util.org.apache.commons.lang3.StringUtils; +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.ONLY_IN_GAME, blockHostConsole = true) +@CommandParameters(description = "Report a player for admins to see.", usage = "/ ") +public class Command_report extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length < 2) + { + return false; + } + + Player player = getPlayer(args[0]); + + if (player == null) + { + playerMsg(PLAYER_NOT_FOUND); + return true; + } + + if (sender instanceof Player) + { + if (player.equals(sender_p)) + { + playerMsg(ChatColor.RED + "Please, don't try to report yourself."); + return true; + } + } + + if (TFM_AdminList.isSuperAdmin(player)) + { + playerMsg(ChatColor.RED + "You can not report an admin."); + return true; + } + + String report = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " "); + TFM_Util.reportAction(sender_p, player, report); + + playerMsg(ChatColor.GREEN + "Thank you, your report has been successfully logged."); + + return true; + } +} \ No newline at end of file diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java index 1ea3b12a..346c1352 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_saconfig.java @@ -194,7 +194,6 @@ public class Command_saconfig extends TFM_Command INFO("info", AdminLevel.SUPER, SourceType.BOTH, 2, 2), ADD("add", AdminLevel.SUPER, SourceType.ONLY_CONSOLE, 2, 2), DELETE("delete", AdminLevel.SENIOR, SourceType.ONLY_CONSOLE, 2, 2); - private final String modeName; private final AdminLevel adminLevel; private final SourceType sourceType; diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_warn.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_warn.java new file mode 100644 index 00000000..1605041d --- /dev/null +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_warn.java @@ -0,0 +1,57 @@ +package me.StevenLawson.TotalFreedomMod.Commands; + +import me.StevenLawson.TotalFreedomMod.TFM_AdminList; +import me.StevenLawson.TotalFreedomMod.TFM_PlayerData; +import me.StevenLawson.TotalFreedomMod.TotalFreedomMod; +import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang.StringUtils; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +@CommandPermissions(level = AdminLevel.SUPER, source = SourceType.BOTH, blockHostConsole = true) +@CommandParameters(description = "Warns a player.", usage = "/ ") +public class Command_warn extends TFM_Command +{ + @Override + public boolean run(CommandSender sender, Player sender_p, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) + { + if (args.length < 2) + { + return false; + } + + Player player = getPlayer(args[0]); + + if (player == null) + { + playerMsg(PLAYER_NOT_FOUND); + return true; + } + + if (sender instanceof Player) + { + if (player.equals(sender_p)) + { + playerMsg(ChatColor.RED + "Please, don't try to warn yourself."); + return true; + } + } + + if (TFM_AdminList.isSuperAdmin(player)) + { + playerMsg(ChatColor.RED + "You can not warn admins"); + return true; + } + + String warnReason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " "); + + playerMsg(ChatColor.RED + "[WARNING] " + warnReason); + playerMsg(ChatColor.GREEN + "You have successfully warned " + player.getName()); + + TFM_PlayerData.getPlayerData(player).incrementWarnings(); + + return true; + } +} \ No newline at end of file diff --git a/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_schematic.java b/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_schematic.java index 1b7df565..696bccc4 100644 --- a/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_schematic.java +++ b/src/me/StevenLawson/TotalFreedomMod/HTTPD/Module_schematic.java @@ -27,8 +27,7 @@ public class Module_schematic extends TFM_HTTPD_Module { "schematic" }; - private static final String UPLOAD_FORM - = "
\n" + private static final String UPLOAD_FORM = "\n" + "

Select a schematic file to upload. Filenames must be alphanumeric, between 1 and 30 characters long (inclusive), and have a .schematic extension.

\n" + "\n" + "
\n" diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java index 50100eac..e506cc71 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_PlayerData.java @@ -8,6 +8,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.UUID; import me.StevenLawson.TotalFreedomMod.Bridge.TFM_EssentialsBridge; +import me.StevenLawson.TotalFreedomMod.Config.TFM_ConfigEntry; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.GameMode; @@ -56,6 +57,7 @@ public class TFM_PlayerData private String lastCommand = ""; private boolean cmdspyEnabled = false; private String tag = null; + private int warningCount = 0; private TFM_PlayerData(Player player) { @@ -503,4 +505,20 @@ public class TFM_PlayerData { return this.tag; } + + public int getWarningCount() + { + return this.warningCount; + } + + public void incrementWarnings() + { + this.warningCount++; + + if (this.warningCount % 2 == 0) + { + this.player.getWorld().strikeLightning(this.player.getLocation()); + TFM_Util.playerMsg(this.player, ChatColor.RED + "You have been warned at least twice now, make sure to read the rules at " + TFM_ConfigEntry.SERVER_BAN_URL.getString()); + } + } } diff --git a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java index 451e9376..9a7d3680 100644 --- a/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java +++ b/src/me/StevenLawson/TotalFreedomMod/TFM_Util.java @@ -983,6 +983,17 @@ public class TFM_Util } + public static void reportAction(Player reporter, Player reported, String report) + { + for (Player player : Bukkit.getOnlinePlayers()) + { + if (TFM_AdminList.isSuperAdmin(player)) + { + playerMsg(player, ChatColor.RED + "[REPORTS] " + ChatColor.GOLD + reporter.getName() + " has reported " + reported.getName() + " for " + report); + } + } + } + public static class TFM_EntityWiper { private static final List> WIPEABLES = new ArrayList>();