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
2,341
Views
3,047
First release
Last update
Rating
5.00 star(s) 2 ratings

More resources from Criex1337

Latest updates

  1. Release v1.1.4

    ⭐ Latest 3 changes: - Added the ability to customize the display name update cooldown. - Added...
  2. Release v1.1.3

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

    Added optional chat filtering. More details on GitHub.

Latest reviews

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