НОВОЕ 📢 Ограниченное стартовое предложение: скидка до 70% на первый месяц для любой игры!Посмотреть тарифы

Как подключить Discord-бота к Lavalink

Хостинг Discord-ботовUpdated Oct 23, 20263 min read

Что запрашивает каждый клиент

НастройкаЗначение
Хостадрес до двоеточия, например 136.243.0.51
Портчисло после двоеточия
Парольpassword из application.yml
Secure (HTTPS)выключено, узел использует обычные http и ws

Не храните пароль в коде: положите его в файл .env или в файл настроек, который вы не публикуете.

Node.js с Shoukaku

const { Shoukaku, Connectors } = require('shoukaku');

const nodes = [{
  name: 'main',
  url: `${process.env.LAVALINK_HOST}:${process.env.LAVALINK_PORT}`,
  auth: process.env.LAVALINK_PASSWORD,
  secure: false,
}];

const shoukaku = new Shoukaku(new Connectors.DiscordJS(client), nodes);
shoukaku.on('ready', (name) => console.log(`Lavalink node ${name} connected`));
shoukaku.on('error', (name, error) => console.error(`Lavalink node ${name}`, error));

Создавайте его после того, как объект client уже существует. В документации библиотеки показано, как зайти в голосовой канал и воспроизвести трек.

import os
import discord
import wavelink
from discord.ext import commands

bot = commands.Bot(command_prefix="!", intents=discord.Intents.default())

@bot.event
async def on_ready():
    node = wavelink.Node(
        uri=f"http://{os.environ['LAVALINK_HOST']}:{os.environ['LAVALINK_PORT']}",
        password=os.environ["LAVALINK_PASSWORD"],
    )
    await wavelink.Pool.connect(nodes=[node], client=bot)
    print("Lavalink connected")

Подключение не получается

  • Connection refused или тайм-аут: хост или порт указаны неверно, либо узел остановлен. Проверьте Обзор и запустите его.
  • 401 или unauthorized: пароль не совпадает с application.yml.
  • Бот подключается, но ничего не играет: боту нужны права Connect и Speak в голосовом канале, а узлу нужен источник, который умеет воспроизводить то, что вы запросили. См. Discord-бот для музыки не играет: решения.
  • Убедитесь, что клиент соответствует основной версии узла. Клиент, созданный для Lavalink 3, не работает с узлом версии 4.

Ваш сервер уже у другого хостинга? Перенесите его к нам

СОЗДАЙТЕ СВОЙ ИГРОВОЙ СЕРВЕР
ГОТОВЫ НАЧАТЬ?

Сэкономьте до 30% на вашем новом игровом сервере.
Премиальная производительность, мгновенная активация и непревзойдённая надёжность по лучшей цене.

ПОСЛЕДНИЕ БЛОГИ