8 releases, newest first.
SnApi.LEVEL
moves 10 -> 12 automatically on recompile; requiredApiLevel() was not edited.internal / velocity / libs).SnLib.jar is
attached to each release was removed.config.yml now follows the canonical three-tier frame shared by the whole Sn fleet, so the same option sits in the same place in every plugin.api-events moved out of the base block. It previously sat between debug and command, splitting a block the standard requires to be identical fleet-wide; it now sits directly after database.economy / gem-item (model), then shop (feature), then vault (integration), then notifications / sounds / leaderboard (feedback).debug now ships all three keys (enabled / level / categories) with comments, so the first /gems debug toggle no longer appends two uncommented keys to your config.Resource-only change: no Java touched, no key renamed or removed, no behavior change. Existing servers keep their current key order and simply receive the two new debug keys on boot.
Sections you own. The catalogue sections of the config files are now treated as your data instead of plugin schema: an entry you delete stays deleted across restarts and updates, and entries you add are never touched. This applies to:
droprates.yml -> entity-drops, block-drops, fish-drops, automated-dropsshops.yml -> categoriesupgrades.yml -> each levels tableThe section key itself is still schema, so deleting a whole block restores the shipped
defaults; write categories: {} to keep a section empty. Everything outside those
sections keeps receiving new settings on update as before.
shops.yml is no longer frozen. It was previously seeded once and never updated
again, which was the only way to keep your deletions. It is now a normally managed file,
so it finally receives new settings, while the marker above keeps your categories and
rewards exactly as you left them.
Fixes a boot warning. The secondary mounts of shops.yml in the GUI and command
layers were re-registering the file with the old mode, which SnLib ignores while logging
a warning on every startup. Both now match the main mount.
/eg help lists
/eg ... instead of /gems ....commands block is added to lang/messages_en.yml on first boot,
holding every command description and argument label, so the generated help is
translatable too. Edit a value and it sticks; delete one and the default returns.Requires SnLib 1.15.0 or newer (API level 10). The matching SnLib.jar is attached
below. On an older SnLib the plugin reports the mismatch and disables itself cleanly.
GemService.save (the SnLib PlayerDataCache saver) no longer calls .join() on the main thread. The saver runs on the caller thread, which is the main thread during SnLib's quit/kick cleanup, so joining the upsert stalled the server on every player quit and tripped SnLib's "SnFuture.join() on the main thread" warning..exceptionally(...). Shutdown durability is unchanged - SnLib's ordered teardown flush (saveAll + db fence) already fences the pending writes.loadFromDb's join is untouched; it runs on SnLib's async cache-loader pool and is safe there.gem-item.redeem-all toggle (default on): one click redeems EVERY gem stack in your inventory, with an optional gem-item.redeem-all-limit item cap. Off = the held stack only, as before.redeem-blocked-on container still opens it./gems withdraw 40 now mints ONE gem item worth 40 (shown in its lore), instead of 40 gem items. withdraw-limit and max-give are retired - the item no longer floods inventories, so the caps guard nothing./gems admin give always hands a physical valued gem; /gems admin add|set|remove are the balance verbs. The -item flag is gone.auto-redeem: false) mint one valued gem worth the whole award.<amount> instead of 2147483647 / 9.99E17, and every amount accepts k/m/b suffixes (/gems pay Steve 1.5k).snelementalgems.gemdrop.*) replaced by server-wide drop-sources toggles in droprates.yml (entity/block/fish/automated).allow-creative toggle in droprates.yml (default off) replaces the hardcoded creative-mode guard.lore: LIST in shops.yml (one line per entry, own colours), rendered as real lore lines in the shop tile and on delivered items. A legacy scalar description still reads as a single line.SnElementalGemsAPI.createValuedGemItem(double value) added (additions-only).Bundle licensing: paste your bundle key into the shared plugins/.Sn-License/license.yml. Requires SnLib in plugins/.
Adds the public developer API (API_VERSION 1.0.0): ServicesManager facade + cancellable events + change notification. Requires SnLib in plugins/.
Gem economy plugin. Requires SnLib in plugins/. Drops, shop, upgrades, withdraw, pay, leaderboards, Vault + PlaceholderAPI.