Code (YAML):
# a list of all EasyChat modules and their settings
# you can turn each of them off by setting its "enabled" option to false
modules
:
# turns on or off a detailed technical information mode
# useful if you're trying to see what's wrong with the plugin
# or if you've been asked to provide a chat output with debug data
# use the "enabled" option to allow the /ec_debug command
# use the "debug-mode-active" option to actually turn debug mode on or off in order to display the technical info in chat
debug-mode-command:
enabled
: false
debug-mode-active
: false
# enables or disables use of the /ec_join (or /join, /ch) command
join-channel-command:
enabled
: true
# lists all channels available to the player if no parameters are given to this command
available-channels-listing
: true
# enables or disables use of the /ec_subscribe (or /subscribe, /sub) command
subscribe-channel-command:
enabled
: true
# enables or disables use of the /ec_unsubscribe (or /unsubscribe, /unsub) command
unsubscribe-channel-command:
enabled
: true
# enables or disables use of the /ec_isolate (or /isolate, /focus) command
isolate-channel-command:
enabled
: true
# enables or disables use of the /ec_ban (or /eban) command
ban-channel-command:
enabled
: true
# enables or disables use of the /ec_unban (or /eunban) command
unban-channel-command:
enabled
: true
# enables or disables use of the /ec_mute (or /mute) command
mute-in-channel-command:
enabled
: true
# enables or disables use of the /ec_unmute (or /unmute) command
unmute-in-channel-command:
enabled
: true
# enables or disables use of the /ec_mutec (or /mutec) command
mute-channel-command:
enabled
: true
# enables or disables use of the /ec_unmutec (or /unmutec) command
unmute-channel-command:
enabled
: true
# enables or disables use of the /ec_ignore (or /ignore) command
ignore-channel-command:
enabled
: true
# allows to reload EasyChat via /ec_reload command
reload-easychat:
enabled
: true
# allows displaying EasyChat version via /ec_version command
get-easychat-version:
enabled
: true
# Message of the Day (MOTD)
# Displayed when a player joins the server as well as through the /motd (or /ec_motd) command.
# You can change MOTD in file motd.txt and motd-first-join.txt
# If default MOTD files are not in the plugin data folder, type /ec_motd to auto-generate them.
# You can use same placeholders that are used for channels (see Global channel's format setting for details).
motd:
enabled
: true
# Rules for the server.
# Displayed through the /rules (or /ec_rules) command.
# If default rules.txt file is not in the plugin data folder, type /ec_rules to auto-generate it.
# You can use same placeholders that are used for channels (see Global channel's format setting for details).
rules:
enabled
: true
# enable this module to require your players to move before they can chat
# or run commands (with the exception of commands listed in allowed-commands list)
move-to-chat:
enabled
: false
allowed-commands
:
- login
- register
# allows players mentioned in chat or sent a private message
# to be notified via a custom sound effect
mention-sound-notification:
enabled
: true
use-for-private-messages
: true
mention-character
:
"@"
# sound names can be found on the following websites, based on your MC version:
# MC 1.8.8 and lower: https://jd.bukkit.org/org/bukkit/Sound.html
# MC 1.9 and higher: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
sound
: BLOCK_NOTE_BLOCK_PLING
sound-private-message
: BLOCK_NOTE_BLOCK_PLING
# allows checking for updates to EasyChat on Spigot in a defined time interval
# or during plugin startup
# outputs new version messages into console as well as informs players with permission
# "ec.notifynewversion" when they log in
check-for-updates:
enabled
: true
# set this to -1 if you only want to check for EasyChat updates once,
# usually when the server starts (or when EC is reloaded)
check-for-updates-every-seconds
: 7200
# DiscordSrv support, false by default - set to true to allow EasyChat
# to forward messages to the correct DiscordSrv channels and make sure
# you set up config.yml in the DiscordSrv plugin's folder, so that channel names
# match your channel names defined in EasyChat configuration
discordsrv-plugin-compatibility:
enabled
: false
# custom join and first join messages
custom-join-message:
enabled
: false
format
:
"{DISPLAYNAME} &ejoined the game"
format-first-join
:
"{DISPLAYNAME} &ejoined us for the first time. &dWelcome home!"
# custom leave message
custom-leave-message:
enabled
: false
format
:
"{DISPLAYNAME} &eleft the game"
# chat channels configuration
# you can leave this default configuration intact
# and simply disable the channels module if you don't want any channels
# in your chat and all you want it the vanilla chat experience
# please note: other plugins may still adjust your chat to their formatting
# if you set them up to do so even when this module is disabled
channels:
enabled
: true
# name of the default channel to be used for all players when they join the server
default-channel-name
: Global
# there is a "/ec_isolate <channel_name>" which will unsubscribe a player from all other channels
# they may be subscribed to (listening to) and will only show chat from the selected channel
# ... this option will remember their subscription choice before they decided to isolate their chat
# and will work as a switch, so upon the next /isolate command, that player will have all their
# previous subscriptions restored
isolate-command-remembers-subscriptions
: true
setup
:
# a "simple" global channel, the name "Global" is arbitrary, you can pick any name for the channels you create
# these names are used in commands to auto-complete channel names to join/subscribe to/unsubscribe from
Global
:
# when switching between channels, a player can type either "/join Global" or simply "/join G"
# if this option is omitted from channel setup, no shortcut will be used for the /join command
shortcut
: G
# optional color code to use for this channel name when informing players about this channel being muted,
# disabled etc.
# you can use custom HEX colors (MC 1.16+) in the form of: 󅑀 (which is olive color)
color
:
"&2"
# whether or not users should be auto-subscribed to this channel as soon as they join the server
# default: false
auto-subscribe-newcomers
: false
# a character (or set of characters) which can be used at the beginning of a chat message to send
# that single message into this channel even if the player is currently talking in a different one
# for example, being in a Local chat but writing "!Bye everyone :)" will send that message in Global channel
# default: "" (i.e. not used)
one-time-channel-msg-character
:
"!"
# optional channel join and leave notifications to show all players in that channel
# that a player has joined/left - displayed when switching channels via /ec_join (or /join)
# default: false
channel-join-leave-message
: true
# chat format - you can build your chat line
# word-by-word, characted-by-character
# and give each of them a JSON property,
# such as hover text, command to run on click,
# text copy into clipboard or text to fill into chat
# on click
#
# usable placeholders in formatting are:
# {PLAYERNAME} - real nickname of the player, usually for use in commands
# {DISPLAYNAME} - required Vault to show prefix/suffix! name of the player that may come colorized and prefixed from other plugins, such as a permissions plugin
# {GROUP} - requires Vault! group of the player (usually contained in {DISPLAYNAME} but available if your perm plugin doesn't add group prefix to nicknames)
# {WORLDNAME} - name of the world where the player currently resides
# {CHANNEL_NAME} - gets replaced by full channel name (can be pretty long)
# {CHANNEL_SHORTCUT} - gets replaced by the channel shortcut
# {MESSAGE} - the actual message the player sent
# ${translation-key} - any translation key from language file will be replaced by its value (example: "${motd.welcome}")
# %PLACEHOLDERAPI_VARIABLE% - you can use any PAPI variables available on your server
#
# usable JSON properties are:
# hover - displays a text that hovers over the JSON chat part
# click - action that runs when a player clicks on this chat part
# available options:
# - suggest: enters a text into player's chat, suggesting them to type it (usually a command they may run)
# - command: runs the command listed when player clicks on the JSON chat part
# - url: opens the given URL in player's browser
# - clipboard: copies this JSON chat part into the clipboard (MC 1.15+)
# insertion - when the text is shift-clicked by a player, this text is inserted in their chat input and it does not overwrite any existing text the player was writing
#
# the formatted end result for the Global channel will be: &d[P]&2[G]&f{DISPLAYNAME} &f> {MESSAGE}
format
:
# the actual text shown on chat, including any color formatting
"&d[P]"
:
# message that follows mouse when the player moves mouse over this chat part
hover
:
"&bclick to promote this user into VIP"
click
:
# command to run when a player clicks on this chat part
command
:
"/lp user {PLAYERNAME} promote vip"
"&2[{CHANNEL_SHORTCUT}]&f":
hover
:
"&2Global"
click
:
# text to fill into chat when a player clicks on this chat part
suggest
:
"/isolate Global"
"{DISPLAYNAME}":
click:
suggest
:
"/me "
" &f> "
:
# if you want this to be a simple (optionally colored) text without any JSON properties,
# set the no-json option here to true
"no-json"
: true
"{MESSAGE}":
hover
:
"&bclick to copy into clipboard"
# when a player clicks on this chat part, it will be copied into the clipboard
click:
clipboard
: true
# text format for chat bubbles above player heads
# does not support JSON attributes or text replacements (other than {MESSAGE}), only color and formatting codes
# set to "" or remove from channel setup completely to disable chat bubbles for this channel
# default: ""
chat-bubble-format
:
"&e{MESSAGE}"
# if you want to text sent in chat and show it only as a chat bubble in this channel,
# set this to true
# setting this to false or removing it completely from channel setup will show messages both,
# in chat and in chat bubble (if chat bubbles are enabled)
# default: false
hide-chat-only-show-chat-bubbles
: false
# how many blocks around the player can text in this chat channel be heard
# usually used for local chat channels
# set to 0 or remove from channel setup completely to create a global chat channel
# default: 0
distance
: 0
# if a talking player is behind a wall from solid blocks, this will set how many blocks from that wall
# can text in this channel be heard
# - this is ignored if "distance" is set to 0, since that makes a channel global
# - set this to -1 or remove this option completely if you don't want this feature active for this channel
# - setting this value to 0 will stop players behind a wall hearing other players' messages from this channel
# - setting it to 5 will make players up to 5 blocks away from a wall hear text from this channel
# - if you set distance to 5 and this value to 10, their messages will still only be heard up to the master
# radius distance of 5
# default: -1
hear-over-solid-blocks-distance
: -1
# disable this channel in the following worlds
# this option can be removed from a channel setup if not used
# default: []
do-not-use-in-these-worlds
:
- world27
- MyCrazyWorld
# if this is set to true, the "do-not-use-in-these-worlds" option will be used to say in which worlds
# is this chat actually ENABLED
# set it to false to return the normal functionality of the "do-not-use-in-these-worlds" option
# this option can be removed from a channel setup if not used
# default: false
do-not-use-works-as-whitelist
: false
# permissions a player has to have in order to join this channel
# leave empty (i.e. []) or remove from a channel setup to allow everybody to join this channel
# if you provide multiple permissions, player will only require a single permission from that list
# in order to join this channel
# default: []
join-permissions
:
[
]
# permissions a player has to have in order to subscribe to this channel
# leave empty (i.e. []) or remove from a channel setup to allow everybody to subscribe to this channel
# if you provide multiple permissions, player will only require a single permission from that list
# in order to subscribe to this channel
# default: []
subscribe-permissions
:
[
]
# permissions a player has to have in order to use the one-time message shortcut for this channel
# leave empty (i.e. []) or remove from a channel setup to allow everybody to use the one-time
# message shortcut
# if you provide multiple permissions, player will only require a single permission from that list
# in order to use the one-time message shortcut for this channel
# default: []
one-time-msg-permissions
:
[
]
# would you like this channel to be password-protected? if not, leave this option empty ("")
# or remove this option from a channel setup
# default: ""
password
:
""
# how many seconds a player needs to wait before they can send the next message
# set to 0 to disable this limitation or remove it from a channel setup
# default: 0
cooldown
: 3
# whether this channel is muted for everybody
# only players with "ec.bypass.muted" permission are able to talk in muted channels
# default: false
muted
: false
# whether or not this channel can be listened to while being active in another channel
# players can chat only in a single channel but can be subscribed into multiple, if not disallowed
# via a negative "-ec.subscribe.<channel-name>" permission or by setting this value to false
# default: true
subscriptions
: true
# a list of players banned from this channel
# default: []
bans
:
[
]
# a list of players muted in this channel
# default: []
mutes
:
[
]
# a local channel, allowing players to hear each other for the distance of 16 blocks
Local:
shortcut
: L
color
:
"&e"
one-time-channel-msg-character
:
"."
format:
"&e[{CHANNEL_SHORTCUT}]&f":
hover
:
"&eLocal"
click:
suggest
:
"/isolate L"
"{DISPLAYNAME}":
click:
suggest
:
"/me "
" &f> ":
"no-json"
: true
"{MESSAGE}":
hover
:
"&bclick to copy into clipboard"
click:
clipboard
: true
chat-bubble-format
:
"&e{MESSAGE}"
distance
: 16
cooldown
: 3
muted
: false
subscriptions
: true
bans
:
[
]
mutes
:
[
]
# a whisper channel used to tell people secrets that don't leave the inside of the room
Whisper:
shortcut
: W
color
:
"&7"
one-time-channel-msg-character
:
"@"
format:
"&7[{CHANNEL_SHORTCUT}]":
hover
:
"&7Whisper"
"{DISPLAYNAME} &7> {MESSAGE}":
"no-json"
: true
chat-bubble-format
:
"&7{MESSAGE}"
distance
: 4
hear-over-solid-blocks-distance
: 0
cooldown
: 3
muted
: false
subscriptions
: true
bans
:
- IWasWhisperingTooMuch
- AlwaysBanned
mutes
:
[
]
# help channel, allowing players to get help from your helpers and moderators
Help:
shortcut
: H
color
:
"&b"
auto-subscribe-newcomers
: true
one-time-channel-msg-character
:
"?"
channel-join-leave-message
: true
format:
"&b[{CHANNEL_SHORTCUT}]&f":
hover
:
"&bHelp"
click:
suggest
:
"/isolate H"
"{DISPLAYNAME} &f> ":
"no-json"
: true
"{MESSAGE}":
hover
:
"&bclick to copy message into clipboard"
click:
clipboard
: true
chat-bubble-format
:
"&b{MESSAGE}"
cooldown
: 3
muted
: false
subscriptions
: true
bans
:
[
]
mutes
:
[
]
# moderators and owners chat
Staff:
shortcut
: S
color
: '&c'
one-time-channel-msg-character
:
"*"
channel-join-leave-message
: true
format:
"&c[{CHANNEL_SHORTCUT}]&f":
hover
:
"&cStaff"
click:
suggest
:
"/isolate S"
"{DISPLAYNAME} &f> ":
"no-json"
: true
"{MESSAGE}":
hover
:
"&bclick to copy into clipboard"
click:
clipboard
: true
chat-bubble-format
:
"&c{MESSAGE}"
join-permissions
:
-
"chat.channel.staff"
-
"IAMOWNER"
subscribe-permissions
:
-
"chat.channel.staff"
-
"IAMOWNER"
one-time-msg-permissions
:
-
"chat.channel.staff"
-
"IAMOWNER"
muted
: false
subscriptions
: true
bans
:
[
]
mutes
:
[
]
# private channel for VIPs
VIP:
shortcut
: V
color
: '&c'
one-time-channel-msg-character
:
"$"
channel-join-leave-message
: true
format:
"&d[{CHANNEL_SHORTCUT}]&f":
hover
:
"&bclick to demote this user from VIP status"
click:
command
:
"/lp user {PLAYERNAME} demote vip"
"&c[V]&f":
hover
:
"&cVIP"
click:
suggest
:
"/isolate V"
"{DISPLAYNAME}":
click:
suggest
:
"/me "
" &f> ":
"no-json"
: true
"{MESSAGE}":
hover
:
"&bclick to copy into clipboard"
click:
clipboard:
enabled
: true
chat-bubble-format
:
"&c{MESSAGE}"
join-permissions
:
-
"vip.chat.channel"
subscribe-permissions
:
-
"vip.chat.channel"
one-time-msg-permissions
:
-
"vip.chat.channel"
password
:
"ThisIsNotForOrdinaryPeople"
cooldown
: 2
muted
: false
subscriptions
: true
bans
:
[
]
mutes
:
[
]
# this is basically a spy channel across all existing channels,
# to which you can subscribe to hear messages from ALL channels in game
# you can use these additional formatting placeholders:
global-spy-channel:
enabled
: true
shortcut
:
"@spy"
# the forwarded original chat message will be stripped of all color information
# and shown in gray italics by default
format
:
"&7&o{CHANNEL_SHORTCUT} {MESSAGE}"
# default chat messages format if channels module is disabled
default-chat-format:
enabled
: true
format
:
"&d{DISPLAYNAME}&f > {MESSAGE}"
cooldown
: 3
muted
: false
mutes
:
[
]
# format of broadcast messages (via the /say command)
broadcasts:
enabled
: true
format
:
"&d[{DISPLAYNAME}&d] {MESSAGE}"
# private chat messages format, via /msg or /tell command (configurable)
# you can use 2 additional placeholders here, {RECIPIENT}
# which will give you the display name of the message recipient
# and {RECIPIENT_NAME} which will give you the clear username
# of the recipient
private-chat:
enabled
: true
format
: '&6
{DISPLAYNAME
}&a >> &6
{RECIPIENT_NAME
}&r
:
&d{MESSAGE}'
cooldown
: 3
# you can allow logging and spying on commands run by your players
command-spy:
enabled
: true
# if you want to exclude some commands from being spied on you can set them up here
# this restriction can be bypassed via ec.bypass.command-spy-commands permission
excluded-commands
:
- register
- login
# if you prefer not to have color codes from chat sent to console,
# since they generate weird characters in the server log file,
# you can set this up here
console-strip-chat-colors
: false
# if you'd like to run certain commands when someone in chat types a certain phrase,
# or you'd like to replace certain words or phrases with custom text, you can set them up here
# ... you can replace "* smiles" in chat and run it as "/me smiles"
# ... or you can replace phrases such as "this server sucks" with "I'm in love with your server, really!"
#
# note: these patterns must be Java RegExp patterns, which is an advanced way of telling the server
# to look for certain patterns in chat messages and replace them by certain commands
chat-aliasing:
enabled
: false
patterns
:
# match any text that begins with "* " and continues with some text
"asterisk and space into emote"
:
# the text phrase to match
match
:
"^\\* (.+)"
# redirect chat output to command
command
:
"me $1"
# if this is true, the original chat message will still be shown
# if this is false, only the command will be run and the chat message will be cancelled
# default: true
cancel-original-message
: true
# if you want this pattern to work only in certain worlds, list them here
# default: []
excluded-worlds
:
- MyCrazyWorld
- world27
# if you want the "excluded-worlds" option to actually work as "included worlds",
# set this to true and your phrase will only be available in the worlds given above
# otherwise set this to false
# default: false
excluded-worlds-works-as-whitelist
: false
# match the phrase "this server sucks" exactly
"surprise bad talkers"
:
# this will match the below text in a case-insensitive manner
match
:
"(?i)this server sucks"
# ... the above patterns will now match all of the following:
# - this server sucks
# - ThiS serVEr SUcks
# - THIS SERVER SUCKS
#
# now replace message by custom text
replace
:
"I'm in love with your server, really!"
# if you'd like to send a response to the player who sent the chat message
# you can use the following option to set it up
respond
:
"&cNo need to be rude. You may leave anytime."
# international characters work from MC versions 1.9 and above,
# 1.8 has bad unicode support
"unicode replacement":
match
:
"(?U)železný kôň"
replace
:
"drevený kôň"
# chat bubbles on top of player heads as they talk (MC 1.11.2+)
# PLEASE NOTE: chat bubbles above player heads IGNORE local chat and hear-through-walls limitations
# and are visible for the same distance as every other name tag in the game
chat-bubbles:
enabled
: false
# maximum rows a single chat bubble can have
max-bubble-height
: 3
# maximum characters a single chat bubble can show
# longer words won't be truncated and will still appear whole in a single line
max-bubble-characters
: 15
# number of ticks (1 tick = 50ms) between chat bubbles, so there is a slight pause
# between the one and the next chat bubble for a better visual effect
pause-between-bubbles
: 5
# characters per minute, considering an average of 5 chars per word (4 letters + 1 space)
read-speed
: 800
# number of characters to prolong the read-speed calculations by, as I notices that
# there is an additional time of about 2 word (10 characters) required to note the message
# and re-position player's eyes
read-speed-adjustment
: 10
lang
: en-gb