package tv.mineinthebox.essentials.commands; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.enums.PermissionKey; import tv.mineinthebox.essentials.interfaces.CommandTemplate; import tv.mineinthebox.essentials.interfaces.XPlayer; public class CmdTpa extends CommandTemplate { private final xEssentials pl; public CmdTpa(xEssentials pl, Command cmd, CommandSender sender) { super(pl, cmd, sender); this.pl = pl; } public boolean execute(final CommandSender sender, Command cmd, String[] args) { if(cmd.getName().equalsIgnoreCase("tpa")) { if(sender instanceof Player) { if(sender.hasPermission(PermissionKey.CMD_TPA.getPermission())) { if(args.length == 0) { showHelp(); } else if(args.length == 1) { if(args[0].equalsIgnoreCase("help")) { showHelp(); } else { final Player victem = pl.getManagers().getPlayerManager().getOfflinePlayer(args[0]).getBukkitPlayer(); final String victemName = victem.getName(); final String senderName = sender.getName(); if(victem instanceof Player) { XPlayer xpp = pl.getManagers().getPlayerManager().getPlayer(victem.getName()); if(xpp.isVanished()) { sendMessage("this player is offline!"); return false; } if(!(pl.getManagers().getTpaManager().containsKey(victem.getName()) || pl.getManagers().getTpaManager().containsValue(victem.getName()))) { pl.getManagers().getTpaManager().put(victem.getName(), sender.getName()); Bukkit.getScheduler().scheduleSyncDelayedTask(pl, new Runnable() { @Override public void run() { if(pl.getManagers().getTpaManager().containsKey(victemName)) { pl.getManagers().getTpaManager().remove(victemName); if(sender instanceof Player) { sendMessage("the tpa request to player " + victemName + " has been over time!"); } if(victem instanceof Player) { sendMessageTo(victem, "the tpa request from " + senderName + " been canceled out"); } } } }, 5000); sendMessage("tpa request sent to player " + victem.getName()); sendMessageTo(victem, sender.getName() + " wants to teleport to you"); sendMessageTo(victem, "type: " + ChatColor.GRAY + "/tpaccept - so the player can teleport to you"); sendMessageTo(victem, "type: " + ChatColor.GRAY + "/tpdeny - so the player cannot teleport to you"); } else { sendMessage("this player has to many tpa requests open!"); } } else { sendMessage("this player is offline!"); } } } } else { getWarning(WarningType.NO_PERMISSION); } } else { getWarning(WarningType.PLAYER_ONLY); } } return false; } @Override public void showHelp() { sender.sendMessage(ChatColor.GOLD + ".oO___[tpa help]___Oo."); sender.sendMessage(ChatColor.DARK_GRAY + "Default: " + ChatColor.GRAY + "/tpa help " + ChatColor.WHITE + ": shows help"); sender.sendMessage(ChatColor.DARK_GRAY + "Default: " + ChatColor.GRAY + "/tpa <player> " + ChatColor.WHITE + ": sent a tpa request to a player"); } }