JoinAlertsNO

Clean, permission-based join/quit announcements with rank formats, viewer control, and the ability to stay completely silent for non-matching players
Clean, permission-based join/quit announcements with rank formats, viewer control, and the ability to stay completely silent for non-matching players
What is JoinAlertsNO?
JoinAlertsNO replaces Minecraft’s default “joined/left the game” messages with fully customizable announcements You can announce everyone, or only specific groups (example: VIP only) while ensuring staff is never announced (vanish or not)
Main Features
- Custom join & quit messages with color codes

- Permission-based formats (VIP/Staff/Default, etc.)


- Priority system (first match wins)

- Broadcast to everyone or only to permitted viewers


- Exclude system (never announce staff/vanished/alts)

- Prevents double messages (handles vanilla join/quit properly)

- Placeholders: {player}, {displayname}, {uuid}, {world}

- Commands: /joinalertsno (aliases included) + /joinalertsno reload

Commands
- /joinalertsno reload — Reload configuration

Aliases: /ja, /jal, /joinalerts, /jalerts
Permissions (JoinAlertsNO namespace)
- jalertsno.reload — Reload config

- jalertsno.see — Can see announcements (only if broadcast: false)

- jalertsno.trigger — Player triggers announcements (announce only VIPs, etc.)

- jalertsno.exclude — Never announce this player

- jalertsno.format.<key> — Format permission (example: jalertsno.format.vip)

Configuration Examples (copy & paste) 
Example A — Announce EVERYONE (except excluded) 
Goal: everyone gets announced, but you can hide staff/vanish accounts using exclude Permissions to give (optional):
- Staff/vanish/alts: jalertsno.exclude

YAML:
# Announce everyone (leave this empty)
trigger-perms: []
# Players with any of these permissions will NOT be announced.
exclude-perms:
- jalertsno.exclude # Give this to ALL the staff (vanish or not)
# If true, the message is broadcast to everyone.
broadcast: true
# Only used when broadcast is false.
viewer-perms:
- jalertsno.see
Example B — Announce ONLY VIPs, and NEVER staff (vanish or not) 

Goal: only VIP joins/quits are announced. Staff is completely hidden, even if not vanished
Permissions to give:
- VIP group: jalertsno.trigger (and optionally jalertsno.format.vip)

- Staff group: jalertsno.exclude (this overrides everything)


config.yml
YAML:
trigger-perms:
- jalertsno.trigger #You give this ONLY to VIPs
# Players with any of these permissions will NOT be announced.
exclude-perms:
- jalertsno.exclude #Give this to ALL the staff
# If true, the message is broadcast to everyone.
# If false, only players with any permission in viewer-perms will see it.
broadcast: true
# Only used when broadcast is false.
viewer-perms:
- jalertsno.see
- VIP joins/quits → announced


- Normal players → silent

- Staff (anytime) → silent


Compatibility
- Paper / Spigot / Purpur

- 1.18+ (edit this line to your exact tested range)

