EssentialsChat 🌟

EssentialsChat is a powerful and flexible chat management plugin for Nukkit servers! πŸš€ It supports global and local chat, customizable prefixes and nicknames, integration with LuckPerms and Multipass, and advanced chat filtering. Perfect for servers that need enhanced chat control and customization. πŸŽ‰

───────────────────────────────────────────

✨ Features

  • Global and Local Chat:
    • Local chat with configurable radius πŸ“
    • Global chat triggered by a symbol (default: !) 🌍
    • Support for default Minecraft chat format πŸ—¨
  • Prefix and Suffix Customization:
    • Seamless integration with LuckPerms and Multipass for prefix/suffix management πŸ”–
    • /prefix command to set custom prefixes 🎨
  • Nickname Management:
    • /nick command to set custom nicknames πŸ–Œ
    • Optional colored nicknames and duplicate nickname restrictions 🚫
    • /realname command to find a player's real name πŸ•΅οΈβ€β™‚οΈ
  • Chat Filtering:
    • Message cooldown to prevent spam ⏰
    • Maximum message length restriction πŸ“
    • Anti-spam protection for repeated messages 🚨
    • Configurable punishments: kick, message, or custom command βš–
  • PlaceholderAPI Integration:
    • Use placeholders to customize chat formats πŸ“
  • Highly Configurable:
    • Blacklists for nicknames and prefixes 🚫
    • Customizable message formats and character limits πŸ”§
  • Debug Mode:
    • Detailed logging for developers πŸ› 

───────────────────────────────────────────

πŸ“₯ Installation

  1. Download the Plugin:
  2. Install Dependencies:
  3. Place the Jar:
    • Drop EssentialsChat.jar into your plugins folder.
  4. Restart the Server:
    • Start or restart your Nukkit server to load the plugin. The default configuration files (config.yml, messages.yml, provider.yml) will be generated automatically. πŸ”„
  5. Configure:
    • Edit config.yml and messages.yml in the plugins/EssentialsChat folder to customize settings and messages. πŸ› 
    • Set the provider in provider.yml (luckperms, multipass, or fallback).

───────────────────────────────────────────

βš™ Configuration

The plugin is highly customizable through its configuration files. Below are the key files and their purposes:

  • config.yml: Main configuration for chat formats, nickname/prefix rules, and chat filtering settings.
  • messages.yml: Customizable messages for commands and chat filtering.
  • provider.yml: Select the prefix/suffix provider (luckperms, multipass, or fallback).

Example Config Snippets

config.yml:
YAML:
# - - - - - - - - - - - - - - - #
#       GLOBAL SETTINGS         #
# - - - - - - - - - - - - - - - #

# Available languages now:
# en - English
# zh - δΈ­ε›½δΊΊ
# Language properties file in `/lang` directory
language: en

# Color for OP players. For example, b = Β§b
op-nickname-color: "4"

# Chat formatting settings
chat-formatting:

  # Available methods:
  # 1 - default, local/global
  # 2 - single format (local or global, with placeholders)
  # 3 - default Minecraft format (with placeholders)
  format-method: 1

  # local or global, used in format-method 2
  single-chat-type: "global"

  # blocks, used in format-method 1
  local-chat-radius: 100 # blocks, used in format-method 1

  # Local chat settings
  # Used in format-method 1 or 2 (if single-chat-type is local)
  # If you use ClanSystem plugin - you can use placeholder %clantag% to display clan tag.
  local-chat-format: "Β§7[Β§aLΒ§7] Β§r{prefix}Β§r {player}{suffix}Β§r Β§aΒ» Β§8{msg}" # used in format-method 1 or 2

  # Global chat settings
  # Used in format-method 1 or 2 (if single-chat-type is global)
  # Enter this symbol before a message to write a message to the global chat.
  global-chat-symbol: "!"

  # Formatting
  # Used in format-method 1 or 2 (if single-chat-type is global)
  global-chat-format: "Β§7[Β§4GΒ§7] Β§r{prefix}Β§r {player}{suffix}Β§r Β§aΒ» Β§f{msg}"

  # Default minecraft format
  # used in format-method 3
  default-chat-format: "Β§r<{prefix}Β§r{player}{suffix}Β§r> Β§f{msg}"

# Do not touch this option :)
debug: false

# Prefix in settings [ESC] and in display name
prefix-in-settings-and-head:
  enabled: false
  format: "[{prefix}] {player}{suffix}"

# - - - - - - - - - - - - - - - #
#       /prefix command         #
# - - - - - - - - - - - - - - - #

prefix:
  # maximum prefix charters in prefix
  max-characters-in-prefix: 15

  # minimum charters in prefix
  min-characters-in-prefix: 3

  # Enabled charters in prefix
  allowed-characters: "A-Za-z0-9_-"

  # Banned prefixes
  prefixes-blacklist:
    - admin
    - creator
    - owner
    - moderator
    - administrator

# - - - - - - - - - - - - - - - #
#        /nick command          #
# - - - - - - - - - - - - - - - #

nick:
  # Maximum characters allowed in a nickname
  max-characters-length: 15

  # Minimum characters required in a nickname
  min-characters-length: 3

  # Allowed characters in nicknames
  allowed-characters-in-nick: "A-Za-z0-9_-"

  # Allow using color codes in nicknames (e.g., Β§b)
  allow-colored-nick: false

  # Character before fake nickname
  # You also can use 'italic', 'bold' and all characters
  fake-nickname-character: "italic"

  # Allow a player to set fake nicknames that are already used by another player
  allow-duplicate-nicknames: false

  # Banned nicknames
  nicknames-blacklist:
    - admin
    - creator
    - owner
    - moderator
    - administrator

# - - - - - - - - - - - - - - - #
#        CHAT FILTERING         #
# - - - - - - - - - - - - - - - #

chat-filtering:
  enabled: true
  cooldown-for-messages: 3 # seconds
  max-message-characters: 200
  max-messages-repetition: 5
  # Available methods: Kick, Message, Command
  repetition-punishment: "Message"
  # Used only if repetition-punishment is Command
  # {player} - player's name
  punishment-command: 'mute 30 minutes "{player}" Too many repeat'

command.yml:
YAML:
prefix:
  name: "prefix"
  description: "Set or clear a custom prefix for your name in chat"
  aliases: [setprefix, pfx]
  permission: essentialschat.commands.prefix

nick:
  name: "nick"
  description: "Set or clear a custom nickname for your player"
  aliases: [nickname, setnick]
  permission: essentialschat.commands.nick

realname:
  name: "realname"
  description: "Look up the real name behind a nickname"
  aliases: [rn]
  permission: essentialschat.commands.realname

Check the full configuration files in the repository for all available options.

───────────────────────────────────────────

πŸ“œ Commands

CommandDescriptionPermissionUsage
/prefix <prefix|off>Set or clear your prefixessentialschat.commands.prefix/prefix VIP or /prefix off
/nick <nick|off>Set or clear your nicknameessentialschat.commands.nick/nick Nick or /nick off
/realname <player>Find a player's real nameessentialschat.commands.realname/realname Nick
Note: By default, these permissions are granted to operators (op). Configure permissions using LuckPerms or Multipass for other players.



───────────────────────────────────────────

πŸ”Œ API

EssentialsChat provides a simple API for developers to integrate with the plugin. Use the EssentialsChatAPI interface to manage nicknames and prefixes programmatically.

Example Usage

Java:
import cn.nukkit.Player;
import me.criex.essentialschat.api.EssentialsChatAPI;
import me.criex.essentialschat.EssentialsChat;

// Get the API instance
EssentialsChatAPI api = EssentialsChat.getAPI();

// Set a player's nickname
api.setNickname(player, "ExampleNick");

// Clear a player's nickname
api.clearNickname(player);

// Get a player's real name from their nickname
String realName = api.getRealName("ExampleNick");

// Set a player's prefix
api.setPrefix(player, "&b[Magic]");

// Clear a player's prefix
api.clearPrefix(player);

// Get a player's prefix or suffix
String prefix = api.getPrefix(player);
String suffix = api.getSuffix(player);
For more details, check the API documentation.

───────────────────────────────────────────

πŸ“ License

This project is licensed under MIT license. Please see the LICENSE file for details.

───────────────────────────────────────────

πŸ”° Support

You can report a bug or suggest a new feature in Issues on github or in my discord @darksunset00


🌟 Make your server's chat awesome with EssentialsChat! 🌟
Author
Criex1337
Downloads
1,634
Views
2,426
First release
Last update
Rating
5.00 star(s) 2 ratings

More resources from Criex1337

Latest updates

  1. Release v1.1.3

    ⭐ Latest 3 changes: - Added Multi-Language support. - Added the ability to change the...
  2. Update

    Added optional chat filtering. More details on GitHub.
  3. Nicknames and prefixes blacklist

    Added nickanmes and prefixes blacklist. Read github commits or release description to get more info.

Latest reviews

Cool, but I don't understand the tutorial you gaveπŸ˜…
Best Plugin. Π›ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π½Π° Ρ‡Π°Ρ‚. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠ»ΠΎΠ΄Π΅Ρ†. ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½ΠΎ обновляСт.
C
Criex1337
Thank you for your review πŸ˜πŸ’–
ΠšΡ€ΡƒΡ‚ΠΎΠΉ ΠΏΠ»Π°Π³ΠΈΠ½! ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π΄ΡƒΡ…Π΅!! Good plugin. Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ»ΠΎΠ΄Π΅Ρ†.
Top