[MEGA TRACKER] ModCore v3: features, design, discussion
@Naamloos is already working on this.
Since Jul 8, 2023.
- Dominant language
- C#
- Stars
- 49
- Forks
- 10
- PR merge metrics
- No merged PRs in 30d
Description
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:
- Gateway, Rest Client, Rate Limiting, Event Handling
- Implementation of all events, entities, rest requests
- Implementation of higher-level internal frameworks for Slash Commands, Event Handling, Interactions API (components, modals).
- Database and Cache implementations
- (Re)implementation of features (tracked below)
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 GOLD account until considered ready for more wide-spread adoption.
Features
- Fetch User Avatar (Might not do this)
- Coin Flip
- Hackban
- Channel, permissions, Member, Role, Server info commands
- Isolate (create private thread with a member)
- Leveling System (XP granting based on activity, leaderboard)
- Massban (modal that mass bans members by ID, maybe also a command with arguments)
- Nickname Change Requests
- Off-topic mover (copies x messages to a new channel, optionally deletes them)
- Purge (delete x messages, optionally only bots, only attachments, only images, by user, by regex)
- Raffle (Giveaway) #121
- Reminders (list, clear, stop)
- Snipe (recover deleted / edited message)
- Softban (ban and immediately unban, essentially a kick with message deletion)
- Starboard
- Tags (channel, server, list, info, remove, transfer)
- Tempban
- Translate
- Unsnipe
- Member State Recovery
- Auto Role at Join
- Moderator Logs
- Member Change Logs
- Welcomer #119
- Role Menus #170
- Jump Link Embed
- Ban Appeals #124 #91
- Activity-based roles
- Link filters, Spam prevention #120
- Captcha Verification #122
- Ticketing System #169
- Phrase Highlighter #126
- Anti Hoisting #128
- Mod Mail (might overlap Ticketing System) #129
- Warning System #131
- Streaming Role (? not confirmed in-scope) #140
- Advanced Role Management (revoke all, Clear overrides, etc) #142
- Tracking which user used an invite #143
- Message Format Enforcer #146
- Happy Birthday Reminder #151
- Moderator Action Logging #158
- Multi Starboard Management #167
- Button-based Role Menus
- Spam detection with auto-timeout
- Raid detection
- Data Retention #172
- Server Blacklist (I can blacklist a server from using ModCore entirely) #174
- Tag history diffing #181
- Slash Command Localization
- PluralKit support #186
- RSS Feeds
- Status Command
- About Command
- Emoji / Sticker Stealer (yoink!)
- Report feature for moderators
- Quick-Archiver for all threads in a channel / forum
- Git Issue Linking
- Temporary Voice Channels
- Voteban
- Forum Thread Auto Archiver
- Image to GIF converter
- Channel / Server Locker
- Server Icon Sync with a User's avatar
Remember: feature requests for v3 are more than welcome in this thread!
Transition to v3
When v3 is "done", v3 will be released as a private beta under the ModCore GOLD 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.
Update: ModCore v2's database can now fully be migrated to ModCore v3, using the migrator utility.
Discussion, requests, questions
Any questions regarding v3 are welcome in this thread. I will update the original post accordingly when decisions get made.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.