Skip to content
Merged

Dev #34

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .env-example
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
TOKEN=Your_Bot_Token
GUILD_ID=Your_Guild_Id
ENV=production #This will define if the slash commands are put or not
ENV=production #This will define if the slash commands are put or not
MONGODB_URL=Your_MongoDB_URL
10 changes: 5 additions & 5 deletions config-example.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,10 @@
"feedbackChannelId": "Your_Feedback_Channel_Id",
"serverLogId": "Your_Server_Log_Channel_Id",
"supportServerInvite": "Your_Support_Server_Invite",
"mongodb_url": "Your_MongoDB_Url",
"botStats": {
"guilds_channel": "Your_Guilds_Channel_Stats_Bot",
"users_channel": "Your_Users_Channel_Stats_Bot"
"guilds_channel": "Your_Guilds_Channel_Stats_Bot"
},
"apiUrl": "https://api.any-bot.tech/api/v1",
"apiKeys": {
"catApi": "Cat_Api_Key",
"googleApi": "Google_Api_Key",
Expand All @@ -27,7 +26,8 @@
"nasaapi": "Nasa_Api_Key",
"uberduckapi_key": "UberDuck_Api_Key",
"uberduckapi_secret": "UberDuck_Api_Secret",
"osuapikey": "Osu_Api_Key"
"osuapikey": "Osu_Api_Key",
"customAPIKey": "Your_Custom_Api_Key_For_Any_API"
},
"botlist": false
}
}
2 changes: 0 additions & 2 deletions src/buttons/Button.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
const { MessageEmbed } = require("discord.js");

/**
* Any Bot's custom Button class
*/
Expand Down
37 changes: 37 additions & 0 deletions src/buttons/animals/dog.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
const Button = require("../Button.js");
const fetch = require("node-fetch");
const { MessageEmbed, MessageActionRow, MessageButton } = require("discord.js");

module.exports = class DogButton extends Button {
constructor(client) {
super(client, {
name: "dog",
});
}

async run(interaction) {
const res = await fetch("https://dog.ceo/api/breeds/image/random");
const img = (await res.json()).message;
const embed = new MessageEmbed()
.setTitle("🐶 Woof! 🐶")
.setImage(img)
.setFooter({
text: interaction.user.username,
iconURL: interaction.user.displayAvatarURL({ dynamic: true }),
})
.setTimestamp()
.setColor(
interaction.guild ? interaction.guild.me.displayHexColor : "#7289DA"
);

const row = new MessageActionRow().addComponents(
new MessageButton()
.setLabel("Another dog")
.setStyle("PRIMARY")
.setEmoji("🐶")
.setCustomId("dog")
);

interaction.update({ embeds: [embed], components: [row] });
}
};
2 changes: 1 addition & 1 deletion src/commands/ReactionMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ module.exports = class ReactionMenu {
* Adds reactions to the message
*/
async addReactions() {
for (const emoji of this.emojis) {
for await (const emoji of this.emojis) {
await this.message.react({ name: emoji });
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/SetAdminRole.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ module.exports = class SetAdminRoleCommand extends Command {
this.getRoleFromMention(message, args[0]) ||
message.guild.roles.cache.get(args[0]);
if (!adminRole)
return await this.sendErrorMessage(
return this.sendErrorMessage(
message,
0,
"Please mention a role or provide a valid role ID"
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/SetAutoBan.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ module.exports = class SetAutoBanCommand extends Command {
const amount = Number(args[0]);
// Check if warn count is a number:
if (amount && (!Number.isInteger(amount) || amount < 0))
return await this.sendErrorMessage(
return this.sendErrorMessage(
message,
0,
"Please enter a positive integer"
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/SetAutoKick.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module.exports = class SetAutoKickCommand extends Command {
const amount = Number(args[0]);
// Check if warn count is a number:
if (amount && (!Number.isInteger(amount) || amount < 0))
return await this.sendErrorMessage(message, 0, 'Please enter a positive integer');
return this.sendErrorMessage(message, 0, 'Please enter a positive integer');

// Send embed:
const embed = new MessageEmbed()
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/SetAutoRole.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ module.exports = class SetAutoRoleCommand extends Command {

// Update role
const autoRole = this.getRoleFromMention(message, args[0]) || message.guild.roles.cache.get(args[0]);
if (!autoRole) return await this.sendErrorMessage(message, 0, 'Please mention a role or provide a valid role ID');
if (!autoRole) return this.sendErrorMessage(message, 0, 'Please mention a role or provide a valid role ID');
await message.client.mongodb.settings.updateAutoRoleId(autoRole.id, message.guild.id);
return message.channel.send({embeds: [embed.addField('Auto Role', `${oldAutoRole} ➔ ${autoRole}`)]});
}
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/SetCommandPoints.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module.exports = class SetCommandPointsCommand extends Command {
async run(message, args) {
const amount = args[0];
if (!amount || !Number.isInteger(Number(amount)) || amount < 0)
return await this.sendErrorMessage(message, 0, 'Please enter a positive integer');
return this.sendErrorMessage(message, 0, 'Please enter a positive integer');
const {
pointTracking: pointTracking,
messagePoints: messagePoints,
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/SetCommandXP.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ module.exports = class SetCommandPointsCommand extends Command {
async run(message, args) {
let amount = args[0];
if (!amount || !Number.isInteger(Number(amount)) || amount < 0)
return await this.sendErrorMessage(message, 0, 'Please enter a positive integer');
return this.sendErrorMessage(message, 0, 'Please enter a positive integer');
amount = Math.floor(amount);
const {
xpTracking: xpTracking, messageXP: xpMessages, commandXP: xpCommands, voiceXP: xpVoice
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/SetMessageXP.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ module.exports = class SetMessageXPCommand extends Command {
async run(message, args) {
let amount = args[0];
if (!amount || !Number.isInteger(Number(amount)) || amount < 0)
return await this.sendErrorMessage(message, 0, 'Please enter a positive integer.');
return this.sendErrorMessage(message, 0, 'Please enter a positive integer.');
amount = Math.floor(amount);
const {
xpTracking: xpTracking, messageXP: xpMessages, commandXP: xpCommands, voiceXP: xpVoice
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/SetVoiceXP.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ module.exports = class SetVoicePointsVoice extends Command {
async run(message, args) {
let amount = args[0];
if (!amount || !Number.isInteger(Number(amount)) || amount < 0)
return await this.sendErrorMessage(message, 0, 'Please enter a positive integer');
return this.sendErrorMessage(message, 0, 'Please enter a positive integer');
amount = Math.floor(amount);
const {
xpTracking: xpTracking, messageXP: xpMessages, commandXP: xpCommands, voiceXP: xpVoice
Expand Down
4 changes: 2 additions & 2 deletions src/commands/admin/SetXPChannel.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const Command = require("../Command.js");
const { MessageEmbed } = require("discord.js");
const { success, verify } = require("../../utils/emojis.json");
const { oneLine, stripIndent } = require("common-tags");
const { success } = require("../../utils/emojis.json");
const { oneLine } = require("common-tags");

module.exports = class SetXPChannelCommand extends Command {
constructor(client) {
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/ToggleXP.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ module.exports = class TogglePointsCommand extends Command {
const embed = new MessageEmbed()
.setTitle('Settings: `XP`')
.setThumbnail(message.guild.iconURL({ dynamic: true }))
.setDescription(`The \`message XP\` value was successfully updated. ${success}`)
.setDescription(description)
.addField("Message XP", `\`Minimum: ${minimum_xp_message}\` - \`Maximum: ${maximum_xp_message}\``)
.addField('Command XP', `\`Minimum: ${minimum_xp_command}\` - \`Maximum: ${maximum_xp_command}\``)
.addField('Voice XP', `\`Minimum: ${minimum_xp_voice}\` - \`Maximum: ${maximum_xp_voice}\``)
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setcrownchannel.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ module.exports = class SetCrownChannelCommand extends Command {

const crownChannel = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!crownChannel || (crownChannel.type !== 'GUILD_TEXT' && crownChannel.type !== 'GUILD_NEWS') || !crownChannel.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text or announcement channel or provide a valid text or announcement channel ID
`);

Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setcrownrole.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ module.exports = class SetCrownRoleCommand extends Command {

// Update role
const crownRole = this.getRoleFromMention(message, args[0]) || message.guild.roles.cache.get(args[0]);
if (!crownRole) return await this.sendErrorMessage(message, 0, 'Please mention a role or provide a valid role ID');
if (!crownRole) return this.sendErrorMessage(message, 0, 'Please mention a role or provide a valid role ID');
await message.client.mongodb.settings.updateCrownRoleId(crownRole.id, message.guild.id);

// Update status
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setcrownschedule.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ module.exports = class SetCrownScheduleCommand extends Command {
try {
parser.parseExpression(crownSchedule);
} catch (err) {
return await this.sendErrorMessage(message, 0, 'Please try again with a valid cron expression');
return this.sendErrorMessage(message, 0, 'Please try again with a valid cron expression');
}

// Set minutes and seconds to 0
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setfarewellchannel.js
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ module.exports = class SetFarewellChannelCommand extends Command {

const farewellChannel = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!farewellChannel || (farewellChannel.type !== 'GUILD_TEXT' && farewellChannel.type !== 'GUILD_NEWS') || !farewellChannel.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text or announcement channel or provide a valid text or announcement channel ID
`);

Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setmemberlog.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ module.exports = class SetMemberLogCommand extends Command {

const memberLog = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!memberLog || memberLog.type !== 'GUILD_TEXT' || !memberLog.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text channel or provide a valid text channel ID
`);
await message.client.mongodb.settings.updateMemberLogId(memberLog.id, message.guild.id);
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setmessagedeletelog.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ module.exports = class SetMessageDeleteLogCommand extends Command {

const messageDeleteLog = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!messageDeleteLog || messageDeleteLog.type !== 'GUILD_TEXT' || !messageDeleteLog.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text channel or provide a valid text channel ID
`);
await message.client.mongodb.settings.updateMessageDeleteLogId(messageDeleteLog.id, message.guild.id);
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setmessageeditlog.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ module.exports = class SetMessageEditLogCommand extends Command {

const messageEditLog = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!messageEditLog || messageEditLog.type !== 'GUILD_TEXT' || !messageEditLog.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text channel or provide a valid text channel ID
`);
await message.client.mongodb.settings.updateMessageEditLogId(messageEditLog.id, message.guild.id);
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setmessagepoints.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module.exports = class SetMessagePointsCommand extends Command {
async run(message, args) {
const amount = args[0];
if (!amount || !Number.isInteger(Number(amount)) || amount < 0)
return await this.sendErrorMessage(message, 0, 'Please enter a positive integer.');
return this.sendErrorMessage(message, 0, 'Please enter a positive integer.');
const {
pointTracking: pointTracking,
messagePoints: messagePoints,
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setmodchannels.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ module.exports = class SetModChannelsCommand extends Command {
for (const arg of args) {
const channel = this.getChannelFromMention(message, arg) || message.guild.channels.cache.get(arg);
if (channel && channel.type === 'GUILD_TEXT' && channel.viewable) channels.push(channel);
else return await this.sendErrorMessage(message, 0, stripIndent`
else return this.sendErrorMessage(message, 0, stripIndent`
Please mention only accessible text channels or provide only valid text channel IDs
`);
}
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setmodlog.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ module.exports = class SetModLogCommand extends Command {

const modLog = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!modLog || modLog.type !== 'GUILD_TEXT' || !modLog.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text channel or provide a valid text channel ID
`);
await message.client.mongodb.settings.updateModLogId(modLog.id, message.guild.id);
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setmodrole.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ module.exports = class SetModRoleCommand extends Command {

// Update role
const modRole = this.getRoleFromMention(message, args[0]) || message.guild.roles.cache.get(args[0]);
if (!modRole) return await this.sendErrorMessage(message, 0, 'Please mention a role or provide a valid role ID');
if (!modRole) return this.sendErrorMessage(message, 0, 'Please mention a role or provide a valid role ID');
await message.client.mongodb.settings.updateModRoleId(modRole.id, message.guild.id);
message.channel.send({embeds:[embed.addField('Mod Role', `${oldModRole} ➔ ${modRole}`)]});
}
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setmuterole.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ module.exports = class SetMuteRoleCommand extends Command {

// Update role
const muteRole = this.getRoleFromMention(message, args[0]) || message.guild.roles.cache.get(args[0]);
if (!muteRole) return await this.sendErrorMessage(message, 0, 'Please mention a role or provide a valid role ID');
if (!muteRole) return this.sendErrorMessage(message, 0, 'Please mention a role or provide a valid role ID');
await message.client.mongodb.settings.updateMuteRoleId(muteRole.id, message.guild.id);
message.channel.send({embeds:[embed.addField('Mute Role', `${oldMuteRole} ➔ ${muteRole}`)]});
}
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setnicknamelog.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ module.exports = class SetNicknameLogCommand extends Command {

const nicknameLog = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!nicknameLog || nicknameLog.type !== 'GUILD_TEXT' || !nicknameLog.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text channel or provide a valid text channel ID
`);
await message.client.mongodb.settings.updateNicknameLogId(nicknameLog.id, message.guild.id);
Expand Down
4 changes: 2 additions & 2 deletions src/commands/admin/setprefix.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ module.exports = class SetPrefixCommand extends Command {
async run(message, args) {
const oldPrefix = await message.client.mongodb.settings.selectPrefix(message.guild.id);
const prefix = args[0];
if (!prefix) return await this.sendErrorMessage(message, 0, 'Please provide a prefix');
if (!prefix) return this.sendErrorMessage(message, 0, 'Please provide a prefix');
else if (prefix.length > 3)
return await this.sendErrorMessage(message, 0, 'Please ensure the prefix is no larger than 3 characters');
return this.sendErrorMessage(message, 0, 'Please ensure the prefix is no larger than 3 characters');
await message.client.mongodb.settings.updatePrefix(prefix, message.guild.id);
const embed = new MessageEmbed()
.setTitle('Settings: `System`')
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setrolelog.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ module.exports = class SetRoleLogCommand extends Command {

const roleLog = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!roleLog || roleLog.type !== 'GUILD_TEXT' || !roleLog.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text channel or provide a valid text channel ID
`);
await message.client.mongodb.settings.updateRoleLogId(roleLog.id, message.guild.id);
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setstarboardchannel.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ module.exports = class SetStarboardChannelCommand extends Command {
(starboardChannel.type !== 'GUILD_TEXT' && starboardChannel.type !== 'GUILD_NEWS') ||
!starboardChannel.viewable
) {
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text or announcement channel or provide a valid text or announcement channel ID
`);
}
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setsystemchannel.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ module.exports = class SetSystemChannelCommand extends Command {

const systemChannel = this.getChannelFromMention(message, args[0]) || message.guild.channels.cache.get(args[0]);
if (!systemChannel || (systemChannel.type !== 'GUILD_TEXT' && systemChannel.type !== 'GUILD_NEWS') || !systemChannel.viewable)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please mention an accessible text or announcement channel or provide a valid text or announcement channel ID
`);
await message.client.mongodb.settings.updateSystemChannelId(systemChannel.id, message.guild.id);
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ module.exports = class SettingsCommand extends Command {
return message.channel.send({embeds: [embed]});
}
if (setting)
return await this.sendErrorMessage(message, 0, stripIndent`
return this.sendErrorMessage(message, 0, stripIndent`
Please enter a valid settings category, use ${row.prefix}settings for a list
`);

Expand Down
4 changes: 2 additions & 2 deletions src/commands/admin/setverificationchannel.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ module.exports = class SetVerificationChannelCommand extends Command {
verificationChannel.type !== "GUILD_TEXT" ||
!verificationChannel.viewable
)
return await this.sendErrorMessage(
return this.sendErrorMessage(
message,
0,
stripIndent`
Expand Down Expand Up @@ -167,7 +167,7 @@ module.exports = class SetVerificationChannelCommand extends Command {
message.guild.id
);
} else {
return await message.client.sendSystemErrorMessage(
return message.client.sendSystemErrorMessage(
message.guild,
"verification",
stripIndent`
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setverificationmessage.js
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ module.exports = class SetVerificationMessageCommand extends Command {
);
}
} else {
return await message.client.sendSystemErrorMessage(message.guild, 'verification', stripIndent`
return message.client.sendSystemErrorMessage(message.guild, 'verification', stripIndent`
Unable to send verification message, please ensure I have permission to access the verification channel
`);
}
Expand Down
4 changes: 2 additions & 2 deletions src/commands/admin/setverificationrole.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ module.exports = class SetVerificationRoleCommand extends Command {
this.getRoleFromMention(message, args[0]) ||
message.guild.roles.cache.get(args[0]);
if (!verificationRole)
return await this.sendErrorMessage(
return this.sendErrorMessage(
message,
0,
"Please mention a role or provide a valid role ID"
Expand Down Expand Up @@ -207,7 +207,7 @@ module.exports = class SetVerificationRoleCommand extends Command {


} else {
return await message.client.sendSystemErrorMessage(
return message.client.sendSystemErrorMessage(
message.guild,
"verification",
stripIndent`
Expand Down
2 changes: 1 addition & 1 deletion src/commands/admin/setvoicepoints.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ module.exports = class SetVoicePointsVoice extends Command {
async run(message, args) {
const amount = args[0];
if (!amount || !Number.isInteger(Number(amount)) || amount < 0)
return await this.sendErrorMessage(message, 0, 'Please enter a positive integer');
return this.sendErrorMessage(message, 0, 'Please enter a positive integer');
const {
pointTracking: pointTracking,
messagePoints: messagePoints,
Expand Down
Loading