前提・実現したいこと
Discordで使用するBotをJavascriptを用い作成しています。
使用する武器をランダムで選択するBotを作ったのですが
それを今回ボイスチャンネルに接続しているユーザー全てに対して行いたいと考えているのですが
初心者でどのように組めば良いのか検索してもわからず質問させて頂きます。
現在環境
ボイスチャンネルにユーザーA,B,C,Dが接続(接続していなくても可)
ユーザー(誰でも)が[武器]とコメント→Botが反応しコメントしたユーザーに対し武器の名称をコメントする
実現したい環境
ボイスチャンネルにユーザーA,B,C,Dが接続(接続している場合にのみ反応)
ユーザー(誰でも)が[武器VC]とコメント→Botが反応しボイスチャンネルに接続しているユーザー全員に対し武器の名称をコメントする
誰も接続していない場合はその旨をコメントする。
※全員が同じ事をしないといけないのを改善したいです
■現在使用しているコード(discord.js)は下記になります。
// Response for Uptime Robot
const http = require('http');
http.createServer(function(request, response)
{
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Discord bot is active now \n');
}).listen(3000);
// Discord bot implements
const discord = require('discord.js');
const client = new discord.Client();
client.on('ready', message =>
{
client.user.setPresence({ game: { name: 'with discord.js' } });
console.log('bot is ready!');
});
client.on('message', message =>
{
if(message.isMemberMentioned(client.user) && message.author != client.user)
{
message.reply( ' \n 何をしますか? \n 操作方法がわからない場合は『使い方』と打って下さい。' );
return;
}
if (message.content === '使い方') {
let channel = message.channel;
let author = message.author.username;
message.reply( '\n 説明文を後ほど追記
if (message.content === '武器') {
const channel = message.channel;
const author = message.author.username;
const texts = [
"素手",
"ナイフ",
"剣",
"槍"
];
// 上記をランダムで選択 const replyText = texts[Math.floor(Math.random() * texts.length)]; message.reply(replyText).catch(console.error);
その他
試したこと調べながら何となく下記を追加で書いたのですが間の部分がわからず動きません。
(ボイスチャンネルに接続していてもelse 以降が反応してしまいます。)
if (message.content === '武器VC') {
if (message.isMemberMentioned(client.user) && message.member.voiceChannel)
{
// ボイスチャンネルに人がいる場合の処理
message.member.voiceChannel
↑↑↑↑↑この部分がわかっていない?↓↓↓↓↓
const channel = message.channel; const author = message.author.username;
const texts = [
"素手",
"ナイフ",
"剣",
"槍"
];
// 上記をランダムで選択 const replyText = texts[Math.floor(Math.random() * texts.length)]; message.reply(replyText).catch(console.error); } else { /* ボイスチャンネルにいないときの処理 */ message.reply( '\n ボイスチャンネルに接続してから行って下さい...。' ); }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。