浏览代码

Moar magical fixes!

This will automagically fix bugged players who have joined multiple
parties.
TfT_02 12 年之前
父节点
当前提交
1b4eda713f
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      src/main/java/com/gmail/nossr50/runnables/party/PartyAutoKickTask.java

+ 8 - 1
src/main/java/com/gmail/nossr50/runnables/party/PartyAutoKickTask.java

@@ -1,7 +1,9 @@
 package com.gmail.nossr50.runnables.party;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map.Entry;
 
 import org.bukkit.OfflinePlayer;
@@ -20,6 +22,7 @@ public class PartyAutoKickTask extends BukkitRunnable {
 
     private void updatePartyMembers() {
         HashMap<OfflinePlayer, Party> toRemove = new HashMap<OfflinePlayer, Party>();
+        List<String> processedPlayers = new ArrayList<String>();
 
         long currentTime = System.currentTimeMillis();
         long kickTime = 24L * 60L * 60L * 1000L * Config.getInstance().getAutoPartyKickTime();
@@ -30,9 +33,13 @@ public class PartyAutoKickTask extends BukkitRunnable {
             for (String memberName : party.getMembers()) {
                 OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberName);
 
-                if (currentTime - member.getLastPlayed() > kickTime) {
+                if ((currentTime - member.getLastPlayed() > kickTime) || processedPlayers.contains(memberName)) {
                     toRemove.put(member, party);
                 }
+
+                if (!processedPlayers.contains(memberName)) {
+                    processedPlayers.add(memberName);
+                }
             }
         }