Skip to content

Fix: Separate end world spawn protection radius from nether config#2868

Merged
tastybento merged 2 commits intodevelopfrom
copilot/fix-bskyblock-end-world-protection
Mar 14, 2026
Merged

Fix: Separate end world spawn protection radius from nether config#2868
tastybento merged 2 commits intodevelopfrom
copilot/fix-bskyblock-end-world-protection

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 14, 2026

StandardSpawnProtectionListener used getNetherSpawnRadius() for both nether and end worlds, causing vanilla end worlds to inherit nether spawn protection (e.g. 25 blocks) with no independent control.

Changes

  • WorldSettings interface: Added getEndSpawnRadius() default method returning 0 — safe default (no end spawn protection), backward-compatible with existing addon implementations
  • IslandWorldManager: Added getEndSpawnRadius(World) delegating to WorldSettings
  • StandardSpawnProtectionListener.atSpawn():
    • Uses getEndSpawnRadius() for THE_END, getNetherSpawnRadius() for NETHER
    • Checks isMakeEndPortals() for end worlds (previously only isMakeNetherPortals() was checked for both)
  • noAction(): Added isMakeEndPortals() bypass condition for end worlds, combined with isEndIslands() check

Addon developers can now override getEndSpawnRadius() to configure end spawn protection independently:

@Override
public int getEndSpawnRadius() {
    return 25; // protect obsidian platform area
}
Original prompt

This section details on the original issue you should resolve

<issue_title>Spawn protection in bskyblock normal end world</issue_title>
<issue_description>### Expected behavior

No spawn protection on bskyblock end world

Observed/Actual behavior

Spawn protection of 25 blocks on main bskyblock end island using a normal end world

Steps/models to reproduce

Create a normal end vanilla world as part of setting up bskyblock plugin, there is spawn protection of 25 blocks meaning non op players cannot place blocks to escape the obsidian platform

BentoBox version

23:54:15 [Server] INFO Running PAPER 1.18.1.
01.02 23:54:15 [Server] INFO BentoBox version: 1.19.0
01.02 23:54:15 [Server] INFO Database: JSON
01.02 23:54:15 [Server] INFO Loaded Game Worlds:
01.02 23:54:15 [Server] INFO bskyblock_world (BSkyBlock): Overworld, Nether, The End*
01.02 23:54:15 [Server] INFO Loaded Addons:
01.02 23:54:15 [Server] INFO Bank 1.4.0 (ENABLED)
01.02 23:54:15 [Server] INFO Biomes 1.14.0 (ENABLED)
01.02 23:54:15 [Server] INFO BSkyBlock 1.15.2 (ENABLED)
01.02 23:54:15 [Server] INFO Challenges 0.8.4 (ENABLED)
01.02 23:54:15 [Server] INFO ControlPanel 1.13.0 (ENABLED)
01.02 23:54:15 [Server] INFO DimensionalTrees 1.6.0 (ENABLED)
01.02 23:54:15 [Server] INFO ExtraMobs 1.12 (ENABLED)
01.02 23:54:15 [Server] INFO Level 2.9.0 (ENABLED)
01.02 23:54:15 [Server] INFO Limits 1.19.0 (ENABLED)
01.02 23:54:15 [Server] INFO TwerkingForTrees 1.4.3 (ENABLED)
01.02 23:54:15 [Server] INFO Warps 1.11.2 (ENABLED)
01.02 23:54:19 [Server] INFO CONSOLE issued server command: /list
01.02 23:54:19 [Server] INFO There are 2 out of maximum 100 players online.
01.02 23:54:19 [Server] INFO default: Master_Wright, Pydermandy
01.02 23:54:50 [Server] INFO Master_Wright was fireballed by Blaze
01.02 23:55:05 [Server] INFO CONSOLE issued server command: /list
01.02 23:55:05 [Server] INFO There are 2 out of maximum 100 players online.
01.02 23:55:05 [Server] INFO default: Master_Wright, Pydermandy
01.02 23:55:50 [Server] INFO CONSOLE issued server command: /list
01.02 23:55:50 [Server] INFO There are 2 out of maximum 100 players online.
01.02 23:55:50 [Server] INFO default: Master_Wright, Pydermandy
01.02 23:56:05 [Multicraft] Auto-saving world...
01.02 23:56:05 [Server] INFO Saving is already turned on
01.02 23:56:05 [Server] INFO Saving the game (this may take a moment!)
01.02 23:56:05 [Server] INFO Saved the game
01.02 23:56:36 [Server] INFO CONSOLE issued server command: /list
01.02 23:56:36 [Server] INFO There are 2 out of maximum 100 players online.
01.02 23:56:36 [Server] INFO default: Master_Wright, Pydermandy
01.02 23:57:21 [Server] INFO CONSOLE issued server command: /list
01.02 23:57:21 [Server] INFO There are 2 out of maximum 100 players online.
01.02 23:57:21 [Server] INFO default: Master_Wright, Pydermandy

Plugin list

01.02 23:58:54 [Server] INFO Plugins (27): ArmorStandTools, BentoBox, ChatColor2, ClearLag, CoreProtect, DropHeads, Essentials, EssentialsSpawn, FastLeafDecay, floodgate, Geyser-Spigot, Graves, InstaMineDeepslate, InventoryRollbackPlus, LuckPerms, Multiverse-Core, Multiverse-Inventories, Multiverse-NetherPortals, Multiverse-Portals, Parkour, PvPManager, SuperVanish, TreeFeller, Vault, VoidGen, WorldEdit, WorldGuard

Other

In the bskyblock config file under the nether section I changed the spawn protection spawn-radius from 25 to 0 this removed the spawn protection in the end aswel. The bug seems to be in the bskyblock config file. The nether section also controls the end world settings. File plugins/bentobox/add-ons/bskyblock/config</issue_description>

<agent_instructions>Check if this is still an issue. Add a config for vanilla end spawn area protection if required.</agent_instructions>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

- Add getEndSpawnRadius() default method to WorldSettings interface (returns 0)
- Add getEndSpawnRadius() to IslandWorldManager
- Update StandardSpawnProtectionListener to use end-specific radius and end portal check
- Combine end-world noAction checks for clarity
- Add tests for end world spawn protection behavior

Co-authored-by: tastybento <4407265+tastybento@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix spawn protection in bskyblock normal end world Fix: Separate end world spawn protection radius from nether config Mar 14, 2026
Copilot AI requested a review from tastybento March 14, 2026 21:37
@tastybento tastybento marked this pull request as ready for review March 14, 2026 21:40
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
B Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@tastybento tastybento merged commit de8b159 into develop Mar 14, 2026
2 of 3 checks passed
@tastybento tastybento deleted the copilot/fix-bskyblock-end-world-protection branch March 14, 2026 21:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Spawn protection in bskyblock normal end world

2 participants