Private Messages

Private messaging plugin | Messages history, sound notifications, vanish, proxy support and more.

File Details

PrivateMessages 3.3

  • R
  • Jul 9, 2026
  • 1.09 MB
  • 13
  • 26.2+44

File Name

PrivateMessages-Bukkit-3.3.jar

Supported Versions

  • 26.2
  • 26.1.2
  • 26.1.1
  • 26.1
  • 1.21.11
  • 1.21.10
  • 1.21.9
  • 1.21.8
  • 1.21.7
  • 1.21.6
  • 1.21.5
  • 1.21.4
  • 1.21.3
  • 1.21.2
  • 1.21.1
  • 1.21
  • 1.20.6
  • 1.20.5
  • 1.20.4
  • 1.20.3
  • 1.20.2
  • 1.20.1
  • 1.20
  • 1.19.4
  • 1.19.3
  • 1.19.2
  • 1.19.1
  • 1.19
  • 1.18.2
  • 1.18.1
  • 1.18
  • 1.17
  • 1.16
  • 1.15
  • 1.14
  • 1.13
  • 1.12
  • 1.11
  • 1.10
  • 1.9
  • 1.8.3
  • 1.8.1
  • 1.8
  • 1.7.4
  • 1.7.2
This update is for Bukkit servers only. Plugin for proxy servers hasn't changed and latest version for those remains 3.2.

  1. Added PlaceholderAPI plugin integration.

    It is possible to use extra placeholders inside of following messages in lang.yml file:
    List of messages keys MESSAGE_TO_FORMAT, MESSAGE_FROM_FORMAT, MESSAGE_TO_OFFLINE_FORMAT
    Example use:
    (Original code):
    Code (YAML):
    MESSAGE_TO_FORMAT: "&6&l[&f&lPM&6&l] &cto &b<player>&f: &6<message>"
    Let's use Essentials' nickname instead of player name:
    Code (YAML):
    MESSAGE_TO_FORMAT: "&6&l[&f&lPM&6&l] &cto &b%essentials_nickname%&f: &6<message>"
     

    Other than that, PrivateMessages brings its own placeholders which can be used anywhere:

    %privatemessages_last_message_sender% - returns player’s last messsage sender’s name (only during current server session)

    %privatemessages_last_message_recipient% - returns player’s last messsage recipient’s name (only during current server session)

    %privatemessages_unread_messages_count% - returns number of messages player has received when offline and still not marked as read by executing /pmclear command

    %privatemessages_message_notification_sound_number% - returns identification number of sound selected for incoming messages to player

    %privatemessages_message_notification_sound_enabled% - returns true when player has enabled incoming messages sound

    %privatemessages_spy_enabled% - returns true when player has spy mode enabled

    %privatemessages_messages_enabled% - returns true when player has enabled sending/receiving private messages

    %privatemessages_tips_enabled% - returns true when player has enabled receiving plugin tips

    %rel_privatemessages_messages_exchanged% - relational placeholder; returns number of all messages sent between two given players

    %rel_privatemessages_player_ignored% - relational placeholder; returns true when player passed as second argument is ignored by player passed as first argument – this makes checks within PrivateMessages plugin only, doesn’t look for other plugins’ ignores e.g. Essentials’ ignores, even when PrivateMessages integrates with this plugin

  2. Updated config.yml file by adding „Integration.PlaceholderAPI” section to let server admins configure some details:

    Code (YAML):
    Integration:
      PlaceholderAPI:
        # How long to wait after last retrieval of unread messages count for given player from database before retrieving it again
        UnreadMessagesCountUpdateIntervalSeconds: 30
        # How long to wait after last retrieval of count of messages exchanged between two players from database before retrieving it again
        MessagesExchangedUpdateIntervalSeconds: 30
  3. Updated lang.yml file by adding following text:
    (Modern formatting)
    Code (YAML):
    MESSAGE_TO_NOTPLAYER_FORMAT: "<gold><b>[<white><b>PM<gold><b>] <reset><red>to <aqua><recipient><white>: <gold><message>"
    MESSAGE_FROM_NOTPLAYER_FORMAT: "<gold><b>[<white><b>PM<gold><b>] <reset><green>from <aqua><sender><white>: <gold><message>"
     
    (Legacy formatting)
    Code (YAML):
    MESSAGE_TO_NOTPLAYER_FORMAT: "&6&l[&f&lPM&6&l] &cto &b<recipient>&f: &6<message>"
    MESSAGE_FROM_NOTPLAYER_FORMAT: "&6&l[&f&lPM&6&l] &afrom &b<sender>&f: &6<message>
  4. Fixed displaying of few unnecessary debug messages during plugin load.
  5. Fixed issues when running plugin on some Folia forks.