Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Please describe the changes this PR makes and why it should be merged:
Seeing as #1578 is now closed, I thought I'd take a shot at it. It's not ready yet, but I thought I'd PR if anyone wants to comment throughout my commits. So far I've only been able to get it to work, I haven't cleaned up anything or restructured stuff, and it's currently not working other than logging in. I've based this PR on Gus's previous PR, and plan on continuing it.
Theory
In theory, Internal Sharding should solve the issue with people needing to use the (might I add horrible) broadcastEval function as well as many other limitations on interacting with other shards. When a bot does not need sharding, it will still use the same sharding system (ex. guild.shard), the only difference is there will only be one shard for everything. This makes it extremely easy once you've began to shard to just enable the option and forget about sharding ever again. Of course, if you still like the ShardingManager that will continue to work aswell.
More Info
I understand that this is a massive project to undertake, so I appreciate all Pull Requests on my fork of it if anyone wants to help me out. Cleanup will be done after everything is working, that way we get the concept down and then make it usable by the user.
Example Usage
Semantic versioning classification: