The official repository of Natsuki the Discord Bot. Currently in the Early Development phase, and is expected to release to a few servers and eventually bot lists relatively soon.
The official repository of Natsuki the Discord Bot.
Developed solely by WubzyGD, and intended to help others learn the ropes of discord.js, as well as provide some useful utilities to make the troubles of bot development just a little easier.
Skip down to **Open-Source** if you wanna get straight to ~~robbing me~~ seeing some of the awesome stuff Natsuki has to offer.
> Natsuki is now also on Discord.js' latest update, v13!
## Features
Natsuki is an anime-focused Discord bot with more than her fair share of features.
She features lots of different focuses in her commands, as well as:
- **99.99%** uptime over her year of life
- Less than ~**100-150ms** command response time
- **Active**, **open-source** development
> *Oh yeah, and a developer with no life, so she's always being updated*
Natsuki's commands and abilities include, but are absolutely not limited to:
### Moderation
- Kick/Ban/Softban
- Advanced Warning System
- Custom Welcome/Leave Messages
- Autorole/Join-role
### Fun
- Deathnote 👀
- Last.fm API (nowplaying, etc)
- A fully-functional Secret Santa
- ~~A fortune-teller~~ 8ball
### Social
- Over 20 emotes like hug/kiss/cry/sip etc
- AFK/DnD commands
- Bio and user info
- Customizable Star Board
- Customizable auto-responses
### Utility
- Server activity monitoring
- Emoji utilities like creation/robbing
- Random number utilities
- Advanced to-do lists
- Coin-flipping
- Custom prefix
### Leveling
- Levelup messages
- Custom level message channel
- Leveling Roles
- Leaderboard
## FAQ
> *Can I self-host Natuski?*
Natsuki is not meant to be self-hosted. I suppose she is indeed open-source, so if you knew what you were doing, you could build her and self-host her, but I don't condone it.
> *Can I copy Natsuki's code?*
Natuski's utilities (see below) are meant to be downloaded and copied, and some of her frameworking like command handlers are great for copying, but the point of her open-sourcing is not for you to rip apart every command and event. It's primarily for you to make use of the utilities and use the rest as a learning tool to reference and take example from.
Do note that **all** Discord bot lists **do not** allow *any* copying or forking of code. Using my utility classes and functions? Totally okay! :D Forking the repository or copy-pasting all the commands etc etc? Not coolio.
Bottom line, take what you want, but know that taking too much is not my intention and will hinder your bot's growth.
> *Can I help develop for Natsuki?*
Well gee, I thought you'd never ask! Yes! Simply make changes and submit them as a Pull Request.
If you're an active contributor, I might be able and willing to welcome you as a more permanent and official developer. Important contributors are a important part of the bot, and will be given credit for their efforts!
If developing isn't your thing, you're free to join the support server and suggest something or report a bug. I'm very very much open to suggestions and feedback.
# Open-Source
Here are some useful things to... well... make *use* of in your own code!
## Handlers/Structure
If you check out anything in the `/handle` folder, you'll find some super amazing awesome command and event loaders.
The command loader reads command files in `/commands` based on the template in `template.js`. Aliases are optional, and the help field can be a string or an embed. Commands are automatically loaded up to one subdirectory deep, meaning `commands/command.js` will load, and `commands/somefolder/command.js` will also load.
You'll have to write the commands' execution and help displays on your own, but to get them loaded into client seamlessly and effectively, this is a super strong method.
The event loader will load events from `/events`, whose file names are the discord.js event name. These are automatically placed into your client, so you shouldn't have to worry about adding your own code in this case.
## Utils
## Utils
*Some useful stuff we have in our bot that you can make use of!*
Just about anything in the utils folder could be useful for a number of reasons, but here's a few big ones:
Just about anything in the utils folder could be useful for a number of reasons, but here's a few big ones:
### Tags
### Tags
> util/tagfilter.js and util/tag.js
> util/tagfilter.js and util/tag.js
Pass in a list of Tags. Each Tag has a list of triggers, its name, then its mode.
Pass in a list of Tags. Each Tag has a list of triggers, its name, then its mode.
@ -33,6 +127,7 @@ let options = new TagFilter([
```
```
### Quick awaitMessages
### Quick awaitMessages
> util/ask.js
> util/ask.js
Ask a question and wait for an answer. Returns the string of the user's response, or nothing if there was no response. **Function is asynchronous!**
Ask a question and wait for an answer. Returns the string of the user's response, or nothing if there was no response. **Function is asynchronous!**
@ -50,6 +145,7 @@ new Pagination()
```
```
### Pagination
### Pagination
> util/pagination.ts
> util/pagination.ts
Create a pagination based on a list of Discord MessageEmbeds.
Create a pagination based on a list of Discord MessageEmbeds.