Naamloos / ModCore

A powerful moderating bot written on top of DSharpPlus
GNU Affero General Public License v3.0
47 stars 10 forks source link

[MEGA TRACKER] ModCore v3: features, design, discussion #165

Open Naamloos opened 1 year ago

Naamloos commented 1 year ago

ModCore v3

This issue serves as a big process tracker for ModCore v3. At this moment, v3 is in development as a full rewrite of ModCore, which will get it's own Discord API implementation. As much as I love DSharpPlus, I have opted to write a new API wrapper specifically for ModCore, as DSharpPlus comes with some issues that make it really hard to use in a way that suits my plans for ModCore.

ModCore v3 will be developed in a manner that allows it to serve multiple shards from different processes without compromising useability whatsoever. Shards will operate fully independently, though share their database and cache provider. Because of this, dependency injection also plays a big role in ModCore v3.

Definition of Done

For ModCore v3 to be considered "done" and ready for release, the following things will have to be done:

When this entire list has been ticked off, ModCore v3 can be considered ready for deployment and the first steps towards publicly testing ModCore v3 will be made. At this time ModCore v2 and v3 will co-exist, where ModCore v2 will run on the original ModCore account, and ModCore v3 will exist on the ModCore β account until considered ready for more wide-spread adoption. More on this can be read under the "Transition to v3" header.

Features

Initially development will be focused on bringing back features that were present in ModCore v2. These will be tracked in the following list:

As for new upcoming features, these will be listed below:

Remember: feature requests for v3 are more than welcome in this thread!

Transition to v3

When v3 is "done" as defined under Definition of Done, v3 will be released as a public beta under the ModCore β account. This bot's database will be a temporary one, which will be wiped when v3 is being transferred to the full ModCore account. While v3 is in beta, v2 will stay in function.

As v3 gets released, it will get an entirely new database. This means server configs will most likely get lost. I will do my best to migrate the ModCore v2 database to the v3 bot, but I can't make any guarantees as the code base will not be compatible.

Discussion, requests, questions

Any questions regarding v3 are welcome in this thread. I will update the original post accordingly when decisions get made.

InFTord commented 1 year ago

Gateway, Rest Client, Rate Limiting, Event Handling

naam are you making a new lib for modcore

Naamloos commented 1 year ago

Gateway, Rest Client, Rate Limiting, Event Handling

naam are you making a new lib for modcore

yes: https://github.com/Naamloos/ModCore/blob/next/master/src/ModCore.Common.Discord.Gateway/Gateway.cs

Plus, quoting from the original post: As much as I love DSharpPlus, I have opted to write a new API wrapper specifically for ModCore, as DSharpPlus comes with some issues that make it really hard to use in a way that suits my plans for ModCore.

dsezerpy commented 1 year ago

by Localization you mean different languages? if so, how will the translation process go?

Naamloos commented 1 year ago

by Localization you mean different languages? if so, how will the translation process go?

Yep, Discord supports different languages for slash commands. We're able to define different names, descriptions, option names, etc for different languages.

The interaction event should contain a "locale" field that we can use to determine what language to respond in.

When no language can be determined, we obviously fall back to English, or whatever language a server admin has configured for their server.

I am not sure yet about the localization process. I'm considering using a service like Crowdin, but I'll most likely just accept language PRs from whoever feels like contributing. Here English and Dutch will be handled by myself.