Rework FixedFlagStorage and FixedGlobalFlagStorage to not be sensitive on adding a new Flag

This commit is contained in:
2025-08-02 08:01:25 +02:00
parent 144975d977
commit bc371df796
2 changed files with 13 additions and 10 deletions
@@ -41,13 +41,16 @@ public class FixedFlagStorage implements FlagStorage {
@Override
public @NonNull <T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy has(@NonNull Flag<T> flag) {
if (flag.oneOf(Flag.ITEMS) && Core.getVersion() < 20) {
return RegionFlagPolicy.NOT_APPLICABLE;
if (flag.oneOf(Flag.COLOR, Flag.TNT, Flag.FIRE, Flag.FREEZE, Flag.PROTECT, Flag.NO_GRAVITY, Flag.CHANGED)) {
return RegionFlagPolicy.WRITABLE;
}
if (flag.oneOf(Flag.ITEMS) && Core.getVersion() >= 20) {
return RegionFlagPolicy.WRITABLE;
}
if (flag.oneOf(Flag.TESTBLOCK)) {
return RegionFlagPolicy.READ_ONLY;
}
return RegionFlagPolicy.WRITABLE;
return RegionFlagPolicy.NOT_APPLICABLE;
}
@Override
@@ -42,16 +42,16 @@ public class FixedGlobalFlagStorage implements FlagStorage {
@Override
public @NonNull <T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy has(@NonNull Flag<T> flag) {
if (flag.oneOf(Flag.PROTECT, Flag.TESTBLOCK, Flag.NO_GRAVITY, Flag.CHANGED)) {
return RegionFlagPolicy.NOT_APPLICABLE;
}
if (flag.oneOf(Flag.ITEMS) && Core.getVersion() < 20) {
return RegionFlagPolicy.NOT_APPLICABLE;
}
if (flag.oneOf(Flag.COLOR)) {
return RegionFlagPolicy.READ_ONLY;
}
return RegionFlagPolicy.WRITABLE;
if (flag.oneOf(Flag.ITEMS) && Core.getVersion() >= 20) {
return RegionFlagPolicy.WRITABLE;
}
if (flag.oneOf(Flag.TNT, Flag.FIRE, Flag.FREEZE)) {
return RegionFlagPolicy.WRITABLE;
}
return RegionFlagPolicy.NOT_APPLICABLE;
}
@Override