package com.mengcraft.team;
import com.mengcraft.team.thread.TeleportThread;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Commander {
static boolean commands(CommandSender sender, String[] args) {
if (args.length > 0) {
int hashCode = args[0].hashCode();
switch (hashCode) {
case 92762796://agree
teamAgree(sender, args);
break;
case -1352294148://create
teamCreate(sender);
break;
case 94627585://chest
sender.sendMessage(ChatColor.RED + "腐竹没有安装队伍箱子插件哦");
break;
case 287951985://dissolve
teamDissolve(sender);
break;
case -1306084975://effect
teamEffect(sender);
break;
case 3145580://flag
teamFlag(sender);
break;
case 3198440://heal
teamSkill(sender, args[0]);
break;
case 3267882://join
teamJoin(sender, args);
break;
case -1106754295://leader
teamLeader(sender);
break;
case 69785887://level up
teamLevelUp(sender);
break;
case 3322014://list
teamList(sender);
return true;
case -980110702://prefix
teamPrefix(sender, args);
break;
case 3482191://quit
teamQuit(sender);
break;
case -934610812://remove
teamRemove(sender, args);
break;
case 1433904217://setspawn
teamSetSpawn(sender);
break;
case 109638523://spawn
Player player = (Player) sender;
teamSpawn(player);
break;
default:
teamInfo(sender);
break;
}
return true;
}
teamInfo(sender);
return true;
}
public static void teamSpawn(Player player) {
String senderName = player.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
if (leaderName != null) {
Location spawn = TeamUtils.getTeamSpawn(leaderName);
if (spawn != null) {
TeleportThread thread = new TeleportThread(player, spawn);
TeamPlugin.plugin.getServer().getScheduler().runTaskLater(TeamPlugin.plugin, thread, 60);
player.sendMessage(ChatColor.GREEN + "三秒后开始传送");
} else player.sendMessage(ChatColor.RED + "请队长先设置复活点!");
} else player.sendMessage(ChatColor.RED + "请先加入或创建队伍!");
}
private static void teamSetSpawn(CommandSender sender) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName);
if (status) {
Player player = (Player) sender;
String worldName = player.getWorld().getName();
List<String> black = TeamPlugin.plugin.getConfig().getStringList("black-world");
status = black.contains(worldName);
if (status) {
String message = ChatColor.RED + "不允许在本世界设置复活点";
sender.sendMessage(message);
} else {
Location location = player.getLocation();
TeamUtils.setTeamSpawn(leaderName, location);
String message = ChatColor.GREEN + "复活点设置成功";
sender.sendMessage(message);
}
}
}
static void teamMessage(CommandSender sender, String[] args) {
if (args.length > 0) {
boolean status;
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
if (leaderName != null) {
StringBuilder msgBuilder = new StringBuilder();
status = senderName.equals(leaderName);
if (status) {
msgBuilder.append(ChatColor.RED);
msgBuilder.append("<队长>");
}
msgBuilder.append(ChatColor.GOLD);
msgBuilder.append("<").append(senderName).append("> ");
for (String arg : args) {
msgBuilder.append(arg);
msgBuilder.append(" ");
}
String msg = msgBuilder.toString();
TeamUtils.setTeamMessage(leaderName, msg);
}
}
}
private static boolean teamAgree(CommandSender sender, String[] args) {
if (args.length > 1) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName);
if (status) {
String msg;
int teamLevel = TeamUtils.getTeamLevel(leaderName);
int teamSize = TeamUtils.getTeamMate(senderName).size();
int teamLimit = TeamUtils.getTeamLimit(teamLevel);
status = teamSize < teamLimit;
if (status) {
List<String> requestList = TeamUtils.getRequestList(leaderName);
Player player = TeamPlugin.plugin.getServer().getPlayer(args[1]);
if (player != null) args[1] = player.getName();
else {
msg = "玩家 " + args[1] + " 没有申请加入队伍";
sender.sendMessage(ChatColor.RED + msg);
return true;
}
status = requestList.contains(args[1]);
if (status) {
String getLeaderName = TeamUtils.getPlayerLeader(args[1]);
if (getLeaderName != null) {
msg = ChatColor.RED + "玩家已加入其他队伍!";
sender.sendMessage(msg);
return true;
}
status = player.isOnline();
if (status) {
int maxHealth = 18 + 2 * teamLevel;
TeamUtils.setPlayerList(args[1], true);
String path = "config.team.growhealth";
status = TeamPlugin.plugin.getConfig().getBoolean(path, true);
if (status) player.setMaxHealth(maxHealth);
}
TeamUtils.setTeamMate(senderName, args[1], true);
TeamUtils.setPlayerLeader(args[1], senderName);
TeamUtils.setPlayerJoinTime(args[1]);
TeamUtils.setRequestList(leaderName, args[1], false);
TeamPlugin.plugin.saveConfig();
msg = "同意入队申请成功";
sender.sendMessage(ChatColor.GREEN + msg);
msg = "玩家 " + args[1] + " 加入了队伍";
TeamUtils.setTeamMessage(senderName, ChatColor.GREEN + msg);
}
} else {
msg = "您的队伍已达最大人数";
sender.sendMessage(ChatColor.RED + msg);
}
}
}
return true;
}
private static boolean teamCreate(CommandSender sender) {
String msg;
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = leaderName != null;
if (status) {
String teamName = TeamUtils.getPlayerLeader(senderName);
msg = "你已经是 " + teamName + " 队伍的成员";
sender.sendMessage(ChatColor.RED + msg);
} else {
status = sender.hasPermission("team.create");
if (status) {
TeamUtils.setTeamLevel(senderName, 1);
TeamUtils.setTeamMate(senderName, senderName, true);
TeamUtils.setPlayerJoinTime(senderName);
TeamUtils.setPlayerList(senderName, true);
TeamUtils.setPlayerLeader(senderName, senderName);
msg = "队伍创建成功";
sender.sendMessage(ChatColor.GREEN + msg);
TeamPlugin.plugin.saveConfig();
}
}
return true;
}
private static boolean teamDissolve(CommandSender sender) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName);
if (status) {
String getName;
String path;
String msg = "队伍已被队长 " + senderName + " 解散";
List<Player> onlineList = TeamUtils.getTeamMateOnline(senderName);
for (Player onlinePlayer : onlineList) {
getName = onlinePlayer.getName();
TeamUtils.setPlayerList(getName, false);
path = "config.team.growhealth";
status = TeamPlugin.plugin.getConfig().getBoolean(path, true);
if (status) onlinePlayer.setMaxHealth(20);
onlinePlayer.sendMessage(ChatColor.RED + msg);
}
List<String> memberList = TeamUtils.getTeamMate(senderName);
for (String memberName : memberList) {
path = "players." + memberName;
TeamPlugin.plugin.getConfig().set(path, null);
}
path = "teams." + senderName;
TeamPlugin.plugin.getConfig().set(path, null);
msg = "队伍已解散";
sender.sendMessage(ChatColor.RED + msg);
TeamPlugin.plugin.saveConfig();
}
return true;
}
private static void teamEffect(CommandSender sender) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName);
if (status) {
int teamLevel = TeamUtils.getTeamLevel(leaderName);
if (teamLevel > 1) {
long skillTime = TeamUtils.getTeamSkillTime(leaderName);
long currentTime = System.currentTimeMillis() / 1000;
long coolDown = 180;
status = currentTime > skillTime + coolDown;
if (status) {
String path = "teams." + leaderName + ".effect";
int taskId = TeamPlugin.tempConfig.getInt(path);
if (taskId > 0) {
TeamUtils.setTeamSkillTime(leaderName);
TeamPlugin.tempConfig.set(path, null);
TeamPlugin.plugin.getServer().getScheduler().cancelTask(taskId);
String message = ChatColor.GREEN + "团队光环 已关闭";
sender.sendMessage(message);
} else {
List<Player> mateOnline = TeamUtils.getTeamMateOnline(leaderName);
int onlineSize = mateOnline.size();
status = onlineSize > 1;
if (status) {
TeamUtils.setTeamSkillTime(leaderName);
TeamEffectThread thread = new TeamEffectThread(leaderName);
taskId = TeamPlugin.plugin.getServer().
getScheduler().
runTaskTimerAsynchronously(TeamPlugin.plugin, thread, 0, 20 * 90).
getTaskId();
TeamPlugin.tempConfig.set(path, taskId);
String message = ChatColor.GREEN + "团队光环 已启动!";
sender.sendMessage(message);
} else {
String message = ChatColor.RED + "在线队友不足, 团队光环 启动失败";
sender.sendMessage(message);
}
}
} else {
long leastTime = skillTime + coolDown - currentTime;
String message = ChatColor.RED + "技能冷却剩余 " + leastTime + " 秒";
sender.sendMessage(message);
}
}
}
}
private static boolean teamFlag(CommandSender sender) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName);
if (status) {
int teamLevel = TeamUtils.getTeamLevel(leaderName);
status = teamLevel > 1;
if (status) {
String msg;
TeleportThread task;
String teamName = TeamUtils.getPlayerLeader(senderName);
Player senderPlayer = TeamPlugin.plugin.getServer().getPlayerExact(senderName);
List<Player> memberList = TeamUtils.getTeamMateOnline(teamName);
memberList.remove(senderPlayer);
for (Player memberPlayer : memberList) {
msg = ChatColor.GREEN + "队长设立了一个传送旗帜";
memberPlayer.sendMessage(msg);
msg = ChatColor.GREEN + "3秒后开始传送到队长...";
memberPlayer.sendMessage(msg);
task = new TeleportThread(memberPlayer, senderPlayer);
TeamPlugin.plugin.getServer().getScheduler().runTaskLater(TeamPlugin.plugin, task, 60);
}
msg = ChatColor.GREEN + "你设立了一个传送旗帜...";
sender.sendMessage(msg);
msg = ChatColor.GREEN + "3秒后开始传送队友...";
sender.sendMessage(msg);
}
}
return true;
}
private static boolean teamInfo(CommandSender sender) {
String msgString;
String[] msgs = {};
ArrayList<String> msgList = new ArrayList<String>();
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = leaderName == null;
if (status) {
msgString = ChatColor.GOLD + "您好, 您还不属于任何队伍!";
msgList.add(msgString);
msgString = ChatColor.GOLD + "您可用的命令如下:";
msgList.add(msgString);
msgString = "";
msgList.add(msgString);
status = sender.hasPermission("team.create");
if (status) {
msgString = ChatColor.GOLD + "命令 /team create 创建属于您的队伍";
msgList.add(msgString);
}
msgString = ChatColor.GOLD + "命令 /team join [abcd] 申请加入 abcd 的队伍";
msgList.add(msgString);
msgs = msgList.toArray(msgs);
sender.sendMessage(msgs);
} else {
status = senderName.equals(leaderName);
if (status) {
int teamLevel = TeamUtils.getTeamLevel(leaderName);
msgString = ChatColor.GOLD + "您好, 尊敬的队长大人!";
msgList.add(msgString);
msgString = ChatColor.GOLD + "您可用的命令如下:";
msgList.add(msgString);
msgString = "";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team levelup 升级队伍";
msgList.add(msgString);
if (teamLevel > 3) {
msgString = ChatColor.GOLD + "命令 /team prefix [abcd] 设定队伍称号";
msgList.add(msgString);
}
if (teamLevel > 1) {
msgString = ChatColor.GOLD + "命令 /team flag 召集队员";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team effect 队长技能 团队光环";
msgList.add(msgString);
}
msgString = ChatColor.GOLD + "命令 /team heal 队长技能 生命之光";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team agree [abcd] 同意玩家 abcd 的入队申请";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team remove [abcd] 将玩家 abcd 移出队伍";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team list 查看队伍信息";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team chest 打开队伍箱子";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team setspawn 设置队伍复活点";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team spawn 传送到队伍复活点";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team dissolve 解散队伍";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /tm [abcd] 队内密语";
msgList.add(msgString);
msgs = msgList.toArray(msgs);
sender.sendMessage(msgs);
} else {
msgString = ChatColor.GOLD + "您好, 尊敬的冒险队伍成员!";
msgList.add(msgString);
msgString = ChatColor.GOLD + "您可用的命令如下:";
msgList.add(msgString);
msgString = "";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team leader 传送至队长";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team list 查看队伍信息";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team quit 离开队伍";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /tm [abc] 队内密语";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team chest 打开队伍箱子";
msgList.add(msgString);
msgString = ChatColor.GOLD + "命令 /team spawn 传送到队伍复活点";
msgList.add(msgString);
msgs = msgList.toArray(msgs);
sender.sendMessage(msgs);
}
}
return true;
}
private static boolean teamJoin(CommandSender sender, String[] args) {
if (args.length > 1) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
if (leaderName != null) {
sender.sendMessage(ChatColor.RED + "你已经是 " + leaderName + " 队伍的成员");
return true;
}
Player player = TeamPlugin.plugin.getServer().getPlayer(args[1]);
if (player != null) {
args[1] = player.getName();
int teamLevel = TeamUtils.getTeamLevel(args[1]);
if (teamLevel < 1) {
sender.sendMessage(ChatColor.RED + "玩家 " + args[1] + " 不是队长");
return true;
}
TeamUtils.setRequestList(args[1], senderName, true);
TeamUtils.setTeamMessage(args[1], ChatColor.GREEN + "玩家 " + senderName + " 申请加入队伍");
sender.sendMessage(ChatColor.GREEN + "申请加入 " + args[1] + " 的队伍成功");
} else sender.sendMessage(ChatColor.RED + "玩家 " + args[1] + " 不在线");
}
return true;
}
private static boolean teamLeader(CommandSender sender) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = leaderName != null && !senderName.equals(leaderName);
if (status) {
String msg;
Server getServer = TeamPlugin.plugin.getServer();
Player leaderPlayer = getServer.getPlayerExact(leaderName);
status = leaderPlayer != null && leaderPlayer.isOnline();
if (status) {
msg = ChatColor.GREEN + "3秒后开始传送...";
sender.sendMessage(msg);
msg = ChatColor.GREEN + "队友 " + senderName + " 将传送到你身边...";
leaderPlayer.sendMessage(msg);
Player senderPlayer = getServer.getPlayerExact(senderName);
TeleportThread task = new TeleportThread(senderPlayer, leaderPlayer);
TeamPlugin.plugin.getServer().getScheduler().runTaskLater(TeamPlugin.plugin, task, 60);
} else {
msg = ChatColor.RED + "队长不在线";
sender.sendMessage(msg);
}
}
return true;
}
private static boolean teamLevelUp(CommandSender sender) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName);
if (status) {
String msg;
List<String> memberList = TeamUtils.getTeamMate(leaderName);
int teamLevel = TeamUtils.getTeamLevel(leaderName);
int teamMembers = memberList.size();
int teamLimit = TeamUtils.getTeamLimit(teamLevel);
status = teamMembers < teamLimit;
if (!status) {
int memberOnline;
double expNeed = TeamUtils.getTeamExpNeed(teamLevel);
boolean b = true;
for (String memberName : memberList) {
memberOnline = TeamUtils.getPlayerOnlineTime(memberName);
if (memberOnline < expNeed) b = false;
}
if (b) {
teamLevel = teamLevel + 1;
TeamUtils.setTeamLevel(leaderName, teamLevel);
msg = ChatColor.GREEN + "恭喜您, 队伍升级成功!";
sender.sendMessage(msg);
} else {
msg = ChatColor.RED + "部分队员经验不满无法升级";
sender.sendMessage(msg);
}
} else {
msg = ChatColor.RED + "队伍人数不满无法升级";
sender.sendMessage(msg);
}
}
return false;
}
private static boolean teamList(CommandSender sender) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = leaderName != null;
if (status) {
Player memberPlayer;
String onlineString;
String path;
int onlineTime;
Server getServer = TeamPlugin.plugin.getServer();
ArrayList<String> msgList = new ArrayList<String>();
String msgString = ChatColor.GOLD + "信息:";
msgList.add(msgString);
int teamLevel = TeamUtils.getTeamLevel(leaderName);
msgString = ChatColor.GOLD + " - Level " + teamLevel;
msgList.add(msgString);
double teamExpNeed = TeamUtils.getTeamExpNeed(teamLevel);
msgString = ChatColor.GOLD + " - Need " + teamExpNeed;
msgList.add(msgString);
int teamLimit = TeamUtils.getTeamLimit(teamLevel);
msgString = ChatColor.GOLD + " - Limit " + teamLimit;
msgList.add(msgString);
msgString = ChatColor.GOLD + "队长:";
msgList.add(msgString);
msgString = ChatColor.RED + " - " + leaderName;
msgList.add(msgString);
msgString = ChatColor.GOLD + "队员:";
msgList.add(msgString);
List<String> memberList = TeamUtils.getTeamMate(leaderName);
for (String memberName : memberList) {
path = "players." + memberName + ".online";
onlineTime = TeamPlugin.plugin.getConfig().getInt(path);
memberPlayer = getServer.getPlayerExact(memberName);
status = memberPlayer != null && memberPlayer.isOnline();
if (status) onlineString = "online";
else onlineString = ChatColor.RED + "offline";
msgString = ChatColor.GREEN + " - " + memberName + " " + onlineTime + " min" + " "
+ onlineString;
msgList.add(msgString);
}
List<String> requestList = TeamUtils.getRequestList(leaderName);
status = requestList.size() > 0;
if (status) {
msgString = ChatColor.GOLD + "申请:";
msgList.add(msgString);
for (String requestName : requestList) {
msgString = ChatColor.GREEN + " - " + requestName;
msgList.add(msgString);
}
}
String[] msgs = {};
msgs = msgList.toArray(msgs);
sender.sendMessage(msgs);
}
return false;
}
private static void teamPrefix(CommandSender sender, String[] args) {
if (args.length > 1) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName);
if (status) {
int teamLevel = TeamUtils.getTeamLevel(leaderName);
if (teamLevel > 3) {
String msg;
long coolDown = 300;
long skillTime = TeamUtils.getTeamSkillTime(leaderName);
long currentTime = System.currentTimeMillis() / 1000;
status = currentTime > skillTime + coolDown;
if (status) {
int length = args[1].length();
if (length < 12) {
String prefix = args[1].replace("&", "§");
TeamUtils.setTeamPrefix(leaderName, prefix);
TeamPlugin.plugin.saveConfig();
TeamUtils.setTeamSkillTime(leaderName);
msg = ChatColor.GREEN + "队伍称号 " + args[1] + " 设置成功";
sender.sendMessage(msg);
} else {
msg = ChatColor.RED + "太长了, 麻烦弄短点";
sender.sendMessage(msg);
}
} else {
long leastTime = skillTime + coolDown - currentTime;
msg = ChatColor.RED + "技能冷却剩余 " + leastTime + " 秒";
sender.sendMessage(msg);
}
}
}
}
}
private static boolean teamQuit(CommandSender sender) {
String msg;
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = leaderName != null && !leaderName.equals(senderName);
if (status) {
String path = "config.team.growhealth";
status = TeamPlugin.plugin.getConfig().getBoolean(path, true);
if (status) TeamPlugin.plugin.getServer().getPlayerExact(senderName).setMaxHealth(20);
String teamName = TeamUtils.getPlayerLeader(senderName);
TeamUtils.setTeamMate(teamName, senderName, false);
TeamUtils.setPlayerList(senderName, false);
TeamPlugin.plugin.saveConfig();
msg = ChatColor.RED + "你退出了" + teamName + "的队伍 ";
sender.sendMessage(msg);
msg = ChatColor.RED + "玩家 " + senderName + " 退出了队伍 ";
TeamUtils.setTeamMessage(teamName, msg);
}
return true;
}
private static boolean teamRemove(CommandSender sender, String[] args) {
if (args.length > 1) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName) && !senderName.equals(args[1]);
if (status) {
String msg;
String argLeader = TeamUtils.getPlayerLeader(args[1]);
status = leaderName.equals(argLeader);
if (status) {
TeamUtils.setTeamMate(senderName, args[1], false);
TeamPlugin.plugin.saveConfig();
msg = "你已被移出了 " + senderName + " 的队伍";
Player player = TeamPlugin.plugin.getServer().getPlayerExact(args[1]);
status = player != null && player.isOnline();
if (status) {
TeamUtils.setPlayerList(args[1], false);
String path = "config.team.growhealth";
status = TeamPlugin.plugin.getConfig().getBoolean(path, true);
if (status) player.setMaxHealth(20);
player.sendMessage(ChatColor.RED + msg);
}
msg = "玩家 " + args[1] + " 退出了队伍 ";
TeamUtils.setTeamMessage(senderName, ChatColor.RED + msg);
} else {
msg = "玩家 " + args[1] + " 不是队伍成员";
sender.sendMessage(ChatColor.RED + msg);
}
}
}
return true;
}
private static boolean teamSkill(CommandSender sender, String skillName) {
String senderName = sender.getName();
String leaderName = TeamUtils.getPlayerLeader(senderName);
boolean status = senderName.equals(leaderName);
if (status) {
String msg;
String path = "config.team.skillcooldown";
int coolDown = TeamPlugin.plugin.getConfig().getInt(path, 150);
long skillTime = TeamUtils.getTeamSkillTime(leaderName);
long currentTime = System.currentTimeMillis() / 1000;
status = currentTime > skillTime + coolDown;
if (status) {
int teamLevel = TeamUtils.getTeamLevel(leaderName);
List<Player> mateNearby = TeamUtils.getTeamMateNearby(leaderName);
int mateSize = mateNearby.size();
if (mateSize > 1) {
status = skillName.equals("heal");
if (status) {
TeamSkill.skillHeal(mateNearby, teamLevel);
TeamUtils.setTeamSkillTime(leaderName);
}
} else {
msg = ChatColor.RED + "身边没有队员, 无法发动技能";
sender.sendMessage(msg);
}
} else {
long leastTime = skillTime + coolDown - currentTime;
msg = ChatColor.RED + "技能冷却剩余 " + leastTime + " 秒";
sender.sendMessage(msg);
}
}
return false;
}
private static class TeamEffectThread implements Runnable {
String leaderName = null;
public TeamEffectThread(String s) {
leaderName = s;
}
@Override
public void run() {
List<Player> nearby = TeamUtils.getTeamMateNearby(leaderName);
int size = nearby.size();
if (size > 1) {
Collection<PotionEffect> effects = getEffectList(leaderName);
String s = ChatColor.GREEN + "你被 团队光环 笼罩了!";
for (Player player : nearby) {
player.addPotionEffects(effects);
player.sendMessage(s);
}
} else {
String s = ChatColor.RED + "身边没有队友, 无法发动团队光环!";
nearby.get(0).sendMessage(s);
}
}
private Collection<PotionEffect> getEffectList(String leaderName) {
Collection<PotionEffect> effectList = new ArrayList<PotionEffect>();
int teamLevel = TeamUtils.getTeamLevel(leaderName);
if (teamLevel > 5) {
PotionEffect effect = new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 1200, 2);
effectList.add(effect);
} else if (teamLevel > 3) {
PotionEffect effect = new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 1200, 1);
effectList.add(effect);
} else if (teamLevel > 1) {
PotionEffect effect = new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, 1200, 0);
effectList.add(effect);
}
return effectList;
}
}
}