Skip to content

Chat

A module responsible for messages sent by players in chat
chat

🌍 Localization

📂 Path localizations → language.yml → message.chat

⚖️ Default

yml
chat:
  null-chat: "<color:#ff7171><b>⁉</b> На сервер выключен чат"
  null-receiver: "<color:#ff7171><b>⁉</b> Тебя никто не услышал"
  types:
    local: "<delete><display_name><fcolor:3>: <message><reset><translate>"
    global: "<delete><display_name> <world_prefix>»<fcolor:4> <message><reset><translate>"
yml
chat:
  null-chat: "<color:#ff7171><b>⁉</b> Chat is disabled on this server"
  null-receiver: "<color:#ff7171><b>⁉</b> Nobody heard you"
  types:
    global: "<delete><display_name> <world_prefix>»<fcolor:4> <message><reset><translate>"
    local: "<delete><display_name><fcolor:3>: <message><reset><translate>"

null-chat

Message if nothing was sent to chat

null-receiver

Message if no one saw the player's message

types

List of chats and their formats

⚙️ Setting

📂 Path message.yml → chat

⚖️ Default

yml
chat:
  enable: true
  mode: "BUKKIT"
  priority: "NORMAL"
  types:
    local:
      enable: true
      cancel: true
      range: 100
      priority: 0
      trigger: ""
      null-receiver:
        enable: true
        destination:
          type: "ACTION_BAR"
          times:
            stay: 20
      destination:
        type: "CHAT"
      cooldown:
        enable: false
      sound:
        enable: false
    global:
      enable: true
      cancel: false
      range: "PROXY"
      priority: 5
      trigger: "!"
      null-receiver:
        enable: true
        destination:
          type: "ACTION_BAR"
          times:
            stay: 20
      destination:
        type: "CHAT"
      cooldown:
        enable: false
      sound:
        enable: false

enable

Enables or disables the functionality of the module

mode

Chat processing mode

TypeExplanation
PACKETChat messages are processed via packets (fully asynchronous)
BUKKITChat messages are processed via Bukkit (asynchronous, but only in a single chat thread)
PAPERChat messages are processed via Paper (asynchronous, but only in a single chat thread)

WARNING

If you need another plugin to see chat messages, set mode: "BUKKIT". In rare cases where a plugin relies on Paper listeners, use mode: "PAPER"

event-priority

The priority of a chat message event. Change this value if there is a conflict with other plugins that also use the chat

TypeExplanation
LOWESTThe chat message will be processed before all other plugins
LOWThe chat message will be processed after plugins with LOWEST priority
NORMALThe chat message will be processed after plugins with LOW priority
HIGHThe chat message will be processed after plugins with NORMAL priority
HIGHESTThe chat message will be processed after plugins with HIGH priority
MONITORThe chat message will only be observed (no modifications allowed)

types

List of all chats with their configuration, you can add your own. By default, any chat looks like this

yaml
chat_name:
  enable: true
  cancel: true
  range: PROXY
  priority: number
  trigger: "trigger"
  null-receiver:
    enable: true
    destination:
      type: "ACTION_BAR"
      times:
        stay: 20
  destination:
    type: "CHAT"
  cooldown:
    enable: false
  sound:
    enable: false

enable

Enables chat functionality

null-recipient

null recipient

Message if no one saw the player's message

SETTINGS

enable

Enables the functionality

destination

Where the message will be sent

cancel

  • If true, the chat event is canceled for other plugins
  • If you need another chat-related plugin (e.g., DiscordSRV) to work, set this to false
  • If false, this also causes duplication in the console
    chat console

range

How far in blocks the message will be displayed

ValueExplanation
WORLD_TYPEThe message will only be sent to players who have the permission flectonepulse.world.type.dimension_name
WORLD_NAMEThe message will only be sent to players who have the permission flectonepulse.world.name.world_folder_name
PROXYThe message will be sent to all players on the server and on Proxy
SERVERThe message will be sent to all players on the server
PLAYERThe message will only be sent to the sender
Any number greater than 0 (e.g., range: 100)The message will be sent to players whose distance from the sender is less than this number. Players must also be in the same world as the sender

priority

Chat priority, used for selection when mulinfole chats have the same trigger. The chat with the higher priority is chosen

EXAMPLE CHATS

yaml
admin:
  priority: 20
  trigger: "!"
helper:
  priority: 10
  trigger: "!"

If a player has permission for both chats, the plugin will select admin because it has a higher priority

trigger

The prefix that a message must start with to be sent to a specific chat

trigger VALUE CAN BE ANYTHING:

  • !, admin, .f, etc.
  • Empty, i.e., trigger: "", meaning any message fits this chat

In the final message, trigger is removed. For example, if a player sends !hello, the result will be hello without !

destination

Where the message will be sent

TypeExplanationRequires additional configuration?
ACTION_BARMessage above the player's inventoryYes
BOSS_BARMessage at the top of the screenYes
BRANDMessage in F3No
CHATMessage in the chatNo
TITLEFull-screen messageYes
SUBTITLEFull-screen message (bottom line)Yes
TAB_HEADERMessage in TAB (top)No
TAB_FOOTERMessage in TAB (bottom)No
TOASTMessage in the top-right corner (achievement)Yes

HOW TO CHANGE THE DESTINATION?

Replace the value type: here and restart FlectonePulse using the /flectonepulse reload command. Additional settings will appear AUTOMATICALLY


If type is ACTION_BAR

yaml
destination:
  type: "ACTION_BAR"
  times:
    stay: 60

times

FieldExplanation
stayTime in ticks to hold the message

If type is BOSS_BAR

yaml
destination:
  type: "BOSS_BAR"
  duration: 100
  health: 1.0
  overlay: "PROGRESS"
  color: "BLUE"
  play-boos-music: false
  create-world-fog: false
  darken-screen: false

duration

Duration of the message display

health

How full the boss bar will be

overlay

TypeExplanation
PROGRESSSingle line
NOTCHED_6Divided into 6 parts
NOTCHED_10Divided into 10 parts
NOTCHED_12Divided into 12 parts
NOTCHED_20Divided into 20 parts

color

Display color

Type
PINK
BLUE
RED
GREEN
YELLOW
PURPLE
WHITE

play-boos-music

Whether music will play with the message

create-world-fog

Whether fog will appear with the message

darken-screen

Whether the screen will darken with the message


If type is TITLE (or SUBTITLE)

yaml
destination:
  type: "TITLE" (or "SUBTITLE")
  subtext: ""
  times:
    fade-in: 20
    stay: 60
    fade-out: 20

subtext

Message for the second part of the display. For example, if TITLE is selected, subtext will be displayed below it, and vice versa.

times

FieldExplanation
fade-inTime in ticks for the message to appear
stayTime in ticks to hold the message
fade-outTime in ticks for the message to disappear

If type is TOAST

yaml
destination:
  type: "TOAST"
  icon: "minecraft:diamond"
  style: "TASK"

icon

Achievement icon, which can be any Minecraft item (must specify the full path)

style

Achievement type (TASK regular, GOAL goal, CHALLENGE challenge)

cooldown

Usage cooldown

HOW TO USE COOLDOWN?

Replace false with true and restart FlectonePulse using the /flectonepulse reload command. Additional cooldown settings will appear AUTOMATICALLY

The cooldown configuration will look like this:

yaml
cooldown:
  enable: true
  duration: 60
FieldTypeExplanation
enablebooleanEnables the cooldown functionality
durationlongHow many ticks must pass between uses

sound

Sound playback

HOW TO USE SOUND?

Replace false with true and restart FlectonePulse using the /flectonepulse reload command. Additional sound settings will appear AUTOMATICALLY

yaml
sound:
  enable: true
  volume: 1.0
  pitch: 1.0
  category: "HOSTILE"
  name: "minecraft:entity.llama.spit"
FieldTypeExplanation
enablebooleanEnables sound functionality
volumefloatSound volume from 0 to 1.0
pitchfloatSound pitch from 0 to 1.0
categoryStringCategory from MASTER, MUSIC, RECORD, WEATHER, BLOCK, HOSTILE, NEUTRAL, PLAYER, AMBIENT, VOICE
nameStringSound name, for example minecraft:entity.llama.spit

🔐 Permissions

📂 Path permission.yml → message.chat

⚖️ Default

yml
chat:
  name: "flectonepulse.module.message.chat"
  type: "TRUE"
  types:
    local:
      name: "flectonepulse.module.message.chat.local"
      type: "TRUE"
      cooldown-bypass:
        name: "flectonepulse.module.message.chat.local.cooldown.bypass"
        type: "OP"
      sound:
        name: "flectonepulse.module.message.chat.local.sound"
        type: "TRUE"
    global:
      name: "flectonepulse.module.message.chat.global"
      type: "TRUE"
      cooldown-bypass:
        name: "flectonepulse.module.message.chat.global.cooldown.bypass"
        type: "OP"
      sound:
        name: "flectonepulse.module.message.chat.global.sound"
        type: "TRUE"

name

Permission name

type

Permission type

TypeExplanation
TRUEAvailable to any player
FALSENot available to anyone, must be granted separately (e.g., using LuckPerms)
OPAvailable to server operators
NOT_OPAvailable to not server operators

types

List of chats and their permissions

  • cooldown-bypass

Permission to bypass the cooldown between uses

Permission to use sound