Allium icon

Allium -----

A modern, secure Essentials solution



v0.1.6a: Staff Party Bar, Local Chat, ModGuard, Animated Names, and Release Automation
Allium v0.1.6a

Wiki: https://github.com/castledking/Allium/wiki

Highlights
- Chat channels are now split between global and local - /local and /l toggle radius chat, while /global and /g return players to global chat.
- Staff locator mode - /locatorbar now toggles a staff mode that can show every visible player on the party locator bar, regardless of party radius.
- ModGuard - new configurable client-mod detection framework with brand, plugin-channel, Forge/FML handshake, evidence logs, alerts, kicks, bypasses, and optional translation probes.
- Animated gradient names - %gradientdisplayname% can now be converted into MiniMessage gradient phase output for players with allium.gradientname.
- Item Renamer - new single-use custom item that grants temporary /rename access and is consumed after a successful rename.
- Safer End Gateway teleports - gateway/ender-pearl teleports near the main End island now search for a safe same-level landing instead of relying on vanilla highest-block behavior.
- Release automation - new GitHub Actions and .release tooling for Discord, Modrinth, and Spigot release publishing.

Chat Channels
- Added the dedicated local chat channel config at chat.channels.local-channel.
- Local chat defaults to a 100 block radius.
- Local chat defaults to &8[&eLocal&8] <prefix> &a%allium_nickname%&f: &f<message>.
- Local chat is excluded from Discord relay by default.
- Global channel aliases are now only g and global; local and l no longer point at global chat.
- /local and /l toggle between local chat and the default/global write channel.
- /global and /g always switch the player back to the default/global write channel.
- /channel join <channel> [read|write] still supports explicit read/write channel selection.
- Channel state continues to save per player in player-channels.yml.

DiscordSRV Integration
- Discord inbound messages are routed through Allium's channel system.
- Discord messages now use Allium channel formats only for explicitly configured Allium channel formats.
- Default or unmapped DiscordSRV channels fall back to DiscordSRV's native message format.
- Discord role alias, role color, username, effective name, channel, reply snippet, and message fields now pass through Discord emoji parsing.
- Discord inbound messages are mirrored to console because Allium cancels DiscordSRV's normal preprocess/postprocess event handling.
- Outbound chat loop detection now tracks local/staff/shortcut context so Allium avoids relaying duplicate chat events.
- Local chat is intentionally blocked from Discord relay when exclude-from-discord is true.

Party And Locator Bar
- Added staff locator mode for players with allium.party.staff.
- /locatorbar with no arguments now toggles staff locator mode.
- Added /locatorbar help.
- Added /locatorbar aliases: /partybar, /lbar, and /pbar.
- Added allium.locatorbar.help for viewing locator help.
- Staff locator mode lets staff see all non-vanished players on the locator bar, regardless of normal visibility distance.
- Locator bar show/hide/reset flows remain available for temporary manual visibility overrides.
- Party locator visibility updates keep the existing move throttling to reduce TAB packet pressure.

TAB And Far-Away Player Entries
- Improved TAB integration for players Allium hides in the world but keeps visible in tab.
- PacketEvents tab add paths now actively re-add missing entries instead of silently no-oping.
- TAB reflection is used where available so synthetic tab entries better match TAB-managed skins, ping, game mode, and format.
- PacketEvents fallback add packets are still available when TAB reflection cannot add an entry.
- TAB group formatting can be read from TAB's config/groups.yml when placeholders are unavailable.
- Placeholder fallbacks now reject unresolved %tab_...% strings instead of showing raw placeholder text in tab.
- Far-away animated gradient targets are tracked and refreshed with UPDATE_DISPLAY_NAME.
- Animated far-away tab entries use the same animated name builder as the normal tab display name.

Animated Gradient Names
- Added GradientNameManager.
- Players with allium.gradientname can have %gradientdisplayname% rewritten into MiniMessage <gradient:...:phase> output.
- The manager extracts first and last colors from existing gradient display names.
- Supported color input includes legacy &/section colors, &#RRGGBB, section hex, &x/section-x hex, and MiniMessage hex tags.
- The middle named color is chosen from the nearest general color name for MiniMessage's gradient tag.
- #phase-mm-g# and #-phase-mm-g# are updated every tick.
- The player list name is refreshed every tick for animated gradient players.
- TAB prefix and suffix are preserved when Allium builds the animated tab display name.
- Prefix/name spacing is normalized so TAB prefixes do not collapse directly into the player name.
- Added PlaceholderAPI outputs:
- %allium_gradientdisplayname%
- %allium_phase-mm-g%
- %allium_-phase-mm-g%
- %allium_phase_mm_g%
- %allium_negative_phase_mm_g%
- Added chat.minimessage.gradient.animation for animated gradient phase permission checks.

Nicknames
- Added /editnick for editing other players' nicknames through the nickname GUI.
- Nicknames now persist more reliably when TAB is installed.
- Allium now clears plugin-set tab overrides when TAB owns tab formatting.
- Nicknames are blocked when they match an existing online or offline player name.
- Added nickname.sync-to-essentials, enabled by default.
- When EssentialsX is present, Allium syncs nickname set/reset/restore into Essentials so commands such as /whois see the same nickname.
- Nickname placeholders can read stored offline nicknames by UUID.

ModGuard
- Added plugins/Allium/modguard/config.yml from bundled src/main/resources/modguard/config.yml.
- Legacy modguard settings from the root Allium/config.yml are migrated into modguard/config.yml.
- Added blacklist/whitelist detection mode.
- Added configurable join-time checks with check-on-join and check-delay-ticks.
- Added configurable punishment mode with kick-on-detection.
- Added modguard.bypass to skip checks.
- Added modguard.notify for staff notifications.
- Added allium.alerts support for staff alert delivery.
- Added /core alerts modguard [on|off|toggle].
- Added per-player ModGuard evidence logs at plugins/Allium/modguard/logs/{uuid}.yml.
- Evidence logs are only created once a player gets a hit, then later hits append to the same UUID file.
- Evidence entries include session, timestamp, method, check, raw value, confidence, action, and whether punishment happened.
- Brand checks listen for minecraft:brand.
- Channel checks inspect client plugin channel registrations.
- Forge/FML checks listen on fml:handshake, fml:login, forge:handshake, and forge:login.
- Matching supports case-sensitive and regex modes.
- Default banned mod patterns include Freecam, Inventory Profiles Next variants, Tweakeroo, Litematica, MiniHUD, Meteor, Wurst, Vape, LiquidBounce, Aristois, Baritone, and related client/mod ids.
- Default allowed mod examples for whitelist mode include OptiFabric, Sodium, Lithium, Phosphor, Iris, Fabric API, and Mod Menu.

Translation Probe Detection
- Added optional PacketEvents translation-key probing under modguard/config.yml.
- Translation probes are disabled by default.
- Probe checks can define translation keys, expected resolved text, action, timeout, fallback prefix, and whether kicks require corroboration.
- The default sample check targets key.meteorclient.opengui as an alert-only Meteor probe.
- Probe hits feed into ModGuard alerts and evidence logs.
- Probe defaults are intentionally alert-based because resource packs can define translation keys and cause false positives.

Security Alerts
- Added ModGuard as an individual security alert feed.
- /core alerts now shows gamemode audit, chat filter, and ModGuard alert state.
- /core alerts modguard toggles whether a staff member sees ModGuard alerts.
- Staff permission bundles now include allium.alerts and modguard.notify.

Custom Items
- Added the item_renamer custom item.
- Item Renamer uses a name tag item with Oraxen model oraxen:item_renamer.
- Holding an Item Renamer grants temporary ItemEdit rename permissions.
- Supported temporary permissions include MiniMessage, format, and color rename access.
- Players with direct ItemEdit rename permission are not managed by the Item Renamer system.
- /rename <name> and /ie rename <name> are intercepted for item consumption.
- The renamer cannot be used on air or to rename itself.
- One renamer is consumed shortly after a successful rename command.

World And Ore Generation
- Added the custom ore generation manager and listener for applying configured Oraxen ores to generated chunks.
- Added pre-generation plumbing in the ore manager for processing chunks around a configured center/radius.
- Ore generation remains configurable under ore-generation.
- Added safe End Gateway teleport handling near the main End island.
- End Gateway handling is configurable with end-gateway.max-distance-from-center and end-gateway.search-radius.
- The gateway safety search prioritizes same-Y landing positions, then nearby Y levels, then an expanding perimeter search.
- Gateway handling rejects unsafe ground and blocked feet/head positions.
- A short cooldown prevents repeated gateway handling spam.

Inventory And Restore QoL
- Offline inventory handling was expanded for restore workflows.
- Restore GUI support now works against target UUIDs so staff can restore offline players more easily.
- Inventory snapshot/restore GUI code was expanded across inventory, ender chest, options, and formatting views.

Command Hiding And Alt Accounts
- Added an alt hide group to hide.yml.
- The alt group is blacklist mode by default.
- The default blocked alt commands are pay, jobs, quests, tasks, ah, and auctionhouse.
- Tab completion hiding remains configured with ^.

Config And Permissions
- Added allium.gradientname.
- Added allium.party.staff.
- Added allium.locatorbar.help.
- Added chat.minimessage.gradient.animation.
- Added modguard.bypass.
- Added modguard.notify.
- Added nickname.sync-to-essentials.
- Added end-gateway.max-distance-from-center.
- Added end-gateway.search-radius.
- Plugin metadata now uses ${project.version} from Maven.
- Maven project version is now 0.1.6a.
- Plugin main class moved to codes.castled.allium.PluginStart.
- Plugin author metadata changed to castledking.

Fixes
- Fixed /local and /global alias handling by using the executed command label instead of only the Bukkit command name.
- Fixed local chat accidentally behaving like global chat through shared aliases.
- Fixed DiscordSRV inbound messages not appearing in console after Allium cancels DiscordSRV events.
- Fixed raw %tab_tabprefix%, %tab_customtabname%, and %tab_tabsuffix% placeholders showing in tab when TAB/PAPI could not resolve them.
- Fixed far-away animated names snapshotting once and appearing paused in synthetic tab entries.
- Fixed animated tab display names fighting TAB prefix/suffix formatting by preserving TAB formatting in the animated name builder.
- Fixed missing spacing between TAB prefix and animated name in common prefix formats.
- Fixed nickname persistence/restore behavior when TAB owns the tab list.
- Fixed same-name nicknames being accepted.
- Reduced max database pool connections to lower memory usage.
- Kept party movement/TAB visibility updates throttled to avoid excessive packet churn.

Internal And Release Engineering
- Java packages were renamed from net.survivalfun.core to codes.castled.allium.
- Removed the old command bridge manager.
- Added GitHub Actions for continuous delivery and Spigot release publishing.
- Added .release scripts for release note conversion, Modrinth publishing, Spigot publishing, cookie handling, and Discord notifications.
- Added a release Dockerfile and Discord webhook template.
----------, May 17, 2026
Resource Information
Author:
----------
Total Downloads: 254
First Release: Jun 28, 2025
Last Update: Jun 1, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings