## A brand new bleeding edge non bloated Discord library
npm install @potoland/framework![]()
``sh-session`
npm install @potoland/framework
yarn add @potoland/framework
for further reading join our Discord
- A wrapper to interface the Discord API
@potoland/* is primarily inspired by biscuit
- Scalable
`ts
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
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
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();
``