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 @Override
public @NonNull <T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy has(@NonNull Flag<T> flag) { public @NonNull <T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy has(@NonNull Flag<T> flag) {
if (flag.oneOf(Flag.ITEMS) && Core.getVersion() < 20) { if (flag.oneOf(Flag.COLOR, Flag.TNT, Flag.FIRE, Flag.FREEZE, Flag.PROTECT, Flag.NO_GRAVITY, Flag.CHANGED)) {
return RegionFlagPolicy.NOT_APPLICABLE; return RegionFlagPolicy.WRITABLE;
}
if (flag.oneOf(Flag.ITEMS) && Core.getVersion() >= 20) {
return RegionFlagPolicy.WRITABLE;
} }
if (flag.oneOf(Flag.TESTBLOCK)) { if (flag.oneOf(Flag.TESTBLOCK)) {
return RegionFlagPolicy.READ_ONLY; return RegionFlagPolicy.READ_ONLY;
} }
return RegionFlagPolicy.WRITABLE; return RegionFlagPolicy.NOT_APPLICABLE;
} }
@Override @Override
@@ -42,16 +42,16 @@ public class FixedGlobalFlagStorage implements FlagStorage {
@Override @Override
public @NonNull <T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy has(@NonNull Flag<T> flag) { 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)) { if (flag.oneOf(Flag.COLOR)) {
return RegionFlagPolicy.READ_ONLY; 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 @Override