From 80c8f6accd688bfe29e10f28d68589ee6d635e19 Mon Sep 17 00:00:00 2001 From: benji7425 Date: Sat, 27 Jan 2018 00:03:47 +0000 Subject: [PATCH] Update data deletion to require a reset command instead of guildDelete guildDelete apparently gets called whenever Discord has an outage - we don't want to delete server data whenever there is a temporary outage! --- discord-bot-core/client.js | 7 ------- discord-bot-core/core-commands/reset.js | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 discord-bot-core/core-commands/reset.js diff --git a/discord-bot-core/client.js b/discord-bot-core/client.js index d7859f1..68ce4ba 100644 --- a/discord-bot-core/client.js +++ b/discord-bot-core/client.js @@ -32,7 +32,6 @@ module.exports = class Client extends Discord.Client { this.on("message", this._onMessage); this.on("debug", this._onDebug); this.on("guildCreate", this._onGuildCreate); - this.on("guildDelete", this._onGuildDelete); process.on("uncaughtException", err => this._onUnhandledException(this, err)); } @@ -58,12 +57,6 @@ module.exports = class Client extends Discord.Client { CoreUtil.dateLog(`Added to guild ${guild.name}`); } - _onGuildDelete(guild) { - this.guildDataModel.findOneAndDelete({ guildID: guild.id }); - - CoreUtil.dateLog(`Removed from guild ${guild.name}, removing data for this guild`); - } - _onUnhandledException(client, err) { CoreUtil.dateError("Unhandled exception!\n", err); CoreUtil.dateLog("Destroying existing client..."); diff --git a/discord-bot-core/core-commands/reset.js b/discord-bot-core/core-commands/reset.js new file mode 100644 index 0000000..1aa8517 --- /dev/null +++ b/discord-bot-core/core-commands/reset.js @@ -0,0 +1,18 @@ +const Command = require("../command.js"); + +module.exports = new Command({ + name: "reset", + description: "Reset all data for this Discord server. WARNING: YOU WILL LOSE ALL YOUR SETTINGS!", + syntax: "reset", + admin: false, + invoke +}); + +function invoke({ guildData }) { + return new Promise((resolve, reject) => { + guildData + .delete() + .then(() => resolve("Data for this server successfully deleted")) + .catch(() => reject("Error deleting data for this server")); + }); +} \ No newline at end of file