Rank | Bot | Approximate Server Count | Library |
---|---|---|---|
1 | MEE6 | 21,500,000 | Custom Python |
2 | Rythm 🪦 | 15,200,000 | JDA |
3 | Groovy 🪦 | 10,300,000 | JDA, Discord4J |
4 | carl-bot |
10,300,000 | Pycord |
5 | ProBot |
If you're wondering what Gateway Intents are, what Privileged Intents are, why your bot can't see statuses, or why your bot can't see member joins anymore, then this page should explain it to you!
if you do not know what intents are, please read this entire page
First, a short explanation of how bots work: bots can make requests over the REST (HTTP) API to retreive information and do actions, and they get real-time updates from Discord in the form of websocket gateway events. They can also fetch server members via the gateway.
Examples of gateway events you are probably familiar with are Message Create (a message was sent) and Guild Member Add (a user joined a server).
The package that linked you here is now pure ESM. It cannot be require()
'd from CommonJS.
This means you have the following choices:
- Use ESM yourself. (preferred)
Useimport foo from 'foo'
instead ofconst foo = require('foo')
to import the package. You also need to put"type": "module"
in your package.json and more. Follow the below guide. - If the package is used in an async context, you could use
await import(…)
from CommonJS instead ofrequire(…)
. - Stay on the existing version of the package until you can move to ESM.
Grant's Guide to Working Around MC-227930 Being Resolved as "Works As Intended"
As of Minecraft 1.17, we can't forceload
a chunk, summon an entity into the chunk, and immediately select that entity, all in the same tick. In fact, we can't select any entities in newly loaded chunks until an arbitrary amount of ticks have passed while the chunk fully loads. I've come up with a few ways to work around this, depending on your use case, but none of these solutions are flawless. I may edit this post to include more or make revisions in the future. If you have feedback or suggestions on any of this, feel free to post a comment or message me on Discord @Grant#2604.
- Because chunks now take an arbitrary, unknown amount of ticks to fully load, we can't just schedule a constant time ahead. So there's not really any way to do this other than running a function that tries to select your entity, and schedules itself to run again eve
This is a (probably) non-exhaustive list of various devs of different Discord API Wrappers that resigned from being a maintainer either completely or for a unknown time.
The entries are in chronological order and contain screenshots and/or links to posts explaining the reasons behind why the devs stoped.
DO NOT annoy the devs mentioned in this gist. They all have their reasons to stop or take a break and should not be annoyed by you.
The listed reasons are my own words and may not be fully paraphrased from the original. They may not represent the actual reasons behind the person's motivation.
Links and screenshots to the actual messages have been attached to give you the chance of reading their motivations yourself and make your own opinion.
"Autocomplete is basically choices but dynamic. every time the user presses a key in an autocomplete option, the bot gets an event and it can respond with what strings it wants discord to display as choices instead of having the choices be static." - Urcute#3119 on Discord
For this guide, our command will be named autocomplete, this is not some built in command.
Before we can start to recieve autocomplete events on an option, we have to actually tell discord that we want it.
This guide will showcase how to create a data pack that adds a custom structure to the world. There is also a data pack download of this complete example.
Always leave the world and rejoin to apply the new changes!
Updates for both 1.18.2 and 1.19 can be found at https://misode.github.io/guides/adding-custom-structures/