mirror of
https://github.com/keanuplayz/TravBot-v3.git
synced 2024-08-15 02:33:12 +00:00
Added eco monday
This commit is contained in:
parent
3d3631c65a
commit
9ab588468e
3 changed files with 39 additions and 1 deletions
|
@ -2,6 +2,7 @@ import Command from "../../core/command";
|
|||
import {isAuthorized, getMoneyEmbed} from "./subcommands/eco-utils";
|
||||
import {DailyCommand, PayCommand, GuildCommand, LeaderboardCommand} from "./subcommands/eco-core";
|
||||
import {BuyCommand, ShopCommand} from "./subcommands/eco-shop";
|
||||
import {MondayCommand} from "./subcommands/eco-extras";
|
||||
|
||||
export default new Command({
|
||||
description: "Economy command for Monika.",
|
||||
|
@ -14,7 +15,8 @@ export default new Command({
|
|||
guild: GuildCommand,
|
||||
leaderboard: LeaderboardCommand,
|
||||
buy: BuyCommand,
|
||||
shop: ShopCommand
|
||||
shop: ShopCommand,
|
||||
monday: MondayCommand
|
||||
},
|
||||
user: new Command({
|
||||
description: "See how much money someone else has by using their user ID or pinging them.",
|
||||
|
|
34
src/commands/fun/subcommands/eco-extras.ts
Normal file
34
src/commands/fun/subcommands/eco-extras.ts
Normal file
|
@ -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 {
|
||||
public money: number;
|
||||
public lastReceived: number;
|
||||
public lastMonday: number;
|
||||
|
||||
constructor(data?: GenericJSON) {
|
||||
this.money = select(data?.money, 0, Number);
|
||||
this.lastReceived = select(data?.lastReceived, -1, Number);
|
||||
this.lastMonday = select(data?.lastMonday, -1, Number);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue