From e53ee68011d3010928dcc3a8a39e447361bdab61 Mon Sep 17 00:00:00 2001 From: kdh8219 <65698239+kdh8219@users.noreply.github.com> Date: Wed, 26 Apr 2023 22:33:50 +0900 Subject: [PATCH] del_user_super --- src/command/commands.ts | 9 ++++- src/command/commands/del_user_super.js | 43 --------------------- src/command/commands/del_user_super.ts | 52 ++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 44 deletions(-) delete mode 100755 src/command/commands/del_user_super.js create mode 100755 src/command/commands/del_user_super.ts diff --git a/src/command/commands.ts b/src/command/commands.ts index 43e5d3d..4de0f6b 100644 --- a/src/command/commands.ts +++ b/src/command/commands.ts @@ -3,7 +3,14 @@ import { TCommand } from "../functions.js"; import add_nick_super from "./commands/add_nick_super.js"; import add_nick from "./commands/add_nick.js"; import del_nick_super from "./commands/del_nick_super.js"; +import del_user_super from "./commands/del_user_super.js"; import ping from "./commands/ping.js"; -const commands: TCommand[] = [add_nick_super, add_nick, del_nick_super, ping]; +const commands: TCommand[] = [ + add_nick_super, + add_nick, + del_nick_super, + del_user_super, + ping, +]; export default commands; diff --git a/src/command/commands/del_user_super.js b/src/command/commands/del_user_super.js deleted file mode 100755 index baa0eed..0000000 --- a/src/command/commands/del_user_super.js +++ /dev/null @@ -1,43 +0,0 @@ -const { SlashCommandBuilder, PermissionFlagsBits, Client, GatewayIntentBits } = require("discord.js"); - -const firebase_admin = require("firebase-admin"); -const { getDatabase } = require("firebase-admin/database"); -const serviceAccount = require("../firebase/conf.json"); -if (!firebase_admin.apps.length) { - firebase_admin.initializeApp({ - credential: firebase_admin.credential.cert(serviceAccount), - databaseURL: process.env.FIREBASE_URL, - databaseAuthVariableOverride: { - uid: process.env.FIREBASE_UID, - }, - }); -} -const firebase = getDatabase().ref("/"); - -// const { token } = require('../config.json'); -const client = new Client({ intents: [GatewayIntentBits.Guilds] }); -client.login(process.env.DISCORD_TOKEN); - -module.exports = { - data: new SlashCommandBuilder() - .setName("del_user_super") - .setDescription("del someone on the list") - .addUserOption((option) => option.setName("discord").setDescription("discord account").setRequired(true)) - .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) - .setDMPermission(false), - async execute(interaction) { - await interaction.deferReply({ ephemeral: true }); - let data = (await firebase.get()).val(); - const discord_id = interaction.options.getUser("discord").id; - for (let discord_search_point in data["members"]) { - if (data["members"][discord_search_point].discord == discord_id) { - //이미 등록된 디코일경우 - data["members"].splice(discord_search_point, 1); - await firebase.set(data); - await interaction.editReply({ content: `삭제 완료:<@${discord_id}>를 제거했습니다.`, ephemeral: true }); - return; - } - } //신규 디코일 경우 - await interaction.editReply({ content: `\`에러\`: 해당 유저를 찾을 수 없습니다.`, ephemeral: true }); - }, -}; diff --git a/src/command/commands/del_user_super.ts b/src/command/commands/del_user_super.ts new file mode 100755 index 0000000..cbcf2f1 --- /dev/null +++ b/src/command/commands/del_user_super.ts @@ -0,0 +1,52 @@ +import { + SlashCommandBuilder, + PermissionFlagsBits, + ChatInputCommandInteraction, +} from "discord.js"; + +import firebase from "../../wrapper/firebase.js"; + +export default { + data: new SlashCommandBuilder() + .setName("del_user_super") + .setDescription("del someone on the list") + .addUserOption((option) => + option + .setName("discord") + .setDescription("discord account") + .setRequired(true) + ) + .setDefaultMemberPermissions(PermissionFlagsBits.Administrator) + .setDMPermission(false), + async execute(interaction: ChatInputCommandInteraction) { + const discord_id = interaction.options.getUser("discord")?.id as string; + const members = firebase.collection("members"); + + const should_remove = await members + .where("discord_id", "==", discord_id) + .get(); + + if (!should_remove.empty) { + should_remove.forEach((item) => { + members.doc(item.id).delete(); + }); + + let discord_tag; + try { + const discord_user = await interaction.client.users.fetch(discord_id); + discord_tag = discord_user.tag; + } catch { + discord_tag = "Deleted User#0000"; + } + + await interaction.editReply({ + content: `삭제 완료:${discord_tag}의 계정을 모두 제거했습니다.`, + }); + return; + } else { + await interaction.editReply({ + content: `\`에러\`: 해당 유저를 찾을 수 없습니다.`, + }); + } + }, +};