Skip to main content

RandomBlog

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…