3.0.11 • Published 4 years ago

statcord.js-alpha v3.0.11

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

Table of Contents

Statcord

post

Manual posting

Emits the post event

autopost

Auto posting

Emits the autopost-start event

postCommand

Post stats about a command

Parameters

  • command_name string The name of the command that was run
  • author_id string The id of the user that ran the command

registerCustomFieldHandler

Register the function to get the values for posting

Parameters

  • customFieldNumber (1 | 2) Whether the handler is for customField1 or customField2
  • handler Normal Handler

Returns (Error | null)

ShardingClient

registerCustomFieldHandler

Register the function to get the values for posting

Parameters

  • customFieldNumber (1 | 2) Whether the handler is for customField1 or customField2
  • handler Sharding Handler

Returns (Error | null)

postCommand

Post stats about a command

Parameters

  • command_name string The name of the command that was run
  • author_id string The id of the user that ran the command
  • client any The discord client this command is being posted for

post

Post all current stats to statcord

Emits the post event

Handlers

Normal Handler

Asynchronous function

Parameters

Returns (Promise<string>)

Sharding Handler

Asynchronous function

Parameters

Returns (Promise<string>)

Events

post event

"post" - Emitted whenever a post to the api takes place

Parameters

status - (false | Error | string)

autopost-start event

"autopost-start" - Emitted when autopost is started

Examples

Normal Usage

const Statcord = require("statcord.js");
const Discord = require("discord.js");

const client = new Discord.Client();
// Create statcord client
const statcord = new Statcord.Client({
    key: "statcord.com-APIKEY",
    client,
    postCpuStatistics: false, /* Whether to post CPU statistics or not, defaults to true */
    postMemStatistics: false, /* Whether to post memory statistics or not, defaults to true */
    postNetworkStatistics: false /* Whether to post network statistics or not, defaults to true */
});

/* Register custom fields handlers (these are optional, you are not required to use this function)
 * These functions are automatically run when posting
*/

// Handler for custom value 1
statcord.registerCustomFieldHandler(1, async (client) => {
    // Get and return your data as a string
});

// Handler for custom value 2
statcord.registerCustomFieldHandler(2, async (client) => {
    // Get and return your data as a string
});

// Client prefix
const prefix = "cs!";

client.on("ready", async () => {
    console.log("ready");

    // Start auto posting
    statcord.autopost();
});


client.on("message", async (message) => {
    if (message.author.bot) return;
    if (message.channel.type !== "text") return;

    if (!message.content.startsWith(prefix)) return;

    let command = message.content.split(" ")[0].toLowerCase().substr(prefix.length);

    // Post command
    statcord.postCommand(command, message.author.id);

    if (command == "say") {
        message.channel.send("say");
    } else if (command == "help") {
        message.channel.send("help");
    } else if (command == "post") {
        // Only owner runs this command
        if (message.author.id !== "bot_owner_id") return;

        // Example of manual posting
        statcord.post();
    }
});

statcord.on("autopost-start", () => {
    // Emitted when statcord autopost starts
    console.log("Started autopost");
});

statcord.on("post", status => {
    // status = false if the post was successful
    // status = "Error message" or status = Error if there was an error
    if (!status) console.log("Successful post");
    else console.error(status);
});

client.login("TOKEN");

Sharding Usage

sharder.js

    const Discord = require("discord.js");
    const Statcord = require("statcord.js");

    const manager = new Discord.ShardingManager('./bot.js', { token: "TOKEN"});
    // Create statcord sharding client
    const statcord = new Statcord.ShardingClient({
        key: "statcord.com-APIKEY",
        client,
        postCpuStatistics: false, /* Whether to post CPU statistics or not, defaults to true */
        postMemStatistics: false, /* Whether to post memory statistics or not, defaults to true */
        postNetworkStatistics: false, /* Whether to post network statistics or not, defaults to true */
        autopost: false /* Whether to auto post or not, defaults to true */
    });

    /* Register custom fields handlers (these are optional, you are not required to use this function)
    * These functions are automatically run when posting
    */

    // Handler for custom value 1
    statcord.registerCustomFieldHandler(1, async (manager) => {
        // Get and return your data as a string
    });

    // Handler for custom value 2
    statcord.registerCustomFieldHandler(2, async (manager) => {
        // Get and return your data as a string
    });

    // Spawn shards, statcord works with both auto and a set amount of shards
    manager.spawn();

    // Normal shardCreate event
    manager.on("shardCreate", (shard) => {
        console.log(`Spawned shard ${shard.id}`);
    });

    statcord.on("autopost-start", () => {
        // Emitted when statcord autopost starts
        console.log("Started autopost");
    });

    statcord.on("post", status => {
        // status = false if the post was successful
        // status = "Error message" or status = Error if there was an error
        if (!status) console.log("successful post");
        else console.error(status);
    });

bot.js

const Discord = require("discord.js");
const Statcord = require("statcord.js");

const client = new Discord.Client();
/* There is no need to create a statcord client in the bot script,
because it has already been made in the sharding script
*/

// Client prefix
const prefix = "cs!";

client.on("ready", async () => {
    console.log("ready");
});

client.on("message", async (message) => {
    if (message.author.bot) return;
    if (message.channel.type !== "text") return;

    if (!message.content.startsWith(prefix)) return;

    let command = message.content.split(" ")[0].toLowerCase().substr(prefix.length);

    // Post command
    Statcord.ShardingClient.postCommand(command, message.author.id, client);

    if (command == "say") {
        message.channel.send("say");
    } else if (command == "help") {
        message.channel.send("help");
    } else if (command == "post") {
        // Only owner runs this command
        if (message.author.id !== "bot_owner_id") return;

        // Example of manual posting
        Statcord.ShardingClient.post(client);

        // Errors on the sharding client will be sent to the console straight away
    }
});

client.login("TOKEN");
3.0.10

4 years ago

3.0.11

4 years ago

3.0.8

4 years ago

3.0.7

4 years ago

3.0.6

4 years ago

3.0.9

4 years ago

3.0.5

4 years ago

3.0.4

4 years ago

3.0.3

4 years ago