我正在尝试为我们的FiveM服务器创建一个discord社区bot,用于处理discord角色。我希望bot限制ROLECHANNEL,因此只能发布角色命令。我希望删除其他垃圾,以便频道保持干净。
命令正在工作,角色已经分配,但是机器人也会触发message.reply('错误的角色,类型'前缀'角色');
为什么?
client.on('message', message => {
if (message.channel.id === ROLECHANNEL) {
if (message.author.bot) return;
if (!message.content.includes("fivem", "ark", "arma3", "roles", "stream",)) {
message.delete([1]);
message.reply('Wrong role, type ' + prefix +'roles');
}
if(message.content.startsWith(prefix + "fivem")){
message.delete([1]);
let fivemrole = message.member.guild.roles.find("name", "fivem");
message.member.addRole(fivemrole);
message.channel.send('Gives ' + message.author + ' fivem role...');
}
if(message.content.startsWith(prefix + "arma3")){
message.delete([1])
let armarole = message.member.guild.roles.find("name", "Arma3");
message.member.addRole(armarole);
message.channel.send('Gives ' + message.author + ' Arma3 role...');
}
if(message.content.startsWith(prefix + "ark")){
message.delete([1]);
let arkrole = message.member.guild.roles.find("name", "Ark");
message.member.addRole(arkrole);
message.channel.send('Gives ' + message.author + ' Ark role...');
}
if(message.content.startsWith(prefix + "stream")){
message.delete([1]);
let streamerrole = message.member.guild.roles.find("name", "Streamer");
message.member.addRole(streamerrole);
message.channel.send('Gives ' + message.author + ' Streamer role...');
}
if (message.content.startsWith(prefix + "roles")) {
message.delete([1]);
message.channel.send('Help: ' + message.author + ' roles are. ' + roles);
}
};
您在这部分中遇到的问题!消息所容纳之物包括(“fivem”、“ark”、“arma3”、“roles”、“stream”,)
由于消息包含仅侦听第一个参数“fivem”,您需要在代码中添加或
块
V2
作为第一变体:
if(!message.content.includes("fivem") && !message.content.includes("ark") && !message.content.includes("arma3"))
或者您可以设置允许的可变数组并进行检查
let allowedCommands = ["fivem", "ark", "arma3", "roles", "stream"]
if (!allowedCommands.find(command => message.content.indexOf(command) !== -1)) {
message.delete([1]);
message.reply('Wrong role, type ' + prefix +'roles');
}
有没有可能让我的不和谐机器人发送消息,而不必在不和谐中键入命令?相反,我想从我的应用程序内部触发它。 上面的代码给出了一个属性错误:'NoneType'对象没有属性'send'
直到最近,我的Discord机器人一直工作得很好,我没有对代码做任何更改,它与工作时处于相同的状态。但是出于某种原因,现在当我尝试通过控制台启动bot时(在我的情况下): 节点my-discord-bot.js 它什么也不做,没有错误,只是空白,我应该收到一个确认,说‘准备好了!’我的机器人应该上线,但这一切都不会发生。 下面是我用来启动我的bot(直到最近才开始工作)的代码: 我真的不知道问题出
我已经在为最近加入“访客”角色的成员使用此。 我的机器人不能24小时在线。所以当我连接它的时候,有一些用户在机器人离线的时候加入了,显然没有角色(我猜他们是在@每个人的角色中)。 我的目的是在连接Bot时,将没有角色的discord用户移动到现有角色。
我对Javascript了解不多,所以请耐心听我说。 所以,我想为我的不和谐机器人发出命令。基本上,我想发生的是,当你发布“!记录”,我想让机器人发送一个RichEmbed与2个选项,你可以选择。 我已经把那部分搞定了。这正是我想要的。它发送带有两个选项的RichEmbed。 接下来我想做的是,当您发送“1”或“2”时,我希望Bot回复正确的记录。这是我不能理解的部分。以下是所有代码: 有人能概括
我是一个初学者程序员(或者在我看来是这样),我需要帮助在音乐机器人中实现一个队列。 目前,只有当队列中有一首歌时,队列才能正常工作。如果有更多的歌曲,那么递归开始(在=wait serverQueue(语音,消息)之后从def play开始并等待play(queue.pop(0),语音,消息)从队列开始),并且所有歌曲只是跳过。 我试图以不同的方式解决这个问题,例如,引入了第二个变量,但这并没有带
我将如何做出反应角色事件。这是我试过的代码 我想做的是让我的机器人检查对特定消息的反应,然后给用户一个角色,如果他们的反应是正确的表情符号。