SendMSG
SendMSG – Private Messaging for Your Server
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
SendMSG

SendMSG – Private Messaging for Your Server



Lightweight, multilingual, fully customizable private messaging plugin for Spigot/Paper 1.21+
---
✨ Features
| Feature | Description | |---------|-------------| | 📨 5 sending commands | `/msg`, `/m`, `/tell`, `/w`, `/pm` | | 💬 Quick reply | `/r` or `/reply` – reply to the last sender | | 🌍 3 languages | English, Ukrainian, Russian (change with `/sendmsg lang`) | | 🛡️ Anti-spam | Configurable delay with bypass permission | | 🔔 Sound alerts | Customizable sounds for sending and receiving | | 📢 Subtitles | Popup notification when receiving a message | | 🔕 Auto cleanup | `/msgtoggle` – disable incoming private messages | | 👁️ Auto cleanup | `/spy` – see all private messages | | 🚫 Auto cleanup | `/ignore` – ignore/unignore players | | ⏰ Auto cleanup | Ignore players with auto-removal after N days | | 📁 Auto cleanup | All PMs saved to `logs/private.log` | | 💾 Auto cleanup | Ignores stored in `ignores.yml` | | 🧹 Auto cleanup | Automatic cleanup task every hour | | 🎨 Fully customizable | All messages in `messages/*.yml` + color codes | | 🔧 Lightweight | No external dependencies required | | ⚡ EssentialsX compatible | Overrides EssentialsX private messages |
---
🎮 How it looks in-game
When you send a message: ```text ✉ You -> Player: Hello! ```
When you receive a message: - 📺 Subtitle: `✉ You have a message` - 💬 Chat: `✉ Player writes you: Hello!` - 💬 Reply hint: `→ Reply with: /r (text)` - 🔊 Sound: `ENTITY_EXPERIENCE_ORB_PICKUP`
> ⚠️ All text, sounds, subtitles, and colors can be changed in the configuration files.
---
📋 Commands
| Command | Description | Aliases | |---------|-------------|---------| | `/msg <player> <message>` | Send a private message | `/m`, `/w`, `/tell`, `/pm` | | `/r <message>` | Reply to the last sender | `/reply` | | `/ignore <player>` | Ignore/unignore a player (toggle) | `/ig` | | `/msgtoggle` | Disable/enable incoming private messages | – | | `/spy` | Toggle SocialSpy (see all PMs) | – | | `/sendmsg lang <code>` | Change plugin language | `EN`, `UA`, `RU` | | `/sendmsg reload` | Reload configuration | – | | `/sendmsg help` | Show help | – |
Language codes: `EN` (English), `UA` (Ukrainian), `RU` (Russian)
---
🔐 Permissions
| Permission | Description | Default | |------------|-------------|---------| | `sendmsg.msg` | Allows using `/msg` and `/m` | ✅ `true` | | `sendmsg.reply` | Allows using `/r` and `/reply` | ✅ `true` | | `sendmsg.ignore` | Allows using `/ignore` | ✅ `true` | | `sendmsg.msgtoggle` | Allows using `/msgtoggle` | ✅ `true` | | `sendmsg.bypass.cooldown` | Bypass the message cooldown | 👑 `op` | | `sendmsg.spy` | Allows using `/spy` (SocialSpy) | 👑 `op` | | `sendmsg.admin` | Access to `/sendmsg lang` and `/sendmsg reload` | 👑 `op` |
---
⚙️ Configuration (`config.yml`)
```yaml
Plugin language: ru-RU, uk-UA, en-EN
lang: en-EN
Delay between messages (seconds)
cooldown-seconds: 10 ```
Enable / disable features
```yaml features: subtitle: true # Show subtitle when receiving a message subtitle-reply: true # Separate subtitle for replies sound-receive: true # Play sound when receiving a message sound-send: true # Play sound when sending a message reply-hint: true # Show "/r" hint below incoming messages cooldown: true # Enable message cooldown msg-toggle: true # Enable /msgtoggle command social-spy: true # Enable /spy command log-to-file: true # Save all PMs to logs/private.log ```
Sound settings
```yaml sound: receive: name: ENTITY_EXPERIENCE_ORB_PICKUP volume: 1.0 pitch: 1.2 send: name: ENTITY_VILLAGER_WORK_CARTOGRAPHER volume: 1.0 pitch: 1.0
Ignore settings
ignore:
Auto-remove ignore after N days (0 = forever)
auto-expire-days: 7 ```
📝 Message formats (`messages/en-EN.yml`)
```yaml format: incoming: "&2✉ &f&l{from} &7writes you: &f{message}" reply-hint: "&2→ &7Reply with: &b&n/r (text)" outgoing: "&2✉ &7&lYou &7-> &f&l{to}&7: &f{message}" spy: "&8[SPY] &7{from} -> {to}: {message}" console-name: "Console"
subtitle: "&2✉ &7You have a message" subtitle-reply: "&2✉ &7Someone replied to you" ```
📝 Message formats (`messages/uk-UA.yml`)
```yaml format: incoming: "&2✉ &f&l{from} &7пише вам: &f{message}" reply-hint: "&2→ &7Для відповіді: &b&n/r (текст)" outgoing: "&2✉ &7&lВи &7-> &f&l{to}&7: &f{message}" spy: "&8[SPY] &7{from} -> {to}: {message}" console-name: "Консоль"
subtitle: "&2✉ &7Вам повідомлення" subtitle-reply: "&2✉ &7Вам відповіли" ```
📝 Message formats (`messages/ru-RU.yml`)
```yaml format: incoming: "&2✉ &f&l{from} &7пишет тебе: &f{message}" reply-hint: "&2→ &7Для ответа: &b&n/r (текст)" outgoing: "&2✉ &7&lВы &7-> &f&l{to}&7: &f{message}" spy: "&8[SPY] &7{from} -> {to}: {message}" console-name: "Консоль"
subtitle: "&2✉ &7Вам сообщение" subtitle-reply: "&2✉ &7Вам ответили" ```
Color codes: `&0-9` `&a-f` `&k-o` `&r`
---
🚀 Installation
1. Download `SendMSG.jar` 2. Place it in your server's `plugins/` folder 3. Restart your server 4. (Optional) Edit `config.yml` or `messages/*.yml` 5. Done! The plugin works immediately
---
❓ FAQ
- How do I change the language? Use `/sendmsg lang EN` (English), `/sendmsg lang UA` (Ukrainian), or `/sendmsg lang RU` (Russian)
- How do I disable sounds? Set `sound-receive: false` and `sound-send: false` in `config.yml`
- How do I remove the cooldown? Set `cooldown-seconds: 0` in `config.yml` or give players the `sendmsg.bypass.cooldown` permission
- How does /ignore work? `/ignore <player>` adds a player to your ignore list. Use the command again to unignore them.
- Can ignores expire automatically? Yes! Ignores are automatically removed after `auto-expire-days`.
- Can I block all private messages? Yes! Use `/msgtoggle` – nobody will be able to message you until you enable it again.
- What is SocialSpy? Admins with `sendmsg.spy` can use `/spy` to see all private messages on the server.
- Where are private messages stored? All PMs are logged in: ```text plugins/SendMSG/logs/private.log ```
- Does it work with EssentialsX? Yes! SendMSG intercepts private messages before EssentialsX, so you can use both.
- Can the console send messages? Yes – the console can use `/msg <player> <message>` just like a player.
---
📞 Support
- 🐛 Get help – Get help - 💬 Get help – Same link - 💬 Get help – Same link