如何将 lib.js 文件中的 Discord.js 函数调用到 index.js 中?

Posted

技术标签:

【中文标题】如何将 lib.js 文件中的 Discord.js 函数调用到 index.js 中?【英文标题】:How can I call Discord.js functions from a lib.js file into index.js? 【发布时间】:2022-01-21 17:21:32 【问题描述】:

我正在尝试创建一个包含我的函数的单独类,这样 index.js 就不会变得混乱。我遇到的问题是我的新 lib.js 文件无法与 discord.js 一起使用。我计划添加多个更复杂的功能,因此将lib.start() 替换为msg.channel.send('Game Started') 不会解决我的问题。有没有办法让 discord.js 命令在 lib.js 中工作,以便我可以将它们调用到 index.js 中?

index.js

const Discord = require('discord.js')
const client = new Discord.Client();

const lib = require("./classes/lib");

const  token  = require('./Data/config.json');

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

client.on('message', async msg => 
  if(msg.content.startsWith("m!")) 
    const command = msg.content.substring(2)

    switch(command) 
      
      //Calling 'start()'
      case "start game" : lib.start(); break;
    
      default: msg.channel.send('Unknown Command');
    
    
   
)

client.login(token)

lib.js

function start() 
    msg.channel.send('Game Started');   //Trying to get this to work


module.exports = start;

【问题讨论】:

【参考方案1】:

在函数中传入对消息的引用

client.on('message', async msg => 
  if(msg.content.startsWith("m!")) 
    const command = msg.content.substring(2)

    switch(command) 
      
      //Calling 'start()'
      case "start game" : lib.start(msg); break;
    
      default: msg.channel.send('Unknown Command');
    
    
   
)
function start(msg) 
    msg.channel.send('Game Started');


module.exports = start;

您可能还想创建start 和其他函数async,只要记住它们被调用时await

【讨论】:

以上是关于如何将 lib.js 文件中的 Discord.js 函数调用到 index.js 中?的主要内容,如果未能解决你的问题,请参考以下文章

Discord.JS 用户信息命令

如何检查消息收集器是不是收集了图像?以及如何获取该图像的 Discord URL/proxyURL?

SyntaxError:意外的令牌'?'在 repl.it 中,因为我更新到 discord.js V13

不和谐的oauth中的错误请求

有没有办法使用 quick.db 制作 discord.js 日志系统

如何在控制器中将函数的输出显示为angularjs中的嵌套视图