Nitori Devlog v1.12.5
Haven’t written these in a while, this is gonna be a lot of stuff…
FreeNitori
Rename package to git.randomchars.net/FreeNitori/FreeNitori, move all handlers to cmd, refactor a bunch of stuff.
Multiplexer
Separate package to git.randomchars.net/FreeNitori/Multiplexer, wrap around all events and populate context.
Touhou Image Fetch
Separate the fetch mechanism into separate package.
Character Guess
Make message channel buffered to prevent race condition.
Message Highlight
Implement message highlighting.
Configuration
New modular configuration mechanism with registering of SimpleConfigurationEntry, ComplexConfigurationEntry and CustomConfigurationEntry support. Default configuration is now generated instead of embedded in binary.
Web
Bunch of web changes thanks to Dynamo432. Web server rewrite with better structure and cleaner shutdown and better error handling, as well as ability to listen on unix socket, and Discord OAuth2 authentication. Made leaderboard static.
GitLab CI
Include nitorictl binary in tarball.
Cleanup
Proper error handling when cleaning up all shard sessions.
Window
Implement partial window support, plugins are still not supported and logs are not fancy, window GUI, restart support without exec.
Database
Database now has internal fallback when no database plugin is loaded.
Build System
Optimize build scripting to not cause issues in different environments.
Greeter
Implement new member greeter (and goodbye).
Invite OAuth URL
Simplify permission so the page doesn’t go out of bounds.
Moderation
Implement banning, check if PM.
Leaderboard
Implement command to display leaderboard URL.
Guild Info
Implement command to look up guild information.
Message Logging
Enable configuration of caching and implement message logging.
LastFM
Remove LastFM (code still available as a plugin).
Logging
Implement on-disk logging, separate log wrapper package.
Embeds
Separate embed wrap library.
Others
There’s probably some other stuffs I’ve missed, there’s just way too many commits to cover. I’ll try to avoid forgetting about this blog next time…