Moved modules into the assembly itself to simplify development of
further features and reduce complexity in building this project.
Additionally, many small adjustments were made, including:
- Add documentation to most public methods that had it missing
- Minor style updates
- Updated readme to reflect near-completion of this rewrite
- Remove any last remaining references to old project name Kerobot
- Update dependencies
Add EF; port EventLoggingService to it
Update CommonFunctions: new style, some tweaks
Update user caching subservice
Update GuildStateService
- File-based only. Removed incomplete database support.
- Removed hooks within client; ModuleBase has direct access now
- Removed checks based on time-based staleness
- Code and style updates on all affected files
Style and nullable updates
And some minor structural changes here and there
Rewrite LoggingService
- Remove database-backed instance log
- Make logging methods synchronous
- Change instance reporting to webhook-based
Update ModuleStateService and related code
Fixed the following compilation errors:
-Moderators collection not initialized
-Outdated method signatures for ban and kick in ModuleBase
-Update author name in manifests
-Fixed incorrect method signature in AutoScriptResponder
Minor improvements:
-Updated external dependencies
-Remove unused variables in ConfDefinition of RegexModerator
-Improve parallel execution of matches?
-Send exception message on logging failure to reporting channel
-Slightly change ModuleLoader logging output
-Add Discord.Net unhandled exception output to logging
-Updated link to Github
-Changed GuildState exception handling message for conciseness
Fixes:
-SQL index creation in LoggingService
-SQL view creation in UserCacheService
-Add casts from ulong to long in SQL inserts
-External modules no longer loaded twice
-Non-Info messages from Discord.Net will now be reported
-User data had not been recorded at proper times
-Some modules had been returning null instead of Task with null
-Guild state exception handling should not have handled config errors
As it's currently implemented, it may cause problems for larger guilds
if any error is encountered. Additionally, it requires that the bot keep
tabs on all users on entry which may bring unnecessary extra load on the
host.
Additionally, added some error handling.
Changes:
-Renamed from AutoMod
-Some options have been simplified to reduce complexity
-Response exectution has been totally reworked to accomodate new and
upcoming features
Currently untested.
-Add Guild ID parameter to guild state setup method
-Add EntityCache support to ban and kick methods in ModuleBase
-EntryRole waiting list now preserved between state reloads
All guild data will now be stored within the same table, instead of
a new schema being created for each guild. This avoids issues with
missing schemas.
This likely wasn't a good idea to begin with.
Experimental feature. An attempt to standardize some common functions
to ensure consistent execution of those functions, and also to notify
services ahead of time that the events they may raise originated from
within the bot.
This is the initial commit. Implementation may change later.
Changes:
-Renamed from AutoRespond
-Rate limiting class is now generic in case it may be needed
-Multiple responses can be specified per definition
--One response is randomly chosen to be sent out
Based on similar classes from RegexBot.
-EntityList no longer separates by entity type.
-Both types allow caching their respective EntityName ID values.
-FilterList supports loading from custom field names.