javascript - Discord.js 机器人“guildMember.addRole 不是函数”(已修复)
问题描述
所以我试图改变加入服务器的用户的角色,但它一直说 addRole 不是一个函数。我目前使用的是 Discord.js 版本 11.5.1,所以我不应该使用 guildMember.roles.add 对吗?我不知道为什么这不起作用,我在网上找不到任何东西可以帮助解决这个问题。如果您需要更多信息,请告诉我。
这是代码:
var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
var mongo = require('mongodb');
var db = require('./db.js');
var serverIds = require('./serverIds.js');
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
var bot = new Discord.Client({
token: auth.token,
autorun: true
});
bot.on('guildMemberAdd', (guildMember) => {
try {
guildMember.addRole('663290242073100309');
} catch (e) {
console.log(guildMember);
}
});
这是终端中的错误:
Nicks-MacBook-Pro-2:pokemon victory road bot nick$ node bot.js
Connected
{"message":"Connected","level":"info"}
{"message":"Logged in as: ","level":"info"}
{"message":"Professor Magnolia - (663188794740178957)","level":"info"}
TypeError: guildMember.addRole is not a function
at DiscordClient.<anonymous> (/Users/nick/Desktop/Pokemon Victory Road Bot/bot.js:65:21)
at DiscordClient.emit (events.js:210:5)
at emit (/Users/nick/Desktop/Pokemon Victory Road Bot/node_modules/discord.io/lib/index.js:1580:14)
at DiscordClient.handleWSMessage (/Users/nick/Desktop/Pokemon Victory Road Bot/node_modules/discord.io/lib/index.js:1904:11)
at WebSocket.emit (events.js:210:5)
at Receiver.ontext (/Users/nick/Desktop/Pokemon Victory Road Bot/node_modules/ws/lib/WebSocket.js:841:10)
at /Users/nick/Desktop/Pokemon Victory Road Bot/node_modules/ws/lib/Receiver.js:536:18
at Receiver.applyExtensions (/Users/nick/Desktop/Pokemon Victory Road Bot/node_modules/ws/lib/Receiver.js:371:5)
at /Users/nick/Desktop/Pokemon Victory Road Bot/node_modules/ws/lib/Receiver.js:508:14
at Receiver.flush (/Users/nick/Desktop/Pokemon Victory Road Bot/node_modules/ws/lib/Receiver.js:347:3)
解决方案
所以我发现了我的问题。我正在使用 Discord.io 而不是 Discord.js smh。我是制作机器人的新手,所以我没有意识到有什么不同,而且我开始遵循的教程也没有
推荐阅读
- android - 在后台线程的磁盘上滑动缓存图像
- matlab - Matlab中带有移动平均线的蜡烛图
- meteor - 如何估算 MeteorJS 应用程序的托管成本 (AWS)?
- node.js - TypeScript 未访问或导入节点模块
- php - AJAX 使用 Codeigniter 返回 ERR_CONTENT_DECODING_FAILED 200
- php - 如何在 laravel 中以编辑形式显示时间戳格式?
- php - 我的要求声明调用 phpmailer 有什么问题?
- python - PyAudio 安装问题
- jquery - Angular JQuery DataTable,延迟搜索直到输入多个字符
- java - 方法没有使用正确的解析输入