使用 import 运行函数的加载程序问题

问题描述 投票:0回答:1

我已经使用这段代码很长时间了,但是,我仍然不知道为什么代码仍然没有从加载程序中找到运行,这是我的加载程序,也是我正在更新的 build.js 文件一切都与 discord js v14 有关,我遇到了 require() 问题,我不得不改用 import。我无法找到为什么代码不工作,即使已经导入了所有需要的东西并在代码中使用了运行功能......

这里是为了:从'../models/events/loader.js'导入{run as eventLoader};

import fs from 'fs';

function run(blue, red, commands, dirname) {
  let i = 0;
  fs.readdirSync(dirname + '/commands/').forEach(async (dir) => {
    fs.readdir(`${dirname}/commands/${dir}/`, async (err, files) => {
      if (err) return console.log(err);
      files
        .filter((file) => file.endsWith('.js'))
        .forEach((file) => {
          let command = require(`${dirname}/commands/${dir}/${file}`);
          if (command) commands.set(command?.name, command);
          i++;
        });
    });
  });
  setTimeout(() => {
    console.log(blue('Loading Bot Commands "') + red(i) + blue('"'));
  }, 1567);
}

export default run;

这里是为了:从'../models/events/loader.js'导入{run as eventLoader};

const fs = require('fs');

module.exports.run = (blue, red, client, dirname) => {
    fs.readdir(dirname + '/events/', (err, files) => {
        if (err) return console.log(err);
        let i = 0;
        files.forEach(file => {
            if (!file.endsWith(".js")) return;
            const event = require(dirname + `/events/${file}`);
            let eventName = file.split('.')[0];
            client.on(eventName, event.bind(null, client));
            i++
        });
        console.log(blue("Loading DisApi Events \"") + red(i) + blue("\""));
    });
}

这里是为了:从'../models/interactions/loader.js'导入{run as interactionLoader};

const { glob } = require("glob");
const commandLoader = new Map();
const { promisify } = require("util");
const globPromise = promisify(glob);

module.exports.run = async (client) => {
  ["admin", "music", "base", "utilities"].forEach(async(category) => {
    const commandLoader = await globPromise(
      `${process.cwd()}/source/interactions/${category}/*.js`
    );

    const arrayOfSlashCommands = [];
    slashCommands.map((value) => {
      const file = require(value);
      if (!file?.name) return;
      commandLoader.set(file.name, file);

      if (["MESSAGE", "USER"].includes(file.type)) delete file.description;
      arrayOfSlashCommands.push(file);
    });
    client.on("ready", async () => {
      await client.application.commands.set(arrayOfSlashCommands);
    });
  });
};

module.exports.commandLoader = commandLoader;

这是为了:从'../models/music/loader.js'导入{以musicLoader运行};

const fs = require('fs');

module.exports.run = (blue, red, player, dirname) => {
    fs.readdir(dirname + '/music/', (err, files) => {
        if (err) return console.log(err);
        let i = 0;
        files.forEach(file => {
            if (!file.endsWith(".js")) return;
            const event = require(dirname + `/music/${file}`);
            let eventName = file.split('.')[0];
            player.on(eventName, event.bind(null, player));
            i++
        });
        console.log(blue("Loading Music Events \"") + red(i) + blue("\""));
    });
}

这是我运行的 build.js 结构化文件

import chalk from 'chalk';
import { run as eventLoader } from '../models/events/loader.js';
import { run as commandLoader } from '../models/commands/loader.js';
import { run as interactionLoader } from '../models/interactions/loader.js';
import { run as musicLoader } from '../models/music/loader.js';

const red = chalk.red;
const blue = chalk.blue;
const green = chalk.green;
const yellow = chalk.yellow;

export class RamyLogin {
  constructor(props) {
    try {
      this.client = props.client;
      this.client
        .login(process.env.TOKEN)
        .then(async function (token) {
          console.log(yellow.bold(require('figlet').textSync('Ramy')));
          console.log(
            red.bold('Discord.JS Is Connect On: ') +
              green(token.split('.')[0] + '****************')
          );
          console.log(
            blue.bold('none') +
              red(' If You Need Support!!.')
          );
        })
        .catch(async function (error) {
          console.log(red.bold(error));
        });
    } catch (err) {
      console.log(err);
    }
  }
}

export class RamyRegister {
  constructor(props) {
    try {
      this.client = props.client;
      this.dir = props.dir;
      this.commands = props.commands;
      this.player = props.player;

      const server = new Server();
      eventLoader(blue, red, this.client, this.dir);
      commandLoader(blue, red, this.commands, this.dir);
      try {
        interactionLoader(this.client);
        musicLoader(blue, red, this.player, this.dir);
      } catch (err) {
        console.log(err);
      }
    } catch (err) {
      console.log(err);
    }
  }
}

我尝试将功能更改为其他功能,但它仍然无法正常工作,请告诉我该怎么做才能使其正常工作。谢谢。

javascript discord.js event-handling handler loader
1个回答
0
投票

为什么他们不是一个单一的答案,这个网站是死了还是什么? :)

© www.soinside.com 2019 - 2024. All rights reserved.