bans as controllers

This commit is contained in:
Skillz
2020-09-12 12:06:25 -04:00
parent d639a96f27
commit a0251568f7
4 changed files with 35 additions and 13 deletions
+26
View File
@@ -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);
}
+6
View File
@@ -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,
}; };
-12
View File
@@ -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);
+3 -1
View File
@@ -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 {