NodeJS 如何让我的机器人对特定消息做出React?

w41d8nur  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(180)

我为我的discord机器人创建了一个命令,允许对消息做出React,但我不知道如何使它对特定消息做出React。我的尝试没有成功。我做错了什么?
下面是我的代码:

const [name, messageID] = args.join(' ').split(' ')
if (!name) return message.channel.send("Veuillez indiquer le nom de l'emoji.")
if (!messageID) return message.channel.send("Veuillez indiquer l\'ID du message.")
const reactionEmoji = message.guild.emojis.cache.find(emoji => emoji.name === name);
(messageID).react(reactionEmoji)
ilmyapht

ilmyapht1#

您没有明确argsArray还是String
.join(' ').split(' ')也是无用的,因为它将返回它是什么(没有变化)
你不能只从MessageID获取消息,你还需要ChannelID
法语:Et vous ne pouvez pas seulement récupérer le message du MessageID Vous aurez également besoin du ChannelID
试试这样的东西:
法语:Essayez quelque chose comme ça

let name, messageID, channelID;
if(typeof(args) != string){
    //args is an array (Might be number but let's forget that part)
    //args est une array (Peut-être un numéro mais oublions cette partie)
    [name, messageID, channelID] = args;
}else{
    //args is an String
    //French: args est une string
    [name, messageID, channelID] = args.split(' '); //No need to join()
}
if(!name){ return message.channel.send("Enter name") }
if(!messageID){ return message.channel.send("Enter message ID") }
if(!channelID){ return message.channel.send("Enter Channel ID") }
//This line is from your code
//French: Cette ligne provient de votre code
const reactionEmoji = message.guild.emojis.cache.find(emoji => emoji.name === name);
//You have to fetch the message before using it
const reactChannel = await client.channels.cache.get(channelID);
if(!reactChannel){ return message.channel.send("Channel not accessable") }
let reactMessage = await reactChannel.messages.fetch("701574160211771462");
//Then finally
reactMessage.react(reactionEmoji);

如果您不懂英语,请尝试使用谷歌翻译

相关问题