首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >票证系统discord.js检查票证

票证系统discord.js检查票证
EN

Stack Overflow用户
提问于 2021-11-10 15:26:06
回答 1查看 75关注 0票数 0

我的票证系统已经差不多完成了。我剩下的唯一问题是检查一个人是否已经有了一张票。不幸的是,我不知道如何检查。我主要通过数据库找到答案,但我现在想避免这种情况。

我的工单系统:

代码语言:javascript
复制
        case 'ticket':
        case 'Ticket':


            var guild = client.guilds.cache.get('897417868633940028')
            guild.channels.create(message.member.displayName + 's-ticket', {
                type: 'text',
                topic: message.author.id + '-ticket',
                parent: '897771652451678268',
                permissionOverwrites: [
                    {
                        id: message.author.id,
                        allow: ['SEND_MESSAGES', 'VIEW_CHANNEL', 'READ_MESSAGE_HISTORY', 'EMBED_LINKS', 'ATTACH_FILES'],
                    },
                    {
                        id: message.guild.roles.everyone,
                        deny: ['VIEW_CHANNEL'],
                    },
                    {
                        id: "897772395368583178",
                        allow: ['SEND_MESSAGES', 'VIEW_CHANNEL'],
                    },
                ],
            })

            let created = new Discord.MessageEmbed()
                .setTitle("Ticket-System")
                .setThumbnail('png')
                .setDescription(`Hello, '${message.member.displayName}'. You're ticket is created.`)
                .setColor("GREY")
                .setTimestamp()


            message.channel.send({ embeds: [created] });

            let newchannel = message.guild.channels.cache.find(channel => channel.name === `${message.member.displayName}s-ticket`);
            message.guild.channels.cache.get(`${newchannel}`)

            break;


        case 'close':

            if (!message.channel.name.includes("-ticket")) return message.channel.send("You can't delete that channel, nice try")
            message.channel.delete()

            break;



            case 'rename':

            var rename = message.content.slice(" rename" .length);
            if(!message.channel.name.includes("-ticket")) return message.channel.send("You can't rename this channel!")
            if(!message.member.permissions.has(Discord.Permissions.FLAGS.MANAGE_ROLES)) return message.channel.send("You can't do that!")
            message.channel.setName(rename + '-ticket')

        
            break;
EN

回答 1

Stack Overflow用户

发布于 2021-11-10 15:55:37

由于您将主题设置为userID-ticket,因此您可以检查频道主题。频道可能没有缓存,因此使用GuildChannelManager#fetch可能会有所帮助。

代码语言:javascript
复制
await guild.channels.fetch()
if (guild.channels.cache.some(c => c.topic?.startsWith(message.author.id)) {
  //User has a ticket already
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69915959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档