javascript - Discord Api 必须为客户端提供有效意图
问题描述
我正在编写一个不和谐的机器人。当我尝试运行节点时。在 cmd 我得到这个:
C:\Users\utente\Desktop\bouncerBot\node_modules\discord.js\src\client\Client.js:544 throw new TypeError('CLIENT_MISSING_INTENTS'); ^
TypeError [CLIENT_MISSING_INTENTS]:必须为客户端提供有效的意图。在 Client._validateOptions (C:\Users\utente\Desktop\bouncerBot\node_modules\←[4mdiscord.js←[24m\src\client\Client.js:544:13) 在新客户端 (C:\Users\utente\ Desktop\bouncerBot\node_modules\←[4mdiscord.js←[24m\src\client\Client.js:73:10) 在对象。(C:\Users\utente\Desktop\bouncerBot\main.js:2:16) ←[90m at Module._compile (internal/modules/cjs/loader.js:1072:14)←[39m ←[90m
在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)←[39m ←[90m 在 Module.load (internal/modules/cjs/loader.js:937:32)← [39m ←[90m at Function.Module._load (internal/modules/cjs/loader.js:778:12)←[39m ←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76 :12)←[39m ←[90m at internal/main/run_main_module.js:17:47←[39m {
[←[32mSymbol(代码)←[39m]: ←[32m'CLIENT_MISSING_INTENTS'←[39m }C:\Users\utente\Desktop\bouncerBot>node 。C:\Users\utente\Desktop\bouncerBot\node_modules\discord.js\src\client\Client.js:544 throw new TypeError('CLIENT_MISSING_INTENTS'); ^
TypeError [CLIENT_MISSING_INTENTS]:必须为客户端提供有效的意图。在 Client._validateOptions (C:\Users\utente\Desktop\bouncerBot\node_modules\←[4mdiscord.js←[24m\src\client\Client.js:544:13) 在新客户端 (C:\Users\utente\ Desktop\bouncerBot\node_modules\←[4mdiscord.js←[24m\src\client\Client.js:73:10) 在对象。(C:\Users\utente\Desktop\bouncerBot\main.js:3:16) ←[90m at Module._compile (internal/modules/cjs/loader.js:1072:14)←[39m ←[90m
在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)←[39m ←[90m 在 Module.load (internal/modules/cjs/loader.js:937:32)← [39m ←[90m at Function.Module._load (internal/modules/cjs/loader.js:778:12)←[39m ←[90m at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76 :12)←[39m ←[90m at internal/main/run_main_module.js:17:47←[39m {
[←[32mSymbol(code)←[39m]: ←[32m'CLIENT_MISSING_INTENTS'←[39m
我试图在网上搜索解决方案,但一无所获。我还在机器人设置中激活了以下药水,但没有任何变化:
这是我的代码,即使它不是错误的原因:
主.js:
const Discord = require('discord.js');
const fs = require('fs');
const client = new Discord.Client();
let rawdata = fs.readFileSync('config.json');
let config = JSON.parse(rawdata);
const TOKEN = config.botToken
const prefix = config.prefix
client.login(TOKEN)
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.lenght).split(/ +/)
const command = args[1].toLowerCase()
console.log(args)
//Command test!
})
client.once('ready', () => {
console.log("Discord bot online")
});
配置.json:
{
"botToken":"",
"prefix":"!pgc"
}
编辑:
我尝试按如下方式更新代码:
const Discord = require('discord.js');
const fs = require('fs');
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
let rawdata = fs.readFileSync('config.json');
let config = JSON.parse(rawdata);
const TOKEN = config.botToken
const prefix = config.prefix
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.lenght).split(/ +/)
const command = args[1].toLowerCase()
console.log(args)
//Command test!
})
client.once('ready', () => {
console.log("Discord bot online")
});
client.login(TOKEN)
但我仍然得到一个错误:
(node:12216) UnhandledPromiseRejectionWarning: ReferenceError: AbortController 未在 RequestHandler.execute (C:\Users\utente\Desktop\bouncerBot\node_modules\discord.js\src\rest\RequestHandler.js:172:15) 在 RequestHandler 中定义。在 RequestHandler.push (C:\Users\utente\Desktop\bouncerBot\node_modules\discord 处执行 (C:\Users\utente\Desktop\bouncerBot\node_modules\discord.js\src\rest\RequestHandler.js:176:19) .js\src\rest\RequestHandler.js:50:25) 在异步 WebSocketManager.connect (C:\Users\utente\Desktop\bouncerBot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:128: 9) 在 async Client.login (C:\Users\utente\Desktop\bouncerBot\node_modules\discord.js\src\client\Client.js:245:7) 处(使用
node --trace-warnings ...
显示警告的创建位置)(节点:12216)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。要在未处理的 Promise 拒绝时终止节点进程,请使用 CLI 标志--unhandled-rejections=strict
(请参阅 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。(拒绝 id:2)(节点:12216)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。
解决方案
首先,永远不要显示你的机器人的令牌,或者稍后尝试更改它。
其次:
尝试使用这个。由于更新了 discord.js 之类的版本 ^13.0,您必须指定客户端意图:
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
显然,放在client.login(TOKEN)
最底部。
有关新版本 discord.js 所需的更多更新,请单击此处
推荐阅读
- javascript - 无法使用nodejs启动js文件
- javascript - Webpack copyFiles将文件从子目录复制到主目录
- javascript - 重新定位后 Javascript OpenLayers 填充不透明度增加
- javascript - Javascript - 通过正则表达式匹配单词 - 非英语
- android - anychart 不随数据变化
- ios - SwiftUI 删除视图上的空格
- firefox - jupyter-notebook:使用 firefox 的 Take a ScreenShot 时不滚动页面。页面滚动被隐藏
- linux - 如何使用 i2c-tools 通过 I2C 接口获取 BH1750(光传感器)的数据
- javascript - 如何在Javascript中压缩和重新映射数组的数据
- python - 找不到名为“pyopengv”的模块