久久久久久久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 服務器時的歡迎消息)
主站蜘蛛池模板: 日韩精品免费播放 | 成人激情视频在线 | 久久久久中文字幕 | 国产片网站| 色呦呦在线 | 日韩欧美中文字幕在线观看 | 久草视频网站 | 国产黄色小视频在线观看 | 99久久99| 久久久.com | 日韩欧美国产综合 | 亚洲精品一区二区三区蜜桃久 | 久久精品二区亚洲w码 | 国内精品在线视频 | 精品视频99 | 精品免费视频一区二区 | 日韩一区不卡 | 欧美精 | 一区二区三区欧美 | 日韩精品一区二区三区中文字幕 | 久久精品国产一区二区电影 | 另类 综合 日韩 欧美 亚洲 | 成人在线免费观看 | 亚洲日韩中文字幕一区 | 亚洲成人精品 | 色综合久久久久 | 久久av网 | 日日干夜夜草 | 欧美日韩国产一区 | 青草福利 | 日韩精品视频一区二区三区 | 91久久精品日日躁夜夜躁国产 | 五月激情六月婷婷 | 久久一级大片 | 香蕉一区二区 | 久久99精品国产麻豆婷婷 | 久草网站 | 免费视频一区二区三区在线观看 | 欧产日产国产精品视频 | 成人性视频免费网站 | 久久精品中文字幕 |