added option to disable specific appliances

This commit is contained in:
Elias Müller 2024-09-24 18:31:48 +02:00
parent aaad9fe7d8
commit 7a97b1595e
3 changed files with 14 additions and 2 deletions

View File

@ -39,6 +39,7 @@ import org.bukkit.plugin.java.JavaPlugin;
import java.lang.reflect.ParameterizedType; import java.lang.reflect.ParameterizedType;
import java.util.List; import java.util.List;
import java.util.logging.Logger; import java.util.logging.Logger;
import java.util.stream.Stream;
public final class Main extends JavaPlugin { public final class Main extends JavaPlugin {
private static Main instance; private static Main instance;
@ -54,7 +55,8 @@ public final class Main extends JavaPlugin {
saveDefaultConfig(); saveDefaultConfig();
Configuration.readConfig(); Configuration.readConfig();
appliances = List.of( List<String> disabledAppliances = Configuration.pluginConfig.getStringList("disabledAppliances");
this.appliances = Stream.of(
new AdminMarker(), new AdminMarker(),
new WorldMuseum(), new WorldMuseum(),
new TitleClear(), new TitleClear(),
@ -84,7 +86,10 @@ public final class Main extends JavaPlugin {
new KnockDoor(), new KnockDoor(),
new PackSelect(), new PackSelect(),
new GlowingBerries() new GlowingBerries()
); )
.filter(appliance -> disabledAppliances.stream()
.noneMatch(s -> s.equalsIgnoreCase(appliance.getClass().getSimpleName())))
.toList();
Main.logger.info("Loading appliances..."); Main.logger.info("Loading appliances...");
appliances.forEach(appliance -> { appliances.forEach(appliance -> {

View File

@ -1,6 +1,7 @@
package eu.mhsl.craftattack.spawn.config; package eu.mhsl.craftattack.spawn.config;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.spawn.Main;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
@ -10,9 +11,11 @@ public class Configuration {
private static final String configName = "config.yml"; private static final String configName = "config.yml";
private static final File configFile = new File(Main.instance().getDataFolder().getAbsolutePath() + "/" + configName); private static final File configFile = new File(Main.instance().getDataFolder().getAbsolutePath() + "/" + configName);
public static FileConfiguration cfg; public static FileConfiguration cfg;
public static ConfigurationSection pluginConfig;
public static void readConfig() { public static void readConfig() {
cfg = YamlConfiguration.loadConfiguration(configFile); cfg = YamlConfiguration.loadConfiguration(configFile);
pluginConfig = cfg.getConfigurationSection("plugin");
} }
public static void saveChanges() { public static void saveChanges() {

View File

@ -1,3 +1,7 @@
plugin:
disabledAppliances:
- NameOfApplianceClass
worldMuseum: worldMuseum:
uuid: uuid:
connect-server-name: worldmuseum connect-server-name: worldmuseum