mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 14:46:46 +01:00
Make party loading more resilient (#4881)
This commit is contained in:
parent
69ef484b86
commit
9b0632d63c
@ -28,6 +28,7 @@ import java.util.LinkedHashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public final class PartyManager {
|
public final class PartyManager {
|
||||||
private static final String partiesFilePath = mcMMO.getFlatFileDirectory() + "parties.yml";
|
private static final String partiesFilePath = mcMMO.getFlatFileDirectory() + "parties.yml";
|
||||||
@ -609,34 +610,38 @@ public final class PartyManager {
|
|||||||
ArrayList<Party> hasAlly = new ArrayList<>();
|
ArrayList<Party> hasAlly = new ArrayList<>();
|
||||||
|
|
||||||
for (String partyName : partiesFile.getConfigurationSection("").getKeys(false)) {
|
for (String partyName : partiesFile.getConfigurationSection("").getKeys(false)) {
|
||||||
Party party = new Party(partyName);
|
try {
|
||||||
|
Party party = new Party(partyName);
|
||||||
|
|
||||||
String[] leaderSplit = partiesFile.getString(partyName + ".Leader").split("[|]");
|
String[] leaderSplit = partiesFile.getString(partyName + ".Leader").split("[|]");
|
||||||
party.setLeader(new PartyLeader(UUID.fromString(leaderSplit[0]), leaderSplit[1]));
|
party.setLeader(new PartyLeader(UUID.fromString(leaderSplit[0]), leaderSplit[1]));
|
||||||
party.setPassword(partiesFile.getString(partyName + ".Password"));
|
party.setPassword(partiesFile.getString(partyName + ".Password"));
|
||||||
party.setLocked(partiesFile.getBoolean(partyName + ".Locked"));
|
party.setLocked(partiesFile.getBoolean(partyName + ".Locked"));
|
||||||
party.setLevel(partiesFile.getInt(partyName + ".Level"));
|
party.setLevel(partiesFile.getInt(partyName + ".Level"));
|
||||||
party.setXp(partiesFile.getInt(partyName + ".Xp"));
|
party.setXp(partiesFile.getInt(partyName + ".Xp"));
|
||||||
|
|
||||||
if (partiesFile.getString(partyName + ".Ally") != null) {
|
if (partiesFile.getString(partyName + ".Ally") != null) {
|
||||||
hasAlly.add(party);
|
hasAlly.add(party);
|
||||||
|
}
|
||||||
|
|
||||||
|
party.setXpShareMode(ShareMode.getShareMode(partiesFile.getString(partyName + ".ExpShareMode", "NONE")));
|
||||||
|
party.setItemShareMode(ShareMode.getShareMode(partiesFile.getString(partyName + ".ItemShareMode", "NONE")));
|
||||||
|
|
||||||
|
for (ItemShareType itemShareType : ItemShareType.values()) {
|
||||||
|
party.setSharingDrops(itemShareType, partiesFile.getBoolean(partyName + ".ItemShareType." + itemShareType.toString(), true));
|
||||||
|
}
|
||||||
|
|
||||||
|
LinkedHashMap<UUID, String> members = party.getMembers();
|
||||||
|
|
||||||
|
for (String memberEntry : partiesFile.getStringList(partyName + ".Members")) {
|
||||||
|
String[] memberSplit = memberEntry.split("[|]");
|
||||||
|
members.put(UUID.fromString(memberSplit[0]), memberSplit[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
parties.add(party);
|
||||||
|
} catch (Exception e) {
|
||||||
|
mcMMO.p.getLogger().log(Level.WARNING, "An exception occurred while loading a party with name '" + partyName + "'. Skipped loading party.", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
party.setXpShareMode(ShareMode.getShareMode(partiesFile.getString(partyName + ".ExpShareMode", "NONE")));
|
|
||||||
party.setItemShareMode(ShareMode.getShareMode(partiesFile.getString(partyName + ".ItemShareMode", "NONE")));
|
|
||||||
|
|
||||||
for (ItemShareType itemShareType : ItemShareType.values()) {
|
|
||||||
party.setSharingDrops(itemShareType, partiesFile.getBoolean(partyName + ".ItemShareType." + itemShareType.toString(), true));
|
|
||||||
}
|
|
||||||
|
|
||||||
LinkedHashMap<UUID, String> members = party.getMembers();
|
|
||||||
|
|
||||||
for (String memberEntry : partiesFile.getStringList(partyName + ".Members")) {
|
|
||||||
String[] memberSplit = memberEntry.split("[|]");
|
|
||||||
members.put(UUID.fromString(memberSplit[0]), memberSplit[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
parties.add(party);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMO.p.debug("Loaded (" + parties.size() + ") Parties...");
|
mcMMO.p.debug("Loaded (" + parties.size() + ") Parties...");
|
||||||
|
Loading…
Reference in New Issue
Block a user