Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.matthew.zhcf.handler.faction;
- import java.io.File;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import org.bukkit.configuration.file.YamlConfiguration;
- import lombok.Getter;
- import me.matthew.zcore.handler.position.Position;
- import me.matthew.zcore.util.ListUtil;
- import me.matthew.zhcf.Main;
- import me.matthew.zhcf.handler.faction.type.PlayerFaction;
- import me.matthew.zhcf.handler.faction.type.SystemFaction;
- /*
- * Created by Matthew
- * 2019. aug. 23.
- */
- public class FactionHandler {
- @Getter
- private Main plugin;
- @Getter
- private File playerFactionFile;
- @Getter
- private YamlConfiguration playerFactionConfig;
- @Getter
- private File systemFactionFile;
- @Getter
- private YamlConfiguration systemFactionConfig;
- @Getter
- private Map<String, PlayerFaction> playerFactions;
- @Getter
- private Map<String, SystemFaction> systemFactions;
- public FactionHandler() {
- this.plugin = Main.getInstance();
- this.playerFactionFile = new File(this.plugin.getDataFolder(), "playerfactions.yml");
- this.playerFactionConfig = YamlConfiguration.loadConfiguration(this.playerFactionFile);
- this.systemFactionFile = new File(this.plugin.getDataFolder(), "systemfactions.yml");
- this.systemFactionConfig = YamlConfiguration.loadConfiguration(this.systemFactionFile);
- this.playerFactions = new HashMap<String, PlayerFaction>();
- this.systemFactions = new HashMap<String, SystemFaction>();
- }
- public Faction getFaction(String factionName) {
- factionName = factionName.toLowerCase();
- if (this.playerFactions.containsKey(factionName)) {
- return this.playerFactions.get(factionName);
- }
- if (this.systemFactions.containsKey(factionName)) {
- return this.systemFactions.get(factionName);
- }
- return null;
- }
- public void saveFaction(String factionName, boolean save) {
- factionName = factionName.toLowerCase();
- Faction faction = getFaction(factionName);
- if (faction == null) {
- return;
- }
- if (faction instanceof PlayerFaction) {
- this.playerFactionConfig.set(factionName, null);
- this.playerFactionConfig.set(factionName + ".displayName", faction.getDisplayName());
- this.playerFactionConfig.set(factionName + ".home", faction.getHome().toString(true));
- this.playerFactionConfig.set(factionName + ".leader", ((PlayerFaction) faction).getLeader().toString());
- this.playerFactionConfig.set(factionName + ".captains", ListUtil.UUIDListToString(((PlayerFaction) faction).getCaptains()));
- this.playerFactionConfig.set(factionName + ".members", ListUtil.UUIDListToString(((PlayerFaction) faction).getMembers()));
- this.playerFactionConfig.set(factionName + ".kills", ((PlayerFaction) faction).getKills());
- this.playerFactionConfig.set(factionName + ".balance", ((PlayerFaction) faction).getBalance());
- this.playerFactionConfig.set(factionName + ".dtr", ((PlayerFaction) faction).getDtr());
- this.playerFactionConfig.set(factionName + ".regenTime", ((PlayerFaction) faction).getRegenTime());
- if (save) {
- saveConfig(true);
- }
- } else {
- this.playerFactionConfig.set(factionName, null);
- this.playerFactionConfig.set(factionName + ".displayName", faction.getDisplayName());
- this.playerFactionConfig.set(factionName + ".home", faction.getHome().toString(false));
- this.playerFactionConfig.set(factionName + ".deathban", ((SystemFaction) faction).isDeathban());
- if (save) {
- saveConfig(false);
- }
- }
- }
- public void deleteFaction(String factionName) {
- factionName = factionName.toLowerCase();
- Faction faction = getFaction(factionName);
- if (faction != null) {
- if (faction instanceof PlayerFaction) {
- this.playerFactions.remove(factionName);
- this.playerFactionConfig.set(factionName, (Object) null);
- saveConfig(true);
- } else {
- this.systemFactions.remove(factionName);
- this.systemFactionConfig.set(factionName, (Object) null);
- saveConfig(false);
- }
- }
- }
- public void loadFaction(String factionName, boolean player) {
- factionName = factionName.toLowerCase();
- if (player) {
- if (this.playerFactionConfig.contains(factionName)) {
- String displayName = this.playerFactionConfig.getString(factionName + ".displayName");
- Position home = new Position(this.playerFactionConfig.getString(factionName + ".home"), false);
- UUID leader = UUID.fromString(this.playerFactionConfig.getString(factionName + ".leader"));
- List<UUID> captains = ListUtil.StringListToUUID(this.playerFactionConfig.getStringList(factionName + ".captains"));
- List<UUID> members = ListUtil.StringListToUUID(this.playerFactionConfig.getStringList(factionName + ".members"));
- int kills = this.playerFactionConfig.getInt(factionName + ".kills");
- double balance = this.playerFactionConfig.getDouble(factionName + ".balance");
- double dtr = this.playerFactionConfig.getDouble(factionName + ".dtr");
- long regenTime = this.playerFactionConfig.getLong(factionName + ".regenTime");
- this.playerFactions.put(factionName, new PlayerFaction(displayName, home, leader, captains, members, kills, balance, dtr, regenTime));
- }
- } else {
- if (this.systemFactionConfig.contains(factionName)) {
- String displayName = this.systemFactionConfig.getString(factionName + ".displayName");
- Position home = new Position(this.systemFactionConfig.getString(factionName + ".home"), false);
- boolean deathban = this.playerFactionConfig.getBoolean(factionName + ".leader");
- this.systemFactions.put(factionName, new SystemFaction(displayName, home, deathban));
- }
- }
- }
- public void saveFactions() {
- for (String factionName : this.playerFactions.keySet()) {
- saveFaction(factionName, false);
- }
- for (String factionName : this.systemFactions.keySet()) {
- saveFaction(factionName, true);
- }
- saveConfig(false);
- saveConfig(true);
- }
- public void loadFactions() {
- for (String key : this.playerFactionConfig.getKeys(false)) {
- loadFaction(key, true);
- }
- for (String key : this.systemFactionConfig.getKeys(false)) {
- loadFaction(key, false);
- }
- }
- public void saveConfig(boolean player) {
- try {
- if (player) {
- this.playerFactionConfig.save(this.playerFactionFile);
- } else {
- this.systemFactionConfig.save(this.systemFactionFile);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement