Flectone Logo FlectonePulse

Дискорд

Интеграция с Discord позволяет отправлять сообщения (Discord ↔ Minecraft) между сервером Minecraft и Discord сервером.

discord message minecraft message

Информация

Для корректной работы бота, включи три настройки для твоего бота в Discord Developer Portal

develop

А также выдай права боту на чтение сообщений, создание сообщений и использование webhooks

Типы сообщений

ТипОбъяснение
CHAT_GLOBALСообщение из чата global
CHAT_LOCALСообщение из чата local
AFKСообщение от действия afk
ADVANCEMENT Сообщение от достижения
DEATHСообщение от смерти
JOINСообщение, когда игрок зашёл на сервер
QUITСообщение, когда игрок вышел с сервера
FROM_DISCORD_TO_MINECRAFTСообщение из Discord в Minecraft
FROM_TWITCH_TO_MINECRAFTСообщение из Twitch в Minecraft
FROM_TELEGRAM_TO_MINECRAFTСообщение из Telegram в Minecraft
COMMAND_MEСообщение комманды /me
COMMAND_BALLСообщение комманды /ball
COMMAND_BANСообщение комманды /ban
COMMAND_BROADCASTСообщение комманды /broadcast
COMMAND_COINСообщение комманды /coin
COMMAND_DICEСообщение комманды /dice
COMMAND_DOСообщение комманды /do
COMMAND_HELPERСообщение комманды /helper
COMMAND_MUTEСообщение комманды /mute
COMMAND_POLL_CREATE_MESSAGEСообщение комманды /poll
COMMAND_SPYСлежка за игроками, которая отправляется в /spy
COMMAND_STREAMСообщение комманды /stream
COMMAND_TRANSLATETOСообщение комманды /translateto
COMMAND_TRYСообщение комманды /try
COMMAND_WARNСообщение комманды /warn
COMMAND_KICKСообщение комманды /kick
SERVER_ENABLEСообщение при включении сервера
SERVER_DISABLEСообщение при выключении сервера
Примечание

Если у тебя есть собственные чаты со своими именами, например admin, тебе нужно будет указать CHAT_ADMIN. Если есть свои собственные группы из модуля vanilla, тебе нужно указать их название


🌍 Локализация

Путь localizations → язык.yml → integration.discord
discord:
  null_player: "Игрок не найден"
  format_reply: "<fcolor:4><hover:show_text:'<fcolor:4><reply_message>'>[Ответ на @<reply_user>]</hover> "
  custom_command:
    ping:
      content: "Пинг игрока <player> равен <replacement:ping>"
  info_channel:
    айди: "ТПС <replacement:tps>"
  message_channel:
    FROM_DISCORD_TO_MINECRAFT:
      content: "<fcolor:2><global_name> <fcolor:1>» <fcolor:4><reply><message>"
    CHAT_GLOBAL:
      content: "<final_message>"
discord:
  null_player: "This player does not exist"
  format_reply: "<fcolor:4><hover:show_text:'<fcolor:4><reply_message>'>[Reply to @<reply_user>]</hover> "
  custom_command:
    ping:
      content: "<player>'s ping is <replacement:ping>"
  info_channel:
    id: "TPS <replacement:tps>"
  message_channel:
    FROM_DISCORD_TO_MINECRAFT:
      content: "<fcolor:2><global_name> <fcolor:1>» <fcolor:4><reply><message>"
    CHAT_GLOBAL:
      content: "<final_message>"

null_player

Сообщение, если введённый игрок через custom_command не найден

format_reply

Формат сообщения для тега <reply>, когда сообщение является ответом на другое

custom_command

Список кастомных комманд интеграции, где ключом является название комманды, а значением её формат сообщения

Пример
custom_command:
  tps:
    content: "<tps>"

Комманда, чтобы получить значение tps на сервере. Не забудь сделать её в inegration.yml

Плейсхолдеры

Ты можешь использовать все плейсхолдеры, которые используются в начальном сообщении для майнкрафта

Например для сообщения о блокировке

Там есть плейсхолдер <reason>, значит я могу использовать <reason> внутри дискорд сообщений

Также есть плейсхолдеры, которые ТОЧНО будут заменяться в любом сообщении

  • <final_message> сообщение, отправленное в майнкрафт
  • <final_clear_message> сообщение, отправленное в майнкрафт без unicode-смайлов
  • <player> ник игрока, который отправил сообщение
  • <message> сырое сообщение, которое написал игрок
  • <plain_message> отформатированное сообщение, которое написал игрок
  • <reply> отформатированное сообщение-ответ, оно будет пустым, если основное сообщение не ответ
  • Очевидно, что все плейсхолдеры из PlaceholderAPI и FlectonePulse тоже будут работать

У сообщения, которое будет отправлено из Дискорда в Майнкрафт есть свои плейсхолдеры:

ПлейсхолдерЧто возвращает
<name>Глобальное имя участника в Discord
<global_name>Глобальное имя участника в Discord
<nickname>Никнейм участника в Discord
<display_name>Отображаемое имя участника в Discord
<user_name>Тег участника в Discord

info_channel

Список айди каналов и их названий, для отображения какой-нибудь информации, например TPS

message_channel

Список сообщений с их настройкой

название_сообщения:
  content: ""
  webhook_avatar: "https://mc-heads.net/avatar/<skin>/32.png"
    embed:
    color: ""
    title: ""
    url: ""
    author:
      name: ""
      url: ""
      icon_url: "https://mc-heads.net/avatar/<skin>/16.png"
    description: ""
    thumbnail: ""
    fields:
      - name: ""
        value: ""
        inline: false
    image: ""
    timestamp: true
    footer:
      text: ""
      icon_url: "https://mc-heads.net/avatar/<skin>/16.png"
Информация

Пример сообщения со всеми параметрами discord

Если параметр пустой или он не написан, то он не будет использован в итоговом сообщении


⚙️ Настройка

Путь integration.yml → discord
discord:
  enable: false
  ignore_all_bots: true
  token: ""
  custom_command:
    ping:
      need_player: true
      aliases:
      - "!ping"
  presence:
    enable: true
    status: "ONLINE"
    activity:
      enable: true
      type: "PLAYING"
      name: "FlectonePulse"
      url: "https://flectone.net/pulse/"
  channel_info:
    enable: false
    ticker:
      enable: true
      period: 1200
  message_channel:
    FROM_DISCORD_TO_MINECRAFT:
    - "123456"
    CHAT_GLOBAL:
    - "123456"
  destination:
    type: "CHAT"
  sound:
    enable: false

enable

Включает или выключает работоспособность модуля

Предупреждение
  • Перед включением, вставь токен бота Discord
  • После включения, ЖЕЛАТЕЛЬНО перезагрузить сервер, иначе плагин может вызвать зависание

ignore_all_bots

Если включено, то любые сообщения пользователей, которые являются ботами, будут игнорироваться. Иначе будут игнорироваться только собственные сообщения от текущего бота

token

Токен дискорд бота для подключения. Можно использовать environment variables, например ${VALUE}

custom_command

Список кастомных комманд интеграции, ключом является название комманды и оно может быть любым. Комманды могут быть ТОЛЬКО информационными, на сервере они ничего не выполняют и не будут выполнять

ПараметрОбъяснение
need_playerПроверять ли первый аргумент комманды на имя игрока, например !ping TheFaser
aliasesСписок псевдонимов для использования комманды
Пример
custom_command:
  tps:
    need_player: false
    aliases:
      - "!tps"
      - "!tickpersecond"

Комманда, чтобы получить значение tps на сервере с помощью !tps или !tickpersecond. Не забудь сделать сообщение в локализации

presence

discord presence

channel_info

discord channel info

message_channel

Список типов сообщений и ID каналов в Discord

Например я хочу, чтобы из Minecraft отправлялось сообщение комманды `/ban` в Discord

Копирую ID канала в дискорде 1286666844358316083

Прописываю COMMAND_BAN: "1286666844358316083"

message_channel:
  COMMAND_BAN: 
    - "1286666844358316083"

Локализацию можно не настраивать, по умолчанию сообщение будет отправляться с форматом <final_message>

destination

Куда будет отправлено сообщение

ТипОбъяснениеТребует дополнительной настройки?
ACTION_BARСообщение над инвентарём игрокаДа
BOSS_BARСообщение в верхней части экранаДа
BRANDСообщение в F3Нет
CHATСообщение в чатНет
TEXT_SCREENСообщение в любое место экранаДа
TITLEСообщение на весь экранДа
SUBTITLEСообщение на весь экран (нижняя строчка)Да
TAB_HEADERСообщение в ТАБ (сверху)Нет
TAB_FOOTERСообщение в ТАБ (снизу)Нет
TOASTСообщение в правом верхнем углу (достижение)Да

sound

Проигрывание звука


🔐 Права

Путь permission.yml → integration.discord
discord:
  name: "flectonepulse.module.integration.discord"
  type: "TRUE"
  sound:
    name: "flectonepulse.module.integration.discord.sound"
    type: "TRUE"

name

Название права

type

Вид права

ВидОбъяснение
TRUEДоступно для любого игрока
FALSEНикому не доступно, должно быть выдано отдельно (например с помощью LuckPerms)
OPДоступно для операторов сервера
NOT_OPДоступно для НЕ операторов сервера

sound

Право для использования звука

Последнее обновление

Редактировать на GitHub

На этой странице

Авторы страницы