Skip to content

Commit

Permalink
Updated SiegeData to contain leader
Browse files Browse the repository at this point in the history
  • Loading branch information
NinjaMandalorian committed Apr 13, 2023
1 parent 53444b8 commit 3a264b7
Showing 1 changed file with 9 additions and 27 deletions.
36 changes: 9 additions & 27 deletions src/main/java/me/ShermansWorld/AlathraWar/data/SiegeData.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;

import com.palmergames.bukkit.towny.TownyAPI;
import com.palmergames.bukkit.towny.object.Town;
Expand All @@ -12,23 +16,11 @@
import me.ShermansWorld.AlathraWar.War;
import me.ShermansWorld.AlathraWar.Siege;

import java.io.File;
import java.io.FilenameFilter;

public class SiegeData
{

// Static Siege list for all active sieges
private static HashSet<Siege> sieges = new HashSet<Siege>();
private final static String dataFolderPath = "plugins" + File.separator + "AlathraWar" + File.separator + "data";

// Filter for only accessing yml files
private static FilenameFilter ymlFilter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".yml");
}
};

public static HashSet<Siege> getSieges() {
return sieges;
Expand Down Expand Up @@ -70,17 +62,16 @@ public static void removeSiege(Siege siege) {
* @param fileData
* @return Siege object
*/
@SuppressWarnings("unchecked")
public static Siege fromMap(War war, HashMap<String, Object> fileData) {
private static Siege fromMap(War war, HashMap<String, Object> fileData) {

if (fileData.get("town") == null || fileData.get("side1AreAttackers") == null) {
return null;
}

Town town = TownyAPI.getInstance().getTown((String) fileData.get("town"));
boolean attackBoolean = Boolean.parseBoolean((String) fileData.get("side1AreAttackers"));
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(UUID.fromString((String) fileData.get("siegeLeader")));

Siege siege = new Siege(war, town, attackBoolean);
Siege siege = new Siege(war, town, offlinePlayer);

return siege;
}
Expand All @@ -95,16 +86,6 @@ public static void saveSiege(Siege siege) {
war.save();
}

private static void deleteSiege(War war) {
File[] files = new File(dataFolderPath + File.separator + "wars").listFiles(ymlFilter);

for (File file : files) {
if (file.getName().startsWith(war.getName())) {
file.delete();
}
}
}

/**
* Turns a siege into a map
* @param siege - Siege
Expand All @@ -118,6 +99,7 @@ public static HashMap<String, Object> siegeToMap(Siege siege) {
returnMap.put("attackerPoints", siege.getAttackerPoints());
returnMap.put("defenderPoints", siege.getDefenderPoints());
returnMap.put("side1AreAttackers", Boolean.toString(siege.getSide1AreAttackers()));
returnMap.put("siegeLeader", siege.getSiegeLeader().getUniqueId().toString());

return returnMap;
}
Expand All @@ -141,7 +123,7 @@ public static ArrayList<Siege> createSieges(War war, Collection<HashMap<String,
Town town = TownyAPI.getInstance().getTown((String) map.get("town"));
if (town == null) continue;

Siege siege = new Siege(war, town, (war.getSide(town.getName()) == 2 ));
Siege siege = fromMap(war, map);
siege.addPointsToAttackers((int) map.get("attackerPoints"));
siege.addPointsToDefenders((int) map.get("defenderPoints"));
siege.resume((int) map.get("siegeTicks"));
Expand Down

0 comments on commit 3a264b7

Please sign in to comment.