From b3f785beb9242d10c5437d8a90393a6f76ed1f62 Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 19 Nov 2019 20:04:44 -0500 Subject: [PATCH] tban with incomplete names --- .../totalfreedommod/command/Command_tban.java | 76 ++++++++++++------- 1 file changed, 47 insertions(+), 29 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java index e6333220..cf2aed2e 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/command/Command_tban.java @@ -1,6 +1,8 @@ package me.totalfreedom.totalfreedommod.command; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import me.totalfreedom.totalfreedommod.banning.Ban; import me.totalfreedom.totalfreedommod.player.PlayerData; @@ -8,23 +10,25 @@ import me.totalfreedom.totalfreedommod.punishments.Punishment; import me.totalfreedom.totalfreedommod.punishments.PunishmentType; import me.totalfreedom.totalfreedommod.rank.Rank; import me.totalfreedom.totalfreedommod.util.FUtil; -import net.pravian.aero.util.Ips; +import static me.totalfreedom.totalfreedommod.util.FUtil.playerMsg; +import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; +import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH) -@CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/ [reason]", aliases = "noob") +@CommandPermissions(level = Rank.SUPER_ADMIN, source = SourceType.BOTH, blockHostConsole = true) +@CommandParameters(description = "Temporarily bans a player for five minutes.", usage = "/ [reason]", aliases = "noob") public class Command_tban extends FreedomCommand { @Override public boolean run(CommandSender sender, Player playerSender, Command cmd, String commandLabel, String[] args, boolean senderIsConsole) { - if (args.length < 1) + if (args.length == 0) { return false; } @@ -33,50 +37,64 @@ public class Command_tban extends FreedomCommand final List ips = new ArrayList<>(); final Player player = getPlayer(args[0]); - final PlayerData entry = plugin.pl.getData(args[0]); - - if (player == null) { - msg(FreedomCommand.PLAYER_NOT_FOUND); - return true; - } + final PlayerData entry = plugin.pl.getData(args[0]); - username = entry.getUsername(); - ips.addAll(entry.getIps()); + if (entry == null) + { + msg("Can't find that user. If target is not logged in, make sure that you spelled the name exactly."); + return true; + } - String reason; - if (args.length > 1) - { - reason = StringUtils.join(args, " ", 1, args.length); + username = entry.getUsername(); + ips.addAll(entry.getIps()); } else { - reason = "You have been temporarily banned for 5 minutes."; - } + final PlayerData entry = plugin.pl.getData(player); + username = player.getName(); + ips.addAll(entry.getIps()); - // strike with lightning effect: - final Location targetPos = player.getLocation(); - for (int x = -1; x <= 1; x++) - { - for (int z = -1; z <= 1; z++) + // Strike with lightning + final Location targetPos = player.getLocation(); + for (int x = -1; x <= 1; x++) { - final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z); - targetPos.getWorld().strikeLightningEffect(strike_pos); + for (int z = -1; z <= 1; z++) + { + final Location strike_pos = new Location(targetPos.getWorld(), targetPos.getBlockX() + x, targetPos.getBlockY(), targetPos.getBlockZ() + z); + targetPos.getWorld().strikeLightning(strike_pos); + } } + + // Kill player + player.setHealth(0.0); } - FUtil.adminAction(sender.getName(), "Tempbanning: " + player.getName() + " for 5 minutes.", true); + String reason = null; + + if (player != null) + { + FUtil.bcastMsg(sender.getName() + " - Tempbanning: " + player.getName() + " for 5 minutes", ChatColor.RED); + } + + // Ban player Ban ban = Ban.forPlayerName(username, sender, FUtil.parseDateOffset("5m"), reason); for (String ip : ips) { ban.addIp(ip); } plugin.bm.addBan(ban); - player.kickPlayer(ChatColor.RED + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info."); - plugin.pul.logPunishment(new Punishment(player.getName(), Ips.getIp(player), sender.getName(), PunishmentType.TEMPBAN, reason)); + // Kick player + if (player != null) + { + player.kickPlayer(ChatColor.RED + "You have been temporarily banned for five minutes. Please read totalfreedom.me for more info."); + } + + // Log ban + plugin.pul.logPunishment(new Punishment(username, ips.get(0), sender.getName(), PunishmentType.TEMPBAN, reason)); return true; } -} +} \ No newline at end of file