Intenty gatewaya
Intenty to pole bitowe wysyłane w op:2 Identify, które mówi gatewayowi, jakie kategorie zdarzeń ma wysyłać do twojego bota. Bity i ich znaczenie są identyczne jak na Discordzie. Twoja obecna konfiguracja intentów działa bez zmian.
Bity intentów
GameVox obsługuje wszystkie niewycofane bity intentów Discorda. Jeśli dana funkcja jeszcze nie istnieje w GameVox (np. kanały Stage, zaplanowane wydarzenia), bit jest akceptowany, ale żadne zdarzenia nie są wysyłane. Twoja biblioteka nie zgłosi błędu.
| Intent | Bit | Uprzywilejowany | Zdarzenia |
|---|---|---|---|
| GUILDS | 1 << 0 | GUILD_CREATE, GUILD_UPDATE, GUILD_DELETE, CHANNEL_CREATE/UPDATE/DELETE, CHANNEL_PINS_UPDATE, GUILD_ROLE_CREATE/UPDATE/DELETE | |
| GUILD_MEMBERS | 1 << 1 | ✓ | GUILD_MEMBER_ADD, GUILD_MEMBER_UPDATE, GUILD_MEMBER_REMOVE, pobieranie członków porcjami (chunking) |
| GUILD_MODERATION | 1 << 2 | GUILD_BAN_ADD, GUILD_BAN_REMOVE. GUILD_AUDIT_LOG_ENTRY_CREATE akceptowany, na razie bez zdarzeń | |
| GUILD_EMOJIS_AND_STICKERS | 1 << 3 | Akceptowany, na razie bez zdarzeń (jeśli potrzebujesz aktualnego stanu, pobierz go przez REST) | |
| GUILD_INTEGRATIONS | 1 << 4 | Akceptowany, na razie bez zdarzeń | |
| GUILD_WEBHOOKS | 1 << 5 | Akceptowany, na razie bez zdarzeń | |
| GUILD_INVITES | 1 << 6 | Akceptowany, na razie bez zdarzeń | |
| GUILD_VOICE_STATES | 1 << 7 | VOICE_STATE_UPDATE, VOICE_SERVER_UPDATE | |
| GUILD_PRESENCES | 1 << 8 | ✓ | PRESENCE_UPDATE |
| GUILD_MESSAGES | 1 << 9 | MESSAGE_CREATE/UPDATE/DELETE/DELETE_BULK na serwerach | |
| GUILD_MESSAGE_REACTIONS | 1 << 10 | MESSAGE_REACTION_ADD, MESSAGE_REACTION_REMOVE. REMOVE_ALL / REMOVE_EMOJI akceptowane, na razie bez zdarzeń (REST działa) | |
| GUILD_MESSAGE_TYPING | 1 << 11 | TYPING_START na serwerach | |
| DIRECT_MESSAGES | 1 << 12 | MESSAGE_* w wiadomościach bezpośrednich | |
| DIRECT_MESSAGE_REACTIONS | 1 << 13 | MESSAGE_REACTION_* w wiadomościach bezpośrednich | |
| DIRECT_MESSAGE_TYPING | 1 << 14 | TYPING_START w wiadomościach bezpośrednich | |
| MESSAGE_CONTENT | 1 << 15 | ✓ | Dodaje content, embeds, attachments, components do MESSAGE_* |
| GUILD_SCHEDULED_EVENTS | 1 << 16 | Akceptowany, na razie bez zdarzeń | |
| AUTO_MODERATION_CONFIGURATION | 1 << 20 | Akceptowany, na razie bez zdarzeń | |
| AUTO_MODERATION_EXECUTION | 1 << 21 | Akceptowany, na razie bez zdarzeń |
Intenty uprzywilejowane
Na Discordzie trzy intenty są uprzywilejowane i wymagają ręcznego zatwierdzenia, gdy bot jest na ponad 100 serwerach: GUILD_MEMBERS, GUILD_PRESENCES i MESSAGE_CONTENT.
W GameVox wszystkie trzy są zatwierdzane automatycznie po włączeniu w zakładce Bot aplikacji. Przełącznik istnieje po to, żeby biblioteki sprawdzające zatwierdzenie po stronie portalu nie zamykały połączenia z 4014 Disallowed intents. Nie ma procesu weryfikacji po przekroczeniu 100 serwerów. Włącz przełącznik, ustaw bit, gotowe.
Wyjątki dla MESSAGE_CONTENT
Dokładnie tak jak na Discordzie. Nawet bez MESSAGE_CONTENT pola content / embeds / attachments / components wiadomości są dołączane, gdy:
- Wiadomość pochodzi od twojego bota (własne wiadomości zawsze zawierają treść).
- Wiadomość wspomina twojego bota (po ID).
- Wiadomość jest w wiadomościach bezpośrednich z twoim botem.
- Wiadomość jest odpowiedzią na interakcję, której odbiorcą jest twój bot.
Zdarzenia jeszcze niewysyłane (intenty akceptowane)
Włączenie poniższych intentów jest bezpieczne (protokół je akceptuje, a twoja biblioteka nie zgłosi błędu), ale obecnie nie są publikowane żadne zdarzenia. Jeśli logika twojego bota zależy od któregoś z nich, na razie odpytuj REST:
USER_UPDATEGUILD_EMOJIS_UPDATE,GUILD_STICKERS_UPDATEWEBHOOKS_UPDATE,INTEGRATION_CREATE/UPDATE/DELETE,INVITE_CREATE/DELETEGUILD_AUDIT_LOG_ENTRY_CREATEMESSAGE_REACTION_REMOVE_ALL,MESSAGE_REACTION_REMOVE_EMOJI(endpointy REST działają)THREAD_*,STAGE_INSTANCE_*,GUILD_SCHEDULED_EVENT_*,AUTO_MODERATION_*,MESSAGE_POLL_*
Serwery hostowane samodzielnie wysyłają jeszcze mniejszy podzbiór. Dokładną listę znajdziesz na tamtej stronie.
Kody zamknięcia, które możesz zobaczyć
4013 Invalid intent(s): ustawiono bit poza prawidłową maską (sprawdź obliczenia bitów w swojej bibliotece).4014 Disallowed intents: ustawiono bit uprzywilejowanego intentu bez włączenia odpowiedniego przełącznika w portalu deweloperskim.
Przykład: ustawianie intentów
discord.js
const { GatewayIntentBits } = require('discord.js');
const intents =
GatewayIntentBits.Guilds
| GatewayIntentBits.GuildMessages
| GatewayIntentBits.MessageContent; // uprzywilejowany, najpierw włącz w portalu
const client = new Client({ intents }); discord.py
intents = discord.Intents.default()
intents.members = True # uprzywilejowany
intents.message_content = True # uprzywilejowany
client = discord.Client(intents=intents)