Releases: NerdNu/ModMode
v5.0.1
Verified to support PaperMC versions 1.20 up to 1.21.10.
- Staff in a mode are no longer able to get advancement progress.
- Pets no longer teleport to their owners if in a mode.
- Pets (and other entities, but VNP already handles this part) no longer follow their owners if in a mode.
- Reloading TAB no longer breaks ModMode until the next restart.
Full Changelog: v5.0.0...v5.0.1
v5.0.0
Full Changelog: v4.2.2...v5.0.0
Changelog
Major Changes
- Replaced the old single "modmode" system that interpreted permissions based on other permissions.
- Groups and commands can now be created dynamically via the config file.
- For example, creating a group called
modmodewill automatically create the/modmodecommand.
- For example, creating a group called
Group Customization
Each group can now have the following settings:
- Entry command: The command name and its permission (e.g.,
/modmode,/adminmode). - LuckPerms track: Automatically move members along a specific track.
- Prefix or color: Use a text prefix or just a color for names.
- Flight ability: Allow or disallow flying.
- Entity collision: Control whether players can collide with entities.
- Secret rejoin: Automatically rejoin in secret if players left while in the mode.
- Item interaction: Decide if players can pick up or drop items.
- A toggle command is generated automatically for players to turn this on/off (defaults to off).
Command Updates
- Mode commands now support the following arguments:
on– Enables the mode.off– Disables the mode.itemInteract– Toggles item pickup/dropping.on– Enables item pickup/dropping.off– Disables item pickup/dropping.
Quality-of-Life Improvements
- The join message will now always appear, whether rejoining secretly or normally. Logging in without a join message is no longer possible.
- Fixed the occasional “You are in the middle of changing states” bug. The plugin now self-corrects if this occurs.
- Moved persistent player data to a separate
members.ymlfile. This prevents the main config from constantly refreshing and overwriting changes.- Added
/reloadmodmodeto reload settings at runtime.
- Added
- Removed
/vanishlist. Vanish no longer persists between sessions—players in vanish will simply re-enter it on join if needed. Vanished players are now visible in the tab list.
Dependency Changes
- Replaced NerdBoard with TAB for more customization options beyond modmode.
- Replaced LogBlock with CoreProtect for block logging going forward.
- Now depends on LuckPerms 5.5+. Versions below won't work.
New Features
- Added bossbars to indicate player status:
- Vanished but not in a mode.
- In a mode.
- In a mode and unvanished.
- In a mode with item interaction enabled.
- Added
/modmode help(and equivalents for other groups, e.g.,/adminmode help) to list available commands. - Improved gamemode handling:
- Leaving a mode restores the player’s previous gamemode.
- Entering a mode sets gamemode to Survival by default unless the last two gamemode swaps were Creative, in which case it stays Creative.
4.2.2 for LuckPerms 5.x
- Fix error loading player inventory when health is higher than
Player.getMaxHealth(). - Fix runtime warnings about using
System.out. - Update
pom.xmlto use https://github.com/mbax/VanishNoPacket (version 3.22). If you are developing, you must build these sources withmvn install. At run-time, you can use the official VanishNoPacket download from https://dev.bukkit.org/projects/vanish. - Skip cursed version number 4.2.1.
v4.1.1
Fix permission handling problems due to ModMode caching LuckPerms Track instances before LuckPerms 4.x has fully loaded the track asynchronously.
This is, hopefully, the last LuckPerms 4.x compatible release. New ModMode versions 4.2.0 and above are only compatible with LuckPerms 5.x.
Note: use the luckperms4 branch for LuckPerms 4.x maintenance releases and reserve the master branch for LuckPerms 5.x.
v4.2.0 for LuckPerms 5.x
Updated for Compatibility with LuckPerms 5.x.
v4.1.0 for LuckPerms 4.x
This version of ModMode uses LuckPerms track events to synchronise to permission changes.
In essence, ModMode now waits for LuckPerms to tell it that the player's permissions have fully changed before performing any steps that depend on those new permissions. Notification messages announcing the new ModMode state are sent to the staff member last, after all other actions (including permission changes) have been performed. So client mods that perform actions in response to those messages will trigger once the player has completely transitioned to the new state.
With a bit of luck, that resolves intermittent permission problems present in v4.0.4 (a.k.a. 404, the lost version).
It should be noted that 4.0.4 and subsequent versions depend on LuckPerms tracks that have not been properly documented (yet). That problem will be resolved soon. For now, note that the odd form of the foreignserveradmins to modmode track is intentional.
modmode-track.yml:
name: modmode-track
groups:
- moderators
- modmode
foreign-server-admins-modmode-track.yml:
name: foreign-server-admins-modmode-track
groups:
- modmode
- modmode
- Also note that the LuckPerms weight of the
modmodegroup must be set higher than any group inheriting fromforeignserveradmins. This will also be explained in the documentation.
v4.0.5
v4.0.4
Recover Version 4.0.4 source code.
- Decompile 4.0.4-SNAPSHOT from production servers.
- Apply changes to the master branch.
- Revert
synchronizedandstaticmethod attributes. Pointless in the
case ofsynchronized. - Drop the use of PaperSpigot-specific API to prevent Phantom spawns.
Modify the staff member's TIME_SINCE_REST statistic instead. - Improve handling of fire ticks and fall damage. These are now serialised
with other saved state, preventing the abuse of ModMode for e.g.
cancelling fall damage. - Fix handling of missing tracks (avoid NPE).
This version should be not significantly more flawed than the version we
have been running in production for the last year. No effort has yet been
made to fix the problem of Moderators having incorrect permissions. To
fix that requires that the plugin schedule ModMode actions in the event
handler of LuckPerms events fired when LuckPerms completes its track
promotions and demotions.
v4.0.3
Use tracks with LuckPerms