Unturect typeerror TypeError:***不是函数JS v13

发布于 2025-02-02 16:32:43 字数 2201 浏览 4 评论 0原文

我的目标是制作一个菜单选择系统,以打开门票。但是,当它打开门票时,无法访问应该可以访问门票的角色(管理员和主持人)。 你能帮我吗?

这是代码:

Client.on("interactionCreate", interaction => {

    if(interaction.isSelectMenu()){

        if(interaction.customId === "select") {
            console.log(interaction.values);

            if(interaction.values == "qst"){
                interaction.reply({content: "Vous avez choisi l'option ❓ | Question", ephemeral: true});

                nbTicket++;

                //Nom du ticket
                interaction.guild.channels.create("ticket-" + nbTicket, {
                    parent: "978962595971211324",
                    
                    //Permissions
                    permissionOverwrites: [
                        {
                            id: interaction.guild.id,
                            deny: [Discord.Permissions.FLAGS.VIEW_CHANNEL]
                        },
                        {
                            id: interaction.user.id,
                            allow: [Discord.Permissions.FLAGS.VIEW_CHANNEL]
                        },
                        {
                            id : interaction.guild.roles.cache("978963146364563456"),
                            allow: [Discord.Permissions.FLAGS.VIEW_CHANNEL]
                        }
                    ]
                }).then(channel => {
                    var button = new Discord.MessageActionRow()
                        .addComponents(new Discord.MessageButton()
                            .setCustomId("close-ticket")
                            .setLabel("Fermet le ticket")
                            .setStyle("DANGER")
                        );

                    //Message du bot à l'open du ticket
                    channel.send({content: "<@" + interaction.user.id + "> a ouvert un ticket de la catégorie ❓ | Question", components: [button]});

                    //Remise à 0 
                    interaction.update("Sélectionnez une option pour ouvrir un ticket");

                });
            }

这是我遇到的错误:

Uncaught TypeError TypeError: interaction.guild.roles.cache is not a function

谢谢您,祝您有美好的一天!

My goal is to make a menu selection system that opens tickets. However, when it opens a ticket the roles that should have access to the tickets (admin and moderator) are not accessible.
Could you help me?

Here is the code:

Client.on("interactionCreate", interaction => {

    if(interaction.isSelectMenu()){

        if(interaction.customId === "select") {
            console.log(interaction.values);

            if(interaction.values == "qst"){
                interaction.reply({content: "Vous avez choisi l'option ❓ | Question", ephemeral: true});

                nbTicket++;

                //Nom du ticket
                interaction.guild.channels.create("ticket-" + nbTicket, {
                    parent: "978962595971211324",
                    
                    //Permissions
                    permissionOverwrites: [
                        {
                            id: interaction.guild.id,
                            deny: [Discord.Permissions.FLAGS.VIEW_CHANNEL]
                        },
                        {
                            id: interaction.user.id,
                            allow: [Discord.Permissions.FLAGS.VIEW_CHANNEL]
                        },
                        {
                            id : interaction.guild.roles.cache("978963146364563456"),
                            allow: [Discord.Permissions.FLAGS.VIEW_CHANNEL]
                        }
                    ]
                }).then(channel => {
                    var button = new Discord.MessageActionRow()
                        .addComponents(new Discord.MessageButton()
                            .setCustomId("close-ticket")
                            .setLabel("Fermet le ticket")
                            .setStyle("DANGER")
                        );

                    //Message du bot à l'open du ticket
                    channel.send({content: "<@" + interaction.user.id + "> a ouvert un ticket de la catégorie ❓ | Question", components: [button]});

                    //Remise à 0 
                    interaction.update("Sélectionnez une option pour ouvrir un ticket");

                });
            }

This is the error I get:

Uncaught TypeError TypeError: interaction.guild.roles.cache is not a function

Thank you and have a nice day !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃→可爱长大的 2025-02-09 16:32:43

rolemanager.cache.cache>/code> 不是一个函数,它是一个函数,它返回集合&lt; snowflake,cole&gt;

您可能要寻找的可能是

interaction.guild.roles.cache.get("978963146364563456")

interaction.guild.roles.cache("978963146364563456")

Collection。得到

RoleManager.cache isn't a function, it's a getter, that returns Collection<Snowflake, Role>.

Probably what you are looking for is

interaction.guild.roles.cache.get("978963146364563456")

instead of

interaction.guild.roles.cache("978963146364563456")

See Collection.get

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文