【问题标题】:TypeError: fn is not a function类型错误:fn 不是函数
【发布时间】:2020-11-04 11:26:50
【问题描述】:
case 'mute':
            var person  = message.guild.member(message.mentions.users.first() || message.guild.roles.cache.find()(args[1]));
            if(!person) return message.reply("That player doesn't exist!");

            let mainrole = message.guild.roles.find(role => role.name === "Verified");
            let role = message.guild.roles.find(role => role.name === "Mute");

            if(!muterole) return message.reply("Couldn't find the mute role.");

            let time = args[2];

            if(!time){
                return message.reply("Please didnt specify a time!");
            }

            person.roles.add(mainrole.id)
            person.roles.remove(role.id);

            message.channel.send(`@${person.user.tag} has now been muted for ${ms(ms(time))}`)
           
            setTimeout(function(){

                person.roles.add(mainrole.id)
                person.roles.remove(role.id);
                console.log(role.id)
                message.channel.send(`@${person.user.tag} has been unmuted!`)
            }, ms(time));
            break;
        }
}); 

是我的代码。

TypeError: fn 不是函数 在客户端。 (C:\Users\nippo\Desktop\aniGuesser\index.js:64:112) 在 Client.emit (events.js:327:22) 在 MessageCreateAction.handle (C:\Users\nippo\Desktop\aniGuesser\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14) 在 Object.module.exports [as MESSAGE_CREATE] (C:\Users\nippo\Desktop\aniGuesser\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32) 在 WebSocketManager.handlePacket (C:\Users\nippo\Desktop\aniGuesser\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31) 在 WebSocketShard.onPacket (C:\Users\nippo\Desktop\aniGuesser\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22) 在 WebSocketShard.onMessage (C:\Users\nippo\Desktop\aniGuesser\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10) 在 WebSocket.onMessage (C:\Users\nippo\Desktop\aniGuesser\node_modules\ws\lib\event-target.js:125:16) 在 WebSocket.emit (events.js:315:20) PS C:\Users\nippo\Desktop\aniGuesser> 节点。 aniGuesser 在线。带来蛋糕! C:\Users\nippo\Desktop\aniGuesser\node_modules@discordjs\collection\dist\index.js:160 if (fn(val, key, this)) 错误的东西。

我决定开始制作一个机器人,所以我的朋友们认为我很聪明,所以我开始观看关于如何配置这些机器人的 youtube 系列。在此过程中,我决定发出静音命令,因为为什么不这样做,但后来我收到了这个错误。在此之前,我有“message.guild.roles.get”,并且 cmets 告诉我将其更改为 message.guild.roles.cache.find 虽然这解决了我的问题,但我现在有这个错误。顺便提一句 即使我使用粘贴箱并且只更改它周围的单词仍然有这个错误。

【问题讨论】:

  • 从堆栈跟踪(错误)看来,在代码的第 64 行,您有一个名为 fn 的函数,该函数之前未定义。那看起来像什么?
  • 我不明白你的意思,一个名为 fn 的函数。我不知道这是否意味着什么,但唯一改变的是 ;在第 64 行,它什么也没做。
  • 您似乎在调用一个名为 fn 的东西,就好像它是一个函数一样。这看起来像fn(),类似于您调用console.log() 时所做的事情。问题出在您调用fn 而它实际上不是一个函数。 fn 之前在你的代码中定义了吗?
  • 当我摆脱 .find 并用 .get 替换它时,它会说:pastebin.com/tJh4Us0Y
  • 您能否编辑您的问题以包含第 64 行?您提供的代码未显示错误或fn 的来源。

标签: discord.js


【解决方案1】:

你的问题是这样的:message.guild.roles.cache.find()(args[1]));。

首先,find 接受一个函数,(这会导致显示的错误)。

其次,您尝试调用find 返回的值,这将是一个角色而不是函数find()(args[1]),但我认为这是一个错字,您打算使用它来添加一个函数。

【讨论】:

    猜你喜欢
    • 2021-01-26
    • 2021-04-26
    • 1970-01-01
    • 2016-02-26
    • 2013-04-01
    • 2016-03-06
    • 2018-04-28
    • 2019-02-14
    相关资源
    最近更新 更多