Automatically remove inactive party members after 7 days (default)

Inactive meaning, the player has offline for atleast 7 days. This will
prevent the parties.yml file from getting unnecessarily large.
This commit is contained in:
TfT_02
2013-02-05 00:42:19 +01:00
parent 4d93f3271d
commit e5e19f77b9
4 changed files with 54 additions and 0 deletions

View File

@ -0,0 +1,35 @@
package com.gmail.nossr50.skills.runnables;
import java.util.ArrayList;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.party.Party;
import com.gmail.nossr50.party.PartyManager;
public class PartyAutoKick implements Runnable {
@Override
public void run() {
updatePartyMembers();
}
private void updatePartyMembers() {
long currentTime = System.currentTimeMillis();
long kickTime = 24L * 60L * 60L * 1000L * Config.getInstance().getAutoPartyKickTime();
ArrayList<Party> parties = new ArrayList<Party>(PartyManager.getParties());
for (Party party : parties) {
ArrayList<String> members = new ArrayList<String>(party.getMembers());
for (String member : members) {
long lastPlayed = mcMMO.p.getServer().getOfflinePlayer(member).getLastPlayed();
if (currentTime - lastPlayed > kickTime) {
System.out.println("Removing " + member + " from " + party.getName()); // Debug, remove this later
PartyManager.removeFromParty(member, party);
}
}
}
}
}