Sueta

SendMSG

2.1.0

SendMSG – Private Messaging for Your Server

·Plugin
  1. 2.1.0latestSendMSG 2.1.0last week

    Changelog

    2.1.0

    Compared with 2.0.2.
    Upgrade notes (read first)
    - Storage default changed to SQLite (storage.type: sqlite, file plugins/SendMSG/sendmsg.db). On the first start, data from ignores.yml, names.yml and offline.yml is imported automatically into the database (only if the database is empty). The yaml files are kept as a backup and are not deleted. To keep using the yaml files instead, set storage.type: yaml. - Colour codes (&a, &l, &#RRGGBB...) in private messages now need the sendmsg.color permission (operators by default). Other players have the codes removed. - Message length is limited to 200 characters by default (max-message-length). Set 0 for no limit. - Ignored senders are told that their message was blocked (ignore.notify-ignored-sender: true). Set it to false to show a normal "sent" line instead.
    Added
    - Config check at startup and on /sendmsg reload. It warns about negative numbers, values that are not true/false, unknown feature names, and unknown sound names, instead of silently using defaults. - On update, config.yml is rebuilt from the new template, so it keeps the same comments and layout. Your existing values are kept, new settings get their default values, and the old file is saved as config.backup-v<n>.yml. Settings that no longer exist are removed (they stay in the backup) and listed in the log. - SQLite storage (sendmsg.db), with YAML files still available (storage.type: yaml). - Offline messages: a message to an offline player is kept and shown when they join. Off by default (offline-messages.enabled). - Link and IP filter for /msg and /r: hides http(s):// and www. links, bare domains, and IPv4 addresses, or blocks the message. Off by default (filters.enabled). Players with sendmsg.filter.bypass are not filtered. - LuckPerms prefix in front of the sender's name in the chat line. Off by default (integrations.luckperms.enabled). Requires LuckPerms. - PlaceholderAPI placeholders: %sendmsg_unread%, %sendmsg_last_contact%, %sendmsg_ignored%, %sendmsg_msgtoggle%, %sendmsg_spy%. Off by default (integrations.placeholderapi.enabled). Requires PlaceholderAPI. - Clickable reply hint: the "Reply with: /r" line becomes a button that fills /r in the chat box. Off by default (features.clickable-reply). - Discord webhook: sends every private message to a Discord channel. Off by default (discord-webhook.enabled). Retries on rate limits (HTTP 429, using retry_after) and on server errors. Mentions are disabled, and player text is escaped for Discord markdown. - /sendmsg spies shows who currently has SocialSpy enabled. - /ignore list shows who you ignore and how long each ignore lasts. - sendmsg.filter.bypass permission. - sendmsg.color permission. - Config options: storage.fallback-to-yaml, ignore.notify-ignored-sender, max-message-length.
    Changed
    - Config file and code comments are in English. - If SQLite cannot open, the plugin stops with an error instead of silently switching to YAML. Set storage.fallback-to-yaml: true to allow the switch. - Private message log is written by one background thread, in order. - Cooldown can no longer be negative. - SocialSpy checks sendmsg.spy on every message, and turns off when the player leaves. - Feature switches missing from an old config file use the default for that feature. - Source code is split into packages: commands, service, storage, listeners, integrations.
    Fixed
    - After an upgrade, messages added in newer versions showed as [missing: ...] when the language file was from an older version. - Plugin crashed on an invalid lang value. It now falls back to English. - Cooldown reset when a player relogged. - Offline unignore. - Ukrainian messages were out of sync with the other languages. - A damaged YAML data file was overwritten, which lost its data. It is now kept as *.broken-<time>. - PlaceholderAPI expansion was registered twice after /reload. - A race between adding and purging offline messages could drop a message from memory. - Discord messages still in the queue were dropped silently on shutdown. Now they get 5 seconds to send, and the number of dropped messages is logged. - Player names and text in Discord embeds could format or link text. Now escaped. - The update checker sent a personal e-mail address in its User-Agent. Replaced with the project page URL.
    10 downloads
  2. 2.0.2SendMSG 2.0.2Jul 24, 2026

    Added support for newer versions of Minecraft (21.1+)

    80 downloads
  3. 2.0.1SendMSG 2.0.1Jul 23, 2026

    ✨ Added

    - Update notifications in-game: the plugin now checks Modrinth on startup for a newer version of SendMSG. If an update is available, server operators (sendmsg.admin or OP) get a chat notification when they join: [SendMSG] A new version is available: 2.0.1 — modrinth.com/plugin/sendmsg/versions This check is silent and never blocks server startup. Configurable in config.yml:
      update-checker:
        enabled: true              # turn the check on/off entirely
        notify-ops-on-join: true   # notify ops when they join if an update exists

    🐛 Bug Fixes

    - Fixed: console log messages (plugin startup, unknown-sound warning, update checker) were always printed in Russian regardless of the lang setting in config.yml. They are now fully localized and follow the selected language (en-EN, ru-RU, uk-UA), just like in-game chat messages.

    🧹 Improvements

    - Tidied up comments in config.yml around the update-checker section. - Replaced the placeholder contact address in the update checker's API request with a real one, per Modrinth's API guidelines (server-side only, not visible to players). - No changes to existing commands, permissions, or config keys otherwise — safe drop-in update. Recommended action: no config changes needed, just replace the jar and restart the server.
    68 downloads
  4. 2.0SendMSG 2.0May 14, 2026

    📝 Changelog

    v2.0
    New Features: - ✅ /ignore – Ignore/unignore players (toggle, saves to ignores.yml) - ✅ /msgtoggle – Disable all incoming private messages - ✅ /spy – SocialSpy mode (see all private messages, permission: sendmsg.spy) - ✅ Auto-expire ignores – Ignores automatically removed after N days (configurable) - ✅ Message logging – All PMs saved to logs/private.log with timestamps - ✅ Auto-purge – Expired ignores cleaned up every hour - ✅ subtitle-reply – Separate subtitle when someone replies to you New Permissions: - ✅ sendmsg.ignore – Allows using /ignore (default: true) - ✅ sendmsg.msgtoggle – Allows using /msgtoggle (default: true) - ✅ sendmsg.spy – Allows using /spy (default: op) New Config Options: - ✅ features.msg-toggle – Enable/disable /msgtoggle command - ✅ features.social-spy – Enable/disable /spy command - ✅ features.log-to-file – Enable/disable private message logging - ✅ ignore.auto-expire-days – Auto-remove ignore after N days (default: 7) Text Improvements: - ✅ English: whispers: → writes you: - ✅ Ukrainian: пише: → пише вам: - ✅ Russian: пишет: → пишет тебе: - ✅ Added subtitle-reply for all languages New Files: - ✅ ignores.yml – Persistent ignore list storage - ✅ logs/private.log – Private message logs
    50 downloads
  5. 1.0SendMSG 1.0Apr 30, 2026
    v1.0 - ✅ Full support for 3 languages (EN, UA, RU) - ✅ Sound notifications (separate for send/receive) - ✅ Subtitles when receiving private messages - ✅ /sendmsg lang command to change language in-game - ✅ /sendmsg reload command to reload configuration - ✅ sendmsg.bypass.cooldown permission to ignore delay - ✅ Console can now message players - ✅ Full Paper 1.21 compatibility
    17 downloads

Similar projects

Plugin →