NodeJS 为什么我的Discord机器人总是不准备好?

ttisahbt  于 2023-01-04  发布在  Node.js
关注(0)|答案(1)|浏览(92)

我尝试使用discord.js做一个discord机器人,问题是,discord从来没有准备好,因为他从来没有在控制台中记录任何东西,这里的脚本:

import DiscordJS, { IntentsBitField } from 'discord.js'
import dotenv from 'dotenv'
dotenv.config()

const client = new DiscordJS.Client({
    intents: [
        IntentsBitField.Flags.Guilds,
        IntentsBitField.Flags.GuildMessages,
    ]
})

client.on('ready', () => {
    console.log("W")
})

client.login(process.env.TOKEN)

即使我有令牌和所有,它从来没有得到准备,因为它从来没有打印“W”在控制台,任何想法,为什么它不工作?(我正在使用打字脚本顺便说一句)

hjzp0vay

hjzp0vay1#

我觉得typescript跟普通的包调用没有什么区别,那么在这行:

import DiscordJS, { IntentsBitField } from 'discord.js'

因为你要导入它应该是这样的

import { IntentsBitField, DiscordJS } from 'discord.js'

注意没有DiscordJS。第二,你没有在这行调用Client

const client = new DiscordJS.Client({
    intents: [
        IntentsBitField.Flags.Guilds,
        IntentsBitField.Flags.GuildMessages,
    ]
})

您需要在导入时添加Client,类似于:

import { IntentsBitField, Client } from 'discord.js'

并更新您的:

const client = new DiscordJS.Client({
    intents: [
        IntentsBitField.Flags.Guilds,
        IntentsBitField.Flags.GuildMessages,
    ]
})

const client = new Client({
    intents: [
        IntentsBitField.Flags.Guilds,
        IntentsBitField.Flags.GuildMessages,
    ]
})

而且我认为在你的new Client上添加partial会帮助机器人接触到频道和公会。

const client = new Client({
    intents: [
        IntentsBitField.Flags.Guilds,
        IntentsBitField.Flags.GuildMessages,
    ],
     partials: [Partials.GuildMember, Partials.Channel]
})

如果我错过了什么,请寻找其他方法。我不喜欢 typescript Here's the link

相关问题