Skip to content

Commit

Permalink
Merge pull request #4 from softnetics/yu/fix/deps
Browse files Browse the repository at this point in the history
Fix dependencies error on bundle and add docs for what-is-dis
  • Loading branch information
saenyakorn authored Nov 23, 2023
2 parents d4ab4cc + 86bfb56 commit 100a393
Show file tree
Hide file tree
Showing 5 changed files with 163 additions and 11 deletions.
5 changes: 5 additions & 0 deletions .changeset/cuddly-pans-lie.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@softnetics/what-is-dis': patch
---

Add docs for what-is-dis
5 changes: 5 additions & 0 deletions .changeset/lovely-eels-relate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@softnetics/what-is-dis": patch
---

Fix dependencies error on bundle
123 changes: 123 additions & 0 deletions packages/what-is-dis/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# What Is Dis <!-- omit in toc -->

Typescript Discord bot framework aims to be a simple and easy to use framework for creating discord bots. It is built on top of [discord.js](https://discord.js.org/#/)

# Table of Contents <!-- omit in toc -->

# Installation

```bash
npm install discord.js @softnetics/what-is-dis
# Or
yarn add discord.js @softnetics/what-is-dis
# Or
pnpm add discord.js @softnetics/what-is-dis
# Or
bun add discord.js @softnetics/what-is-dis
```

# Usage

```ts
import { GatewayIntentBits } from '@discordjs/core'
import { DiscordBot, defineSlashCommandBasic } from '@softnetics/what-is-dis'

const pingCommand = defineSlashCommandBasic({
name: 'ping',
description: 'Ping!',
options: {
message: {
type: 'string',
description: 'Message to echo back',
choices: [
{ name: 'Hello', value: 'hello' },
{ name: 'World', value: 'world' },
],
},
to: {
type: 'user',
description: 'User to ping',
required: true,
},
},
execute: async ({ interaction, body, logger }) => {
const message = body.message // Type: "hello" | "world" | undefined
const user = body.to // Type: string (user id)
logger.info(`Received /ping command with message: ${message} and user: ${user}`)
await interaction.reply({
content: `Pong! ${message} <@${user}>`,
})
},
})

// Create a discord bot instance
const bot = new DiscordBot({
clientId: environment.DISCORD_CLIENT_ID,
token: environment.DISCORD_TOKEN,
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent,
],
// If this value is set, the bot will only register commands in this guild. It's useful for development.
developmentGuildId: environment.DISCORD_DEVELOPMENT_GUILD_ID,
// If this value is set to true, the bot will delete the commands before registering them for `developmentGuildId`.
refreshCommands: true,
// Add more slash commands here
slashCommands: [pingCommand],
// Customized logger
loggerOptions: {
level: 'debug',
},
// This function will be called when the bot is ready
onReady: ({ logger }) => {
logger.info('Try to excecute /ping command!')
},
// This function will be called before the bot shuts down
onShutDown: async ({ logger }) => {
logger.info('Bot is shutting down!')
},
})

// Register the given slash commands and listen for the event
bot.listen()
```

# Examples

You can find examples in the [examples](./examples) folder.

- [Ping-pong discord bot](./examples/bun-simple-bot/)

# Features

- [x] Slash commands
- Input types
- [x] Subcommands
- [ ] 🚧 Subcommand groups
- [x] String
- [x] Integer
- [x] Boolean
- [x] User
- [x] Channel
- [x] Role
- [x] Mentionable
- [x] Number
- [x] Attachment
- [ ] 🚧 Message command with prefix
- [ ] 🚧 Message components
- [ ] 🚧 [Action Rows](https://discordjs.guide/message-components/action-rows.html)
- [ ] 🚧 [Buttons](https://discordjs.guide/message-components/buttons.html)
- [ ] 🚧 [Select menus](https://discordjs.guide/message-components/select-menus.html)
- [ ] 🚧 Other components
- [ ] 🚧 [Modal](https://discordjs.guide/interactions/modals.html#building-and-responding-with-modals)
- [ ] 🚧 [Context Menu](https://discordjs.guide/interactions/context-menus.html)
- [ ] 🚧 Emoji reactions

# Contributing

WIP

# License

[MIT](./LICENSE)
27 changes: 23 additions & 4 deletions packages/what-is-dis/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,29 @@
"main": "dist/index.cjs",
"types": "dist/index.d.ts",
"module": "dist/index.js",
"license": "MIT",
"homepage": "https://github.com/softnetics/what-is-dis",
"bugs": {
"url": "https://github.com/softnetics/what-is-dis"
},
"repository": {
"type": "git",
"url": "https://github.com/softnetics/what-is-dis.git"
},
"files": [
"dist"
],
"keywords": [
"typescript",
"discord",
"discord.js",
"type-safe"
],
"author": {
"name": "Saenyakorn Siangsanoh",
"email": "me@saenyakorn.dev",
"url": "https://saenyakorn.dev"
},
"scripts": {
"build": "tsup",
"build:watch": "tsup --watch",
Expand All @@ -17,12 +36,12 @@
"dependencies": {
"discord.js": "^14.14.1",
"winston": "^3.11.0",
"zod": "^3.22.4"
"zod": "^3.22.4",
"utility-types": "^3.10.0",
"typescript": "^5.2.2"
},
"devDependencies": {
"@internal/project-config": "workspace:^",
"tsup": "^7.2.0",
"typescript": "^5.2.2",
"utility-types": "^3.10.0"
"tsup": "^7.2.0"
}
}
14 changes: 7 additions & 7 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 100a393

Please sign in to comment.