From ddbdbef4f7b541bc32384ea49086e37ded1fefe1 Mon Sep 17 00:00:00 2001 From: Vylpes Date: Tue, 20 Oct 2020 12:02:52 +0100 Subject: [PATCH] Create docs/index.md --- docs/index.md | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 docs/index.md diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..78934c1 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,128 @@ +# VylBot Core Documentation + +Welcome to the VylBot Core documentation. In this file we will explain how to setup and use VylBot Core in your project. + +## Contents + +1. Initial Setup +2. Configuring the client +3. Creating a command +4. Handling an event + +## 1. Initial Setup + +To setup the package, download it from `npm` + +```bash +cd +npm install vylbot-core +``` + +Add to your .js file + +```js +const vylbot = require('vylbot-core'); +const config = require('config.json'); + +const client = new vylbot.client(config); +client.start(); +``` + +## 2. Configuring the client + +When creating a new `vylbot.client` object you need to pass through some json configuration. This can be either from a .json file or directly written. + +> **Note:** We recommend using a .json file and adding it to your `.gitignore` file to prevent accidentally publishing your bot token. + +An example configuration: + +```json +{ + "token": "", + "prefix": "!", + "commands": "commands", + "events": "events" +} +``` + +Make sure the folders that you set for `commands` and `events` exist and are at your project's current working directory. + +## 3. Creating a command + +A basic command goes as follows: + +```js +// commands/test.js +const { command } = require('vylbot-core'); + +class test extends command { + constructor() { + super("test"); + super.description = "Test description"; + super.category = "general"; + super.requiredConfigs = "link"; + super.roles = "Moderator"; + super.roles = "Admin"; + } + + test(context) { + context.message.channel.send("Hello there, " + context.config.link); + } +} + +module.exports = test; +``` + +1. You create a class and export it using `module.exports` and make it extend the vylbot's `command` class. +2. In the `constructor()` you need to call `super(run)`, replacing `run` with a string of the name of the method which will run when the command runs. +3. Call any of the `super` variables to give it some description, the current ones you can use are: `description`, `category`, `usage` +4. If you want the command to only be allowed to run by people with a role, set the role name in `super.roles` + +> **Note:** You can set more than one role to be required by setting `super.roles` again. + +5. If you want the command to require a variable in the config, set the name in `super.requiredConfigs` + +> **Note:** You can set more than one role to be required by setting `super.requiredConfigs` again. + +6. Create a method using the name you set in `super(run)`, with the `context` as its parameter. + +The `context` parameter will be a JSON object of: + +```json +{ + "command": "", + "arguments": "", + "client": " **Note:** The name of the event file will determine what event it will be triggered on. For example, if you want to have an event trigger everytime a message is sent, put into your event folder a file called `message.js` and follow the steps above. \ No newline at end of file