繁体   English   中英

discord.js 的 fn.bind 错误代码是什么?

[英]What is the fn.bind Error code for discord.js?

我正在尝试创建一个命令,让您获得命令 .role {pronoun},如果代词存在,那么它将为您提供现有角色。 但如果它不存在,它将为您提供已经完成的角色:每次运行命令时都会收到一条错误消息,显示“类型错误。fn.bind 不是函数”,但我不知道为什么。 如果你们都可以帮助我,那就太棒了。

client.on('message', async message => {
        var input = (message.content.substr(12))
        var roleName = (message.content.substr(12));
        var role = message.guild.roles.cache.find(r => r.name == roleName);
        if(!role){
            if (message.member.roles.cache.find("name", "Member")){ 
            message.channel.sendMessage('Sorry you already have a pronoun');
            return;
            }
            else if (input === ""){
            message.channel.sendMessage('Please Enter a Valid Pronoun Name');
            return;
            }
            else{
            var pronounName = message.guild.roles.find(role => role.name === "Member");
            message.member.guild.createRole({
                name: message.content.substr(12),
        }).then(function(role)
        {
            message.member.addRole(role);
            message.member.addRole(pronounName);
            message.channel.sendMessage('You have created the pronoun: ' + role);
        });
            }   
        }else{
            message.channel.sendMessage('That Pronoun Already Exists!');
            return;
        }
    })

这是由message.member.roles.cache.find("name", "Member")引起的。 .find()方法接受 function 作为其第一个参数(您提供了一个字符串)和用作this作为其第二个参数的值(您提供了另一个字符串)。

您可以通过检查name属性是否等于"Member"来找到一个角色:

message.member.roles.cache.find((role) => role.name === 'Member')

PS:您的代码中可能存在其他错误,但TypeError: fn.bind is not a function可以通过此解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM