diff --git a/README.md b/README.md index 2f94cab..d9b1765 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,106 @@ # Natsuki -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 -*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: ### Tags + > 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. @@ -33,6 +127,7 @@ let options = new TagFilter([ ``` ### Quick awaitMessages + > 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!** @@ -50,6 +145,7 @@ new Pagination() ``` ### Pagination + > util/pagination.ts Create a pagination based on a list of Discord MessageEmbeds.