GlymeraPlots

Claim and protect areas — block protection with trust system and teleport.

File Details

GlymeraPlots-5.0.0.jar

  • R
  • Apr 13, 2026
  • 43.64 KB
  • 48
  • Early Access

File Name

GlymeraPlots-5.0.0.jar

Supported Versions

  • Early Access

GlymeraPlots - Changelog

v5.0.0 (2026-04-13)

Reworked: Plot Border Display (DebugShape)

  • /gp show is now a toggle instead of a 30-second timer. Type it once to turn the border on, type it again to turn it off.
  • Replaced particles with DebugShape.Cube: The old Candle_Fire particle system (spawned every 5 blocks, refreshed every 4 seconds) has been completely replaced with DisplayDebug packets using DebugShape.Cube - the same technology as GlymeraChunkGrid.
  • Purple border lines: 4 horizontal edges scaled to the full plot side length (101 blocks at default radius), plus 4 vertical pillars (20 blocks tall) at the corners. Color matches the Glymera theme (RGB 0.78, 0.36, 1.0) at 60% opacity.
  • Y-position follows the player: The border stays at your current height instead of being locked to where you stood when you typed the command.
  • No distance limit: DebugShapes are not affected by CullDistance. The full plot border is visible from anywhere, unlike the old particles which were only visible within ~10 blocks.
  • No flickering: 500ms refresh interval with 2s display time. Shapes overlap smoothly.
  • Minimal network traffic: Only 8 shapes per refresh cycle (4 edges + 4 pillars), down from 80+ particle spawns.

Implementation Details

  • New fields: showPlayers (ConcurrentHashMap keyset), showPlayerPlots (ConcurrentHashMap), showRenderTask (ScheduledFuture)
  • Render task runs on HytaleServer.SCHEDULED_EXECUTOR at 500ms interval
  • Player position read via PlayerRef.getTransform() (no world thread needed)
  • No ClearDebugShapes in render loop to avoid clearing shapes from other plugins (e.g. GlymeraChunkGrid). Shapes auto-expire after DISPLAY_TIME (2s). ClearDebugShapes only sent on toggle-off and shutdown.
  • 4x4 column-major transformation matrix per shape: translation = center position, scale = dimensions (sideLen x LINE_THICKNESS x LINE_THICKNESS for edges, LINE_THICKNESS x PILLAR_HEIGHT x LINE_THICKNESS for pillars)
  • Plot boundary calculated as: minX = centerX - radius, maxX = centerX + radius + 1 (block at centerX+radius is still inside the plot, border is at its outer edge)

Removed

  • SpawnParticleSystem / Candle_Fire particle rendering
  • Position import (no longer needed)
  • activeShowTasks map (replaced by showPlayers + showPlayerPlots)
  • 30-second auto-cancel timer
  • 4-second particle respawn task

v4.0.0 (2026-04-06)

New Features

  • Per-Plot Weather Control: Plot owners can set custom weather on their plots via /gp weather <type>. 21 short aliases (sunny, rain, storm, snow, thunder, etc.) plus all 87 native Hytale weather types supported. Weather applies to ALL players entering the plot and automatically resets to natural weather when leaving.
  • World Whitelist: New allowedWorlds config option. Empty list = all worlds allowed (default). Add world names to restrict where players can claim plots.
  • Config Guide Texts: Config file now includes _guide_* fields explaining each setting directly in the JSON.

Weather Implementation

  • Uses PacketAdapters (outbound PacketFilter) to intercept native UpdateWeather packets - no fighting with the native WeatherSystem
  • Position scanner (1s interval) detects plot entry/exit
  • Thread-bypass pattern (same as GlymeraHUD) ensures own packets pass through the filter
  • Weather names stored persistently in plots.json, indices resolved lazily after server startup (fixes asset map not-ready-at-boot issue)

Bug Fixes

  • Config not overwritten on shutdown: Removed saveConfig() from shutdown() to prevent manual config edits (e.g. whitelist changes) from being overwritten by in-memory values when the server stops.
  • Weather survives restarts: Weather indices are now resolved lazily via ensureWeatherIndex() instead of during loadPlots(), fixing the issue where Weather.getAssetMap() was not yet initialized at plugin setup time.

Commands Added

  • /gp weather <type> - Set plot weather (owner only)
  • /gp weather clear (also: reset, off, none) - Remove weather override
  • /gp weather list - Show available weather types with aliases

Config Changes

  • Added: allowedWorlds (List, default: empty)
  • Added: _guide_* explanation fields for all settings

v3.0.0 (2026-03-17)

  • Plot border visualization with /gp show (candle fire particles, 30 seconds)
  • Test-protect mode via /gp testprotect
  • Cross-world teleport via /gpt <number>

v2.0.0 (2026-03-17)

  • ECS-based protection (BreakBlock, PlaceBlock, DamageBlock, UseBlock, Damage)
  • PvP, PvE and EvP protection on plots
  • Trust system (/gp trust, /gp untrust)
  • Plot info and list commands

v1.0.0 (2026-02-19)

  • Initial release - Basic plot claiming and block protection