Skip to content

Releases: Melocet/PlotMe

PlotMe v1.0.2

Choose a tag to compare

@Melocet Melocet released this 13 Jun 23:28

Highlights

Merge

  • Manual-only (auto-link disabled; AutoLinkPlots default false)
  • Configurable cap: merge-max + permission tiers plotme.merge.limit.4/6/9/16/*
  • Master switch: merge-enabled config flag
  • Grass top + claimed walls on merged road strip + pling sound
  • 4-plot cluster center cleanup (fillCenterIntersection)
  • /plotme info detects cluster from any block on a merged road
  • Cluster owner can build on merged-road strips (no OP needed)

Dispose

  • Restores road grid + walls with exact chunk-gen pattern parity (ROAD_ALT inlays at intersections, correct stripe layout)
  • mergedWith link removal persisted via markDirty
  • Cluster split into components; each component gets its own NW sign

Web-map (BlueMap / squaremap)

  • Facade + Impl class split — softdep classes never loaded when backing plugin is missing (no more NoClassDefFoundError on startup)
  • WebMapDispatcher fans PlotLoadEvent / PlotDisposeEvent to every hook

GUI (/plotme menu)

  • New Biome page with curated biome buttons
  • Biome page click applies to full plot + merged road strips + cluster center
  • Click sounds + chat confirmation matching the command flow

Signs

  • Cluster's outermost NW carries the colored Adventure sign; other members' signs removed
  • Line 1: GOLD+BOLD plot id · Line 3: AQUA owner · Line 4: GRAY cluster ids
  • Seller sign uses GREEN+BOLD "FOR SALE" palette

Chat

  • Centralized [PlotMe] prefix at the chat-send boundary
  • use-legacy-texts config: false&§ colored, true → strip color codes and use plain [PlotMe] prefix
  • Captions colorized (success &a, error &c, info &e/&b, neutral &7/&f)

Bug fixes

  • Plot id off-by-one fix at eastern/southern plot edges
  • /plotme on a fresh server: MsgNoPlotWorldSetup with /mv create hint instead of crash
  • /plotme auto on a racing-loaded world: guards getGenManager null
  • Defensive null checks on plots.get(world) cache

Other

  • Drop legacy Version=0.17.3 config key
  • Sync captions.yml with messages_en.properties (68 keys + 1 typo)
  • Cleanup: dead UUIDFetcher/NameFetcher, commented-out code, printStackTrace → logger, unused imports

Drop PlotMe.jar in your plugins/ folder and restart.

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.

v1.0.0 — Paper 1.21+ modernization

Choose a tag to compare

@Melocet Melocet released this 14 May 19:02

First release of the modernized PlotMe-Core fork. Single jar — the default
plot-world generator is now bundled, no companion plugin needed.

Compatibility

  • Paper 1.21.4+ (uses the modern ChunkGenerator API and BlockData throughout)
  • Java 21
  • Optional soft-deps: Vault, WorldEdit 7

Highlights

  • Java 1.7 → 21, Bukkit 1.8 → Paper 1.21.4, WorldEdit 6 → 7
  • McStats → bStats 3.0.2 (shaded + relocated)
  • Sponge platform, LWC, and the pre-1.13 schematic engine removed (~2500 lines of dead code)
  • PlotMe-DefaultGenerator merged in under src/generator/java; legacy abstract-generator dependency inlined
  • ChunkGenerator rewritten on Paper 1.21's generateNoise(WorldInfo, Random, int, int, ChunkData) API; vanilla noise/surface/caves/decorations/mobs/structures all suppressed for clean plot worlds
  • Configs accept both legacy "44:7" ids and modern Material names — old configs keep working
  • Owner/seller signs use OAK_WALL_SIGN with proper WallSign.setFacing(...) so they actually attach to walls

Setup

Drop the jar in plugins/, start once, then create a plot world:

/mv create plotworld normal -g PlotMe

or without Multiverse, add generator: PlotMe under the world in bukkit.yml.

Commands, permissions, and on-disk config layout are unchanged from upstream PlotMe.