Compare commits
3 Commits
ec75cd32be
...
6d5177629a
Author | SHA1 | Date | |
---|---|---|---|
6d5177629a | |||
1284fde1ee | |||
1421d794a4 |
@@ -1,8 +1,13 @@
|
|||||||
|
#include "../token.h"
|
||||||
#define CURRENCY_NAME "Night Coin"
|
#define CURRENCY_NAME "Night Coin"
|
||||||
|
|
||||||
#define COMMAND_BALANCE_DESCRIPTION "See your balance of " CURRENCY_NAME
|
#define COMMAND_BALANCE_DESCRIPTION "See someone's balance of " CURRENCY_NAME
|
||||||
#define COMMAND_BALANCE_RESPONSE(balance) \
|
#define COMMAND_BALANCE_USER_DESCRIPTION \
|
||||||
|
"Leave this blank if you want to see your own balance"
|
||||||
|
#define COMMAND_BALANCE_SELF_RESPONSE(balance) \
|
||||||
"You currently have " + balance + " " CURRENCY_NAME "(s)"
|
"You currently have " + balance + " " CURRENCY_NAME "(s)"
|
||||||
|
#define COMMAND_BALANCE_SOMEONE_ELSE_RESPONSE(person, balance) \
|
||||||
|
"<@!" + person + "> currently has " + balance + " " CURRENCY_NAME "(s)"
|
||||||
|
|
||||||
#define COMMAND_PAY_DESCRIPTION "Send someone some amount of " CURRENCY_NAME "s"
|
#define COMMAND_PAY_DESCRIPTION "Send someone some amount of " CURRENCY_NAME "s"
|
||||||
#define COMMAND_PAY_ARGS_USER_DESCRIPTION "Who do you want to pay"
|
#define COMMAND_PAY_ARGS_USER_DESCRIPTION "Who do you want to pay"
|
||||||
@@ -12,3 +17,11 @@
|
|||||||
" " CURRENCY_NAME "(s)!"
|
" " CURRENCY_NAME "(s)!"
|
||||||
#define COMMAND_PAY_SUCCESS(recipient, amount) \
|
#define COMMAND_PAY_SUCCESS(recipient, amount) \
|
||||||
"Successfully sent <@!" + recipient + "> " + amount + " " CURRENCY_NAME "(s)!"
|
"Successfully sent <@!" + recipient + "> " + amount + " " CURRENCY_NAME "(s)!"
|
||||||
|
|
||||||
|
#define COMMAND_PRINT_DESCRIPTION "Allows the admin to print money on-demand"
|
||||||
|
#define COMMAND_PRINT_ARGS_AMOUNT_DESCRIPTION "How much are we printing boss?"
|
||||||
|
#define COMMAND_PRINT_FAIL_NO_PRIVILIEGE \
|
||||||
|
"Only <@!" + std::to_string(ADMIN_ID) + "> can print money!"
|
||||||
|
#define COMMAND_PRINT_SUCCESS(amount) \
|
||||||
|
"Successfully printed " + amount + " " CURRENCY_NAME "(s) to <@!" + \
|
||||||
|
std::to_string(ADMIN_ID) + "> !"
|
||||||
|
@@ -1,14 +1,28 @@
|
|||||||
#include "Base/SQL.hpp"
|
#include "Base/SQL.hpp"
|
||||||
#include "Commands.hpp"
|
#include "Commands.hpp"
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
#include <dpp/appcommand.h>
|
||||||
#include <dpp/dispatcher.h>
|
#include <dpp/dispatcher.h>
|
||||||
|
#include <dpp/exception.h>
|
||||||
#include <dpp/snowflake.h>
|
#include <dpp/snowflake.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <variant>
|
||||||
|
|
||||||
void commandPing(const dpp::slashcommand_t &event) { event.reply("Pong"); }
|
void commandPing(const dpp::slashcommand_t &event) { event.reply("Pong"); }
|
||||||
void commandBalance(const dpp::slashcommand_t &event) {
|
void commandBalance(const dpp::slashcommand_t &event) {
|
||||||
std::string balance = getUserBalance(event.command.get_issuing_user().id);
|
std::string person, balance;
|
||||||
event.reply(COMMAND_BALANCE_RESPONSE(balance));
|
dpp::command_value id = event.get_parameter("user");
|
||||||
|
|
||||||
|
// Weirdest thing ever
|
||||||
|
if (std::holds_alternative<std::monostate>(id)) {
|
||||||
|
balance = getUserBalance(event.command.get_issuing_user().id);
|
||||||
|
event.reply(COMMAND_BALANCE_SELF_RESPONSE(balance));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
person = std::get<dpp::snowflake>(id).str();
|
||||||
|
balance = getUserBalance(person);
|
||||||
|
event.reply(COMMAND_BALANCE_SOMEONE_ELSE_RESPONSE(person, balance));
|
||||||
}
|
}
|
||||||
|
|
||||||
void commandPay(const dpp::slashcommand_t &event) {
|
void commandPay(const dpp::slashcommand_t &event) {
|
||||||
@@ -28,6 +42,22 @@ void commandPay(const dpp::slashcommand_t &event) {
|
|||||||
event.reply(COMMAND_PAY_SUCCESS(recipient, std::to_string(amount)));
|
event.reply(COMMAND_PAY_SUCCESS(recipient, std::to_string(amount)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void commandPrintMoney(const dpp::slashcommand_t &event) {
|
||||||
|
std::int64_t userid = event.command.get_issuing_user().id;
|
||||||
|
|
||||||
|
if (ADMIN_ID != userid) {
|
||||||
|
event.reply(COMMAND_PRINT_FAIL_NO_PRIVILIEGE);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
std::uint64_t amount = std::get<std::int64_t>(event.get_parameter("amount"));
|
||||||
|
increaseFromUsersBalance(ADMIN_ID, amount);
|
||||||
|
event.reply(COMMAND_PRINT_SUCCESS(std::to_string(amount)));
|
||||||
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
/// HELPER INLINE METHODS
|
||||||
|
///
|
||||||
|
|
||||||
inline void increaseFromUsersBalance(const dpp::snowflake userid,
|
inline void increaseFromUsersBalance(const dpp::snowflake userid,
|
||||||
std::uint64_t amount) {
|
std::uint64_t amount) {
|
||||||
std::uint64_t balance = std::stoi(getUserBalance(userid));
|
std::uint64_t balance = std::stoi(getUserBalance(userid));
|
||||||
|
@@ -7,10 +7,18 @@ void createCommands(const dpp::ready_t &event, dpp::cluster &bot) {
|
|||||||
|
|
||||||
// Money related stuff
|
// Money related stuff
|
||||||
bot.guild_command_create(
|
bot.guild_command_create(
|
||||||
dpp::slashcommand("balance", COMMAND_BALANCE_DESCRIPTION, bot.me.id),
|
dpp::slashcommand("balance", COMMAND_BALANCE_DESCRIPTION, bot.me.id)
|
||||||
|
.add_option(dpp::command_option(dpp::command_option_type::co_user,
|
||||||
|
"user",
|
||||||
|
COMMAND_BALANCE_USER_DESCRIPTION)),
|
||||||
GUILD);
|
GUILD);
|
||||||
bot.guild_command_create(
|
bot.guild_command_create(
|
||||||
dpp::slashcommand("bal", COMMAND_BALANCE_DESCRIPTION, bot.me.id), GUILD);
|
dpp::slashcommand("bal", COMMAND_BALANCE_DESCRIPTION, bot.me.id)
|
||||||
|
.add_option(dpp::command_option(dpp::command_option_type::co_user,
|
||||||
|
"user",
|
||||||
|
COMMAND_BALANCE_USER_DESCRIPTION)),
|
||||||
|
GUILD);
|
||||||
|
|
||||||
bot.guild_command_create(
|
bot.guild_command_create(
|
||||||
dpp::slashcommand("pay", COMMAND_PAY_DESCRIPTION, bot.me.id)
|
dpp::slashcommand("pay", COMMAND_PAY_DESCRIPTION, bot.me.id)
|
||||||
.add_option(dpp::command_option(
|
.add_option(dpp::command_option(
|
||||||
@@ -21,4 +29,12 @@ void createCommands(const dpp::ready_t &event, dpp::cluster &bot) {
|
|||||||
COMMAND_PAY_ARGS_AMOUNT_DESCRIPTION, true)
|
COMMAND_PAY_ARGS_AMOUNT_DESCRIPTION, true)
|
||||||
.set_min_value(1)),
|
.set_min_value(1)),
|
||||||
GUILD);
|
GUILD);
|
||||||
|
|
||||||
|
bot.guild_command_create(
|
||||||
|
dpp::slashcommand("print_money", COMMAND_PRINT_DESCRIPTION, bot.me.id)
|
||||||
|
.add_option(dpp::command_option(
|
||||||
|
dpp::command_option_type::co_integer, "amount",
|
||||||
|
COMMAND_PRINT_ARGS_AMOUNT_DESCRIPTION, true)
|
||||||
|
.set_min_value(1)),
|
||||||
|
GUILD);
|
||||||
}
|
}
|
||||||
|
@@ -8,6 +8,7 @@ void createCommands(const dpp::ready_t &event, dpp::cluster &bot);
|
|||||||
void commandPing(const dpp::slashcommand_t &event);
|
void commandPing(const dpp::slashcommand_t &event);
|
||||||
void commandBalance(const dpp::slashcommand_t &event);
|
void commandBalance(const dpp::slashcommand_t &event);
|
||||||
void commandPay(const dpp::slashcommand_t &event);
|
void commandPay(const dpp::slashcommand_t &event);
|
||||||
|
void commandPrintMoney(const dpp::slashcommand_t &event);
|
||||||
|
|
||||||
// Inline helpers
|
// Inline helpers
|
||||||
inline void increaseFromUsersBalance(const dpp::snowflake userid,
|
inline void increaseFromUsersBalance(const dpp::snowflake userid,
|
||||||
@@ -21,9 +22,8 @@ inline void addUserToDatabase(const dpp::snowflake userid);
|
|||||||
|
|
||||||
inline std::unordered_map<std::string,
|
inline std::unordered_map<std::string,
|
||||||
std::function<void(const dpp::slashcommand_t &event)>>
|
std::function<void(const dpp::slashcommand_t &event)>>
|
||||||
Commands{
|
Commands{{"ping", commandPing},
|
||||||
{"ping", commandPing},
|
{"balance", commandBalance},
|
||||||
{"balance", commandBalance},
|
{"bal", commandBalance},
|
||||||
{"bal", commandBalance},
|
{"pay", commandPay},
|
||||||
{"pay", commandPay},
|
{"print_money", commandPrintMoney}};
|
||||||
};
|
|
||||||
|
Reference in New Issue
Block a user