diff --git a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/LoginListener.java b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/LoginListener.java index a1f8912..e130b3b 100644 --- a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/LoginListener.java +++ b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/LoginListener.java @@ -24,7 +24,7 @@ public void onAuth(LoginEvent e) { } else { // 非会长 会内公告 for (Player p : Bukkit.getOnlinePlayers()) { - if (SQLManager.getInstance().getGuildMembers(guild.getId()).contains(p.getName())) { + if (SQLManager.getInstance().isGuildMember(guild.getId(), p.getName())) { p.sendMessage( Msg.INFO + "§6" + guild.getGuildName() + " §7成员 §e" + player.getName() + " §7已上线" ); diff --git a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/command/GuildCommandS.java b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/command/GuildCommandS.java index 3cb8821..4ccc1c3 100644 --- a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/command/GuildCommandS.java +++ b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/command/GuildCommandS.java @@ -74,12 +74,12 @@ private void onCommandChairman() throws ParaLengthException { warp(); break; case "setvice1": - if (SQLManager.getInstance().getGuildMembers(guild.getId()).contains(args[1])) { + if (SQLManager.getInstance().isGuildMember(guild.getId(), args[1])) { guild.setViceChairman1(args[1]); } break; case "setvice2": - if (SQLManager.getInstance().getGuildMembers(guild.getId()).contains(args[1])) { + if (SQLManager.getInstance().isGuildMember(guild.getId(), args[1])) { guild.setViceChairman2(args[1]); } break; @@ -188,7 +188,7 @@ private void advance() throws ParaLengthException { String playerName = args[2]; if (operate.equalsIgnoreCase("add")) { if (SQLManager.getInstance().getGuildAdvancedMembers(guild.getId()).size() < GuildBasicInfo.getMaxAdvancedPlayer(guild.getLevel())) { - if (SQLManager.getInstance().getGuildMembers(guild.getId()).contains(playerName)) { + if (SQLManager.getInstance().isGuildMember(guild.getId(), playerName)) { Member member = SQLManager.getInstance().getMember(playerName); member.setAdvanced(true); SQLManager.getInstance().saveMember(member); @@ -201,7 +201,7 @@ private void advance() throws ParaLengthException { sender.sendMessage(Msg.ERROR + "已达到公会广场名单最大成员数"); } } else if (operate.equalsIgnoreCase("remove")) { - if (SQLManager.getInstance().getGuildMembers(guild.getId()).contains(playerName)) { + if (SQLManager.getInstance().isGuildMember(guild.getId(), playerName)) { Member member = SQLManager.getInstance().getMember(playerName); member.setAdvanced(false); SQLManager.getInstance().saveMember(member); diff --git a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/gui/GuildsGUI.java b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/gui/GuildsGUI.java index af23eff..2c06bc4 100644 --- a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/gui/GuildsGUI.java +++ b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/gui/GuildsGUI.java @@ -52,7 +52,7 @@ private ItemStack getAnGuildButton(Guild guild) { ArrayList des = new ArrayList<>(); des.add("§b公会ID: §a" + guild.getId()); des.add("§b会长: §a" + guild.getChairman()); - des.add("§b成员: §a" + SQLManager.getInstance().getGuildMembers(guild.getId()).size() + "§7/§2" + GuildBasicInfo.getMaxPlayer(guild.getLevel())); + des.add("§b成员: §a" + SQLManager.getInstance().getGuildMemberCount(guild.getId()) + "§7/§2" + GuildBasicInfo.getMaxPlayer(guild.getLevel())); des.add("§b高级成员: §a" + GuildBasicInfo.getMaxAdvancedPlayer(guild.getLevel())); des.add("§b等级: §a" + guild.getLevel()); des.add("§b积分: §a" + guild.getPoints()); diff --git a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/papi/GuildPapi.java b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/papi/GuildPapi.java index b51bf0c..5f43840 100644 --- a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/papi/GuildPapi.java +++ b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/papi/GuildPapi.java @@ -76,7 +76,7 @@ public String onRequest(OfflinePlayer player, @NotNull String identifier) { return Integer.toString(guild.getLevel()); } if (identifier.equals("num_player")) { - return Integer.toString(SQLManager.getInstance().getGuildMembers(guild.getId()).size()); + return Integer.toString(SQLManager.getInstance().getGuildMemberCount(guild.getId())); } if (identifier.equals("max_player")) { return Integer.toString(GuildBasicInfo.getMaxPlayer(guild.getLevel())); diff --git a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/sql/SQLManager.java b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/sql/SQLManager.java index 29cec3c..2fe5b07 100644 --- a/modules/GuildManager/src/main/java/com/mcatk/guildmanager/sql/SQLManager.java +++ b/modules/GuildManager/src/main/java/com/mcatk/guildmanager/sql/SQLManager.java @@ -143,13 +143,27 @@ public void removeMember(String playerID, String guildID) { } public ArrayList getGuildMembers(String id) { - ArrayList list = new ArrayList<>(); - for (Member m : guilds.get(id).getMembers()) { + ArrayList members = guilds.get(id).getMembers(); + ArrayList list = new ArrayList<>(members.size()); + for (Member m : members) { list.add(m.getId()); } return list; } + public int getGuildMemberCount(String id) { + return guilds.get(id).getMembers().size(); + } + + public boolean isGuildMember(String guildId, String memberId) { + for (Member m : guilds.get(guildId).getMembers()) { + if (m.getId().equals(memberId)) { + return true; + } + } + return false; + } + public ArrayList getGuildAdvancedMembers(String id) { ArrayList list = new ArrayList<>(); for (Member m : guilds.get(id).getMembers()) {