Chat
Module info | |
---|---|
Configuration | chat.yml |
Manager | ChatManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
This module is obviously one of the most important and it offers a complete solution to customize the server's chat. It is composed of several sub-modules.
Sub-modules Formatted chat Chat channels Antispam Player ping Private messages Player ignore Hover info Instant emojis Staff chat Chat log |
Default configuration (chat.yml
in Bukkit 1.13+)
chat:
enabled: true
event:
override: true
priority: HIGH
format: '&7«&f{prefix}{tag_name_color}{player}{suffix}&7» &f'
recognized-tlds:
- com
- net
- org
- me
- io
- edu
- gov
- int
- info
- pro
- xyz
- gg
- dev
- link
- eu
- it
- de
- fr
- es
- br
- jp
- ru
- uk
- co.uk
placeholder-types:
- PLAYER
formatted-chat:
enabled: true
send-anyway: true
channels:
enabled: false
reading-notification-enabled: true
spy:
on-join-enabled: true
format: '&7«&8[&4&lS&8] &f{prefix}{tag_name_color}{player}{suffix}&7» &f'
default:
listening:
- default
- global
writing: default
values:
default:
display-name: Default
format: '&7«&f{prefix}{tag_name_color}{player}{suffix}&7» &f'
type: LOCAL
console-included: true
aliases:
- ranged
- local
- l
languages:
- '*'
range: 50
global:
display-name: Global
prefix: '!'
format: '&7«&8[&2&lG&8] &f{prefix}{tag_name_color}{player}{suffix}&7» &f'
type: GLOBAL
access-restricted: false
writing-restricted: true
console-included: true
aliases:
- g
languages:
- '*'
antispam:
enabled: true
leet-filter-enabled: true
prevention:
urls:
enabled: true
allowed-domains:
- remigio07.me
- megaproserver.com
- youtube.com
whitelist:
- spigotmc.org/forums
ips:
enabled: true
whitelist:
- 127.0.0.1
seconds-between-messages: 2
seconds-between-same-messages: 10
max-caps-length: 4
max-caps-percentage: 50.0
highlight-color: '&4&n'
messages-whitelist:
- hello
- hey
- ok
- ciao
words-blacklist:
- ' arse '
- arsehole
- ' ass '
- asshole
- bastard
- bitch
- blowjob
- bollock
- bullshit
- cocksucker
- ' crap'
- ' cum'
- cunt
- dick
- faggot
- fuck
- gtfo
- handjob
- kys
- nigga
- nigger
- pussy
- ' shit'
- slut
- 'twat '
- ' wank'
- whore
- arrap
- bocchin
- ' caca'
- caga
- ' cazz'
- checc
- coglion
- cojon
- culo
- ditalin
- figa
- fotter
- fottut
- froci
- merd
- mignott
- minchi
- negr
- puttan
- pompin
- ricchion
- sborr
- stronz
- troia
- ' troie '
- zoccola
- zoccole
player-ping:
enabled: true
at-sign-required: false
color: '&b'
sound:
enabled: true
id: ENTITY_EXPERIENCE_ORB_PICKUP
volume: 1.0
pitch: 1.0
titles:
enabled: true
fade-in-ms: 500
stay-ms: 3500
fade-out-ms: 1000
titles:
english: '&b@{player}'
italian: '&b@{player}'
subtitles:
english: '&ehas pinged you in the chat'
italian: '&eti ha menzionato in chat'
private-messages:
enabled: true
format:
sent: '&7«&8[&b✎&8] &fYou &e➡ &f{recipient}&7» &f'
received: '&7«&8[&b✎&8] &f{sender} &e➡ &fYou&7» &f'
socialspy: '&7«&8[&4&lSS&8] &f{sender} &e➡ &f{recipient}&7» &f'
placeholder:
sender: '{player}'
recipient: '{player}'
placeholder-types:
- JUST_NAME
sound:
enabled: true
id: ENTITY_EXPERIENCE_ORB_PICKUP
volume: 1.0
pitch: 1.0
advancements:
enabled: true
format: |-
&8[&b✎&8] &f{sender_plain}
&7
max-message-length: 19
icon:
material: WRITABLE_BOOK
glowing: true
bypass-antispam-checks:
- CAPS
- FLOOD
- SPAM
- SWEAR
socialspy-on-join-enabled: true
muted-players-blocked: false
reply-to-last-sender: true
player-ignore:
enabled: true
hover-info:
enabled: true
rank:
enabled: true
player:
enabled: true
click:
action: SUGGEST_TEXT
value: '/msg {player} '
placeholder-types:
- PLAYER
- SERVER
hovers:
english: |-
&a&l{player}
&7Language: &f{language_display_name}
&7Time: &f{date_hour}
&7Ping: {ping_format} ms
&e&oClick to send a /msg!
italian: |-
&a&l{player}
&7Lingua: &f{language_display_name}
&7Orario: &f{date_hour}
&7Ping: {ping_format} ms
&e&oClicca per inviare un /msg!
url:
enabled: true
default-https: true
color: '&b&n'
hovers:
english: '&9[Click here to open the URL]'
italian: '&9[Clicca qui per aprire l''URL]'
player-ping:
enabled: true
instant-emoji:
enabled: true
hovers:
english: |-
{emoji} &f{emoji_id}
&7A default emoji. You can use this
&7emoji everywhere on this server.
italian: |-
{emoji} &f{emoji_id}
&7Un'emoji predefinita. Puoi usare questa
&7emoji ovunque su questo server.
instant-emojis:
enabled: true
tones:
- '#FFFF55'
- '#F9E0C1'
- '#E3C29C'
- '#C6956C'
- '#A06940'
- '#5C473C'
values:
:): '{emojis_tone}☺'
<3: '&c❤'
':smile:': '{emojis_tone}😃'
':slight_smile:': '{emojis_tone}🙂'
':grin:': '{emojis_tone}😁'
':grinning:': '{emojis_tone}😀'
':sunglasses:': '{emojis_tone}😎'
':weary:': '{emojis_tone}😩'
':tired:': '{emojis_tone}😫'
':money:': '&a🤑'
':nerd:': '{emojis_tone}🤓'
':skull:': '&f☠'
':alien:': '&a👽'
':thumbs_up:': '{emojis_tone}👍'
':thumbs_down:': '{emojis_tone}👎'
':note:': '&9🎵'
':pizza:': '&6🍕'
':copyright:': ©
':trademark:': ™
':tm:': ™
':alpha:': α
':beta:': β
':gamma:': γ
':euro:': €
':pound:': £
':yen:': ¥
':infinity:': ∞
':pi:': π
':degree:': °
staff-chat:
enabled: true
format:
player: '&7«&8[&6&lSC&8] &f{tag_prefix}{tag_name_color}{player}{tag_suffix}&7» &f'
console: '&7«&8[&6&lSC&8] &8[&5&lC&8] &fConsole &4[***]&7» &f'
placeholder-types:
- PLAYER
- SERVER
log:
enabled: true
print-to-log-file: false
messages-auto-cleaner-period: 120d
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
Setup
The following snippet of code represents and explains the chat's configuration.
chat:
enabled: true # whether to enable or disable this module
event:
override: true # read below
priority: HIGH # read below
format: '&7«&f{prefix}{tag_name_color}{player}{suffix}&7» &f{chat_color}' # players' messages' format in chat
recognized-tlds: # read below
- com
- net
- org
- me
- io
- edu
- gov
- int
- info
- pro
- xyz
- gg
- dev
- link
- eu
- it
- de
- fr
- es
- br
- jp
- ru
- uk
- co.uk
placeholder-types: # read below
- PLAYER
# ...formatted chat's settings...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Chat event
By default ChatPlugin takes over the chat event to ensure the correct functioning of some features.
If you have other plugins that modify the chat event's format, disable chat.event.override
.
NOTE
The following features do not work with the override mode disabled:
If you have other plugins that modify the chat event's message or cancel it that are not working, you may need to change ChatPlugin's event's priority: the chat event is common amongst all plugins and it is called sequentially, following a certain order. You need to find the correct priority to make everything work.
Depending on the environment, the following may be specified at chat.event.priority
:
Bukkit
LOWEST
: ChatPlugin will allow other plugins to fully customize the eventLOW
: event of low priorityNORMAL
: event of normal priorityHIGH
: default and recommended valueHIGHEST
: ChatPlugin will have the final say in what happens to the event
Sponge
FIRST
: ChatPlugin will allow other plugins to fully customize the eventEARLY
: event of low priorityDEFAULT
: event of normal priorityLATE
: default and recommended valueLAST
: ChatPlugin will have the final say in what happens to the event
If you are unable to solve the issue, please open a ticket on our Discord server.
The recognized-tlds
setting is used by the antispam and other modules to identify URLs sent by players. You can find a complete list here.
Just like for the other modules, you have to specify which placeholder types you wish to use. Refer to the Modules/Placeholders page for more info.
Formatted chat
Module info | |
---|---|
Configuration | chat.formatted-chat in chat.yml |
Manager | FormattedChatManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
This module allows players who have the chatplugin.formatted-chat
permission to write formatted and colored messages in the chat.
Setup
The following snippet of code represents and explains the formatted chat's configuration.
# ...chat's settings...
formatted-chat:
enabled: true # whether to enable or disable this module
send-anyway: true # read below
# ...chat channels settings...
34
35
36
37
The send-anyway
option controls if formatted messages should be always sent, even if players do not have the required permission. In that case, the message will be sent not formatted and they will receive a warning message found at chat.no-format
in the player's language's messages' file.
Chat channels
Module info | |
---|---|
Configuration | chat.chat-channels in chat.yml |
Manager | ChatChannelsManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
This module separates the chat into different channels. All messages are logged and you can read them using the channel spy mode. Every player can listen to an unlimited number of channels but may write in one at a time.
The example-id
channel may require the following permissions:
chatplugin.channels.example-id
to see, join and listen to it, if access is restrictedchatplugin.channels.example-id.write
to write in it, if writing is restricted
Setup
The following snippet of code represents and explains the chat channels' configuration.
# ...formatted chat's settings
channels:
enabled: false # whether to enable or disable this module
reading-notification-enabled: true # whether to send the "chat.nobody-read" message
spy:
on-join-enabled: true # whether to enable the channel spy mode on join for Staff members
format: '&7«&8[&4&lS&8] &f{prefix}{tag_name_color}{player}{suffix}&7» &f' # channel spy's format
default:
listening: # channels to listen to automatically to on join
- default
- global
writing: default # channel to write in automatically on join
values:
default: # channel's ID
display-name: Default # channel's display name
format: '&7«&f{prefix}{tag_name_color}{player}{suffix}&7» &f' # channel's chat format
type: LOCAL # read below
console-included: true # whether the console should receive the channel's messages
aliases: # aliases associated to the channel
- ranged
- local
- l
languages: # IDs of languages spoken in the channel
- '*'
range: 50 # custom property of local channels - read below
global:
display-name: Global
prefix: '!' # prefix to directly send messages to the channel
format: '&7«&8[&2&lG&8] &f{prefix}{tag_name_color}{player}{suffix}&7» &f'
type: GLOBAL
access-restricted: false # read below
writing-restricted: true # read below
console-included: true
aliases:
- g
languages:
- '*'
# ...antispam's settings...
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
NOTE
This module is disabled by default.
There are several types of channel with different scopes and placeholders and properties that you can check out below. When configuring channels, you have to specify the common and custom properties. For example, check the range
property of the default channel.
Feel free to edit or remove the default channels.
Adding channels
To add a new channel, you need to specify its ID and its properties. The ID has to respect the following pattern: ^[a-zA-Z0-9-_]{2,36}$
.
# ...chat channels' settings...
# ...default channels...
new-channel: # ID - required
display-name: World
format: '&7«&f{prefix}{tag_name_color}{player}{suffix}&7» &f'
type: WORLD # type - required
access-restricted: false
writing-restricted: false
console-included: true
aliases:
- w
languages:
- '*'
# ...antispam's settings...
72
73
74
75
76
77
78
79
80
81
82
83
84
...which, after a /chatplugin reload
, will load the channel.
NOTE
Messages sent in a network-wide channel will be sent to all channels with the same ID under the proxy. If you create one in your lobby, make sure to also add it to every server that should be reached by its messages.
Placeholders
Some channel types offer custom placeholders, but every channel features the following common placeholders:
{channel_id}
: channel's ID{channel_display_name}
: channel's display name or ID if missing{channel_prefix}
: channel's prefix or message atplaceholders.not-present
if missing{channel_type}
: channel's type (format @chat.channel.types
){channel_aliases}
: channel's aliases{channel_languages}
: channel's languages' display names{channel_access}
: channel's access restrictions (format @chat.channel.restrictions
){channel_writing}
: channel's writing restrictions (format @chat.channel.restrictions
){channel_listeners}
: channel's listeners' names{channel_listeners_amount}
: channel's listeners' amount
Types
The following channel types are currently available:
Type | Custom properties | Additional placeholders | Proxy-wide | Free version |
---|---|---|---|---|
LOCAL |
|
| ❌ | ✔ |
WORLD | ❌ | ✔ | ||
GLOBAL | ❌ | ✔ | ||
NETWORK | ✔ | ❌ | ||
DISCORD |
|
| ✔ | ❌ |
TELEGRAM |
|
| ✔ | ❌ |
NOTE
The DISCORD
and TELEGRAM
channel types have not been implemented yet.
Commands
/chatchannel
command
The /chatchannel <join|leave|switch|info|list>
command allows players to interact with loaded channels.
Its messages are configurable at chat.channel
in the messages' files.
Refer to the Getting started/Commands/User page for more info.
/chatchannelspy
command
The /chatchannelspy
command allows Staff members to spy a channel's messages without joining it.
Its messages are configurable at chat.channel.spy
in the messages' files.
Refer to the Getting started/Commands/Admin page for more info.
Antispam
Module info | |
---|---|
Configuration | chat.antispam in chat.yml |
Manager | AntispamManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
ChatPlugin provides a powerful antispam solution for the server's chat. It is able to block URLs, IP addresses, caps, flood, spam and swearing. A notification is sent to players who have the chatplugin.antispam.notification
permission whenever a player sends disallowed text:
Setup
The following snippet of code represents and explains the antispam's configuration.
# ...chat channels' settings...
antispam:
enabled: true # whether to enable or disable this module
leet-filter-enabled: true # whether to filter leetspeak
prevention:
urls:
enabled: true # whether to block URLs
allowed-domains: # list of allowed domains
- remigio07.me
- megaproserver.com
- youtube.com
whitelist: # list of allowed pages
- spigotmc.org/forums
ips:
enabled: true # whether to block IP addresses
whitelist: # list of allowed IP addresses
- 127.0.0.1
seconds-between-messages: 2 # seconds to wait between two messages
seconds-between-same-messages: 10 # seconds to wait between two identical messages
max-caps-length: 4 # max caps length allowed before checking the next option
max-caps-percentage: 50 # max caps percent allowed
highlight-color: '&4&n' # color used to highlight disallowed text
messages-whitelist: # list of messages that will bypass the anti flood
- hello
- hey
- ok
- ciao
words-blacklist: # list of disallowed words
- ' arse '
- arsehole
- ' ass '
- asshole
- bastard
- bitch
- blowjob
- bollock
- bullshit
- cocksucker
- ' crap'
- ' cum'
- cunt
- dick
- faggot
- fuck
- gtfo
- handjob
- kys
- nigga
- nigger
- pussy
- ' shit'
- slut
- 'twat '
- ' wank'
- whore
- arrap
- bocchin
- ' caca'
- caga
- ' cazz'
- checc
- coglion
- cojon
- culo
- ditalin
- figa
- fotter
- fottut
- froci
- merd
- mignott
- minchi
- negr
- puttan
- pompin
- ricchion
- sborr
- stronz
- troia
- ' troie '
- zoccola
- zoccole
# ...player ping's settings...
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
Note that some disallowed words start or end with a space. Take the word "ass" as an example. Both "assault" and "glass" contain that word, respectively in the starting and final position, even though the antispam must not filter them.
To allow characters to be written before the word, add a space in front of it. To allow characters after it, add a space at the end. To disallow the word completely, do not put any space.
Checks
The antispam performs several checks to decide whether the player can send the message or not:
Index | Check | Description | Bypass permission | Message's path |
---|---|---|---|---|
1 | Permission | Does the player not have the parent bypass permission? | chatplugin.antispam.bypass | ❌ |
2 | URL | Does the message contain any disallowed URLs? | ❌ | chat.antispam.no-url |
3 | IP address | Does the message contain any disallowed IP addresses? | ❌ | chat.antispam.no-ip |
4 | Blacklisted word | Does the message contain any blacklisted words? | chatplugin.antispam.swear | chat.antispam.no-swear |
5 | Caps | Does the message exceed the max caps length and percentage? | chatplugin.antispam.caps | chat.antispam.no-caps |
6 | Flood | Has an identical message been sent recently? | chatplugin.antispam.flood | chat.antispam.no-flood |
7 | Spam | Is the message not contained in the whitelist? | chatplugin.antispam.spam | chat.antispam.no-spam |
If one of these checks is triggered, the player will not be able to send the message and they will receive the appropriate message (except in the first case).
Player ping
Module info | |
---|---|
Configuration | chat.player-ping in chat.yml |
Manager | PlayerPingManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
This module allows players who have the chatplugin.player-ping
permission to mention and ping other players in the chat by writing their username:
Setup
The following snippet of code represents and explains the player ping's configuration.
# ...antispam's settings...
player-ping:
enabled: true # whether to enable or disable this module
at-sign-required: false # whether @ in front of names is required
color: '&b' # the color pings in chat will have
sound:
enabled: true # whether players should hear a sound when pinged
id: ENTITY_EXPERIENCE_ORB_PICKUP # the sound that pings will produce
volume: 1.0 # the sound's volume [0 - 1]
pitch: 1.0 # the sound's pitch [0 - 2]
titles:
enabled: true # whether to send titles to pinged players
fade-in-ms: 500 # time for the title to fade in, in milliseconds
stay-ms: 3500 # time for the title to stay on screen, in milliseconds
fade-out-ms: 1000 # time for the title to fade out, in milliseconds
titles:
english: '&b@{player}' # main language's translation - required
italian: '&b@{player}' # other language's translation - optional
subtitles:
english: '&ehas pinged you in the chat'
italian: '&eti ha menzionato in chat'
# ...private messages' settings...
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
Refer to the Getting started/Syntax/Recognized IDs page to find out the sound IDs specifiable at sound.id
.
When pinged, players will receive the message specified at chat.pinged
in their language's messages' file.
Private messages
Module info | |
---|---|
Configuration | chat.private-messages in chat.yml |
Manager | PrivateMessagesManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
This module allows players and the console to send private messages to other players. All messages are logged and you can read them using the socialspy mode.
Setup
The following snippet of code represents and explains the private messages' configuration.
# ...player ping's settings...
private-messages:
enabled: true # whether to enable or disable this module
format:
sent: '&7«&8[&b✎&8] &fYou &e➡ &f{recipient}&7» &f' # format displayed for sent messages
received: '&7«&8[&b✎&8] &f{sender} &e➡ &fYou&7» &f' # format displayed for received messages
socialspy: '&7«&8[&4&lSS&8] &f{sender} &e➡ &f{recipient}&7» &f' # format displayed for the socialspy mode
placeholder:
sender: '{player}' # text used to replace the {sender} placeholder
recipient: '{player}' # text used to replace the {recipient} placeholder
placeholder-types: # read below
- JUST_NAME
sound:
enabled: true # whether players should hear a sound when receiving a private message
id: ENTITY_EXPERIENCE_ORB_PICKUP # the sound that private messages will produce
volume: 1.0 # the sound's volume [0 - 1]
pitch: 1.0 # the sound's pitch [0 - 2]
advancements:
enabled: true # whether private messages should also be displayed as advancements (1.13+)
format: |- # advancements' format (multi line)
&8[&b✎&8] &f{sender_plain}
&7
max-message-length: 19 # private messages' max length for advancements
icon:
material: WRITABLE_BOOK # advancements' icon's material
glowing: true # whether the advancements' icon should have the glowing effect
bypass-antispam-checks: # antispam's checks to bypass when checking the messages
- CAPS
- FLOOD
- SPAM
- SWEAR
socialspy-on-join-enabled: true # whether to enable the socialspy mode on join for Staff members
muted-players-blocked: false # whether to block private messages sent by muted players
reply-to-last-sender: true # whether to /reply to last sender or to last recipient
# ...player ignore's settings...
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
Just like for the other modules, you have to specify which placeholder types you wish to use. Refer to the Modules/Placeholders page for more info.
Additionally, the following placeholders may be used:
{sender_plain}
: sender's name or "Console"{recipient_plain}
: recipient's name or "Console"
Note that advancements.format
supports multi line strings.
Refer to the Getting started/Syntax/Recognized IDs page to find out the sound IDs specifiable at sound.id
.
You can configure which antispam checks should be ignored when checking private messages at bypass-antispam-checks
. The following values may be specified:
Refer to the table here to find out how these checks work.
Commands
/whisper
command
The /whisper <player> <message>
command allows players to send private messages to other players and the console.
Its messages are configurable at commands.whisper
in the messages' files.
Refer to the Getting started/Commands/User page for more info.
/reply
command
The /reply <message>
command allows players to reply to private messages.
Its only message is configurable at commands.reply.not-found
in the messages' files.
Refer to the Getting started/Commands/User page for more info.
/socialspy
command
The /socialspy
command allows Staff members to spy online players' private messages.
Its messages are configurable at commands.socialspy
in the messages' files.
Refer to the Getting started/Commands/Admin page for more info.
Player ignore
Module info | |
---|---|
Configuration | chat.player-ignore in chat.yml |
Manager | PlayerIgnoreManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
This module allows players to ignore other players. This means that they will not receive their (private) messages and that they will not be @pinged in the chat.
Setup
The following snippet of code represents and explains the player ignore's configuration.
# ...private messages' settings...
player-ignore:
enabled: true # whether to enable or disable this module
# ...hover info's settings...
207
208
209
/ignore
command
The /ignore <add|remove|clear|list> [player]
command allows players to manage their ignored players.
Its messages are configurable at commands.ignore
in the messages' files.
Refer to the Getting started/Commands/User page for more info.
Hover info
Module info | |
---|---|
Configuration | chat.hover-info in chat.yml |
Manager | HoverInfoManager |
Support | 1.8 |
Free version | ❌ |
Proxy-configurable | ❌ |
This module displays custom text when players hover messages sent in the chat. It can also make them execute a specific action if they click them:
Setup
The following snippet of code represents and explains the hover info's configuration.
# ...player ignore's settings...
hover-info:
enabled: true # whether to enable or disable this module
rank:
enabled: true # if ranks' descriptions should be displayed when hovering a player's rank
player:
enabled: true # if info should be displayed when hovering a player's name
click: # action performed when a player clicks a player's name
action: SUGGEST_TEXT # read below
value: '/msg {player} ' # click event's value
placeholder-types: # read below
- PLAYER
- SERVER
hovers: # text to display when hovering
english: |- # main language's translation - required (multi line)
&a&l{player}
&7Language: &f{language_display_name}
&7Time: &f{date_hour}
&7Ping: {ping_format} ms
&e&oClick to send a /msg!
italian: |- # other language's translation - optional (multi line)
&a&l{player}
&7Lingua: &f{language_display_name}
&7Orario: &f{date_hour}
&7Ping: {ping_format} ms
&e&oClicca per inviare un /msg!
url:
enabled: true # if text should be displayed when hovering a URL in the chat
default-https: true # whether to append https:// if it has not been specified
color: '&b&n' # the URL's color and/or format codes
hovers:
english: '&9[Click here to open the URL]' # main language's translation - required (multi line)
italian: '&9[Clicca qui per aprire l''URL]' # other language's translation - optional (multi line)
player-ping:
enabled: true # if text should be displayed when hovering a @mention in the chat
instant-emoji:
enabled: true # if text should be displayed when hovering an instant emoji in the chat
hovers:
english: |- # main language's translation - required (multi line)
{emoji} &f{emoji_id}
&7A default emoji. You can use this
&7emoji everywhere on this server.
italian: |- # other language's translation - optional (multi line)
{emoji} &f{emoji_id}
&7Un'emoji predefinita. Puoi usare questa
&7emoji ovunque su questo server.
# ...instant emojis' settings...
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
The plugin currently supports 4 click actions specifiable at click.action
:
COPY_TEXT
- copies text to the player's clipboard; only available on 1.15.2+ serversOPEN_URL
- opens the URL in the player's browserSEND_MESSAGE
- makes the player send a messageSUGGEST_TEXT
- suggests text in the player's chat
Note that player.hovers
, url.hovers
and instant-emoji.hovers
support multi line strings.
Just like for the other modules, you have to specify which placeholder types you wish to use. Refer to the Modules/Placeholders page for more info.
Instant emojis
Module info | |
---|---|
Configuration | chat.instant-emojis in chat.yml |
Manager | InstantEmojisManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
This module allows players to write configurable emojis and special characters in the chat by typing their :ID:.
Setup
The following snippet of code represents and explains the instant emojis' configuration.
# ...hover info's settings...
instant-emojis:
enabled: true # whether to enable or disable this module
tones: # recognized emojis' tones
- '#FFFF55' # default emojis' tone
- '#F9E0C1' # tone 1
- '#E3C29C' # tone 2
- '#C6956C' # ...
- '#A06940'
- '#5C473C'
values:
:): '{emojis_tone}☺'
<3: '&c❤'
':smile:': '{emojis_tone}😃'
':slight_smile:': '{emojis_tone}🙂'
':grin:': '{emojis_tone}😁'
':grinning:': '{emojis_tone}😀'
':sunglasses:': '{emojis_tone}😎'
':weary:': '{emojis_tone}😩'
':tired:': '{emojis_tone}😫'
':money:': '&a🤑'
':nerd:': '{emojis_tone}🤓'
':skull:': '&f☠'
':alien:': '&a👽'
':thumbs_up:': '{emojis_tone}👍'
':thumbs_down:': '{emojis_tone}👎'
':note:': '&9🎵'
':pizza:': '&6🍕'
':copyright:': ©
':trademark:': ™
':tm:': ™
':alpha:': α
':beta:': β
':gamma:': γ
':euro:': €
':pound:': £
':yen:': ¥
':infinity:': ∞
':pi:': π
':degree:': °
# ...Staff chat's settings...
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
Adding emojis
To add a new emoji, you just need to specify its ID and its character. Note that old Vanilla Minecraft does not support certain characters.
# ...hover info's settings...
instant-emojis:
enabled: true
values:
# ...default emojis...
':ok:': '{emojis_tone}👌'
# ...Staff chat's settings...
256
257
258
259
260
261
...which, after a /chatplugin reload
, will result in:
/emojistone
command
The /emojistone <tone> [player]
command allows players to change their emojis' default tone:
NOTE
This command changes depending on the plugin's edition. Here is shown the premium version's one.
Its messages are configurable at commands.emojistone
in the messages' files and in the guis/emojis-tone.yml file.
Refer to the Getting started/Commands/User page for more info.
Staff chat
Module info | |
---|---|
Configuration | chat.staff-chat in chat.yml |
Manager | StaffChatManager |
Support | 1.8+ |
Free version | ✔ |
Proxy-configurable | ❌ |
This module allows Staff members to interact through a private chat that also supports cross-server communication:
Setup
The following snippet of code represents and explains the Staff chat's configuration:
# ...instant emojis' settings...
staff-chat:
enabled: true # whether to enable or disable this module
format:
player: '&7«&8[&6&lSC&8] &f{tag_prefix}{tag_name_color}{player}{tag_suffix}&7» &f' # format displayed for players' messages
console: '&7«&8[&6&lSC&8] &8[&5&lC&8] &fConsole &4[***]&7» &f' # format displayed for the console's messages
placeholder-types: # read below
- PLAYER
- SERVER
# ...chat log's settings...
295
296
297
298
299
300
301
302
303
Just like for the other modules, you have to specify which placeholder types you wish to use. Refer to the Modules/Placeholders page for more info.
/staffchat
command
The /staffchat [message]
command allows Staff members to communicate with each other across the server:
Its messages are configurable at commands.staffchat
in the messages' files.
Refer to the Getting started/Commands/Admin page for more info.
Chat log
Module info | |
---|---|
Configuration | chat.log in chat.yml |
Manager | ChatLogManager |
Support | 1.8+ |
Free version | ❌ |
Proxy-configurable | ❌ |
This module saves players' messages to the PUBLIC_MESSAGES
and PRIVATE_MESSAGES
data containers and allows Staff members to search for previously sent messages using a query.
Setup
The following snippet of code represents and explains the chat log's configuration:
# ...Staff chat's settings...
log:
enabled: true # whether to enable or disable this module
print-to-log-file: false # whether to also print messages to chatplugin.log
messages-auto-cleaner-period: 120d # period of time after which old messages will be cleaned
303
304
305
306
Refer to the Syntax/Timestamps page to find out the timestamp specifiable at messages-auto-cleaner-period
.
/chatlog
command
The /chatlog <player> <time> [page] [text] [-privatemessages] [-blocked]
command allows Staff members to look up messages that contain certain text sent by a specific player:
Its messages are configurable at chat.log
in the messages' files.
Refer to the Getting started/Commands/Admin page for more info.
Placeholders
The following placeholders may be used at chat.log.message-format
in the messages' files:
{sender}
: sender's name{sender_uuid}
: sender's UUID{rank_id}
: player's rank's ID{server}
: message's origin server's ID{world}
: message's origin world's name{content}
: the message sent{date}
: message's date (format @chat.log.message-format.date-format
){denied}
: if the message has been blocked (format @chat.log.message-format.denied-format
){deny_chat_reason}
: reason why the message has been blocked or "NULL" if it has not
Public messages (chat.log.message-format.public
) offer one extra placeholder:
{channel_id}
: origin chat channel's ID (format @chat.log.message-format.public.global-format
) or message atplaceholders.not-present
if missing
Private messages (chat.log.message-format.private
) offer two extra placeholders:
{recipient}
: recipient's name or "Console" for the console{recipient_uuid}
: recipient's UUID or nil UUID for the console
ChatPlugin - A complete yet lightweight plugin which handles just too many features!
This wiki is currently updated to version 1.10.0.
© 2025 Remigio07
Please report any mistakes and misspellings as described at Home/Reporting issues.