Discord bot 在特定频道中发送消息

Posted

技术标签:

【中文标题】Discord bot 在特定频道中发送消息【英文标题】:Discord bot send msg in specific channel 【发布时间】:2021-01-07 22:40:01 【问题描述】:

我知道以前有人问过这个问题,但我找不到适合我的解决方案。但我希望我的不和谐机器人(当我编写命令时)在特定频道和仅该频道上发送消息。

目前,我的工作区中只有基本文件和文件夹 + 一个命令文件夹。 索引文件如下所示:

const discord = require('discord.js');
const config = require('./config.json');
const client = new discord.Client();
const prefix = '>';
const fs = require('fs');

client.commands = new discord.Collection();
const commandFiles = fs
 .readdirSync('./commands/')
 .filter((file) => file.endsWith('.js'));
for (const file of commandFiles) 
 const command = require(`./commands/$file`);
 client.commands.set(command.name, command);


client.once('ready', () => 
 console.log(`$client.user.username is online`);
);

client.on('message', (message) => 
 if (!message.content.startsWith(prefix) || message.author.bot) return;
 const args = message.content.slice(prefix.length).split(/ + /);
 const command = args.shift().toLowerCase();

 if (command === 'cmd') 
  client.commands.get('cmd').execute(message, args);
 
);

client.login('CLIENT_ID');

然后在 index.js 的同级有一个叫做“commands”的文件夹,里面有 cmd.js,看起来是这样的

const client = require('discord.js');

module.exports = 
 name: 'cmd',
 description: 'cmd',
 execute(message, args) 
  const channel = client.channels.cache.get('CHANNEL_ID').send('message');
 ,
;

【问题讨论】:

【参考方案1】:

client 不是你从需要 discord.js 模块中得到的东西。它是在您的机器人开始时创建的,您可以通过message.client 获取您的客户端实例

const channel = message.client.channels.cache.get('CHANNEL_ID').send('message');

【讨论】:

以上是关于Discord bot 在特定频道中发送消息的主要内容,如果未能解决你的问题,请参考以下文章

Discord Bot 删除特定频道中的消息

Discord bot 发送消息特定通道错误

Discord.py - 如何接收和发送消息到特定频道?

Discord Bot 自动发送消息

在 Discord (discord.py bot) 中仅从 1 个频道发送消息

Discord.py bot 在添加反应时将消息重新发送到另一个频道中断