Skip to content

Commit bdc2067

Browse files
tastybentoclaude
andcommitted
Fix spurious defaultRank warnings for PVP setting flags
The minimumRank validation was clamping SETTING flags that use -1 (disabled) as their defaultRank. Since -1 is a valid disabled state for SETTING/WORLD_SETTING flags (Island.isAllowed checks >= 0), restrict the validation to PROTECTION flags only. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5548502 commit bdc2067

File tree

2 files changed

+17
-2
lines changed
  • src

2 files changed

+17
-2
lines changed

src/main/java/world/bentobox/bentobox/api/flags/Flag.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -797,8 +797,10 @@ public Builder hideWhen(HideWhen hideWhen) {
797797
* @return Flag
798798
*/
799799
public Flag build() {
800-
// Ensure the default rank is not below the minimum selectable rank
801-
if (defaultRank < minimumRank) {
800+
// Ensure the default rank is not below the minimum selectable rank.
801+
// Only applies to PROTECTION flags — SETTING/WORLD_SETTING flags use -1
802+
// as a valid "disabled" state (Island.isAllowed checks >= 0).
803+
if (type == Type.PROTECTION && defaultRank < minimumRank) {
802804
BentoBox.getInstance().logWarning("Flag " + id + " defaultRank (" + defaultRank
803805
+ ") is below minimumRank (" + minimumRank + "); raising defaultRank to minimumRank.");
804806
defaultRank = minimumRank;

src/test/java/world/bentobox/bentobox/api/flags/FlagTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -450,4 +450,17 @@ void testDefaultRankClampedToMinimumRank() {
450450
.build();
451451
assertEquals(RanksManager.MEMBER_RANK, flag.getDefaultRank());
452452
}
453+
454+
/**
455+
* SETTING flags should allow -1 (disabled) as defaultRank without clamping,
456+
* since Island.isAllowed() uses >= 0 as the enabled threshold.
457+
*/
458+
@Test
459+
void testSettingFlagAllowsNegativeDefaultRank() {
460+
Flag flag = new Flag.Builder("pvp_test", Material.ARROW)
461+
.type(Flag.Type.SETTING)
462+
.defaultRank(-1)
463+
.build();
464+
assertEquals(-1, flag.getDefaultRank());
465+
}
453466
}

0 commit comments

Comments
 (0)