Flectone Logo FlectonePulse

Дискорд

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

discord message
minecraft message

Информация

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

develop

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

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

Любое модуль, который отправляет сообщение имеет свой тип, который можно найти тут

ТипОбъяснение
ADVANCEMENT Сообщение от достижения
DEATHСообщение от смерти
MESSAGE_CHAT_GLOBALСообщение из чата global
MESSAGE_CHAT_LOCALСообщение из чата local
SERVER_ENABLEСообщение при включении сервера
SERVER_DISABLEСообщение при выключении сервера
......
Примечание

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


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

Путь localizations → язык.yml → integration.discord
discord:
  null_player: "Игрок не найден"
  sender_name: "Discord"
  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:
    INTEGRATION_DISCORD:
      content: "<fcolor:2><global_name> <fcolor:1>» <fcolor:4><reply><message>"
    MESSAGE_CHAT_GLOBAL:
      content: "<final_message>"
discord:
  null_player: "This player does not exist"
  sender_name: "Discord"
  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:
    INTEGRATION_DISCORD:
      content: "<fcolor:2><global_name> <fcolor:1>» <fcolor:4><reply><message>"
    MESSAGE_CHAT_GLOBAL:
      content: "<final_message>"

null_player

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

sender_name

Название отправителя (самой интеграции), которое будет использовано, например, в другой интеграции для плейсхолдеров

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_name: "<player>"
  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
  ignore_all_webhooks: true
  token: ""
  proxy:
    type: "DIRECT"
    host: "127.0.0.1"
    port: 1080
    user: ""
    password: ""
  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:
    INTEGRATION_DISCORD:
    - "123456"
    MESSAGE_CHAT_GLOBAL:
    - "123456"
  destination:
    type: "CHAT"
  sound:
    enable: false

enable

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

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

ignore_all_bots

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

ignore_all_webhooks

Предупреждение

После отключения может возникнуть дублирование сообщений с другими плагинами, например с DiscordSRV

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

token

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

proxy

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

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

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