discord.js - discord.js 代码无法正常工作
问题描述
我编写了代码,以便我可以代表一个不和谐的机器人编写代码。但是当我在主频道写作以便机器人将我的消息发送到另一个频道时,我的机器人会在我写的地方写,并开始发送垃圾邮件并添加自己的提及,尽管在代码中我指出的不是他而是写的人这条信息。
这就是代码的样子。
bot.on('message', async message => {
if (message.channel.id === "735573900251103244") {
let csl1 = message.channel.name.split("-")[0];
let csl2 = message.channel.name.split("-")[1];
let logs = bot.guilds.cache.get("611212397226491904").channels.cache.get("611215326566416416");
if (message.author.id === "546359252575322122") {
message.channel.send(message.content);
} else {
message.channel.send(`<@!${message.author.id}>` + `${message.content}`);
}
return;
}
if (message.author.bot) return;
if (message.channel.type === "dm") return;
let args = message.content.slice(prefix.length).trim().split(' ');
let help = args.shift().toLowerCase();
let cmd;
if (!message.content.startsWith(prefix)) return;
if(bot.commands.has(help)) {
cmd = bot.commands.get(help);
} else {
cmd = bot.commands.get(bot.aliases.get(help));
}
if (cmd) cmd.run(bot, message, args);
});
解决方案
您必须将您对 message.author.bot 的检查重新排序到函数的开头,如 seblor 所述。
此外,message.channel
指的是机器人接收消息的通道。为了将消息发送到不同的通道,您必须执行以下操作:
// https://discord.js.org/#/docs/main/stable/class/ChannelManager?scrollTo=fetch
bot.channels.fetch(targetchannelid).then((chan) => {
chan.send("blah blah blah");
});
推荐阅读
- node.js - 使 require() 的变量在节点路由器之间通用
- sql - 根据日期选择有效价格
- sql - 根据特定的字符模式拆分字符串
- konvajs - react-konva 中舞台组件的鼠标进入和鼠标离开事件侦听器不起作用
- android - 为什么多行TextView和两个单行TextView的高度不同?
- powershell - WSL2 Jupyter Notebook错误Powershell找不到指定的文件
- postgresql - 具有应用程序用户策略的基于行的安全性
- next.js - 静态站点的动态路由?
- amazon-web-services - 尝试在 Golang 中初始化 SqsEvent 记录
- mp4 - 从特定位置开始 HLS 录制/从 hls.js 获取当前片段数据