Added eco monday
This commit is contained in:
parent
3d3631c65a
commit
9ab588468e
|
@ -2,6 +2,7 @@ import Command from "../../core/command";
|
||||||
import {isAuthorized, getMoneyEmbed} from "./subcommands/eco-utils";
|
import {isAuthorized, getMoneyEmbed} from "./subcommands/eco-utils";
|
||||||
import {DailyCommand, PayCommand, GuildCommand, LeaderboardCommand} from "./subcommands/eco-core";
|
import {DailyCommand, PayCommand, GuildCommand, LeaderboardCommand} from "./subcommands/eco-core";
|
||||||
import {BuyCommand, ShopCommand} from "./subcommands/eco-shop";
|
import {BuyCommand, ShopCommand} from "./subcommands/eco-shop";
|
||||||
|
import {MondayCommand} from "./subcommands/eco-extras";
|
||||||
|
|
||||||
export default new Command({
|
export default new Command({
|
||||||
description: "Economy command for Monika.",
|
description: "Economy command for Monika.",
|
||||||
|
@ -14,7 +15,8 @@ export default new Command({
|
||||||
guild: GuildCommand,
|
guild: GuildCommand,
|
||||||
leaderboard: LeaderboardCommand,
|
leaderboard: LeaderboardCommand,
|
||||||
buy: BuyCommand,
|
buy: BuyCommand,
|
||||||
shop: ShopCommand
|
shop: ShopCommand,
|
||||||
|
monday: MondayCommand
|
||||||
},
|
},
|
||||||
user: new Command({
|
user: new Command({
|
||||||
description: "See how much money someone else has by using their user ID or pinging them.",
|
description: "See how much money someone else has by using their user ID or pinging them.",
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
import Command from "../../../core/command";
|
||||||
|
import {Storage} from "../../../core/structures";
|
||||||
|
import {isAuthorized, getMoneyEmbed} from "./eco-utils";
|
||||||
|
|
||||||
|
const WEEKDAY = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
|
||||||
|
|
||||||
|
export const MondayCommand = new Command({
|
||||||
|
description: "Use this on a UTC Monday to get an extra Mon. Does not affect your 22 hour timer for `eco daily`.",
|
||||||
|
async run({guild, channel, author}) {
|
||||||
|
if (isAuthorized(guild, channel)) {
|
||||||
|
const user = Storage.getUser(author.id);
|
||||||
|
const now = new Date();
|
||||||
|
const weekday = now.getUTCDay();
|
||||||
|
|
||||||
|
// If it's a UTC Monday
|
||||||
|
if (weekday === 1) {
|
||||||
|
// If the user hasn't already claimed their Monday reward (checks the last 24 hours because that'll block up the entire day)
|
||||||
|
if (now.getTime() - user.lastMonday >= 86400000) {
|
||||||
|
user.money++;
|
||||||
|
user.lastMonday = now.getTime();
|
||||||
|
Storage.save();
|
||||||
|
channel.send("It is **Mon**day, my dudes.", getMoneyEmbed(author));
|
||||||
|
} else channel.send("You've already claimed your **Mon**day reward for this week.");
|
||||||
|
} else {
|
||||||
|
const weekdayName = WEEKDAY[weekday];
|
||||||
|
const hourText = now.getUTCHours().toString().padStart(2, "0");
|
||||||
|
const minuteText = now.getUTCMinutes().toString().padStart(2, "0");
|
||||||
|
channel.send(
|
||||||
|
`Come back when it's **Mon**day. Right now, it's ${weekdayName}, ${hourText}:${minuteText} (UTC).`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
|
@ -23,10 +23,12 @@ class ConfigStructure extends GenericStructure {
|
||||||
class User {
|
class User {
|
||||||
public money: number;
|
public money: number;
|
||||||
public lastReceived: number;
|
public lastReceived: number;
|
||||||
|
public lastMonday: number;
|
||||||
|
|
||||||
constructor(data?: GenericJSON) {
|
constructor(data?: GenericJSON) {
|
||||||
this.money = select(data?.money, 0, Number);
|
this.money = select(data?.money, 0, Number);
|
||||||
this.lastReceived = select(data?.lastReceived, -1, Number);
|
this.lastReceived = select(data?.lastReceived, -1, Number);
|
||||||
|
this.lastMonday = select(data?.lastMonday, -1, Number);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue