1.1.1 • Published 7 years ago

cirnofw v1.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
7 years ago

Cirno bot framework

This is still in development so things are subject to will change.

TypeScript Examples

Example of setting up a basic client in TypeScript (both are almost identical)

// Import the needed Classes from the framework
import { Client, LogLevel, CirnoOptions } from 'cirnofw';
import * as path from 'path';

const options: CirnoOptions = {
    name: 'meme bot',						// Bot username
    token: 'valid-token',					// Bot token
    owners: ['152093238449274880'],				// Bot owners
    commandPrefix: '!',						// Command prefix
    commandDirectory: path.join(__dirname, 'commands'), 	// Command directory
    statusMessage: 'Use !help for command info.', 		// Playing message
    logLevel: LogLevel.Debug,					// Terminal Log Level
    logCommandUsage: true,					// Log command usage in terminal
    disableDefaultCommands: false,				// Disable build-in commands like "help"
    replyOnCommandCooldown: false,				// Send message if user is on cooldown
    unknownCommandError: true					// Send error on unknown command usage
};
// Define and apply options to client
const client = new Client(options);

// Set command groups for CommandRegistry
client.setCommandGroups([
	['util', 'Utility Commands']
]);

client.runAll(); // Run all event listeners and loaders
client.start(); // Login

Example command

Put this in a file in your commands folder.
Tips is to have sub-folders inside your commands folder to organize commands by categories and such.

import { Message, RichEmbed } from 'discord.js';
import { Command, Client } from 'cirnofw';

export default class extends Command {
    public constructor() {
        super({
            name: 'ping',
            aliases: ['latency'],
            group: 'util',
            description: 'Shows the bots ping to the DiscordAPI.',
            cooldown: 2000
        });
    }
    public async execute(client: Client, message: Message, args: any[]): Promise<void> {
        message.channel.send('Pinging...')
            .then((sentMsg: Message) => {
                sentMsg.edit(`:ping_pong: Pong! Took \`${sentMsg.createdTimestamp - message.createdTimestamp}ms\``);
            });
    }
}

Javascript Examples

Setting up the client

// Import the needed Classes from the framework
const { Client, LogLevel } = require('cirnofw');
const path = require('path');

const options = {
    name: 'meme bot',                       		// Bot username
    token: 'valid-token',                   		// Bot token
    owners: ['152093238449274880'],             	// Bot owners
    commandPrefix: '!',                     		// Command prefix
    commandDirectory: path.join(__dirname, 'commands'), // Command directory
    statusMessage: 'Use !help for command info.',       // Playing message
    logLevel: LogLevel.Debug,                   	// Terminal Log Level
    logCommandUsage: true,                  		// Log command usage in terminal
    disableDefaultCommands: false,              	// Disable build-in commands like "help"
    replyOnCommandCooldown: false,              	// Send message if user is on cooldown
    unknownCommandError: true                   	// Send error on unknown command usage
};
// Define and apply options to client
const client = new Client(options);

// Set command groups for CommandRegistry
client.setCommandGroups([
    ['util', 'Utility Commands']
]);

client.runAll(); // Run all event listeners and loaders
client.start(); // Login

Example command

const { Command } = require('cirnofw');

class PingCommand extends Command {
    constructor() {
        super({
            name: 'ping',
            group: 'util',
            description: 'Shows the bots ping to the DiscordAPI',
            cooldown: 2000
        });
    }
    async execute(client, message, args) {
        message.channel.send('Pinging...')
            .then(sentMsg => {
                sentMsg.edit(`:ping_pong: Pong! Took \`${sentMsg.createdTimestamp - message.createdTimestamp}ms\``);
            });
    }
}
exports.default = PingCommand; // Always make sure to export the command class.
1.1.1

7 years ago

1.1.0

7 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago