added integer setting

This commit is contained in:
2025-04-09 16:50:29 +02:00
parent b0414ae6ab
commit ca99e6cfef
4 changed files with 113 additions and 25 deletions

View File

@ -2,7 +2,6 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder;
import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.Location;
@ -19,11 +18,7 @@ public class ShrinkingBorderListener extends ApplianceListener<ShrinkingBorder>
if(this.isSave(event.getTo())) return;
int remainingDays = this.daysUntilBorder(event.getTo());
SelectSetting.Options.Option setting = Settings.instance().getSetting(event.getPlayer(), Settings.Key.BorderWarning, SelectSetting.Options.Option.class);
int maxDaysShown = 0;
if(setting.is(ShrinkingBorderSetting.oneDay)) maxDaysShown = 1;
if(setting.is(ShrinkingBorderSetting.twoDays)) maxDaysShown = 2;
if(setting.is(ShrinkingBorderSetting.threeDays)) maxDaysShown = 3;
int maxDaysShown = Settings.instance().getSetting(event.getPlayer(), Settings.Key.BorderWarning, Integer.class);
if(remainingDays > maxDaysShown) return;

View File

@ -3,24 +3,16 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.shrinkingBorder;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.SelectSetting;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.IntegerSetting;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import java.util.List;
import java.util.Locale;
public class ShrinkingBorderSetting extends SelectSetting implements CategorizedSetting {
private static final String namespace = ShrinkingBorderSetting.class.getSimpleName().toLowerCase(Locale.ROOT);
public static Options.Option noWarning = new Options.Option("Keine Warnung", new NamespacedKey(namespace, "disabled"));
public static Options.Option oneDay = new Options.Option("Ein Tag", new NamespacedKey(namespace, "one"));
public static Options.Option twoDays = new Options.Option("Zwei Tage", new NamespacedKey(namespace, "two"));
public static Options.Option threeDays = new Options.Option("Drei Tage", new NamespacedKey(namespace, "three"));
public class ShrinkingBorderSetting extends IntegerSetting implements CategorizedSetting {
public ShrinkingBorderSetting() {
super(
Settings.Key.BorderWarning,
new Options(List.of(noWarning, oneDay, twoDays, threeDays))
List.of(0, 1, 2, 3)
);
}
@ -45,7 +37,7 @@ public class ShrinkingBorderSetting extends SelectSetting implements Categorized
}
@Override
protected Options.Option defaultValue() {
return oneDay;
protected Integer defaultValue() {
return 1;
}
}