zKoth/src/fr/maxlego08/koth/loader/KothLoader.java

46 lines
1.9 KiB
Java
Raw Normal View History

2024-02-22 11:33:50 +01:00
package fr.maxlego08.koth.loader;
import fr.maxlego08.koth.ZKoth;
import fr.maxlego08.koth.api.Koth;
2024-02-22 11:44:35 +01:00
import fr.maxlego08.koth.api.KothType;
2024-02-22 11:33:50 +01:00
import fr.maxlego08.koth.zcore.utils.ZUtils;
import fr.maxlego08.koth.zcore.utils.loader.Loader;
import org.bukkit.Location;
import org.bukkit.configuration.file.YamlConfiguration;
import java.io.File;
import java.util.List;
public class KothLoader extends ZUtils implements Loader<Koth> {
private final Loader<Location> locationLoader = new LocationLoader();
@Override
public Koth load(YamlConfiguration configuration, String path, File file) {
String fileName = getFileNameWithoutExtension(file);
2024-02-22 11:44:35 +01:00
KothType kothType = KothType.valueOf(configuration.getString("type", KothType.CAPTURE.name()).toUpperCase());
2024-02-22 11:33:50 +01:00
String name = configuration.getString("name");
int captureSeconds = configuration.getInt("capture");
List<String> startCommands = configuration.getStringList("startCommands");
List<String> endCommands = configuration.getStringList("endCommands");
Location minLocation = locationLoader.load(configuration, "minLocation.", file);
Location manLocation = locationLoader.load(configuration, "maxLocation.", file);
2024-02-22 11:44:35 +01:00
return new ZKoth(fileName, kothType, name, captureSeconds, minLocation, manLocation, startCommands, endCommands);
2024-02-22 11:33:50 +01:00
}
@Override
public void save(Koth object, YamlConfiguration configuration, String path) {
2024-02-22 11:44:35 +01:00
configuration.set("type", object.getKothType().name());
2024-02-22 11:33:50 +01:00
configuration.set("name", object.getName());
configuration.set("capture", object.getCaptureSeconds());
configuration.set("startCommands", object.getStartCommands());
configuration.set("endCommands", object.getEndCommands());
locationLoader.save(object.getMinLocation(), configuration, "minLocation.");
locationLoader.save(object.getMaxLocation(), configuration, "manLocation.");
}
}