Commit graph

41 commits

Author SHA1 Message Date
Noi
e6e335b5dc Implement new suggestions from framework upgrade 2024-04-28 18:15:12 -07:00
Noi
2977ae61f1 Whitespace and style fixes 2024-04-28 01:51:58 -07:00
Noi
9d32b6c8c5
Merge pull request #53 from NoiTheCat/dev/new-usernames
New username system support
2023-11-14 17:40:16 -08:00
Noi
b9b057e1f1 Remove extraneous log messages
In particular, these changes filter out the reporting of any errors
occurring during the bot shutdown process.
2023-09-04 17:41:10 -07:00
Noi
acb052bea3 Drop use of discriminator if none exists 2023-09-04 16:58:45 -07:00
Noi
04b68655bc Remove unnecessary LongRunning setting 2023-06-19 01:47:03 -07:00
Noi
b0b39bbd0b Allow configuration of certain time-based values 2023-05-27 18:07:45 -07:00
Noi
29f2eeb31e Skip user download in guilds where the method hangs
A workaround for an apparent bug in Discord.Net's
`SocketGuild.DownloadUsersAsync()` method.

Conclusions made while writing and testing this workaround:
* The guilds it hangs on are seemingly random.
* Guild size does not matter.
* If a download hangs, it never recovers within 2 hours, probably more.
* Trying a guild again never works. It just hangs again.
2023-03-05 22:57:09 -08:00
Noi
1fba7ff708 stopgap fixes 2023-03-04 11:27:31 -08:00
Noi
9cb2e3250f Fix instances not starting if first shard is not 0 2022-11-23 00:23:19 -08:00
Noi
4f22d4b991 Merge branch 'main' into cleanup 2022-11-22 23:40:48 -08:00
Noi
fbd7305818 Revert, unset pool configuration changes 2022-11-21 20:38:06 -08:00
Noi
f4d5bfecd0 Reduce shard health report complexity
A lot of these things were designed with the thought in mind that
there used to be many, many issues when running the bot on a large
number of servers. The reason for these bugs turned out to be simple:
the hardware was not fast enough to keep up with everything.

This extra reporting and these extra behaviors have not been
necessary for some time, and it is best to remove them.
2022-11-21 19:32:46 -08:00
Noi
a9853021f4 Edit SQL pool config, usage 2022-11-21 10:45:46 -08:00
Noi
b9604dadfe Remove text-based commands 2022-08-29 12:22:42 -07:00
Noi
d7bb8d5205 Cut down on log message spam 2022-07-17 11:18:28 -07:00
Noi
400cc4bfbd Remove rate limit auto-retry 2022-03-30 21:51:44 -07:00
Noi
b1af7922af Begin switch to Interaction Framework 2022-02-23 15:18:48 -08:00
Noi
74f876c4af Implemented more commands 2022-02-21 11:57:17 -08:00
Noi
d27663a20a Add currently completed commands 2022-02-01 21:03:16 -08:00
Noi
f8b3f429bb Begin implementing slash commands
Set up a structure not unlike what exists for text commands in order to neatly separate subsets of commands/features into their own files.

Changed references for existing commands to "text commands" where it made sense to do so.
2022-01-30 22:26:33 -08:00
Noi
ffdb1cd0e6 Rename UserInterface to TextCommands 2022-01-30 19:53:02 -08:00
Noi
4325fdacf2 Update dependencies
Minor changes to account for dependency additions
2022-01-04 15:06:25 -08:00
Noi
f8350fed53 Increase threshold, no longer stagger DataRetention
This staggering was most likely the cause of a major amount of data lost recently, in which certain guilds never had their values updated.
The staggering was meant to attempt to reduce load on a server with limited capabilities, and testing shows that it runs on more capable hardware without this issue when run this way.
2021-11-22 11:49:55 -08:00
Noi
67f78e068e Edit logging message filters
Additionally, remove unneeded usings and update style and nullable in affected files
2021-11-21 13:21:42 -08:00
Noi
9509f38d28 Edit project properties, add global usings
Remaining files will be cleaned up over time
2021-11-21 12:55:49 -08:00
Noi
16ac294fe3 Several improvements for program loading
-Add command line options for shards
-Set consistent exit codes
-Turn on nullable option and edit code further to conform and reduce warnings
-Update libraries
2021-10-22 17:55:30 -07:00
Noi
ca0dd74bae Move bot uptime property from Common to Program
Additionally, update code style in Common
2021-10-18 16:58:22 -07:00
Noi
fdffa5425c Set up useful exit codes
Additionally, updated style on affected files and cleaned up certain parts of the code in each.
2021-10-18 00:26:25 -07:00
Noi
6f34fbe657 Modified all background services
-Removed a number of diagnostic messages
-Removed ConnectionStatus, connection scores, etc.
-Modified work intervals for certain background tasks
-Updated code style
2021-10-14 18:55:04 -07:00
Noi
dcb9bfdd9a Apply suggestions from code analysis 2021-10-13 20:38:52 -07:00
Noi
57a870efda Additional diagnostic information 2021-10-13 19:28:00 -07:00
Noi
eb33e55aad Add support for separate shard ranges per instance
-New config values ShardRange and ShardTotal
--ShardTotal replaces ShardCount
-New config value QuitOnFails:
--Program quits after enough shards have been removed
2021-06-15 19:29:35 -07:00
Noi
59afd8ce3b Move server count reporting to be handled per-shard 2021-05-30 12:00:49 -07:00
Noi
5fcf69136d Have program attempt to stop itself after 5 failures 2021-05-30 10:05:33 -07:00
Noi
3c73be3ee7 Automatically identify and remove dead shards
- Manager loop updated to act on dead shards and initialize new ones
- Initialization of new shards is now staggered in case of many shards
- Now using intents
- Adding a delay and a second connection check when downloading guild
  members. This has greatly improved stability over the previously
  attempted method.
- No longer sends guild counts to external sites until fully connected
2020-10-29 00:44:48 -07:00
Noi
b6551eec2e Modify shard reporting to be compact, informative 2020-10-24 22:43:20 -07:00
Noi
651de4e78a Configure all the awaits 2020-10-10 00:28:11 -07:00
Noi
6efc436717 Exception-proofing external statistics 2020-10-05 22:26:29 -07:00
Noi
0eb63c26f5 Clarify client options, add gateway intents 2020-10-05 16:51:42 -07:00
Noi
2f0fe8641a Implement own sharding system
The BirthdayBot class has been split up into ShardInstance and
ShardManager. Several other things have been reorganized so that shards
may act independently.

The overall goal of these changes made is to limit failures to sections
that can easily be discarded and replaced.
2020-10-04 21:40:38 -07:00