Create use effect command #419

Open
Vylpes wants to merge 23 commits from feature/380-use-effect into develop
3 changed files with 13 additions and 4 deletions
Showing only changes of commit 57c3d603a9 - Show all commits

View file

@ -93,6 +93,6 @@ export default class Effects extends Command {
return;
}
await interaction.reply("Unable to use effect! Please make sure you have it in your inventory");
await interaction.reply("Unable to use effect! Please make sure you have it in your inventory and is not on cooldown");
}
}

View file

@ -3,15 +3,17 @@ class EffectDetail {
public readonly friendlyName: string;
public readonly duration: number;
public readonly cost: number;
public readonly cooldown: number;
constructor(id: string, friendlyName: string, duration: number, cost: number) {
constructor(id: string, friendlyName: string, duration: number, cost: number, cooldown: number) {
this.id = id;
this.friendlyName = friendlyName;
this.duration = duration;
this.cost = cost;
this.cooldown = cooldown;
}
};
export const EffectDetails = new Map<string, EffectDetail>([
[ "unclaimed", new EffectDetail("unclaimed", "Unclaimed Chance Up", 24 * 60 * 60 * 1000, 100) ],
[ "unclaimed", new EffectDetail("unclaimed", "Unclaimed Chance Up", 10 * 60 * 1000, 100, 3 * 60 * 60 * 1000) ],
]);

View file

@ -1,6 +1,7 @@
import {ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder} from "discord.js";
import UserEffect from "../database/entities/app/UserEffect";
import EmbedColours from "../constants/EmbedColours";
import {EffectDetails} from "../constants/EffectDetails";
export default class EffectHelper {
public static async AddEffectToUserInventory(userId: string, name: string, quantity: number = 1) {
@ -23,7 +24,13 @@ export default class EffectHelper {
return false;
}
if (effect.WhenExpires && now < effect.WhenExpires) {
const effectDetail = EffectDetails.get(effect.Id);
if (!effectDetail) {
return false;
}
if (effect.WhenExpires && now < new Date(effect.WhenExpires.getMilliseconds() + effectDetail.cooldown)) {
return false;
}