From 4752adc7b4eaddf5101380252be5f88e6914ddf2 Mon Sep 17 00:00:00 2001 From: WatDuhHekBro <44940783+WatDuhHekBro@users.noreply.github.com> Date: Tue, 15 Dec 2020 05:15:28 -0600 Subject: [PATCH] Ported the old eco guild command --- src/commands/fun/eco.ts | 3 +- src/commands/fun/subcommands/eco-core.ts | 60 +++++++++++++++++++---- src/commands/fun/subcommands/eco-shop.ts | 4 +- src/commands/fun/subcommands/eco-utils.ts | 17 +++---- 4 files changed, 62 insertions(+), 22 deletions(-) diff --git a/src/commands/fun/eco.ts b/src/commands/fun/eco.ts index bb07e05..555f1de 100644 --- a/src/commands/fun/eco.ts +++ b/src/commands/fun/eco.ts @@ -1,6 +1,6 @@ import Command from "../../core/command"; import {isAuthorized, getMoneyEmbed} from "./subcommands/eco-utils"; -import {DailyCommand, PayCommand, GuildCommand} from "./subcommands/eco-core"; +import {DailyCommand, PayCommand, GuildCommand, LeaderboardCommand} from "./subcommands/eco-core"; import {BuyCommand, ShopCommand} from "./subcommands/eco-shop"; export default new Command({ @@ -12,6 +12,7 @@ export default new Command({ daily: DailyCommand, pay: PayCommand, guild: GuildCommand, + leaderboard: LeaderboardCommand, buy: BuyCommand, shop: ShopCommand }, diff --git a/src/commands/fun/subcommands/eco-core.ts b/src/commands/fun/subcommands/eco-core.ts index 66272b7..38d1725 100644 --- a/src/commands/fun/subcommands/eco-core.ts +++ b/src/commands/fun/subcommands/eco-core.ts @@ -1,7 +1,7 @@ import Command from "../../../core/command"; import $ from "../../../core/lib"; import {Storage} from "../../../core/structures"; -import {isAuthorized, getMoneyEmbed, getSendEmbed} from "./eco-utils"; +import {isAuthorized, getMoneyEmbed, getSendEmbed, ECO_EMBED_COLOR} from "./eco-utils"; export const DailyCommand = new Command({ description: "Pick up your daily Mons. The cooldown is per user and every 22 hours to allow for some leeway.", @@ -18,18 +18,18 @@ export const DailyCommand = new Command({ embed: { title: "Daily Reward", description: "You received 1 Mon!", - color: 0xf1c40f + color: ECO_EMBED_COLOR } }); } else channel.send({ embed: { title: "Daily Reward", - description: `It's too soon to pick up your daily credits. You have about ${( + description: `It's too soon to pick up your daily Mons. You have about ${( (user.lastReceived + 79200000 - now) / 3600000 ).toFixed(1)} hours to go.`, - color: 0xf1c40f + color: ECO_EMBED_COLOR } }); } @@ -37,6 +37,43 @@ export const DailyCommand = new Command({ }); export const GuildCommand = new Command({ + description: "Get info on the guild's economy as a whole.", + async run({guild, channel}) { + if (isAuthorized(guild, channel)) { + const users = Storage.users; + let totalAmount = 0; + + for (const ID in users) { + const user = users[ID]; + totalAmount += user.money; + } + + channel.send({ + embed: { + title: `The Bank of ${guild!.name}`, + color: ECO_EMBED_COLOR, + fields: [ + { + name: "Accounts", + value: Object.keys(users).length, + inline: true + }, + { + name: "Total Mons", + value: totalAmount, + inline: true + } + ], + thumbnail: { + url: guild?.iconURL() ?? "" + } + } + }); + } + } +}); + +export const LeaderboardCommand = new Command({ description: "See the richest players.", async run({guild, channel, client}) { if (isAuthorized(guild, channel)) { @@ -51,15 +88,18 @@ export const GuildCommand = new Command({ fields.push({ name: `#${i + 1}. ${user.username}#${user.discriminator}`, - value: $(users[id].money).pluralise("credit", "s") + value: $(users[id].money).pluralise("Mon", "s") }); } channel.send({ embed: { title: "Top 10 Richest Players", - color: "#ffff00", - fields: fields + color: ECO_EMBED_COLOR, + fields: fields, + thumbnail: { + url: guild?.iconURL() ?? "" + } } }); } @@ -109,7 +149,7 @@ export const PayCommand = new Command({ const amount = Math.floor(last); const sender = Storage.getUser(author.id); - if (amount <= 0) return channel.send("You must send at least one credit!"); + if (amount <= 0) return channel.send("You must send at least one Mon!"); else if (sender.money < amount) return channel.send("You don't have enough money to do that!", getMoneyEmbed(author)); else if (!guild) @@ -136,12 +176,12 @@ export const PayCommand = new Command({ return prompt( await channel.send( `Are you sure you want to send ${$(amount).pluralise( - "credit", + "Mon", "s" )} to this person?\n*(This message will automatically be deleted after 10 seconds.)*`, { embed: { - color: "#ffff00", + color: ECO_EMBED_COLOR, author: { name: `${target.username}#${target.discriminator}`, icon_url: target.displayAvatarURL({ diff --git a/src/commands/fun/subcommands/eco-shop.ts b/src/commands/fun/subcommands/eco-shop.ts index 682b5a2..650cd8f 100644 --- a/src/commands/fun/subcommands/eco-shop.ts +++ b/src/commands/fun/subcommands/eco-shop.ts @@ -1,7 +1,7 @@ import Command from "../../../core/command"; import $ from "../../../core/lib"; import {Storage, getPrefix} from "../../../core/structures"; -import {isAuthorized} from "./eco-utils"; +import {isAuthorized, ECO_EMBED_COLOR} from "./eco-utils"; import {ShopItems, ShopItem} from "./eco-shop-items"; import {EmbedField} from "discord.js"; @@ -21,7 +21,7 @@ export const ShopCommand = new Command({ return { embed: { - color: 0xf1c40f, + color: ECO_EMBED_COLOR, title: title, fields: fields, footer: { diff --git a/src/commands/fun/subcommands/eco-utils.ts b/src/commands/fun/subcommands/eco-utils.ts index ab5af4f..4ad0694 100644 --- a/src/commands/fun/subcommands/eco-utils.ts +++ b/src/commands/fun/subcommands/eco-utils.ts @@ -2,12 +2,14 @@ import $ from "../../../core/lib"; import {Storage} from "../../../core/structures"; import {User, Guild, TextChannel, DMChannel, NewsChannel} from "discord.js"; +export const ECO_EMBED_COLOR = 0xf1c40f; + export function getMoneyEmbed(user: User): object { const profile = Storage.getUser(user.id); return { embed: { - color: 0xffff00, + color: ECO_EMBED_COLOR, author: { name: user.username, icon_url: user.displayAvatarURL({ @@ -18,7 +20,7 @@ export function getMoneyEmbed(user: User): object { fields: [ { name: "Balance", - value: $(profile.money).pluralise("credit", "s") + value: $(profile.money).pluralise("Mon", "s") } ] } @@ -28,7 +30,7 @@ export function getMoneyEmbed(user: User): object { export function getSendEmbed(sender: User, receiver: User, amount: number): object { return { embed: { - color: 0xffff00, + color: ECO_EMBED_COLOR, author: { name: sender.username, icon_url: sender.displayAvatarURL({ @@ -37,18 +39,15 @@ export function getSendEmbed(sender: User, receiver: User, amount: number): obje }) }, title: "Transaction", - description: `${sender.toString()} has sent ${$(amount).pluralise( - "credit", - "s" - )} to ${receiver.toString()}!`, + description: `${sender.toString()} has sent ${$(amount).pluralise("Mon", "s")} to ${receiver.toString()}!`, fields: [ { name: `Sender: ${sender.username}#${sender.discriminator}`, - value: $(Storage.getUser(sender.id).money).pluralise("credit", "s") + value: $(Storage.getUser(sender.id).money).pluralise("Mon", "s") }, { name: `Receiver: ${receiver.username}#${receiver.discriminator}`, - value: $(Storage.getUser(receiver.id).money).pluralise("credit", "s") + value: $(Storage.getUser(receiver.id).money).pluralise("Mon", "s") } ], footer: {