我想將嵌入的訊息傳輸到另一個帶有反應的聊天,但我遇到了一些麻煩,因為 BOT 沒有使用以下代碼傳輸訊息:
client.on("messageCreate", message => {
if (message.channel.id === analiseChannelID) {
message.react(aprovada);
message.react(nula);
message.react(negada);
} else if (message.channel.id === aprovadasChannelID) {
message.react(arquivada);
message.react(negada);
} else if (message.channel.id === negadasChannelID) {
message.react(arquivada);
message.react(negada);
} else if (message.channel.id === nulaChannelID) {
message.react(arquivada);
message.react(negada);
}
});
client.on("messageReactionAdd", ({ message }) => {
const analiseChannel = message.client.channels.cache.get(analiseChannelID);
const aprovadasChannel = message.client.channels.cache.get(aprovadasChannelID);
console.log("Reaction");
if (message.author.bot) return;
if (message.guild.channels.id = analiseChannelID) {
const { embeds } = message
aprovadasChannel.send({
embeds
})
}
});
當我添加此內容是為了不讓他做出自己的反應并在聊天中發送垃圾郵件時:
if (message.author.bot) return;
他只是不理會傳遞訊息。
我要做的是,如果有一個新的嵌入
analiseChannelID,他應該用 3 個表情符號做出反應,然后根據這些反應,他會將訊息轉移到aprovadasChannelID并洗掉analiseChannelID
uj5u.com熱心網友回復:
正如評論中所說,您將訊息作為 Discord webhook 發送。Webhook 被歸類為機器人訊息。如果您試圖讓做出反應的用戶,您可以使用messageReactionAdd事件的第二個引數。它是一個User代表做出反應的用戶的物件。
client.on("messageReactionAdd", ({ message }, user) => { //get the User who reacted
const analiseChannel = message.client.channels.cache.get(analiseChannelID);
const aprovadasChannel = message.client.channels.cache.get(aprovadasChannelID);
console.log("Reaction");
if (user.bot) return;
if (message.guild.channels.id = analiseChannelID) {
const { embeds } = message
aprovadasChannel.send({
embeds
})
}
});
注意代碼中的錯誤較多
- if 陳述句的條件未正確輸入。它必須是
==或=== message.guild.channels.id未定義。如果您想檢查某個頻道是否存在,我認為您正在這樣做,請使用message.guild.channels.cache.has("ID")
uj5u.com熱心網友回復:
猜測問題出在這里:
if (message.guild.channels.id = analiseChannelID)
您通過使用單個 '=' 運算子所做的是將analiseChannelID值分配給message.guild.channels.id(它甚至不存在,因為 guild.channels 是渠道管理器),然后檢查分配的值是否不是javascript的虛假值。不幸的是,您的問題不是很清楚您要實作的目標,但我想您想要做的是:
client.on("messageReactionAdd", ({ message }) => {
if (message.author.bot) return;
const analiseChannel = message.client.channels.resolve(analiseChannelID);
const aprovadasChannel = message.client.channels.resolve(aprovadasChannelID);
// you can use the has method since the cache is a Collection instance
// this if you want to check if the guild has a channel with that id
if (message.guild.channels.cache.has(analiseChannelID)) {
const { embeds } = message;
aprovadasChannel.send({
embeds
});
}
// this if you want to ckeck if the channel in which the message has been sent is that channel id
if(message.channel.id === analiseChannelID) { /* do stuff */ }
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/345387.html
標籤:javascript 节点.js 不和谐.js 机器人
