File Details
GlymeraObelisk-2.0.0.jar
- R
- May 19, 2026
- 81.01 KB
- 46
- Early Access
File Name
GlymeraObelisk-2.0.0.jar
Supported Versions
- Early Access
GlymeraObelisk - Changelog
v2.0.0 - 2026-05-19
Bug Fixes
- Obelisk no longer fails to spawn on a fresh install: Placing the Obelisk block item on a freshly installed server used to result in nothing happening — only the single gold-brick marker block stayed where the item was used, and the rest of the 17-block structure never appeared. Reported by a CurseForge customer. The plugin now ships a built-in default template inside the JAR and writes it out to the data directory on first start, so the structure spawns correctly out of the box.
Root Cause
- The placement logic in
placeObelisk()returns silently when the in-memory template has no blocks:if (blocks.isEmpty()) return;. The template is loaded from<dataDirectory>/template.json, which v1.0.0 expected an OP to create by running/obelisk capture <halfWidth> <height>against a manually built sample obelisk. - On the development server this file existed (Marc captured it once during plugin development), so the bug was invisible there. On a customer's server the file was missing, no error was logged, the
PlaceBlockEventsystem fired normally, the scheduledplaceObelisk()call exited immediately, and the player just saw the placed marker block with no further structure.
Changes
- Default template shipped inside the JAR: A
default-template.json(the 17-block gold-brick obelisk layout matching the header comment in the source) now lives in the JAR root as a Java resource. loadTemplate()extended: If<dataDirectory>/template.jsonis missing at plugin startup, the plugin now extractsdefault-template.jsonfrom the classpath into the data directory before parsing it. If the file already exists, it is loaded as before — admins keep any customizations they made via/obelisk capture.- No behavioural change for existing installs: Servers that already have a
template.json(whether captured by an OP or copied in manually) load that file unchanged. The extraction step only runs when the file is genuinely missing. - Header comment + manifest bumped to v2.0.0.
Migration
- No migration required. Existing
template.json,obelisks.json, andconfig.jsonfiles are read as before. Already-placed obelisks remain registered and continue to fire.
Coverage
- Verified on Dev: moved the existing
template.jsonaside, restarted the server, observed the plugin re-create it from the JAR resource. The extracted file was byte-identical to the original, and the previously placed obelisks on Dev loaded and functioned without errors.
v1.0.0 - 2026-05-18
Initial release.
Features
- Multi-block placement: a single Obelisk item spawns a 17-block gold-brick structure (7 ornate column + 4 sloped roof base + 4 cross-arm beams + pillar base + tip)
- 3D cube targeting with configurable Chebyshev half-edge radius (default 16, total 33x33x33 blocks)
- Attitude-aware filtering:
Attitude.HOSTILEcreatures (zombies, skeletons, troops...) - always targetedAttitude.NEUTRALcreatures - targeted only whenattackNeutral=trueAND theirAttitudeGroupis not "Prey" or "Livestock"- Peaceful animals (armadillo, rabbit, sheep, chicken, cow, pig...) are never targeted
- Custom particle: golden round
ObeliskBolt(usesBall6.png, square-scaled, billboard) chains from tip to target - Custom sounds:
SFX_Obelisk_Shot- laser-flash at the obelisk tipSFX_Obelisk_Impact- explosion at the target- 3D positional attenuation (1 block full → 20 block silent)
- Owner protection via
DamageBlockEvent+BreakBlockEvent(only owner or OP can damage or break) - Item-on-break: owner/OP breaking returns 1 Obelisk to their hotbar (with
/givefallback) - Workbench recipe: 3x
Ingredient_Life_Essence_Concentrated+ 5xIngredient_Bar_Gold, 5s, toggleable viarecipesEnabled - Block physics: every placed block of the structure is marked deco via
BlockPhysics.markDecoso the cross-arms don't fall when neighbours change - Atomic persistence:
obelisks.jsonwritten via tmp + atomic rename
Commands
/obelisk spawn(OP) - place an obelisk at your position/obelisk remove(OP) - remove the nearest obelisk in this world/obelisk list- count of obelisks (yours + total)/obelisk capture <halfWidth> <height>(OP) - rebuild the placement template from blocks around you/obelisk captureat <x> <y> <z> <halfWidth> <height>(OP) - capture from explicit coordinates
Config
guardRadius(default 16) - cube half-edge in blocksattackNeutral(default true) - also target provoke-able predatorsfireTickMs(default 1000) - scan + fire intervaldamage(default 50.0) - HP per shotprojectileSpeed(default 50.0) - blocks/s, controls impact delay onlyrecipesEnabled(default true) - allow the Workbench recipe

