Kyuris is a lightweight, easy-to-use framework built specially for the Eris library.
- Kyuris supports any kind of project structure since Kyuris is made to be customizable for developers to code in their own style ✨
Note: It's not needed setup messageCreate
and ready
events as Kyuris has already handle them in order to works.
An Example Of a Project Structure:
Discord-Bot/
├── Commands/
│ ├── General/
│ │ └── Ping.js
│
├── Events/
│ └── ShardPreReady.js/
│
└── index.js
const Kyuris = require("kyuris");
class ExampleBot extends Kyuris.Client {
constructor() {
/* Replace TOKEN with your bot's token */
/* Pro Tips: KyurisOptions supports for Eris.ClientOptions as well! Thus, there'll be 2 different Client options at once */
super("TOKEN", {
prefix: "!",
ownerID: [
"YourID"
],
maxShards: "auto"
});
/* Run the bot */
this.run();
}
}
module.exports = new ExampleBot();
That's it? Yes but no. We also need to setup a commands for your bot. Kyuris.Client has 2 parameters, token
and KyurisOptions
. We need to filled out token
in order for the bot to connect to the Discord gateway and KyurisOptions
as an optional things for the bot. prefix
property inside the KyurisOptions
is required for your bot to work. KyurisOptions
is also an extended options for Eris.ClientOptions
as shown above example. Now, let's move to the next step.
const Eris = require("eris");
const Kyuris = require("kyuris");
class PingCommand extends Kyuris.Command {
constructor() {
super();
this.name = "ping"; // The command name
this.aliases = ["p"]; // The command aliases. Must be an array of string
this.cooldown = 3; // Cooldown must be in numbers (seconds)
this.allowInDMs = true // Whether to allow users to execute the command in Private Channels/DMs
}
/**
* @param {Kyuris.Client} client Extended Client for Eris.Client
* @param {Eris.Message<Eris.TextableChannel>} message Eris message
* @param {Array<String>} args Command's arguments
*/
async run(client, message, args) {
client.createMessage(message.channel.id, "Pong!");
}
}
module.exports = new PingCommand();
This time, we're creating a command in a command file. You'll need to pass the name
property for the command name and this is required. Any other properties are optional. To run the command, we're going to use a function called run
. This method has 3 parameters. They are Kyuris.Client
client (An extended Client of Eris.Client), Eris.Message
message, and Array<String>
args.
const Kyuris = require("kyuris");
class ShardPreReady extends Kyuris.Event {
constructor() {
/* Eris's Events. See https://abal.moe/Eris/Client for an event overview */
super("shardPreReady");
}
/**
* @param {number} id The ID of the shard
*/
async run(id) {
Kyuris.Logger.info("KYURIS - SHARD-PRE-READY", `Shard ${id} Has Successfully Connected!`);
}
}
module.exports = new ShardPreReady();
- That's It! Your bot is now fully setup and ready to go as long as you didn't forgot to save your files :P
- Lightweight
- Easy-To-Use
- Up-To-Date
- Customizable Behaviour
- Kyuris' Official Docs is currently W.I.P.
- Kyuris' Official GitHub Repo is where the primary development occurs.
- Kyuris' Support Server is where you can get support within the framework or get in contact with me.
- 🚧 Proper Custom
ready
&messageCreate
Events (messageCreate
event is where Kyuris handles messages and commands (Making a custommessageCreate
event isn't recommended at all unless you know what you're doing.) - ✖ Cluster Client
- 🚧 More properties
Kyuris was released under the MIT License.