Skip to content

v1.0.1 — /plotme clear & /plotme auto fixes

Choose a tag to compare

@Melocet Melocet released this 14 May 19:19

Bug-fix release for v1.0.0. Three command paths were broken on Paper 1.21 because of API tightening that the 2019 codebase had no way to anticipate.

Fixes

/plotme clear

  • BukkitUtil.adapt(Entity) now returns BukkitPlayer for players, so the IPlayer guard in clearEntities() actually matches and we don't try to Entity#remove() a player (UOE on modern Paper).
  • ChunkEntry no longer calls World#regenerateChunk — Paper 1.21 stubbed that method to throw UOE. The plot interior is now reset by walking the blocks directly: fill block below road, plot-floor block at road height, air above. Border walls/roads are left untouched.

/plotme auto

  • Teleport and the follow-up message are now wrapped in the sync runTask that already created the plot. Previously they ran on the async scheduler worker, which Paper rejects for PlayerTeleportEvent.

Defense-in-depth

  • BukkitPlayer#remove() and BukkitEntity#remove() are no-ops when the entity is a player, so any future caller slipping past the guard still doesn't crash the command.

No behavioral changes to commands, permissions, or the on-disk config layout.

Compatibility

  • Paper 1.21.4+, Java 21
  • Optional soft-deps: Vault, WorldEdit 7

Drop the jar into plugins/, restart the server (or /reload confirm if you must), and re-test /plotme clear and /plotme auto.