This update is for Bukkit servers only. Plugin for proxy servers hasn't changed and latest version for those remains 3.2.
- 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):Let's use Essentials' nickname instead of player name:Code (YAML):MESSAGE_TO_FORMAT: "&6&l[&f&lPM&6&l] &cto &b<player>&f: &6<message>"
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- 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- Updated lang.yml file by adding following text:
(Modern formatting)
(Legacy 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>"
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>- Fixed displaying of few unnecessary debug messages during plugin load.
- Fixed issues when running plugin on some Folia forks.
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