ChatsPlus
The solution for custom chats with a lot of features.
ChatsPlus

<center>If you're looking for a plugin that allows you to make multiple different chats, then this one is for you!</center>

<center>ChatsPlus allows you to create chats that only certain players and ranks can join and chat in, assign those chats to a certain world and much more!
This plugin also has EssentialsDiscord support. If you have chats, that should not be shown in a Discord server, then you can have them ignored using a sub-configuration inside the config file. (More about that in the config section of this description)</center>

It is recommended to use a permissions plugin like LuckPerms for the best experience.

This plugin supports Placeholder API!
|Placeholder|Description| |:------|:------| |%chatsplus_chat%|returns the chat name the player is in.|

<center>This plugin mainly uses the main command <b>/chat</b> in-game, however it comes with subcommands.</center> <p> </p>
|Command Sender|Command|Description|Permission| |:---|:---|:---|:---| |Player|/chat <chat>|Assigns you to a chat|chatsplus.command.chat.<chat>| |Player|/chat off|Unassigns you from a chat|chatsplus.command.off| |Player|/chat mute <chat>|Mutes a chat for the player.|chatsplus.command.mute| |Player|/chat unmute <chat>|Unmutes a chat for the player.|chatsplus.command.unmute| |Player|/chat help|Shows the list of commands.|chatsplus.command.help| ||||| |Admin|/chat assign <player> <chat>|Assigns player to a chat.|chatsplus.command.assign| |Admin|/chat kick <player>|Kicks player from chat they're assigned to.|chatsplus.command.kick| |Admin|/chat reload|Reloads the configs of this plugin.|chatsplus.command.reload| ||||| |Console|chatsystem listChats|Lists up all chats.|-/-| |Console|chatsystem listWorldChats|Lists up all worlds with chat assigned.|-/-| |Console|chatsystem getPlayerChats|Lists up all players who are assigned to a chat.|-/-| |Console|chatsystem reload|Reloads the configs of this plugin.|-/-|

|Permission|Default| |:--|:--| |chatsplus.command.*|true| |chatsplus.command.help|true| |chatsplus.command.chat.<chat>|true| |chatsplus.command.off|true| |chatsplus.command.mute|true| |chatsplus.command.unmute|true| |chatsplus.command.assign|op| |chatsplus.command.reload|op| |chatsplus.command.kick|op| ||| |chatsplus.admin.*|op| |chatsplus.admin.join|true| |chatsplus.admin.bypass|true| |chatsplus.chat.read.<chat>|op|

config.yml
```YAML #############################
CHATSPLUS by Niestrat99 #
#############################
###########
DEBUG #
###########
Allows the developer to try and find out any possible bugs.
debug-mode: false
[]>-----------------------------------------------------------------------------<[]
###########
CHATS #
###########
This option allows you to make new chats. Simply add them to the list below.
Each chat, that you create, will automatically have a permission named 'chatsplus.chat.<chatName>'.
The chats must have sub-settings set up as well, or else it uses default values which may look ugly.
- title = The text that appears in the very front of the message.
- nameTag = The way the player name is displayed. You can make it look like "xXPlayerNameXx" for example.
- messageColor = The color of what the actual message shall appear in.
- ignoreDiscord = This prevents the EssentialsX Discord plugin from sending a message out of this chat into the Discord server, if set to "true".
EXAMPLE:
chats:
vip:
title: '&8[&6VIP&8]'
nameTag: '&8<&6name&8>'
messageColor: '&6'
ignoreDiscord: true
#
NOTE:
- The color codes (e.g. &6) are optional, but allow you to make your chats look fancier.
- You MUST have the text "name" included in your nameTag section, or else the player name won't be displayed.
chats: staff: title: '&b[&fStaffChat&b]' nameTag: '&b<&fname&b>' messageColor: '&r' ignoreDiscord: true vip: title: '&8[&6VIP&8]' nameTag: '&8<&6name&8>' messageColor: '&6' ignoreDiscord: true
[]>-----------------------------------------------------------------------------<[]
####################
PER WORLD CHAT #
####################
In this section, you can assign a chat to a certain world.
If a player joins that world, they'll automatically be assigned to that specific chat.
Just like the chats section, this section also comes with sub configurations:
- chat = The chat that shall be assigned to the world
- isGlobal <true/false> = Whether the chat shall appear in all worlds or not
- offStandard <true/false> = If the player shall be put into the assigned that when using /chat off/kick
To assign a chat to a world you do the following:
per-world-chat:
world:
chat: vip
isGlobal: true
offStandard: false
#
NOTE:
- The world must match the world's actual name.
- All three sub configurations MUST be included! If not, then the plugin will set default values to it.
- Make sure you're setting a valid chat created in the chats section above, or else the plugin will remove that setting.
per-world-chat: world: chat: vip isGlobal: true offStandard: true
[]>-----------------------------------------------------------------------------<[]
#########################
ASSIGN CHAT ON JOIN #
#########################
Assigns the joining player to the specified chat, if they have the permission 'chatsplus.admin.join'.
This can be ideal, if you want staff members to be automatically assigned to a staff chat.
It bypasses the Per-World-Chat settings.
assign-chat-on-join: "" ```

If you found any issues, got questions or need help with this plugin, then feel free to reach out to me here: - Discord - Github Issue Tracker