feat: Introduce lootdrop functionality, enabling activity-based spawning and interactive claiming, alongside new configuration parameters.

This commit is contained in:
syntaxbullet
2025-12-18 16:09:52 +01:00
parent e8f6a56057
commit 56ad5b49cd
5 changed files with 219 additions and 0 deletions

View File

@@ -17,6 +17,10 @@ const event: Event<Events.InteractionCreate> = {
await import("@/modules/economy/shop.interaction").then(m => m.handleShopInteraction(interaction));
return;
}
if (interaction.customId.startsWith("lootdrop_") && interaction.isButton()) {
await import("@/modules/economy/lootdrop.interaction").then(m => m.handleLootdropInteraction(interaction));
return;
}
}
if (interaction.isAutocomplete()) {

View File

@@ -13,6 +13,11 @@ const event: Event<Events.MessageCreate> = {
if (!user) return;
levelingService.processChatXp(message.author.id);
// Activity Tracking for Lootdrops
// We do dynamic import to avoid circular dependency issues if any, though likely not needed here.
// But better safe for modules. Actually direct import is fine if structure is clean.
import("@/modules/economy/lootdrop.service").then(m => m.lootdropService.processMessage(message));
},
};