无法使用外部功能模块“ {setActivity”

问题描述

我正在尝试设置机器人的.setActivity(),但是它似乎不起作用,但是,如果我使用eval命令进行设置,它实际上会设置并起作用。这是因为我尝试调用外部功能模块吗?


文件

placeHolder(client,string) {
   const owner = client.users.cache.get(client.config.admin.owner.id);
   if (typeof string === "string") {
     return string
       .replace(/%totalCommands%/g,client.commands.array().length)
       .replace(/%clientName%/g,client.name)
       .replace(/%clientId%/g,client.user.id)
       .replace(/%clientDescription/g,client.package.description)
       .replace(/%clientUsername%/g,client.user.username)
       .replace(/%clientTag%/g,client.user.tag)
       .replace(/%clientDevName%/g,client.dev.name)
       .replace(/%clientDevHelpers%/g,client.dev.helpers.join(","))
       .replace(/%clientDefaultPrefix%/g,client.def.prefix)
       .replace(/%clientGuildCount%/g,client.guilds.cache.size)
       .replace(/%clientChannelCount%/g,client.channels.cache.size)
       .replace(/%clientPackageName%/g,client.package.name)
       .replace(/%clientVersion%/g,client.package.version)
       .replace(/%clientLicense%/g,client.package.license)
       .replace(/%clientAvatarURL%/g,client.avatar)
       .replace(/%clientRepository%/g,client.package.repository)
       .replace(/%clientAuthor%/g,client.package.author)
       .replace(/%clientOwnerUsername%/g,owner.username)
       .replace(/%clientOwnerTag%/g,owner.tag)
       .replace(/%clientOwnerID%/g,owner.id)
       .replace(/%clientMainFile%/g,client.package.main)
       .replace(/%clientOwnerAvatarURL%/g,owner.avatarURL() || owner.defaultAvatarURL)
       .replace(/%clientOriginalAuthor%/g,client.package.original_author);
   } else {
     return string;
   }
 }
const discord = require('discord.js');
const Essentials = require("../utils/essentials.js");

module.exports = {
  name: "ready",// Event Name
  async execute(
    client,event
  ) {
    let activity = {};
    async function setActv() {
      activity.type = client.config.client.presence.activity.default.name;
      activity.status = client.config.client.presence.activity.status;
      activity.name = await Essentials.placeHolder(client,client.config.client.presence.activity.default.name);
      client.user.setActivity(activity.name,{
        type: activity.type
      });
      client.user.setStatus(activity.status);
    }
    client.footer = Essentials.placeHolder(client,client.config.client.settings.footer);
    try {
      // Set Activity every 30 seconds
      setInterval(async () => {
        await setActv().catch(err => Essentials.log(client,error))
      },5000);
    } catch (error) {
      Essentials.log(client,error);
    }
  
    // Bot Ready Log //
    console.log(
      `Logged in as ${client.user.tag}.\n`
      + `There are ${client.users.cache.size} users and/or bots online.\n`
      + `${client.user.tag} connected to:\n${client.guilds.cache
        .map(g => g.name)
        .join(",")}`
    );
  }
};
client.events = new discord.Collection();
var eventFiles = fs
  .readdirsync(`./resources/events`)
  .filter(file => file.endsWith(".js"));
for (var file of eventFiles) {
  var event = require(`./resources/events/${file}`);
  client.events.set(event.name,event);
  console.log(`Loading event handler for event "${event.name}".`);
}

client.on("ready",async () => {
  const event = client.events.get("ready");
  if (event) {
    try {
      await event.execute(
        client,event
      )
    } catch (err) {
      Essentials.log(client,err)
    }
  } 
});
const discord = require('discord.js');
const Essentials = require('../utils/essentials.js')

module.exports = {
  id: "eval",name: "Eval",// Command name
  description: "A simple eval tool to use on discord.",// Command Description
  aliases: ["evl","ev"],// Command Aliases
  category: "Utilities",cooldown: 5000,// Command cooldown
  examples: ["eval message.author.id","eval process.cwd()"],// Command Examples
  usage: ["<args>"],// Command Usage
  permissions: ["SEND_MESSAGES","READ_MESSAGE_HISTORY"],// Command Permissions
  memberPermissions: ["SEND_MESSAGES","READ_MESSAGE_HISTORY","MANAGE_SERVER"],// User is required to have these permissions
  admin: true,// Command is admin only
  async execute(client,command,message,args,auth,channel,guild) { // Function async execute()
    // Command Starts Here
    try {
      let evaled = eval(args.join(" "));
      if (typeof evaled !== "string") evaled = require("util").inspect(evaled);
      const avtr = message.author.avatarURL() || message.author.defaultAvatarURL;
      const embed = new discord.MessageEmbed()
        .setAuthor(client.name,client.avatar)
        .setTitle(command.name)
        .setTimestamp()
        .setColor(client.color.default)
        .addField("**Input**",'```' + args.join(" ") + '```')
        .addField("**Result**",'```' + Essentials.clean(evaled) + '```')
        .setFooter(`${message.author.username} evaled`,avtr);
      message.channel.send(embed);
    } catch (err) {
      const embed = Essentials.errorEmbed(err);
      message.channel.send((embed),{ split: true });
    }
  }
};

我尝试了很多组合,从实际将其放置在事件处理程序之外,一直到bot.js,直到实际使用eval()为止,上面是我当前的代码。没有抛出任何错误代码ready.js中的所有其他组件(包括client.footer = ...)都可以正常工作,除了设置活动外,我是否还错过了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)