- Notifications can now be sent from Volte core
- Abstracted XToBrush logic and added LogSourceToBrush
- Log messages now have the Severity & Source as the same color as they are in the console log (thanks @ArchLeaders for helping me figure out ColumnDefinition)
- Made many lambdas static
- Volte.UI now supports a --no-gui option on startup; which basically just runs volte normally.
- Small cleaups & improvements
- CommandEventArgs now contain all the log strings for their relevant data instead of MessageService
-
- FontAwesome static helper
- Remove un-needed data binding in Avalonia
- VolteBot is static-based now
- Remove Discord logging-specific handlers & objects, and instead route all dnet LogMessages through our own logger system as a VolteLogEventArgs.
- Removed some explicit instantiation targets
- Shell for notification events
- Config now uses a polymorphic base type to allow for ConfigFactory usage with Volte's config.
Minor differences:
- status setters use a timespan rather than a double in seconds for a temporary status
- it is callable from inside the bot project via an event
Minor tweaks & fixes
Exceptions are shown in the log view
Page attributes no longer have an index, instead the page type enum's underlying numerical representation is treated as the ordering index.
Sentry logger translator now uses the event system so it no longer has its own separate impl
Pages auto-register based on an attached UiPage attribute.
Connection status at bottom of UI
ImGui was very fun to use but ultimately, it's very intensive for what it is. It showed 3 panes and sat at 20% CPU usage on my 13700F. I'm not sure if my code was just bad or if this is how ImGui is.
Layers are now added AFTER UiManager is initialized and the instance is set.
TryCreateUi no longer automatically starts the UI thread, for you to add layers & do any custom ImGui setup before starting the thread.
"Destructive Actions" menu in guild management, it's basically just things you wouldn't want to hit on accident, like leaving the server. it will also have things like resetting the config for a guild. as such you need to hold Left Shift & Left Control to enable clicking the menu.
Added more UI stuff, namely a bot status selector. Also added a basic async task queue mechanism for more API calls that we will need to do from the UI.