diff --git a/src/main/java/com/bgsoftware/superiorskyblock/island/SIsland.java b/src/main/java/com/bgsoftware/superiorskyblock/island/SIsland.java index 5a77cabc4..342c88e1e 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/island/SIsland.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/island/SIsland.java @@ -1443,6 +1443,8 @@ public int getIslandSize() { public void setIslandSize(int islandSize) { islandSize = Math.max(1, islandSize); + Preconditions.checkArgument(islandSize <= plugin.getSettings().getMaxIslandSize(), "Border size " + islandSize + " cannot be larger than max island size: " + plugin.getSettings().getMaxIslandSize()); + Log.debug(Debug.SET_SIZE, "SIsland", "setIslandSize", owner.getName(), islandSize); boolean cropGrowthEnabled = BuiltinModules.UPGRADES.isUpgradeTypeEnabled(UpgradeTypeCropGrowth.class); diff --git a/src/main/java/com/bgsoftware/superiorskyblock/module/upgrades/UpgradesModule.java b/src/main/java/com/bgsoftware/superiorskyblock/module/upgrades/UpgradesModule.java index 7f4271e96..531821c3d 100644 --- a/src/main/java/com/bgsoftware/superiorskyblock/module/upgrades/UpgradesModule.java +++ b/src/main/java/com/bgsoftware/superiorskyblock/module/upgrades/UpgradesModule.java @@ -204,6 +204,12 @@ private void loadUpgradeLevelFromSection(SuperiorSkyblockPlugin plugin, SUpgrade Value warpsLimit = Value.syncedFixed(levelSection.getInt("warps-limit", -1)); Value coopLimit = Value.syncedFixed(levelSection.getInt("coop-limit", -1)); Value borderSize = Value.syncedFixed(levelSection.getInt("border-size", -1)); + + if (borderSize.get() > plugin.getSettings().getMaxIslandSize()) { + Log.warn("Upgrade by name ", upgrade.getName(), " (level ", level, ") has illegal border-size, skipping..."); + return; + } + Value bankLimit = Value.syncedFixed(new BigDecimal(levelSection.getString("bank-limit", "-1"))); KeyMap blockLimits = KeyMapImpl.createHashMap(); if (levelSection.contains("block-limits")) {