Compatibility
Minecraft: Java Edition
1.21.3β1.21.6
Platforms
Tags
Creators
Details
Licensed MIT
Published last year
Updated last year
CustomMessage
Bring private messaging to your Bukkit/Spigot server with ease! CustomMessage gives your players a clean, familiar DM system complete with clickable usernames, reply & ignore functionality, social-spy for staff, spam control, and fully-customizable formats.
π Key Features
/msg <player> <message>β Send a private DM with a teal β envelope prefix/r <message>β Quickly reply to your last DM without re-typing the recipient/ignore <player>//unignore <player>β Block or unblock DMs from specific users/socialspy(staff only) β See all DMs in real time with a π‘ SPY prefix- Spam-control β Configurable cooldown between messages to prevent abuse
- Clickable JSON chat β Click any βMeβ, player name, or βYouβ in DMs to open a
/msgprompt - Fully configurable β Change every prefix, color, usage message, cooldown, and more in
config.yml
π Commands & Permissions
| Command | Permission | Default | Description |
|---|---|---|---|
/msg |
custommessage.msg |
βοΈ | Send a private message |
/r |
custommessage.msg |
βοΈ | Reply to your last private message |
/ignore |
custommessage.ignore |
βοΈ | Toggle ignoring DMs from a player |
/unignore |
custommessage.ignore |
βοΈ | Stop ignoring a playerβs DMs |
/socialspy |
custommessage.socialspy |
OP | Toggle social-spy (staff only) to watch every DM |
Staff note: Anyone with
custommessage.socialspy(default: OP) will see every DM prefixed with π‘ SPY.
βοΈ Configuration (config.yml)
# config.yml
# βββ Chat formats βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
formats:
msg: '&7[Msg] &f%sender% &8β &f%target% &8: &7%message%'
spy: '&7[Spy] &f%sender% &8β &f%target% &8: &7%message%'
# βββ Spam control βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# seconds between allowed /msgβs per player
cooldown-seconds: 2
# warning when you hit cooldown (%seconds% will be filled in)
cooldown-message: '&cSlow down! Wait %seconds%s before messaging again.'
# βββ /r (reply) βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
reply:
usage: '&eUsage: /r <message>'
no-partner: '&cNo one to reply to.'
offline: '&cYour last chat partner is offline.'
# βββ /ignore & /unignore βββββββββββββββββββββββββββββββββββββββββββββββββββ
ignore:
usage: '&eUsage: /ignore <player>'
on: '&cYou are now ignoring &f%target%'
off: '&aYou are no longer ignoring &f%target%'
invalid: '&cInvalid player.'
self: '&cYou cannot ignore yourself.'
blocked: '&cThat player is ignoring you.'
unignore:
usage: '&eUsage: /unignore <player>'
on: '&aYou are no longer ignoring &f%target%'
off: '&eYou were not ignoring &f%target%'
# βββ /socialspy βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
socialspy:
on: '&aSocialSpy on'
off: '&cSocialSpy off'
no-permission: '&cYou must be OP to toggle social spy.'
# βββ Generic fallbacks ββββββββββββββββββββββββββββββββββββββββββββββββββββ
no-permission: '&cYou donβt have permission for that.'
only-players: '&cOnly players can run that command.'
usage-msg: '&eUsage: /msg <player> <message>'


