UNPKG

discord-starboard-plus

Version:

Discord Starboard Plus: A clean, maintainable starboard system for Discord.js bots. Features per-guild configuration, TypeScript support. Highlight your community's favorite messages with customizable starboards.

59 lines 2.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.MessageDeleteHandler = void 0; const BaseHandler_1 = require("./BaseHandler"); /** * Handler for messageDelete events. * Removes starboard messages when the original message is deleted. */ class MessageDeleteHandler extends BaseHandler_1.BaseHandler { /** * Handle the messageDelete event. */ async handle(message) { try { if (!message.guild) return; const options = this.getOptionsForGuild(message.guild.id); await this.processMessageDeletion(message, options); } catch (error) { this.logger.error('Error handling message delete', error, { messageId: message.id }); } } /** * Process message deletion. */ async processMessageDeletion(message, options) { const starboardChannel = this.validation.getStarboardChannel(message.guild.id, options, this.client); if (!starboardChannel) return; const searchResult = await this.messageSearch.findStarboardMessage(starboardChannel, message.id, options.maxSearchDepth); if (!searchResult.found || !searchResult.message) { return; } try { await searchResult.message.delete(); this.logger.info('Original message deleted - removing starboard entry', { originalId: message.id, starboardId: searchResult.message.id }); } catch (error) { if (error.code === 10008) { this.logger.warn('Starboard message already deleted', { starboardId: searchResult.message.id }); return; } this.logger.error('Failed to delete starboard message', error, { originalId: message.id, starboardId: searchResult.message.id }); } } } exports.MessageDeleteHandler = MessageDeleteHandler; //# sourceMappingURL=MessageDeleteHandler.js.map