ZenForge Logo
ZenForgeDocs
ZenChatNew

Módulos de Chat (modules/)

Permite definir formatos independientes para cada rango de LuckPerms (basado en primary-group), además de un...

Módulos de Chat (modules/)


4.1 Formatos de Chat (formats.yml)

Permite definir formatos independientes para cada rango de LuckPerms (basado en primary-group), además de un tooltip personalizado en el nombre (player-hover) y un tooltip exclusivo al mencionar al jugador (mention-hover).

Variables Disponibles:

  • {prefix}: Prefijo del jugador (LuckPerms/Vault).
  • {suffix}: Sufijo del jugador (LuckPerms/Vault).
  • {player}: Nombre o nickname interactivo del jugador.
  • {display}: DisplayName del jugador.
  • {world}: Mundo donde se encuentra el jugador.
  • {message}: Mensaje enviado (soporta colores asignados o permisos).
  • Placeholders de PAPI: Cualquier placeholder como %vault_eco_balance_formatted%.

Ejemplo de Configuración:

formats:
  default:
    chat: "{prefix}%cmi_user_nickname%{suffix}&8: &f{message}"
    player-hover:
 - "&7&m "
 - "&e&lNickname: &f%cmi_user_nickname%"
 - "&7Usuario real: &f{player}"
 - "&7Rango: &7Default"
 - "&7Mundo: &b%player_world%"
 - "&7&m "
 - "&8Click para enviar MP"
    mention-hover:
 - "&7&m "
 - "&e&lNickname: &f%cmi_user_nickname%"
 - "&7Mundo: &b{world}"
 - "&e Click para enviar MP "
 - "&7&m "

  groups:
    admin:
      chat: "%supremetags_tag% %prefix%&4&l{player}&8: &f{message}"
      player-hover:
 - "&4&lSTAFF ADMINISTRADOR"
 - "&fUsuario: &e{player}"
      mention-hover:
 - "&c¡Cuidado! Estás mencionando a un Admin"

4.2 Canales de Chat (channels.yml)

Permite crear múltiples salas de conversación (ej. Local, Global, Comercio, Staff).

channels:
  default-channel: "global" # Canal por defecto al conectarse

  list:
    global:
      display-name: "&a[Global]"
      permission: ""                    # Dejar vacío para permitir a todos
      prefix: ""                        # Prefijo adicional al inicio
      format: "{channel_prefix}{general_format}" # {general_format} hereda de formats.yml
      radius: -1                        # -1 = Sin límite de distancia (todo el servidor)
      cooldown: 0                       # Cooldown en segundos entre mensajes
      prefix-shortcut: "!"              # Escribir "!hola" envía el mensaje directo a este canal

    local:
      display-name: "&e[Local]"
      permission: ""
      prefix: "&e[L] "
      format: "{channel_prefix}{prefix}{player}{suffix} &8» &7{message}"
      radius: 50                        # Solo jugadores en el mismo mundo a menos de 50 bloques
      cooldown: 0
      prefix-shortcut: ""

    trade:
      display-name: "&6[Comercio]"
      permission: "zenchat.channel.trade"
      prefix: "&6[Comercio] "
      format: "{channel_prefix}{prefix}{player}{suffix} &8» &e{message}"
      radius: -1
      cooldown: 10                      # Cooldown de 10 segundos
      prefix-shortcut: "$"

    staff:
      display-name: "&c[Staff]"
      permission: "zenchat.staff"
      prefix: "&c[STAFF] "
      format: "{channel_prefix}{prefix}{player}{suffix} &8» &a{message}"
      radius: -1
      cooldown: 0
      prefix-shortcut: "#"

4.3 Mensajes Privados y SocialSpy (msg.yml)

Configuración de la mensajería directa entre usuarios y el sistema espía para moderadores.

private-message:
  sender-format:   "&8[&dyo &8-> &d{target}&8] &f{message}"
  receiver-format: "&8[&d{sender} &8-> &dyo&8] &f{message}"
  socialspy-format: "&7[&cSPY&7] {sender} &8-> &c{target}&7: {message}"

socialspy:
 # Comandos que activan el espía al ser ejecutados por cualquier usuario
    listen-commands:
 - msg
 - tell
 - whisper
 - w
 - m
 - pm
 - dm
    reply-commands:
 - r
 - reply
  format:       "&7[&cSPY&7] {sender} &8-> &c{target}&7: {message}"
  reply-format: "&7[&cSPY&7] {sender} &8-> &c{target}&7(reply): {message}"

4.4 Tags Interactivas (tags.yml)

Permite a los usuarios colocar etiquetas dinámicas en el chat que se transforman en botones interactivos con tooltips y eventos de clic.

TagAlias soportadosPermiso RequeridoDescripción
[inv][inventory], [inventario]zenchat.invAbre una GUI con el inventario del usuario en tiempo real.
[ec][ender], [enderchest]zenchat.ecAbre una GUI con el EnderChest del jugador.
[item][i], [hand], [h], [mano]zenchat.item / zenchat.item.viewMuestra el item que el jugador tiene en la mano principal (con su lore, encantamientos e inspección GUI).
[pos][x], [coords], [coord], [ubicacion]zenchat.posMuestra coordenadas X, Y, Z y sugiere /tp al hacer clic.
[ping][p]zenchat.pingMuestra la latencia actual en milisegundos con colores dinámicos según el retardo.
[balance][bal], [money], [eco], [dinero]zenchat.balanceMuestra el balance monetario del jugador (requiere Vault) y sugiere /pay.

4.5 Interfaz Gráfica y ColorChat (guis.yml)

Gestiona el diseño de las vistas de inventario y la paleta de colores del comando /colorchat.

gui:
  inv-title: "&8Inventario de &b{player}"
  ec-title:  "&8EnderChest de &d{player}"
  rows: 6
  show-armor: true
  show-offhand: true
  filler-material: BLACK_STAINED_GLASS_PANE
  read-only: true

  item-view:
 title: "&8Item de &e{player}"
    permission: zenchat.item.view
    filler-material: BLACK_STAINED_GLASS_PANE
    center-slot: 4
    cache-ttl-seconds: 600

colorchat:
    enabled: true
  gui:
 title: "&8» &dColor de Chat &8«"
  messages:
    set: "&8[&dColorChat&8] &7Tu color de chat ahora es {color}&7."
    cleared: "&8[&dColorChat&8] &7Tu color de chat ha sido &cquitado&7."
    unknown: "&8[&dColorChat&8] &cColor desconocido: &f{input}"
  colors:
    white:        { code: "&f", display-name: "&fBlanco",      rgb: "FFFFFF" }
    aqua:         { code: "&b", display-name: "&bAqua",        rgb: "55FFFF" }
    dark_aqua:    { code: "&3", display-name: "&3Aqua Oscuro", rgb: "00AAAA" }
    blue:         { code: "&9", display-name: "&9Azul",        rgb: "5555FF" }
    red:          { code: "&c", display-name: "&cRojo",        rgb: "FF5555" }
    green:        { code: "&a", display-name: "&aVerde Lima",  rgb: "55FF55" }
    yellow:       { code: "&e", display-name: "&eAmarillo",    rgb: "FFFF55" }

4.6 Placeholders y Emojis Personalizados (emojiplaceholders.yml)

Sustituye cadenas de texto escritas por los jugadores por emojis, gradientes o componentes enriquecidos mediante MiniMessage.

placeholders:
  enable: true
  list:
    '<3':         '<red>❤</red>'
    '*star*':     '<yellow>★</yellow>'
    '*yep*':      '<green>✌</green>'
    ':)':         '<green>☺</green>'
    ':(':         '<red>☹</red>'
    '[discord]':  "<#25c8fa><click:open_url:'https://discord.gg/ejemplo'><hover:show_text:'<yellow>Click para unirte</yellow>'>discord.gg/ejemplo</hover></click></#25c8fa>"

placeholders-with-permission:
  balance:
    prefix: '[bal]'
    parser: "<yellow>%player_name%'s Money %vault_eco_balance_formatted%</yellow>"
    permission: 'zenchat.placeholder.balance'

4.7 AntiSpam y AntiAd (punish.yml)

Protege el chat contra floods, mayúsculas excesivas, repeticiones y enlaces o IPs no autorizados.

antispam:
    enabled: true
  cooldown: 2                   # Segundos entre cada mensaje
  block-duplicates: true        # Evita repetir el mismo mensaje
  max-similarity-percent: 80    # Porcentaje de similitud con el mensaje anterior
  max-caps-percent: 70          # Porcentaje máximo de mayúsculas permitidas
  caps-min-length: 6            # Longitud mínima de mensaje para evaluar mayúsculas
  censor-char: "*"              # Carácter de censura
  blocked-words:
 - "palabra_inapropiada"

antiad:
    enabled: true
  patterns:
 - "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(?::\\d{1,5})?\\b" # Bloqueo de IPs numéricas
 - "(?i)\\b[a-z0-9-]+\\.(?:com|net|org|gg|es|tv|io|me|xyz|tk|ml|cf|ga|info|server|mc|play)\\b"
 - "(?i)\\b(?:discord\\.gg|discord\\.com/invite)/[a-z0-9]+\\b"
  whitelist:
 - "tuserver.net"
 - "minecraft.net"
  action: BLOCK                 # Acción: BLOCK (cancela el mensaje)

4.8 Webhooks de Discord (webhooks.yml)

Envía notificaciones embed automáticas a Discord ante infracciones de chat.

discord-webhooks:
    enabled: false
  webhook-url: "https://discord.com/api/webhooks/TU_WEBHOOK_AQUI"
  
 # Alerta cuando un jugador intenta decir una palabra prohibida
  blocked-word:
    enabled: true
 title: " Filtro de Antispam (Palabra Prohibida)"
    color: "FFAA00"             # Color en HEX sin '#'
 description: "El jugador **{player}** ha intentado enviar un mensaje con palabras bloqueadas."
    fields:
 - { name: "Mensaje Original", value: "`{message}`", inline: false }
 - { name: "Mundo", value: "*{world}*", inline: true }
 - { name: "Coordenadas", value: "X: {x}, Y: {y}, Z: {z}", inline: true }
    footer: "Sistema de Seguridad ZenChat"

 # Alerta cuando un jugador publica publicidad (IP / Enlace)
  antiad:
    enabled: true
 title: " Filtro de AntiAd (Publicidad)"
    color: "FF0000"
 description: "El jugador **{player}** ha intentado enviar un mensaje con enlaces no permitidos."
    footer: "Sistema de Seguridad ZenChat"

¿Te resultó útil esta página?

Tus respuestas nos ayudan a perfeccionar la wiki de ZenForge.

On this page

Soporte Oficial

¿Tienes dudas o necesitas ayuda?

Preguntas sobre configuración, guías o soporte técnico directo con nuestro equipo.

Preguntar en Discord