Skip to content

Latest commit

 

History

History
35 lines (23 loc) · 2.09 KB

README.md

File metadata and controls

35 lines (23 loc) · 2.09 KB

Namiko

Namiko

The project includes:

  • Namiko - the main C# discord bot
  • Namiko Moe - accompanying ASNPET + React web app
  • Maid - C# helper bot that does housekeeping in the Namiko Support Server
  • ImageHost - ASPNET api that allows upload of images and thereafter exposes them on a public path - used as a CDN for Namiko

Learn about the bot and it's features on Namiko Moe

Note from the developer

I used this project to teach myself programming as I was studying in my computer science course. Even though it was refactored a few times, it might still be difficult to understand and set-up for anyone who is not me.

I have tried many patterns and C# features while developing this, which you can explore in the codebase. Some of the features are implemented in clever but difficult patterns, such as a method that takes any list of items and turns it into a fully interactive paginated embed on Discord. Some features are implemented in questionable patterns, such as using static methods for almost everything that should be a service.

Alas, the end product is performant and of high quality, but difficult to maintain and demands some major refactoring, such as introducing proper dependency injection.

The last major effort in the codebase was the conversion to Discord slash command support. Now all the modules work both as text commands and slash commands with the same implementation 🔥👌💯

References

https://namiko.moe/Guide - bot usage guides.
https://namiko.moe/Commands - list of commands.

Main libraries

Discord-net - main implementation is based on this framework.
Discord-net-interactive - some extensions for discord-net, custom modified to suit Namiko.
Lavalink-Victoria - for music, also custom modified.