pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

對機器人命令使用不同的文件

Use different file for bot commands(對機器人命令使用不同的文件)
本文介紹了對機器人命令使用不同的文件的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我想通過將所有較長的內容放在另一個文件中來使我的代碼看起來干凈且易于理解.我有我的主文件(index.js):

I want to keep my code clean looking and easier to understand, by putting all the longer stuff in another file. I have my main file (index.js):

 const discord = require('discord.js');
 require('dotenv').config()

 const token = process.env.botToken;
 const prefix = "s!";

 const cmds = require("./commands.js");

 var client = new discord.Client();

 client.on('ready', function(message) {});

 client.on('message', function(message) {
    if(message.author.equals(client.user) || !message.content.startsWith(prefix)) return;

    var args = message.content.substring(prefix.length).split(" ");

    switch (args[0].toLowerCase()) {
        case "help":
            cmds.help;
            break;
    }
 });

 client.login(token)

和我的其他文件夾(commands.js):

and my other folder (commands.js):

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

    module.exports = {
        help: function(message) {
            var embed = new discord.RichEmbed()
                .addField("spyBot Commands", "If you get issues, dont be afraid to join us: http://discord.gg/3k6zGNF");
            message.channel.send(embed);
        }
    }

我希望它發送嵌入,但是當我輸入命令時,沒有任何反應,也沒有打印任何錯誤.

I would like it to send the embed, but when I put the command in, nothing happens and no errors are printed.

推薦答案

我看到需要修復的兩個主要問題:
1:commands.js中的客戶端
2:主文件中的命令函數

I see two major things that need to be fixed:
1: the client in commands.js
2: the command function in the main file

1 - 在 commands.js 中,您創建了一個新客戶端.如果你只有這個命令,它不會導致任何問題,因為 client 沒有在你的代碼中使用,但是當你需要它時它不會起作用,因為它必須與在主文件中.您有兩種可能的解決方案:將您的客戶端設置為全局或需要主模塊.如果您的機器人不必在公共包中發布,那么您可以保存 global.client = client;,然后在每個其他文件中作為 client 訪問它.另一種方法是從主模塊 (module.exports = {client};) 導出客戶端,然后在 commands.js 中請求主文件 (var{client} = require("./index.js");).

1 - In commands.js, you created a new client. If you have only this command, it won't cause any problem since client is not used in your code, but when you'll need it that won't work since it has to be the same as in the main file. You have two possible solutions: setting your client as global or requiring the main module. If your bot doesn't have to be published in a public package then you can save global.client = client;, and then access it as client in every other file. The alternative is to export the client from the main module (module.exports = {client};) and then require the main file in commands.js (var {client} = require("./index.js");).

2 - 在 commands.js 中,您正在導出 help function,所以當您調用它時index.js 你必須使用括號并將消息作為參數傳遞.試試這樣的:

2 - In commands.js you're exporting a help function, so when you call it index.js you have to use parenthesis and pass the message as an argument. Try something like this:

//in the switch statement
case "help":
  cmds.help(message);
  break;

希望對您有所幫助,如果您還有其他問題,請告訴我.

I hope this can help you, let me know if you have any further question.

這篇關于對機器人命令使用不同的文件的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

discord.js v12: How do I await for messages in a DM channel?(discord.js v12:我如何等待 DM 頻道中的消息?)
how to make my bot mention the person who gave that bot command(如何讓我的機器人提及發出該機器人命令的人)
How to fix Must use import to load ES Module discord.js(如何修復必須使用導入來加載 ES 模塊 discord.js)
How to list all members from a specific server?(如何列出來自特定服務器的所有成員?)
Discord bot: Fix ‘FFMPEG not found’(Discord bot:修復“找不到 FFMPEG)
Welcome message when joining discord Server using discord.js(使用 discord.js 加入 discord 服務器時的歡迎消息)
主站蜘蛛池模板: 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 新中天检测有限公司青岛分公司-山东|菏泽|济南|潍坊|泰安防雷检测验收 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 时代北利离心机,实验室离心机,医用离心机,低速离心机DT5-2,美国SKC采样泵-上海京工实业有限公司 工业电炉,台车式电炉_厂家-淄博申华工业电炉有限公司 | 阻燃剂-氢氧化镁-氢氧化铝-沥青阻燃剂-合肥皖燃新材料 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 游戏版号转让_游戏资质出售_游戏公司转让-【八九买卖网】 | 陕西鹏展科技有限公司 | 骨密度检测仪_骨密度分析仪_骨密度仪_动脉硬化检测仪专业生产厂家【品源医疗】 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 影像测量仪_三坐标测量机_一键式二次元_全自动影像测量仪-广东妙机精密科技股份有限公司 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 防火卷帘门价格-聊城一维工贸特级防火卷帘门厂家▲ | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 咖啡加盟,咖啡店加盟连锁品牌-卡小逗 | crm客户关系管理系统,销售管理系统,crm系统,在线crm,移动crm系统 - 爱客crm | 颗粒机,颗粒机组,木屑颗粒机-济南劲能机械有限公司 | 驾驶式洗地机/扫地机_全自动洗地机_工业洗地机_荣事达工厂官网 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 球盟会·(中国)官方网站| 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 代理记账_免费注册公司_营业执照代办_资质代办-【乐财汇】 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 隧道窑炉,隧道窑炉厂家-山东艾瑶国际贸易 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 煤棒机_增碳剂颗粒机_活性炭颗粒机_木炭粉成型机-巩义市老城振华机械厂 | 交流伺服电机|直流伺服|伺服驱动器|伺服电机-深圳市华科星电气有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 电机铸铝配件_汽车压铸铝合金件_发动机压铸件_青岛颖圣赫机械有限公司 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 塑料托盘厂家直销-吹塑托盘生产厂家-力库塑业【官网】 | 螺旋压榨机-刮泥机-潜水搅拌机-电动泥斗-潜水推流器-南京格林兰环保设备有限公司 |