mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-17 03:38:17 +00:00
bans as controllers
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
import { eventHandlers } from "../module/client.ts";
|
||||||
|
import { DiscordPayload } from "../types/discord.ts";
|
||||||
|
import { GuildBanPayload } from "../types/guild.ts";
|
||||||
|
import { cache } from "../utils/cache.ts";
|
||||||
|
|
||||||
|
export function handleInternalGuildBanAdd(data: DiscordPayload) {
|
||||||
|
if (data.t !== "GUILD_BAN_ADD") return;
|
||||||
|
|
||||||
|
const payload = data.d as GuildBanPayload;
|
||||||
|
const guild = cache.guilds.get(payload.guild_id);
|
||||||
|
if (!guild) return;
|
||||||
|
|
||||||
|
const member = guild.members.get(payload.user.id);
|
||||||
|
eventHandlers.guildBanAdd?.(guild, member || payload.user);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function handleInternalGuildBanRemove(data: DiscordPayload) {
|
||||||
|
if (data.t !== "GUILD_BAN_ADD") return;
|
||||||
|
|
||||||
|
const payload = data.d as GuildBanPayload;
|
||||||
|
const guild = cache.guilds.get(payload.guild_id);
|
||||||
|
if (!guild) return;
|
||||||
|
|
||||||
|
const member = guild.members.get(payload.user.id);
|
||||||
|
eventHandlers.guildBanRemove?.(guild, member || payload.user);
|
||||||
|
}
|
||||||
@@ -1,3 +1,7 @@
|
|||||||
|
import {
|
||||||
|
handleInternalGuildBanAdd,
|
||||||
|
handleInternalGuildBanRemove,
|
||||||
|
} from "./bans.ts";
|
||||||
import {
|
import {
|
||||||
handleInternalChannelCreate,
|
handleInternalChannelCreate,
|
||||||
handleInternalChannelDelete,
|
handleInternalChannelDelete,
|
||||||
@@ -18,4 +22,6 @@ export let controllers = {
|
|||||||
GUILD_CREATE: handleInternalGuildCreate,
|
GUILD_CREATE: handleInternalGuildCreate,
|
||||||
GUILD_DELETE: handleInternalGuildDelete,
|
GUILD_DELETE: handleInternalGuildDelete,
|
||||||
GUILD_UPDATE: handleInternalGuildUpdate,
|
GUILD_UPDATE: handleInternalGuildUpdate,
|
||||||
|
GUILD_BAN_ADD: handleInternalGuildBanAdd,
|
||||||
|
GUILD_BAN_REMOVE: handleInternalGuildBanRemove,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -134,18 +134,6 @@ export async function handleDiscordPayload(
|
|||||||
// Run the appropriate controller for this event.
|
// Run the appropriate controller for this event.
|
||||||
controllers[data.t]?.(data, shardID);
|
controllers[data.t]?.(data, shardID);
|
||||||
|
|
||||||
if (data.t && ["GUILD_BAN_ADD", "GUILD_BAN_REMOVE"].includes(data.t)) {
|
|
||||||
const options = data.d as GuildBanPayload;
|
|
||||||
const guild = cache.guilds.get(options.guild_id);
|
|
||||||
if (!guild) return;
|
|
||||||
|
|
||||||
const member = guild.members.get(options.user.id);
|
|
||||||
|
|
||||||
return data.t === "GUILD_BAN_ADD"
|
|
||||||
? eventHandlers.guildBanAdd?.(guild, member || options.user)
|
|
||||||
: eventHandlers.guildBanRemove?.(guild, member || options.user);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data.t === "GUILD_EMOJIS_UPDATE") {
|
if (data.t === "GUILD_EMOJIS_UPDATE") {
|
||||||
const options = data.d as GuildEmojisUpdatePayload;
|
const options = data.d as GuildEmojisUpdatePayload;
|
||||||
const guild = cache.guilds.get(options.guild_id);
|
const guild = cache.guilds.get(options.guild_id);
|
||||||
|
|||||||
@@ -18,7 +18,9 @@ export interface DiscordPayload {
|
|||||||
| "CHANNEL_DELETE"
|
| "CHANNEL_DELETE"
|
||||||
| "GUILD_CREATE"
|
| "GUILD_CREATE"
|
||||||
| "GUILD_DELETE"
|
| "GUILD_DELETE"
|
||||||
| "GUILD_UPDATE";
|
| "GUILD_UPDATE"
|
||||||
|
| "GUILD_BAN_ADD"
|
||||||
|
| "GUILD_BAN_REMOVE";
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DiscordBotGatewayData {
|
export interface DiscordBotGatewayData {
|
||||||
|
|||||||
Reference in New Issue
Block a user