@potoland/framework
v0.0.5
Published
## A brand new bleeding edge non bloated Discord library
Downloads
10
Maintainers
Readme
@potoland/framework
A brand new bleeding edge non bloated Discord library
Install (for node18)
npm install @potoland/framework
yarn add @potoland/framework
for further reading join our Discord
Most importantly, @potoland/framework is:
- A wrapper to interface the Discord API
@potoland/* is primarily inspired by biscuit
Why @potoland/*?:
- Scalable
Example bot (TS/JS)
import Redis from "ioredis";
import { Potocuit /*, Command */ } from "@potoland/framework";
import { RedisAdapter } from "@potoland/cache";
import { type DiscordGetGatewayBot, Intents } from "@biscuitland/api-types";
import { DefaultRestAdapter } from "@biscuitland/rest";
import { ShardManager } from "@biscuitland/ws";
const TOKEN = "pxx.xotx.xxo";
const restAdapter = new DefaultRestAdapter({
token: TOKEN,
});
const gwy = await restAdapter.get<DiscordGetGatewayBot>("/gateway/bot");
const shardManager = new ShardManager({
gateway: gwy,
config: {
token: TOKEN,
intents: Intents.GuildMembers |
Intents.GuildEmojis |
Intents.Guilds |
Intents.GuildMessages |
Intents.GuildPresences |
Intents.GuildVoiceStates,
},
handleDiscordPayload(_shard, _payload) {
},
});
const bot = new Potocuit({
token: TOKEN,
shardManager,
restAdapter,
cache: {
adapter: new RedisAdapter({
client: new Redis(),
options: { namespace: "bot" },
}),
disabledEvents: [], //Can pass 'ALL'
},
});
/*
//Without <ShardManager> instance
const bot = new Potocuit({
token: TOKEN,
intents: Intents.GuildMembers |
Intents.GuildEmojis |
Intents.Guilds |
Intents.GuildMessages |
Intents.GuildPresences |
Intents.GuildVoiceStates,
shardManagerOptions: { //<--- Must specify options
gateway: gwy,
},
restAdapter,//<--- Not necessary, it is created automatically
cache: {
adapter: new RedisAdapter({
client: new Redis(),
options: { namespace: "bot" },
}),
disabledEvents: [],
},
});
*/
bot.events.ready = ([id, num]) => {
console.log(`[${id}] handling ${num} shards`);
};
// await bot.publishApplicationCommands(Command[])
await bot.start();