Commit graph

92 commits

Author SHA1 Message Date
Noi
94d4a27e85 Change build settings, fix minor problems 2022-06-18 00:01:42 -07:00
Noi
e1a39f964f Simplified logging, added logging to file 2022-06-18 00:01:42 -07:00
Noi
8d081ed637 Fix database issues; create initial EF migration 2022-06-18 00:01:42 -07:00
Noi
5671b7b48c Add message caching subservice
Partially implements legacy's ModLogs module on the bot side, with the remainder to be implemented as a proper module.
2022-06-18 00:01:42 -07:00
Noi
4f773e2573 Begin module rewrites and ports 2022-06-18 00:01:13 -07:00
Noikoio
02f91947f3 Add Entity Framework, update services
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
2022-06-18 00:00:43 -07:00
Noikoio
a7de9132ed Abandoning old plans, project will continue as RegexBot 3.0 2022-06-17 23:53:27 -07:00
Noikoio
6b83735d6b Rename LoggingService to EventLoggingService
Renamed to differentiate between upcoming UserLoggingService.
2019-06-22 17:12:05 -07:00
Noikoio
ffa5b5754b Several fixes after a round of testing
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
2019-06-21 15:05:58 -07:00
Noikoio
2319c91fc7 Switch to file-based configuration 2019-06-21 14:32:20 -07:00
Noikoio
c1e8f6699a Moved EntryRole to self-hosted
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.
2019-06-20 17:35:50 -07:00
Noikoio
90feeb47b0 Ported RegexModerator from RegexBot
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.
2019-06-16 22:37:11 -07:00
Noikoio
e87a985067 Finish adding entity finder helper methods 2019-06-16 21:59:17 -07:00
Noikoio
9c334f2e48 Removed custom DM notification on common kick/ban 2019-04-24 13:43:46 -07:00
Noikoio
77b6aa891b Add support for moderator list in GuildStateService
Completely forgot.
2019-04-24 13:41:10 -07:00
Noikoio
4de1e25230 Update packages 2019-04-24 13:38:51 -07:00
Noikoio
403703773b Improved documentation 2019-03-16 17:07:57 -07:00
Noikoio
c843104e3c Various changes
-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
2019-03-16 17:07:18 -07:00
Noikoio
6f7ffda63b Ported EntryAutoRole from RegexBot
Untested and missing some error handling at the moment.
2019-02-17 15:59:02 -08:00
Noikoio
9efb35a046 Added EntityCache - UserCache component 2019-02-15 16:49:54 -08:00
Noikoio
47a738ddbc Remove per-guild schema
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.
2018-12-18 16:21:35 -08:00
Noikoio
de8660d913 Add missing documentation and initialization 2018-12-06 20:14:26 -08:00
Noikoio
47cc8425b2 Added CommonFunctionsService
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.
2018-12-04 19:41:42 -08:00
Noikoio
530a4ae1b6 Add AutoScriptResponder
I'm not particularly proud of this.
2018-11-04 20:40:57 -08:00
Noikoio
81e9e6f959 Add debugger step through 2018-11-04 19:38:36 -08:00
Noikoio
367427938c Added equivalent modification from RegexBot 2018-11-04 19:37:52 -08:00
Noikoio
8bee71a863 Ported AutoResponder from RegexBot
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
2018-09-21 21:31:07 -07:00
Noikoio
7ce2788594 Fix improper parsing; add null check 2018-09-21 20:39:36 -07:00
Noikoio
d8cb46113a Disable debug info generation on release builds 2018-09-21 20:38:34 -07:00
Noikoio
749ba169c0 Add exception handling when making new guild state 2018-09-20 19:43:27 -07:00
Noikoio
ee94cfd961 Add null check 2018-09-20 19:42:32 -07:00
Noikoio
1fbc9bca7f Reimplemented EntityList, FilterList
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.
2018-09-01 21:33:02 -07:00
Noikoio
9b6104030d Ported EntityName from RegexBot
Changes:
-Includes a method to make resolving a name into an ID much easier
-Leading prefix is now properly handled; no need to strip it first
2018-06-13 16:02:09 -07:00
Noikoio
9bd9a21531 Minor improvements throughout 2018-06-06 16:01:54 -07:00
Noikoio
4ca38fa881 Better error handling on module load 2018-06-06 13:54:51 -07:00
Noikoio
2e178a2f2d Reorganized solution projects
Clear separation between what features will be available in the public
instance and additional features available for a self-hosted instance.
2018-06-04 19:32:21 -07:00
Noikoio
f20a17e914 Implemented module loading; fixed GuildStateService issues 2018-06-04 17:15:18 -07:00
Noikoio
eae7410dbc First commit of GuildStateService
Currently untested. Unable to properly test until the module system is
developed further.
2018-06-02 17:33:31 -07:00
Noikoio
43c02d2705 First commit of LoggingService 2018-05-10 23:13:00 -07:00
Noikoio
ea4d7b0a29 'First' commit; add most of the initialization routine 2018-05-06 13:09:17 -07:00
Noikoio
3bf509c5d4 Added readme 2018-04-27 18:06:53 -07:00
Noikoio
a5f33e1353 First commit 2018-04-27 14:17:55 -07:00