54 lines
2.4 KiB
Java
54 lines
2.4 KiB
Java
package dev.viper.eventengine.config;
|
|
|
|
import dev.viper.eventengine.EventEngine;
|
|
import dev.viper.eventengine.util.ColorUtil;
|
|
import dev.viper.eventengine.model.EventCategory;
|
|
import dev.viper.eventengine.model.EventDefinition;
|
|
import org.bukkit.configuration.ConfigurationSection;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Liest den "event-overrides" Block aus config.yml und
|
|
* überschreibt die Defaults eingebauter EventDefinitions.
|
|
*/
|
|
public class EventOverrideLoader {
|
|
|
|
private final EventEngine plugin;
|
|
|
|
public EventOverrideLoader(EventEngine plugin) {
|
|
this.plugin = plugin;
|
|
}
|
|
|
|
public void apply(EventDefinition def) {
|
|
ConfigurationSection overrides = plugin.getConfigManager()
|
|
.getMainConfig().getConfigurationSection("event-overrides");
|
|
if (overrides == null) return;
|
|
|
|
ConfigurationSection sec = overrides.getConfigurationSection(def.getId());
|
|
if (sec == null) return;
|
|
|
|
if (sec.contains("display-name")) def.setDisplayName(sec.getString("display-name"));
|
|
if (sec.contains("description")) def.setDescription(sec.getString("description"));
|
|
if (sec.contains("duration-seconds")) def.setDurationSeconds(sec.getInt("duration-seconds"));
|
|
if (sec.contains("min-players")) def.setMinPlayers(sec.getInt("min-players"));
|
|
if (sec.contains("max-players")) def.setMaxPlayers(sec.getInt("max-players"));
|
|
if (sec.contains("announcement")) def.setAnnouncement(ColorUtil.color(sec.getString("announcement")));
|
|
if (sec.contains("in-rotation")) def.setInRotation(sec.getBoolean("in-rotation"));
|
|
if (sec.contains("weight")) def.setWeight(sec.getInt("weight"));
|
|
if (sec.contains("start-commands")) def.setStartCommands(sec.getStringList("start-commands"));
|
|
if (sec.contains("end-commands")) def.setEndCommands(sec.getStringList("end-commands"));
|
|
if (sec.contains("rewards")) def.setRewards(sec.getStringList("rewards"));
|
|
if (sec.contains("category")) {
|
|
try { def.setCategory(EventCategory.valueOf(sec.getString("category").toUpperCase())); }
|
|
catch (Exception ignored) {}
|
|
}
|
|
ConfigurationSection settings = sec.getConfigurationSection("settings");
|
|
if (settings != null) {
|
|
for (String key : settings.getKeys(false)) {
|
|
def.setSetting(key, settings.get(key));
|
|
}
|
|
}
|
|
}
|
|
}
|