【问题标题】:Ticket System discord.js check for ticket票务系统 discord.js 检查票证
【发布时间】:2021-11-11 00:55:38
【问题描述】:

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

我的票务系统:


        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;

【问题讨论】:

    标签: discord.js


    【解决方案1】:

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

    await guild.channels.fetch()
    if (guild.channels.cache.some(c => c.topic?.startsWith(message.author.id)) {
      //User has a ticket already
    }
    

    【讨论】:

    • 我现在收到此错误:C:\Discord Bots\Bot v13\index.js:436 if (guild.channels.cache.some(c => c.topic.startsWith(message .author.id))) return { ^ TypeError: Cannot read property 'startsWith' of undefined
    • @IneedHelp 我编辑了它。有些频道没有主题
    • 它不工作。我仍然可以创建任意数量的票
    猜你喜欢
    • 2021-12-01
    • 1970-01-01
    • 2020-11-24
    • 2021-11-28
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    相关资源
    最近更新 更多