49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { Client } from 'discord.js';
|
|
import { BanUpdate } from '../types';
|
|
import { Database } from '../shared/Database';
|
|
import { config } from '../config';
|
|
|
|
export async function banUpdateHandler(client: Client, update: string) {
|
|
const data: BanUpdate = JSON.parse(update);
|
|
|
|
if (data.action == 'create') {
|
|
kickDiscordAccounts(client, data);
|
|
}
|
|
// else if (data.action == 'delete') {
|
|
// // unbanDiscordAccounts(data);
|
|
// }
|
|
}
|
|
|
|
async function kickDiscordAccounts(client: Client, data: BanUpdate) {
|
|
const guild = await client.guilds.fetch(config.DISCORD_GUILD_ID!);
|
|
|
|
const discordIds = await Database.getDiscordIds(data.ban.user_id);
|
|
|
|
for (const id of discordIds) {
|
|
const member = await guild.members.fetch(id);
|
|
|
|
if (member) await member.kick(`Banned from e621 by: https://e621.net/users/${data.ban.banner_id}. Reason:\n${data.ban.reason}`);
|
|
}
|
|
}
|
|
|
|
// async function banDiscordAccounts(data: BanUpdate) {
|
|
// const guild = await discordClient.guilds.fetch(config.DISCORD_GUILD_ID!);
|
|
|
|
// const discordIds = await Database.getDiscordIds(data.ban.user_id);
|
|
|
|
// for (const id of discordIds) {
|
|
// await guild.bans.create(id, {
|
|
// reason: data.ban.reason
|
|
// });
|
|
// }
|
|
// }
|
|
|
|
// async function unbanDiscordAccounts(data: BanUpdate) {
|
|
// const guild = await discordClient.guilds.fetch(config.DISCORD_GUILD_ID!);
|
|
|
|
// const discordIds = await Database.getDiscordIds(data.ban.user_id);
|
|
|
|
// for (const id of discordIds) {
|
|
// await guild.bans.remove(id);
|
|
// }
|
|
// }
|