{"id":15808873,"url":"https://github.com/harrisonhoward/eris.js-commando","last_synced_at":"2025-10-16T10:31:58.106Z","repository":{"id":57152814,"uuid":"307034037","full_name":"harrisonhoward/eris.js-commando","owner":"harrisonhoward","description":"A custom Eris command handler designed for Forbidden Statistics","archived":true,"fork":false,"pushed_at":"2020-11-17T02:05:45.000Z","size":105,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-06T03:07:45.333Z","etag":null,"topics":["command-handler","discord","discord-api","discord-bot","eris","javascript","typesript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harrisonhoward.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-25T05:55:31.000Z","updated_at":"2024-04-16T11:15:24.000Z","dependencies_parsed_at":"2022-09-06T07:00:37.057Z","dependency_job_id":null,"html_url":"https://github.com/harrisonhoward/eris.js-commando","commit_stats":null,"previous_names":["forbidden-duck/eris.js-commando"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrisonhoward%2Feris.js-commando","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrisonhoward%2Feris.js-commando/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrisonhoward%2Feris.js-commando/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrisonhoward%2Feris.js-commando/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harrisonhoward","download_url":"https://codeload.github.com/harrisonhoward/eris.js-commando/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236711576,"owners_count":19192885,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-handler","discord","discord-api","discord-bot","eris","javascript","typesript"],"created_at":"2024-10-05T03:08:05.978Z","updated_at":"2025-10-16T10:31:52.730Z","avatar_url":"https://github.com/harrisonhoward.png","language":"JavaScript","readme":"Read [Github](https://github.com/Forbidden-Duck/eris.js-commando) README, in case of unpublished changes\n# Eris.js-Commando\n*not a clone of discord.js-commando*\\\nA custom [Eris](https://github.com/abalabahaha/eris) command handler designed for [Forbidden Statistics](https://github.com/Forbidden-Duck/ForbiddenStatistics)\n\n```\nnpm install eris.js-commando\n```\n\nInstall [forbidden-node-logger](https://github.com/Forbidden-Duck/forbidden-node-logger) for a colour node console logger\n```\nnpm install forbidden-node-logger\n```\n[![NPM Version](https://badgen.net/npm/v/eris.js-commando)](https://www.npmjs.com/package/eris.js-commando)\n[![NPM Downloads](https://badgen.net/npm/dm/eris.js-commando)](https://www.npmjs.com/package/eris.js-commando)\n\n## **Features**\n\n### Commands, Groups and Parent Groups\nGive your bot project structure with Parent Groups and Groups. With these structures you can make having hundreds of commands a breeze to navigate through.\\\nExample:\n```\n    - Basic\n        * ping.js\n        * help.js\n        * invite.js\n    - Config\n        - Join and Leave\n            * join.js\n            * leave.js\n        - Logging\n            * mod-log.js\n            * action-log.js\n```\n\n### Database Providers\nIn-built SQLiteProvider and MongoDBProvider to allow you quickly and efficiently start using a database without the hassle of having to build functions yourself.\\\n**MongoDB**\n```js\nconst MongoDBProvider = Commando.MongoDBProvider;\nconst { MongoClient } = require(\"mongodb\");\nbot.setProvider(\n    new MongoDBProvider({ host: settings.host, name: settings.name, auth: settings.auth }),\n    MongoClient\n);\n```\n**SQLite**\n```js\nconst SQLite = require(\"sqlite\");\nconst SQLiteProvider = Commando.SQLiteProvider;\nconst Path = require(\"path\");\nbot.setProvider(\n    SQLite.open(Path.join(__dirname + \"settings.sqlite\")).then(db =\u003e new sqlite(db))\n);\n```\n\n### Custom Logging with File Support\nSupport for [forbidden-node-logger](https://github.com/Forbidden-Duck/forbidden-node-logger) allows you to save logs file and keep your previous 1000 logs in cache without having to manually open your bot terminal.\\\n`npm install forbidden-node-logger`\n```js\nbot.Logger.log(\"Super cool log command!\");\nbot.Logger.history.first();\nbot.Logger.fileHistory.getLatestLog();\n```\n\n### Utility Manager\nIn-built utility manager allows you to use useful functions. The default functions include getting a users tag (username + discriminator) and others allows you to add, get different settings from storage using a map over having to manage your database yourself.\\\nAlong with these features you can add your own utils onto the manager itself.\\\n*to keep typings you would have to modify the typings file, I'm looking into better options*\n```js\nbot.util.useful.getUserTag(message.author);\n```\n```js\nfunction loadUtils(bot) {\n    if (!bot.util.checkProps(\"myfunctions\")) {\n        bot.util.myfunctions = myfunctions;\n    }\n    bot.util.bindAll();\n}\n```\n\n### Webhook Manager\nIn-built webhook manager allows you to quickly have your bot listen on a port and wait on a sub-directory url (i.e. \"/request\").\\\nThis is useful for bots waiting for votes from popular listing sites like Bots for Discord and Discord Bot List.\n```js\nbot.webhookmngr.listenOn(5000);\nbot.webhookmngr.waitFor(5000, \"/bfdwebhook\", (bot data) =\u003e {}, \"MyBFDAuth\");\nbot.webhookmngr.waitFor(5000, \"/dblwebhook\", (bot, data) =\u003e {}, \"MyDBLAuth\");\n```\n\n## **Getting Started**\n\n### [Documentation](https://github.com/Forbidden-Duck/eris.js-commando/tree/master/docs/)\n\n### [Frequently Asked Questions](https://github.com/Forbidden-Duck/eris.js-commando/blob/master/FAQ.md)\n\n### Basic Bot\n```js\nconst Commando = require(\"eris.js-commando\");\nconst bot = Commando.CommandClient(token, {}, {\n    name: \"CoolErisBot\",\n    description: \"My super cool bot that can do everything!\",\n    prefix: \"!\"\n}, { dirPath: __dirname + \"/logs\" }); \n// replace { dirPath: __dirname + \"/logs\" } with false if you don't have \"forbidden-node-logger\"\n// Along with that remove all bot.Logger references\n\nbot.Logger.on(\"error\", () =\u003e {});\nbot.on(\"ready\", () =\u003e {\n    bot.Logger.log(\"none\", `Client ready! Logged in as \u0026-6${bot.user.username}\u0026r (\u0026-c${bot.user.id}\u0026r)`);\n});\n\nbot.registerGroup(\"Basic\", \"basic\");\nbot.registerCommandsIn(__dirname + \"/commands\");\n\nbot.connect();\n```\n\n## **Test Scripts**\nIn the project directory you can run the following scripts (Make sure you have the environment setup correctly):\n\n### `npm run base`\nWill run the Base Test of the handler\\\nLocated at *test/BaseTest/bot.js*\n\n### `npm run full`\nWill run the Full Test of the handler\\\nLocated at *test/FullTest/bot.js*","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharrisonhoward%2Feris.js-commando","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharrisonhoward%2Feris.js-commando","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharrisonhoward%2Feris.js-commando/lists"}