[英]Emojis discord.js
在過去的幾天里,當用戶對消息做出反應並且我不知道如何處理時,我一直非常關注修復此代碼以使其工作,我也一直在嘗試使其與全球表情符號一起工作,而不僅僅是表情符號在特定的公會上。 誰能告訴我我必須做什么? 我沒有看到任何有關查找全局默認 discord 表情符號的文檔,例如:笑:等。
這是我的代碼
const {
MessageCollector
} = require("discord.js")
const MessageModel = require('../../models/message')
const {
MessageEmbed
} = require('discord.js')
const {
prefix
} = require('../../botconfig.json')
const {
channels
} = require("./../../botconfig.json");
let msgCollectorFilter = (newMsg, originalMsg) => newMsg.author.id === originalMsg.author.id;
module.exports = {
config: {
name: "addreaction",
category: "rolereactions",
aliases: ['rr', 'rolereaction'],
description: "creates a reaction",
usage: "!rr <message id>",
},
run: async (bot, message, args) => {
if(!message.member.hasPermission('MANAGE_GUILD')) return message.channel.send('You are missing the permission \`Manage server\`').then(m => m.delete({timeout:10000}))
if (args.slice().length !== 1 && message.member.hasPermission("MANAGE_MESSAGES")) {
const embed1 = new MessageEmbed()
.setTitle("Enter atleast one Message Id, this message also can occur due to more than 1 message id used.")
.setColor("RANDOM")
.setDescription("**Usage:**\n!addreaction <Message Id>")
.addField("**Important**", "The message id can be found by right clicking a message and clicking 'Copy ID'.")
.setFooter("This message will be deleted after 15 seconds");
let msg = await message.channel.send(embed1) || message.member.hasPermission("MANAGE_MESSAGES");
await msg.delete({
timeout: 15000
}).catch(err => console.log(err));
const logChannel = message.channel || message.guild.channels.cache.find(c => c.name === channels.logs);
} else {
try {
let FetchedMessage = await message.channel.messages.fetch(args.join(" "));
if (FetchedMessage && message.member.hasPermission("MANAGE_MESSAGES")) {
const emojiEmbed = new MessageEmbed()
.setColor("RANDOM")
.setFooter("This message will be removed after 20 seconds.")
.setDescription("Please provide all of the emoji names with the role name.\n Usage: <Emoji name>, <Role name>.")
message.channel.send(emojiEmbed)
.then(msg => msg.delete({
timeout: 20000
}))
let collector = new MessageCollector(message.channel, msgCollectorFilter.bind(null, message));
let emojiRoleMappings = new Map()
collector.on('collect', msg => {
let {
cache
} = bot.emojis;
if (msg.content.toLowerCase() === `${prefix}done` && message.member.hasPermission("MANAGE_MESSAGES")) {
collector.stop(/*console.log('Done command issued.')*/);
return message.channel.send("Role Reaction `Done` command was issued.")
.then(msg => msg.delete({
timeout: 3500
}));
}
let [emojiName, roleName] = msg.content.split(/,\s+/);
if (!emojiName && !roleName) return;
let emoji = cache.find(emoji => emoji.name.toLowerCase() === emojiName.toLowerCase());
if (!emoji && message.member.hasPermission("MANAGE_MESSAGES")) {
msg.channel.send("`Emoji does not exist. Try again.`")
.then(msg => msg.delete({
timeout: 3500
}))
.catch(err => console.log(err))
return;
}
let role = msg.guild.roles.cache.find(role => role.name.toLowerCase() === roleName.toLowerCase());
if (!role) {
msg.channel.send("`Role does not exist. Try again.`")
.then(msg => msg.delete({
timeout: 3500
}))
.catch(err => console.log(err))
return;
}
const reactEmbed = new MessageEmbed()
.setColor("RANDOM")
.setFooter("This message will be removed after 10 seconds.")
.setDescription("I reacted to your message, if you wish to add another reaction follow the same format\n Usage: <Emoji name>, <Role name>.");
FetchedMessage.react(emoji)
.then(message.channel.send(reactEmbed).then(msg => msg.delete({
timeout: 10000
})))
.catch(err => console.log(err));
let emojirole = {};
emojirole[emoji.id] = role.id;
bot.cachedMessageReactions.set(FetchedMessage.id, emojirole);
emojiRoleMappings.set(emoji.id, role.id);
});
collector.on('end', async (collected, reason) => {
let findMsgDocument = await MessageModel.findOne({
messageId: FetchedMessage.id
}).catch(err => console.log(err));
if (findMsgDocument) {
// console.log("The message exists.. Don't save me plz.");
message.channel.send("A role reaction for this message exists already...").then(msg => msg.delete({
timeout: 3500
}));
} else {
let msg = await message.channel.send("Saving...")
let dbMsgModel = new MessageModel({
messageId: FetchedMessage.id,
emojiRoleMappings: emojiRoleMappings
});
dbMsgModel.save().catch(err => console.log(err))
.then(msg.edit("Saved!").then(msg => msg.delete({
timeout: 3500
})));
}
});
}
} catch (err) {
console.log(err)
let msg = await message.channel.send("This message doesnt exist.");
await msg.delete({
timeout: 3500
}).catch(err => console.log(err));
}
}
}
}
要獲取默認表情符號,例如:laughing
:,只需發送 discord 中的表情符號,前面帶有反斜杠: \:laughing:
復制結果並將其粘貼到您的代碼中。 這僅適用於PC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.