【发布时间】:2022-01-15 09:20:51
【问题描述】:
有没有一种方法可以使用户无法使用按钮,除非他们具有特定权限,例如 ADMINISTRATOR?
以下代码用于我的票证系统,我只是在寻找解决方案,当用户创建票证时,除非他们有权这样做,否则他们将无法使用????️ close 按钮关闭它。
如果我能在这方面提供帮助将不胜感激,因为如果用户以垃圾邮件的方式打开票证并立即关闭票证会很烦人。
const { MessageEmbed, MessageActionRow, MessageButton } = require("discord.js");
const botconfig = require("../../botconfig");
module.exports = {
name: "ticket",
aliases: ["new"],
run: async (client, message, args) => {
let channel = message.guild.channels.cache.find(channel => channel.name === `ticket-${message.author.id}`)
if (message.guild.channels.cache.find(channel => channel.name === `ticket-${message.author.id}`)) {
return message.reply({ content: `You currently have an open ticket.\n<:CL_Reply:909436090413363252> <#${channel.id}>` });
}
const ticketEmbed = new MessageEmbed()
.setTitle("__Support will be will you shortly__")
.setDescription("> While you wait, please let us know how we can help\nClick on the ????️ to close this ticket")
.setColor("GREEN")
.setFooter(`User ID: ${message.author.id}`, message.author.displayAvatarURL())
const deleteTicket = new MessageActionRow().addComponents(
new MessageButton()
.setCustomId("delete")
.setLabel("????️ Close")
.setStyle("DANGER")
);
//support ping for later references - <@&705344500578648119>
message.guild.channels.create(`ticket-${message.author.id}`, {
permissionOverwrites: [
{
id: message.author.id,
allow: ["SEND_MESSAGES", "VIEW_CHANNEL"]
},
{
id: message.guild.roles.everyone,
deny: ["SEND_MESSAGES", "VIEW_CHANNEL"]
}
],
type: "GUILD_TEXT"
})
.then(async channel => {
message.reply({ content: `<:CL_Support:912055272275599380> Your ticket has been created!\n<:CL_Reply:909436090413363252> ${channel}` });
channel.send({ content: `@here <@${message.author.id}>`, embeds: [ticketEmbed], components: [deleteTicket] });
const logchannel = message.guild.channels.cache.find(channel => channel.name === "ticket-logs");
if (logchannel) {
const ticketLogs = new MessageEmbed()
.setTitle("__New Ticket__")
.setDescription(`A new ticket was created\n<:CL_Reply:909436090413363252> ${channel.name}\n\nCreated <t:${Math.floor(Date.now()/1000)}:R>`)
.setColor("GREEN")
logchannel.send({ embeds: [ticketLogs] });
}
});
}
};
【问题讨论】:
标签: node.js discord.js