javascript - 尝试将消息发送到特定频道,但无法定义我的客户端
问题描述
我有一个命令可以清除一组现在可以正常工作的消息,但我试图让机器人向日志通道发送一条消息,告诉模组和管理员,删除了多少消息以及谁删除了它们。这是来自 clear 文件的所有代码:
module.exports = {
name: 'clear',
description: "clears messages",
async execute(message, args){
if(message.member.roles.cache.has('802911784892760074')){//If mod
if(!args[0]) return message.reply('Enter amount');
if(isNaN(args[0])) return message.reply('Enter amount');
if(args[0] > 100) return message.reply('To high');
if(args[0] < 1) return message.reply('To low');
await message.channel.messages.fetch({limit: args[0]}).then(messages =>{
message.channel.bulkDelete(messages);
client.channels.cache.get('799292569825443860').send(`${message.author} has cleared ${args} messages!`)
});
}
}
这是似乎不起作用的代码行:
client.channels.cache.get('799292569825443860').send(`${message.author} has cleared ${args} messages!`)
命令提示符说没有定义客户端,但是我在主js文件中定义了客户端。
const client = new Discord.Client();
我对此还是很陌生,我可能只是缺少一些非常基本的东西。(如果这个问题对于那些理解的人来说是愚蠢的,我很抱歉)任何帮助都会很棒,因为我似乎在这里遇到了障碍。
解决方案
这client
不会只是神奇地出现在您的命令文件中。您需要client
作为参数传递:
async execute(message, args, client){
// ...
并在main.js
:
commands.get('clear').execute(message, args, client)
推荐阅读
- javascript - 如何在 Jest 和 Enzyme 中定义一次组件?
- javascript - pdftron 复制错误的文本
- gatling - Gatling http配置中的inferHtmlResources抛出错误
- r - 多次运行“while-loop”
- grapesjs - 是否有将数据存储为 json 的解决方案?
- c++ - 为什么此代码会给出“程序中的“流浪 '\'”错误?
- sql - 根据输入月份检索结果的 SQL 查询
- php - PHP 没有收到来自 PostMan 的 json
- angular - Primeng p-table - 显示数据而不是 id
- angular - 如何在离子中实现搜索栏