皆さん初めまして。Morichanと申します。
下記の※の記述を理解したうえで、記事を読んでください。
※DiscordBot開発初心者の書いた記事です。
(また、プログラミング自体、2年ほどのブランクあり)
BOTにスラッシュコマンドを実装・登録するまでの流れに関しては、別の記事にまとめてあります。
関連記事:
目次
開発環境
OS (Windows11)
discord.js (14.7.1)
node.js (18.13.0)
npm (8.19.3)
@discordjs/voice (^0.14.0)
BOTをVCに参加させてみる
- VSCodeでターミナルを開き、必要なものをnpmを使用してインストール
npm i @discordjs/voice --save
"LISTENER": {
"CLIENT_ID": "ここにBOTのCLIENT_IDを記述",
"TOKEN": "ここにBOTのTOKENを記述",
"VC_ID": "ここにBOTを参加させるVCのIDを記述"
},
"GUILD_ID": "ここにBOTを追加したサーバーのIDを記述"
-
commands
フォルダ直下にjoin.js
を作成。中身を記述。
一応、公式ドキュメント。
const { SlashCommandBuilder } = require('discord.js');
// BOTをVCに参加させるために必要。
const { joinVoiceChannel } = require('@discordjs/voice');
const { LISTENER } = require('../config.json');
module.exports = {
data: new SlashCommandBuilder()
// コマンドの名前
.setName('join')
// コマンドの説明文
.setDescription('VCに参加。'),
async execute(interaction) {
// VCに参加する処理
const connection = joinVoiceChannel({
guildId: interaction.guildId,
channelId: LISTENER.VC_ID,
adapterCreator: interaction.guild.voiceAdapterCreator,
});
await interaction.reply('参加しました!');
},
};
スラッシュコマンドに引数を追加して、コマンド呼び出し時に参加するVCを指定できるようにする。
- SlashCommandBuilderに対して、Optionを追加する。
公式ドキュメント
const { SlashCommandBuilder, ChannelType } = require('discord.js');
const { joinVoiceChannel } = require('@discordjs/voice');
module.exports = {
data: new SlashCommandBuilder()
// コマンドの名前
.setName('join')
// コマンドの説明文
.setDescription('VCに参加。')
// コマンドのオプションを追加
// 今回はチャンネルを選ばせたいので、addChannelOptionを使用
.addChannelOption((option) =>
option
// optionの名前
.setName('channel')
// optionの説明
.setDescription('The channel to join')
// optionが必須かどうか
.setRequired(true)
// チャンネルのタイプをVCに指定
.addChannelTypes(ChannelType.GuildVoice),
),
async execute(interaction) {
const voiceChannel = interaction.options.getChannel('channel');
// VCに参加する処理
const connection = joinVoiceChannel({
guildId: interaction.guildId,
channelId: voiceChannel.id,
adapterCreator: interaction.guild.voiceAdapterCreator,
});
await interaction.reply('参加しました!');
},
};
- 再び
node deploy-commands.js
、node index.js
を行い、Discordでコマンドを入力。
VCを選択できるようになっています。
先ほどと変わらずにListener-botがVCに参加してくれました!
(VC2を選択)
関連記事
- 【Windows11】Discord BOTを開発するための開発環境を整える。
- 【Discord.js V14】Discord BOTにスラッシュコマンドを実装してみる
- 【Discord.js V14】Discord BOTをVCに参加させてみる
- 【Discord.js V14】2つのBOTを別々のVCに参加させてみる
- 【Discord.js V14】スラッシュコマンドのオプションで、既に選択済みの選択肢を2つ目の引数のリストから消す。
- 【Discord.js V14】Discord BOTにVCに音楽を流す機能を実装してみる
- 【Discord.js V14】Discord BOTにVCから1人分の音声を取得して、録音する機能を実装してみる
- 【Discord.js V14】VC1からVC2に音声をStreaming(中継)するBOTを作成する。
- 【Discord.js V14】取得するVCの音声をロールによって判別する