1.0.3 • Published 6 months ago

aoi.loader v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

aoi.loader

A unofficial command loader for aoi.js gen 6.

Highlights

  • Supports the new .aoi extension file from aoi gen 7.
  • Supports JS files.
  • Commands can be reloaded without restarting the client.
  • Array of commands in JS files are supported.

Basic Setup

const { Loader } = require("aoi.loader");
const { AoiClient: Bot } = require("aoi.js");

const bot = new Bot({
    database: {
        type: "aoi.db",
        db: require("@akarui/aoi.db"),
        tables: ["main"],
        path: "./db",
        extraOptions: {
            dbType: "KeyValue"
        }
    },
    intents: [
        "Guilds",
        "GuildMessages",
        "MessageContent"
    ],
    events: [
        "onMessage"
    ],
    prefix: "BOT PREFIX",
    token: "BOT TOKEN",
});

// Loading commands with custom loader.
new Loader(bot).load("./commands")
    .then(() => console.log("Source loaded!"));

Commands

Using ".aoi" extension

All options

[exportCommand: COMMAND_TYPE] {
    prototype: PROTOTYPE
    name: COMMAND_NAME
    channel: CHANNEL_ID
    aliases: ALIAS1, ALIAS2, ALIAS3
    useIf: old
    code: @{
        $log[normal aoi.js code inside curly brackets.]
    }
}

Example (Adding a join command)

[exportCommand: join] {
    channel: $getServerVar[channelID]
    code: @{
        $color[FF0055]
        $description[Welcome to $guildName! Enjoy your stay!]
        $thumbnail[$userAvatar[$authorID]]
        $title[Welcome $username!]
    }
}

Example (Adding a slash command)

[exportCommand: interaction] {
    prototype: slash,
    name: ping
    code: @{
        $interactionReply[Pong! $ping ms]
    }
}

Example (Using old $if)

[exportCommand: interaction] {
    prototype: slash,
    name: ping
    useIf: old
    code: @{
        $interactionReply[Pong! $ping ms]
    }
}

Updating commands

You must use the built-in function.

$updateLoader

Example

[exportCommand: default] {
    name: reload
    aliases: update, u, r, restart
    code: @{
        $color[2F3136]
        $addField[Newly added;$get[added] commands.]
        $thumbnail[$userAvatar[$clientID]]
        $title[Commands reloaded!]
        $let[added;$math[$commandsCount - $get[count]]]
        $updateLoader
        $let[count;$commandsCount]
        $onlyIf[$checkContains[$clientOwnerIDs[,];$authorID]==true;You are not my owner.]
    }
}

WARNING

  • As you know, aoi v6 is not the same as aoi v7, this loader doesn't provide advanced features for ".aoi" files like embedded JS.
  • If you want to use the VSC extension, we recommend do not follow autocompletion since types and functions are a bit different between both versions.
  • Using this loader will make $updateCommands not work.
  • 18/August/2023: This package still works but won't receive any updates.
1.0.3

6 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago