⚠️⚠️⚠️ IMPORTANT - READ BEFORE UPDATING ⚠️⚠️⚠️
1. BACK UP your config.yml and messages.yml files FIRST!
2. DELETE config.yml and messages.yml from the plugin folder
3. Restart the server to regenerate new config files
4. Re-apply your custom settings from the backup
I apologize for the inconvenience - unfortunately I was unable to implement automatic config migration that would preserve your existing settings while adding the new options. Thank you for your understanding.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
New Features:
- Server Display in Stafflist - See which server each staff member is on (BungeeCord/Velocity only)
- New Placeholders - {server} and {server_alias} for player format
- Discord Activity Logging - Log staff activity (join, leave, server change, vanish, AFK) to Discord
- Channel Priority System - Configure channel priority for activity logging and stafflist display
- Stafflist Highest Only - Show players only in their highest priority channel (e.g., Admin with priority 1 instead of showing in Admin, Staff, and Builder)
Discord Activity Logging:
- Works with both webhook and bot mode
- Two modes: send to chat channel webhooks OR to a separate dedicated webhook/channel
- Configurable events: join, leave, server-change, vanish, afk
- Customizable message formats with placeholders: {player}, {server}, {server_alias}
- LuckPerms support: {lp_prefix}, {lp_suffix}, {lp_group}, {lp_rank}
New Config - Activity Logging (Webhook Mode):
Code (Text):
discord:
webhook:
activity-log:
enabled: false
log-permission: "zstaffchat.staff"
# Option 1: Send to chat channel webhooks
use-channel-webhooks: false
# Option 2: Send to separate webhook
separate-webhook:
enabled: false
webhook-url: ""
events:
join: true
leave: true
server-change: true
vanish: true
afk: true
formats:
join: " **{player}** joined the server"
leave: " **{player}** left the server"
server-change: " **{player}** moved to **{server_alias}**"
vanish-on: " **{player}** entered vanish"
vanish-off: "️ **{player}** left vanish"
afk-on: " **{player}** is now AFK"
afk-off: "✅ **{player}** is no longer AFK"
New Config - Activity Logging (Bot Mode):
Code (Text):
discord:
bot:
activity-log:
enabled: false
log-permission: "zstaffchat.staff"
# Option 1: Send to chat channels
use-chat-channels: false
# Option 2: Send to separate channel
separate-channel:
enabled: false
channel-id: ""
events:
join: true
leave: true
server-change: true
vanish: true
afk: true
formats:
join: " **{player}** joined the server"
leave: " **{player}** left the server"
server-change: " **{player}** moved to **{server_alias}**"
vanish-on: " **{player}** entered vanish"
vanish-off: "️ **{player}** left vanish"
afk-on: " **{player}** is now AFK"
afk-off: "✅ **{player}** is no longer AFK"
New Config (messages.yml):
Code (Text):
# Format for each player in the staff list (BungeeCord/Velocity only)
# Placeholders: {player}, {server}, {server_alias}
stafflist-player-format: "{player}"
# Examples:
# "{player} &7({server_alias})" -> Steve (Survival), Alex (Lobby)
# "{player} &7[{server}]" -> Steve [survival-01], Alex [lobby-01]
Placeholders:
- {player} - Player name
- {server} - Technical server name from proxy config (e.g., "skywars-01")
- {server_alias} - Friendly name from config.yml server-aliases (e.g., "SkyWars")
Note: Server display only works on proxy servers (BungeeCord/Velocity). On single servers (Spigot/Paper/Folia), this option is ignored.
Channel Priority System:
- Each channel now has a configurable priority value (lower number = higher priority)
- Default priorities: admin=1, staff=2, builder=3
- Activity logs are sent only to the player's highest priority channel (prevents spam)
- Optional: Show players only in their highest priority channel in /stafflist
New Config (config.yml):
Code (Text):
features:
# Show players only in their highest priority channel in /stafflist
stafflist-highest-only: true
channels:
admin:
priority: 1 # Highest priority
staff:
priority: 2
builder:
priority: 3 # Lowest priority
Bug Fixes:
- Fixed plugin not loading on Paper 1.20.4 - Fixed IllegalAccessError caused by class loader conflict with Paper's bundled Kyori libraries
- Fixed config comments - Corrected /spy to /staffspy and /sc toggle to /sc (without arguments)