久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

addRole 不是函數

addRole is not a function(addRole 不是函數)
本文介紹了addRole 不是函數的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在創建一個 Discord 機器人.我正在嘗試創建靜音命令,但總是遇到同樣的錯誤.

出了什么問題?

背景資料:

  • Discord.js 版本:12.0.0-dev

  • 使用版本0.5.0-dev的Klasa

代碼:

const { 命令 } = require('klasa');const { MessageEmbed } = require('discord.js');module.exports = 類擴展命令 {構造函數(...args){super(...args, { description: '靜音用戶.' })}異步運行(味精,參數){if(!msg.member.hasPermission("MANAGE_MEMBERS")) return msg.channel.send("你不能使用這個命令.");讓 MuteUser = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]))if(!MuteUser) return msg.channel.send("找不到用戶!");讓 MuteReason = msg.content.split(" ").slice(2).join(" ");讓 MuteRole = msg.guild.roles.find(r => r.name === "Spammer");if(!MuteRole) return msg.channel.send("找不到垃圾郵件發送者角色!");讓 MuteChannel = msg.guild.channels.find(guild => guild.name === 'bot-logs');if(!MuteChannel) return msg.channel.send("找不到#bot-logs 頻道.");if(MuteUser.roles.has(MuteRole)) return msg.channel.send("那個用戶已經被靜音了!");MuteUser.addRole(MuteRole.id);return MuteChannel.send(new MessageEmbed().setAuthor("靜音"|| '未知', "http://wolfdevelopment.cf/BotSymbols/info.png").setColor("#ff0000").addField("靜音用戶", `${MuteUser}`).addField("靜音者", `<@${msg.author.id}>`).addField("靜音", `${msg.channel}`).addField("時間", `${msg.createdAt}`).addField("原因", `${MuteReason}`));}}

我檢查了 MuteUser 是這一行的人:

 if(!MuteUser) return msg.channel.send("找不到用戶!");

所以一定是人.為什么它沒有addRole函數?

解決方案

我決定從另一個角度看待這個問題,并搜索了 Discord.js 文檔以獲取更多信息.果然找到了東西:

我假設您對 msg.guild.member 的調用會產生一個 GuildMember,因為這就是名稱的含義.

穩定版(大概是 11.x):

請注意,addRole 是 Methods 下面的第一項.

現在,切換到 master(又名 Development 分支 - 您從那里獲得 12.0.0-dev)...

addRole 已經不存在了.

單擊角色的類型...add 是第一種方法.

您可以將 MuteUser.addRole 替換為 MuteUser.roles.add.

注意:這不會使我在評論中的任何文字無效,因為您沒有在問題本身中提供足夠的信息來說明引發錯誤時 MuteUser 是什么類型.

注意 2:這只需要一次 Google 搜索.你在研究上投入了多少工作?

I am creating a Discord Bot. I am trying create a Mute command, but I always get the same error.

What went wrong?

Background information:

  • Discord.js version: 12.0.0-dev

  • Klasa with version 0.5.0-dev is used

Code:

const { Command } = require('klasa');
const { MessageEmbed } = require('discord.js');

module.exports = class extends Command {

    constructor(...args) {
        super(...args, { description: 'Mute an user.' })
    }

    async run(msg, args) {
        if(!msg.member.hasPermission("MANAGE_MEMBERS")) return msg.channel.send("You can't use this command.");

        let MuteUser = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]))
        if(!MuteUser) return msg.channel.send("Can't find user!");

        let MuteReason = msg.content.split(" ").slice(2).join(" ");

        let MuteRole = msg.guild.roles.find(r => r.name === "Spammer");
        if(!MuteRole) return msg.channel.send("Can't find the Spammer role!");

        let MuteChannel = msg.guild.channels.find(guild => guild.name === 'bot-logs');
        if(!MuteChannel) return msg.channel.send("Can't find the #bot-logs channel.");

        if(MuteUser.roles.has(MuteRole)) return msg.channel.send("That user is already muted!.");

        MuteUser.addRole(MuteRole.id);

        return MuteChannel.send(new MessageEmbed()
            .setAuthor("Mute"|| 'Unknown', "http://wolfdevelopment.cf/BotSymbols/info.png")
            .setColor("#ff0000")
            .addField("Muted User", `${MuteUser}`)
            .addField("Muted By", `<@${msg.author.id}>`)
            .addField("Muted In", `${msg.channel}`)
            .addField("Time", `${msg.createdAt}`)
            .addField("Reason", `${MuteReason}`));
    }
}

I have checked that MuteUser is a person in this line:

    if(!MuteUser) return msg.channel.send("Can't find user!");

So it must be a person. Why doesn't it have an addRole function?

解決方案

I decided to look at this from another viewpoint and searched the Discord.js documentation for some more information. Sure enough, something is found:

I assume your call to msg.guild.member would result in a GuildMember because that is what the name implies.

Stable (Presumably 11.x): https://discord.js.org/#/docs/main/stable/class/GuildMember

Note that addRole is the first item below Methods.

Now, switching to master (aka Development branch - where you got 12.0.0-dev from)... https://discord.js.org/#/docs/main/master/class/GuildMember

addRole isn't there anymore.

Clicking the type of roles... https://discord.js.org/#/docs/main/master/class/GuildMemberRoleStore add is the first method.

You can probably replace MuteUser.addRole with MuteUser.roles.add.

Note: This does not invalidate any of my words in the comments because you didn't provide enough information in the question itself on what type MuteUser is when the error was thrown.

Note 2: This took one Google search only. How much work did you even put into research?

這篇關于addRole 不是函數的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

discord.js v12: How do I await for messages in a DM channel?(discord.js v12:我如何等待 DM 頻道中的消息?)
how to make my bot mention the person who gave that bot command(如何讓我的機器人提及發出該機器人命令的人)
How to fix Must use import to load ES Module discord.js(如何修復必須使用導入來加載 ES 模塊 discord.js)
How to list all members from a specific server?(如何列出來自特定服務器的所有成員?)
Discord bot: Fix ‘FFMPEG not found’(Discord bot:修復“找不到 FFMPEG)
Welcome message when joining discord Server using discord.js(使用 discord.js 加入 discord 服務器時的歡迎消息)
主站蜘蛛池模板: 黄色在线免费看 | 亚洲第一成人影院 | 91精品国产91久久久久游泳池 | 久久久久久久久毛片 | 日韩在线小视频 | 国产免费av在线 | 国产精品久久久久久婷婷天堂 | 日韩三级 | 久久久久久一区 | 久久高清国产 | 久久久久久久久久久久亚洲 | 精品国产一区二区三区久久 | 先锋av资源网 | 欧美日韩国产一区二区三区 | 欧美h版| 在线观看亚洲专区 | 影音先锋欧美资源 | 中文字幕亚洲区 | 麻豆成人在线视频 | 国产一区二区影院 | 国产精品欧美日韩 | 国产精品美女久久久久aⅴ国产馆 | 亚洲精品乱码久久久久久按摩观 | 精品久久国产 | 日韩欧美视频网站 | 青青青伊人| 一区二区三区高清 | 国产成人精品网站 | 亚洲成人一区二区 | 国产乱码精品一区二区三区中文 | 国产成人福利视频 | 亚洲精品国产一区 | 成人3d动漫一区二区三区91 | 国产成人免费视频 | 国产一区二区在线免费观看 | 久久精品97| 中文字幕日韩一区 | 国产精品久久一区二区三区 | 日日夜夜精品视频 | 中文字幕第一页在线 | 日韩在线国产精品 |