feat: agregar comando de registro de muertes y penalizaciones; implementar ítem de purga de efectos y mejorar la documentación de creación de contenido
This commit is contained in:
49
src/commands/messages/game/deathlog.ts
Normal file
49
src/commands/messages/game/deathlog.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import type { CommandMessage } from "../../../core/types/commands";
|
||||
import type Amayo from "../../../core/client";
|
||||
import { prisma } from "../../../core/database/prisma";
|
||||
|
||||
export const command: CommandMessage = {
|
||||
name: "deathlog",
|
||||
aliases: ["muertes"],
|
||||
type: "message",
|
||||
cooldown: 8,
|
||||
category: "Economía",
|
||||
description: "Muestra tus últimas muertes y penalizaciones aplicadas.",
|
||||
usage: "deathlog [cantidad<=20]",
|
||||
run: async (message, args, _client: Amayo) => {
|
||||
const userId = message.author.id;
|
||||
const guildId = message.guild!.id;
|
||||
let take = 10;
|
||||
if (args[0]) {
|
||||
const n = parseInt(args[0], 10);
|
||||
if (!isNaN(n) && n > 0) take = Math.min(20, n);
|
||||
}
|
||||
|
||||
const logs = await prisma.deathLog.findMany({
|
||||
where: { userId, guildId },
|
||||
orderBy: { createdAt: "desc" },
|
||||
take,
|
||||
});
|
||||
if (!logs.length) {
|
||||
await message.reply("No hay registros de muerte.");
|
||||
return;
|
||||
}
|
||||
|
||||
const lines = logs.map((l) => {
|
||||
const pct = Math.round((l.percentApplied || 0) * 100);
|
||||
const parts: string[] = [];
|
||||
parts.push(`💰-${l.goldLost}`);
|
||||
if (pct) parts.push(`${pct}%`);
|
||||
if (l.fatigueMagnitude)
|
||||
parts.push(`Fatiga ${Math.round(l.fatigueMagnitude * 100)}%`);
|
||||
const area = l.areaKey ? l.areaKey : "?";
|
||||
return `${l.createdAt.toISOString().slice(11, 19)} | ${area} L${
|
||||
l.level ?? "-"
|
||||
} | ${parts.join(" | ")}${l.autoDefeatNoWeapon ? " | sin arma" : ""}`;
|
||||
});
|
||||
|
||||
await message.reply(
|
||||
`**DeathLog (últimos ${logs.length})**\n${lines.join("\n")}`
|
||||
);
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user