javascript - 未捕获的 TypeError [CLIENT_MISSING_INTENTS]:必须为客户端提供有效的意图
问题描述
嘿,我已经尝试了这里的几乎所有教程,但它仍然向我显示未捕获的打字错误..即使在我看到并做了其他人也有过的事情之后,它仍然会继续这样做(我的意思是同样的问题)但它就是行不通每件事都没有奏效我不知道该怎么做我也尝试过表达意图,但它说 const client = new Discord.Client(); 需要改变或不知道该怎么做任何帮助对我来说真的很棒。我的主要脚本是这样的:
require('dotenv').config();
const Discord = require('discord.js');
const fs = require('fs');
if(!fs.existsSync('./data/servers.json')) {
console.log('servers.json does not exist');
console.log('Creating servers.json...');
fs.writeFileSync('./data/servers.json', '{}', err => {
console.error(err);
});
console.log('Success!');
}
if(!fs.existsSync('./data/config.json')) {
console.log('config.json does not exist');
console.log('Creating config.json...');
fs.writeFileSync('./data/config.json', '{"defaultPrefix": "!"}', err => {
console.error(err);
});
console.log('Success!');
}
if(!process.env.DISCORD_TOKEN) {
console.log('The DISCORD_TOKEN environment variable is not defined');
if(!fs.existsSync('./.env')) {
console.log('.env does not exist');
console.log('Creating .env...');
fs.writeFileSync('./.env', 'DISCORD_TOKEN=', err => {
console.error(err);
});
console.log('Success!');
}
console.log('Please, set the DISCORD_TOKEN environment variable or add it in .env');
}
const servers = require('../exports/exports.js');
const defaultPrefix = require('../data/config.json').defaultPrefix;
const client = new Discord.Client();
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for(const file of commandFiles) {
const command = require('./commands/' + file);
client.commands.set(command.name, command);
}
client.once('ready', () => {
client.user.setStatus('online');
client.user.setActivity(defaultPrefix + 'help', { type: 'LISTENING' });
console.log('Ready!');
});
client.on('message', message => {
if (message.author.bot) return;
let prefix = servers.getPrefix(message.guild.id);
if(message.content.toLowerCase().startsWith(prefix)) {
const args = message.content.toLowerCase().slice(prefix.length).split(' ');
if(!client.commands.has(args[0])) return;
try {
client.commands.get(args[0]).execute(message, args.slice(1, args.length), prefix);
}
catch(err) {
console.error(err);
message.reply('Something went wrong while executing that command');
}
}
else if(message.content.toLowerCase().startsWith(defaultPrefix + 'help')) {
const args = message.content.toLowerCase().slice(prefix.length).split(' ');
try {
client.commands.get('help').execute(message, args.slice(1, args.length), prefix);
}
catch(err) {
message.reply('Something went wrong while executing that command');
}
}
});
async function close() {
console.log('Received terminate signal');
console.log('Closing');
process.exit();
}
process.on('SIGINT', close);
process.on('SIGTERM', close);
client.login(process.env.DISCORD_TOKEN);
解决方案
真正简单的解决方案是:
const client = new Client({
intents: 32767
});
推荐阅读
- google-apps-script - 有没有办法在 Google 表格中自动查找和替换?
- r - r中关于二项式随机变量的算法
- scala - 如何将 alpakka kafka 与 akka 流 websocket 结合使用
- javascript - 元素类型无效:预期为字符串(用于内置组件)尝试独立启动时出错反应
- python - “张量的图表与会话的图表不同”是什么意思。
- javascript - 无法将动态数据显示到引导表中
- c# - 如何使用 Visual Studio 2019 社区创建 .NET Core 3 控制台应用程序?
- tensorflow - model.fit_generator() 因 use_multiprocessing=True 而失败
- python - 使用python将字符串拆分成句子
- javascript - 相机位置不在 Skybox three.js 内