diff options
Diffstat (limited to 'src/com/redstoner/modules/essentials/Essentials.java')
-rw-r--r-- | src/com/redstoner/modules/essentials/Essentials.java | 85 |
1 files changed, 76 insertions, 9 deletions
diff --git a/src/com/redstoner/modules/essentials/Essentials.java b/src/com/redstoner/modules/essentials/Essentials.java index cd048a7..b7bdf22 100644 --- a/src/com/redstoner/modules/essentials/Essentials.java +++ b/src/com/redstoner/modules/essentials/Essentials.java @@ -1,10 +1,12 @@ package com.redstoner.modules.essentials; import java.io.File; +import java.util.Date; import java.util.HashMap; import java.util.UUID; import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -56,7 +58,7 @@ public class Essentials implements Module @Command(hook = "kickDef") public void kick(CommandSender sender, String name) { - kick(sender, name, EssentialsDefaults.kickMessage); + kick(sender, name, EssentialsDefaults.kick); } @Command(hook = "kick") @@ -64,7 +66,7 @@ public class Essentials implements Module { try { - getPlayer(name).kick(getName(sender), reason); + getPlayer(name).kick(Utils.getName(sender), reason); } catch (PlayerNotFoundException e) { @@ -72,6 +74,57 @@ public class Essentials implements Module } } + @Command(hook = "banDef") + public void ban(CommandSender sender, String name) + { + ban(sender, name, EssentialsDefaults.ban); + } + + @Command(hook = "ban") + public void ban(CommandSender sender, String name, String reason) + { + try + { + getOfflinePlayer(name).ban(sender.getName(), reason, null); + } + catch (PlayerNotFoundException e) + { + Utils.sendErrorMessage(sender, null, e.getMessage()); + } + } + + @Command(hook = "tbanDefDR") + public void tempban(CommandSender sender, String name) + { + tempban(sender, name, EssentialsDefaults.tbanD, EssentialsDefaults.tbanR); + } + + @Command(hook = "tbanDefR") + public void tbanD(CommandSender sender, String name, String duration) + { + tempban(sender, name, duration, EssentialsDefaults.tbanR); + } + + @Command(hook = "tbanDefD") + public void tbanR(CommandSender sender, String name, String reason) + { + tempban(sender, name, EssentialsDefaults.tbanD, reason); + } + + @Command(hook = "tban") + public void tempban(CommandSender sender, String name, String duration, String reason) + { + try + { + getOfflinePlayer(name).ban(Utils.getName(sender), reason, + new Date((new Date()).getTime() + Long.parseLong(duration))); + } + catch (PlayerNotFoundException | NumberFormatException e) + { + Utils.sendErrorMessage(sender, null, e.getMessage()); + } + } + @EventHandler public void onPlayerJoin(PlayerJoinEvent e) { @@ -109,13 +162,27 @@ public class Essentials implements Module return getPlayer(player); } - public static String getName(CommandSender sender) + public static EssentialsOfflinePlayer getOfflinePlayer(UUID uuid) throws PlayerNotFoundException { - String name = "&9"; - if (sender instanceof Player) - name += ((Player) sender).getDisplayName(); - else - name += sender.getName(); - return name; + OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); + if (player == null) + throw new PlayerNotFoundException(); + return getOfflinePlayer(player); + } + + public static EssentialsOfflinePlayer getOfflinePlayer(OfflinePlayer player) + { + if (players.containsKey(player.getUniqueId())) + return players.get(player.getUniqueId()); + return new EssentialsOfflinePlayer(player); + } + + @Deprecated + public static EssentialsOfflinePlayer getOfflinePlayer(String name) throws PlayerNotFoundException + { + OfflinePlayer player = Bukkit.getOfflinePlayer(name); + if (player == null) + throw new PlayerNotFoundException(); + return getOfflinePlayer(player); } } |