import { Client, IntentsBitField, Partials } from "discord.js";
import WOK from "wokcommands";
import path from "path";
require("dotenv/config");
const client = new Client({
intents: [
IntentsBitField.Flags.Guilds,
IntentsBitField.Flags.GuildMessages,
IntentsBitField.Flags.DirectMessages,
IntentsBitField.Flags.MessageContent,
],
partials: [Partials.Channel],
});
client.on("ready", () => {
new WOK({
client,
commandsDir: path.join(__dirname, "commands"),
});
});
client.login(process.env.TOKEN);
Then create a "commands" folder where you can create a "ping.js" file with the following contents:
ping.js
const { CommandType } = require("wokcommands");
module.exports = {
// Required for slash commands
description: "Ping pong command",
// Create a legacy and slash command
type: CommandType.BOTH,
// Invoked when a user runs the ping command
callback: () => {
// Return the same object you would use in
// message.reply
// or
// interaction.reply
// WOKCommands will reply to the message or the interaction
// depending on how the user ran the command (legacy vs slash)
return {
content: "Pong!",
}
},
}
ping.ts
import { CommandObject, CommandType } from "wokcommands";
export default {
// Required for slash commands
description: "Ping pong command",
// Create a legacy and slash command
type: CommandType.BOTH,
// Invoked when a user runs the ping command
callback: () => {
// Return the same object you would use in
// message.reply
// or
// interaction.reply
// WOKCommands will reply to the message or the interaction
// depending on how the user ran the command (legacy vs slash)
return {
content: "Pong!",
}
},
} as CommandObject
After inviting your bot to a Discord server and running !ping ("!" is the default command prefix) or /ping, your bot should reply with Pong!.