📜  告别 discord.js - Javascript (1)

📅  最后修改于: 2023-12-03 15:37:11.787000             🧑  作者: Mango

告别 discord.js - Javascript

简介

discord.js 是一个使用 Javascript 编写的 Discord 机器人 API,可以通过它与 Discord 服务器进行通信。然而,它近期已经 宣布退役,不再会有新的更新和支持。对于需要与 Discord 交互的程序员来说,我们需要寻求替代方案。

Alternatives
Discord.js的后继者 - discordeno

discordeno 是 Discord.js 的后继者,基于 Deno,具有相同优雅的 API,但是可扩展性更好、依赖更少,功能更新速度也更快。discordeno 目前在社区中受到了广泛关注和使用。

示例代码:

import { createBot } from "discordeno";

createBot({
  token: "BOT_TOKEN_HERE",
  intents: ["GUILDS", "GUILD_MESSAGES"],
  messageNew: (message) => {
    if (message.content === "!ping") {
      message.reply("pong!");
    }
  },
});
Node.js Discord API库 - Eris

Eris 是一个轻量级且高效的 Discord API 库,也是基于 Javascript,提供了相对较少和简单的依赖和 API 调用。虽然不如 Discord.js 具有广泛的社区支持和插件,但是对于简单应用需求的开发者,Eris 是一个更好的选择。

示例代码:

const Eris = require("eris");

const bot = new Eris("BOT_TOKEN_HERE");

bot.on("ready", () => {
  console.log("Ready!");
});

bot.on("messageCreate", (msg) => {
  if (msg.content === "!ping") {
    bot.createMessage(msg.channel.id, "pong!");
  }
});

bot.connect();
Discord API REST库 - Discord.js-light

如果您的项目只需要与 Discord 进行部分交互,例如发送消息、管理频道等简单操作,那么 Discord.js-light 可能是您的最佳选择。它只需使用 Discord API 的 RESTful 部分,没有任何 Websocket 依赖,因此它比其他替代品更加轻量和快速。

示例代码:

const { Client } = require("discord.js-light");

const client = new Client({
  cacheGuilds: true,
  cacheChannels: true,
  cacheOverwrites: false,
  cacheRoles: true,
  cacheEmojis: false,
  cachePresences: false,
});

client.on("ready", () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on("message", (msg) => {
  if (msg.content === "!ping") {
    msg.channel.send("Pong!");
  }
});

client.login("BOT_TOKEN_HERE");
结论

虽然 Discord.js 是一个非常受欢迎的 Discord API 库,但是它已经被宣布退役,并且不再有新的更新和支持。作为一个程序员,我们需要在 Discord.js 的基础上寻找合适的替代方案。以上提供了三个可选方案,可以根据具体的需求选择适合的解决方案。