From 8b52db7ec37e2e2d9546006c561368cd8dc71628 Mon Sep 17 00:00:00 2001 From: SteeledSlagle13 Date: Mon, 12 Apr 2021 13:43:01 -0500 Subject: [PATCH 1/6] [Docs Command] removed reply and added catch --- src/commands/docs.command.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/commands/docs.command.ts b/src/commands/docs.command.ts index 8d8a5a3..d71689b 100644 --- a/src/commands/docs.command.ts +++ b/src/commands/docs.command.ts @@ -8,7 +8,7 @@ import { Logger } from "../services/logger.service"; export abstract class Docs { - logger = Logger.prototype.getInstance(); + logger = Logger.prototype.getInstance(); /** * @name docs @@ -32,8 +32,10 @@ export abstract class Docs { .setThumbnail(IMAGE.ICON) .setFooter("Clicking the blue text will take you to the docs."); - command.reply({ embed }).then((messageSent) => { + command.channel.send({ embed }).then((messageSent) => { this.logger.info(`Sent Docs : message id ${messageSent.id}`); + }).catch((error) => { + this.logger.error('Docs message : error', error); }); } } From 26fefd695d163397c588e0b132620020ab5b8c72 Mon Sep 17 00:00:00 2001 From: SteeledSlagle13 Date: Mon, 12 Apr 2021 13:44:24 -0500 Subject: [PATCH 2/6] [Starter Ready] added bot status --- src/Starter.discord.ts | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/Starter.discord.ts b/src/Starter.discord.ts index 4f67c7d..11a721a 100644 --- a/src/Starter.discord.ts +++ b/src/Starter.discord.ts @@ -1,4 +1,4 @@ -import { Discord, Description, On, ArgsOf } from "@typeit/discord"; +import { Discord, Description, On, ArgsOf, Client } from "@typeit/discord"; import { Logger } from "./services/logger.service"; import * as chalk from "chalk"; import * as Path from "path"; @@ -23,7 +23,8 @@ export abstract class Starter { * When bot has logged in output bot is ready. */ @On("ready") - initialize(): void { + // eslint-disable-next-line no-empty-pattern + initialize([]: ArgsOf<"ready">, client: Client): void { this.logger.info("info check"); this.logger.warn("warning check"); this.logger.error("error check"); @@ -31,6 +32,8 @@ export abstract class Starter { this.logger.info(Path.join(__dirname, "commands", "*.ts")); this.logger.info(Path.join(__dirname, "guild", "*.ts")); this.logger.info(Path.join(__dirname, "member", "*.ts")); + + this.changeStatus(client); } /** @@ -43,8 +46,21 @@ export abstract class Starter { this.logger.error(`${chalk.bold("BOT ERROR")}: ${error}`); } - // @On("raw") - // async onEvent(event: any): Promise { - - // } + changeStatus(client: Client): void { + let status = 3; + const activities = [ + 'https://discord.js.org/#/', + '?help', + 'https://github.com/OwenCalvin/discord.ts', + '', + 'https://www.npmjs.com/package/@typeit/discord!', + '?docs', + ]; + setInterval(() => { + client.user.setActivity(activities[status]); + this.logger.info(`Set status to : ${activities[status]}`); + status = Math.floor(Math.random() * activities.length); + }, 60000 * 15); + } + } From 62227f4374ba506659cd5300f1a18511ed75a8af Mon Sep 17 00:00:00 2001 From: SteeledSlagle13 Date: Mon, 12 Apr 2021 13:45:02 -0500 Subject: [PATCH 3/6] [Logger] updated message --- src/services/logger.service.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/services/logger.service.ts b/src/services/logger.service.ts index 51d730f..fd05400 100644 --- a/src/services/logger.service.ts +++ b/src/services/logger.service.ts @@ -4,16 +4,16 @@ export class Logger { private static logger: Logger; - info(message: string): void { - console.log(chalk.bgCyan(`✔ ${Date.now()} : `, chalk.underline(message))); + info(...message: unknown[]): void { + console.log(chalk.bgCyan(`✔ ${Date.now()} :`, chalk.underline(message))); } - warn(message: string): void { - console.log(chalk.bgYellow(chalk.black(`⚠ ${Date.now()} : `, chalk.underline(message)))); + warn(...message: unknown[]): void { + console.log(chalk.bgYellow(chalk.black(`⚠ ${Date.now()} :`, chalk.underline(message)))); } - error(message: string): void { - console.log(chalk.bgRed(`⛔ ${Date.now()} : `, chalk.underline(message))); + error(...message: unknown[]): void { + console.log(chalk.bgRed(`⛔ ${Date.now()} :`, chalk.underline(message))); } getInstance(): Logger { From bb5df7481bf0cede93d559447c6e024b53bc4701 Mon Sep 17 00:00:00 2001 From: SteeledSlagle13 Date: Mon, 12 Apr 2021 13:47:02 -0500 Subject: [PATCH 4/6] [Help Command][Shard Command] Added shard and help commands --- src/commands/help.command.ts | 42 ++++++++++++++++++++++++++++++++++ src/commands/shard.command.ts | 43 +++++++++++++++++++++++++++++++++++ src/enums/links.enum.ts | 3 +++ 3 files changed, 88 insertions(+) create mode 100644 src/commands/help.command.ts create mode 100644 src/commands/shard.command.ts diff --git a/src/commands/help.command.ts b/src/commands/help.command.ts new file mode 100644 index 0000000..dca8bdb --- /dev/null +++ b/src/commands/help.command.ts @@ -0,0 +1,42 @@ +import { Command, CommandMessage, Guard } from "@typeit/discord"; +import { MessageEmbed } from "discord.js"; +import { COLOR } from "../enums/colors.enum"; +import { IMAGE } from "../enums/images.enum"; +import { NotBot } from "../guards/NotABot.guard"; +import { Logger } from "../services/logger.service"; + +export abstract class Help { + + logger = Logger.prototype.getInstance(); + + /** + * @name help + * @param command + * object is command message from the author. + * @description + * Sends the list of commands as a dm to the author. + */ + @Command("help") + @Guard(NotBot) + async help(command: CommandMessage): Promise { + this.logger.info("Sending Help"); + + const embed = new MessageEmbed(); + embed + .setTitle(`Discord.TS Help`) + .setDescription( + `Here is a list of my available commands.\n**Prefix the command with** \`?\`**.**\nEx. \`?docs\`` + ) + .addField('docs', 'Provides a link to the __Discord TS__ and __Discord JS__ Documentation.') + .addField('help', 'Sends this list of my commands to the author.') + .addField('shard', 'Sends the __Discord TS__ and __Discord JS__ guides for sharding.') + .setColor(COLOR.BLUE) + .setThumbnail(IMAGE.ICON); + + command.author.send({ embed }).then((messageSent) => { + this.logger.info(`Sent Help : message id ${messageSent.id}`); + }).catch((error) => { + this.logger.error('Help DM : error', error); + }); + } +} diff --git a/src/commands/shard.command.ts b/src/commands/shard.command.ts new file mode 100644 index 0000000..0684797 --- /dev/null +++ b/src/commands/shard.command.ts @@ -0,0 +1,43 @@ +import { Command, CommandMessage, Guard } from "@typeit/discord"; +import { MessageEmbed } from "discord.js"; +import { COLOR } from "../enums/colors.enum"; +import { IMAGE } from "../enums/images.enum"; +import { LINK } from "../enums/links.enum"; +import { NotBot } from "../guards/NotABot.guard"; +import { Logger } from "../services/logger.service"; + +export abstract class Help { + + logger = Logger.prototype.getInstance(); + + /** + * @name shard + * @param command + * object is command message from the author. + * @description + * Sends the Discord.TS & Discord.JS Documentation link for sharding. + */ + @Command("shard") + @Guard(NotBot) + async shard(command: CommandMessage): Promise { + this.logger.info("Sending Sharding Docs"); + + const embed = new MessageEmbed(); + embed + .setTitle(`Discord.TS Sharding`) + .setURL(LINK.SHARDING_GUIDE) + .setDescription( + `If you are in **2,000** guilds and your bot compiles with **tsc** sharding is possible!\n` + + `Click the title to see the guide!\n` + + `Please read [discord.js sharding guide](${LINK.DISCORD_JS_SHARDING}) as well.` + ) + .setColor(COLOR.BLUE) + .setThumbnail(IMAGE.ICON); + + command.channel.send({ embed }).then((messageSent) => { + this.logger.info(`Sent Sharding Docs : message id ${messageSent.id}`); + }).catch((error) => { + this.logger.error('Sharding Docs message : error', error); + }); + } +} diff --git a/src/enums/links.enum.ts b/src/enums/links.enum.ts index 9dee3b4..3cf2b25 100644 --- a/src/enums/links.enum.ts +++ b/src/enums/links.enum.ts @@ -3,6 +3,9 @@ export enum LINK { SIMPLE_STARTER_README = "https://github.com/OwenCalvin/discord.ts/tree/master/starter-projects/simple-bot#simple-bot", SIMPLE_STARTER_DOWNLOAD = "https://github.com/OwenCalvin/discord.ts/raw/master/starter-projects/simple-bot/SimpleBot.zip", + SHARDING_GUIDE = "https://github.com/OwenCalvin/discord.ts/blob/master/guides/sharding.md", + DISCORD_JS_SHARDING = "https://discordjs.guide/sharding/#when-to-shard", + DISCORD_JS_DOCS = "https://discord.js.org/?source=post_page---------------------------#/docs/main/stable/general/welcome", INVITE_LINK = "https://discord.gg/VDjwu8E", From 47f646b2675012268e24547859843657d75fc08f Mon Sep 17 00:00:00 2001 From: SteeledSlagle13 Date: Mon, 12 Apr 2021 13:49:31 -0500 Subject: [PATCH 5/6] [Member Join Event] Added DM to member join event --- src/enums/id.enum.ts | 2 ++ src/member/member-events.discord.ts | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/enums/id.enum.ts b/src/enums/id.enum.ts index 849e631..437b6fd 100644 --- a/src/enums/id.enum.ts +++ b/src/enums/id.enum.ts @@ -1,4 +1,6 @@ export enum ID { MEMBER_ROLE = "705440257428160573", SERVER = "693401527494377482", + RULES_CHANNEL = "784689736161689600", + INFO_CHANNEL = "705567608031805521" } diff --git a/src/member/member-events.discord.ts b/src/member/member-events.discord.ts index 0113d60..9b9d59c 100644 --- a/src/member/member-events.discord.ts +++ b/src/member/member-events.discord.ts @@ -1,6 +1,8 @@ import { Description, On, ArgsOf } from "@typeit/discord"; -import { Role } from "discord.js"; +import { MessageEmbed, Role } from "discord.js"; +import { COLOR } from "../enums/colors.enum"; import { ID } from "../enums/id.enum"; +import { IMAGE } from "../enums/images.enum"; import { Logger } from "../services/logger.service"; @Description("Discord Member Event Handlers") @@ -32,5 +34,20 @@ export abstract class MemberEvents { this.logger.error(`Failed to put member role on ${member.id}`); }); }); + + const embed = new MessageEmbed(); + embed + .setTitle(`Welcome to Discord.TS`) + .setDescription( + `Hello ${member}, Please take a look at <#${ID.RULES_CHANNEL}> and <#${ID.INFO_CHANNEL}>!\n` + + `If you have a question related to **Discord.TS** ask in one of the Help channels.` + ) + .setColor(COLOR.BLUE) + .setThumbnail(IMAGE.ICON); + member.send({ embed }).then((messageSent) => { + this.logger.info(`Sent Welcome : message id ${messageSent.id}`); + }).catch((error) => { + this.logger.error('Welcome DM : error', error); + }); } } From 8bc0a50ef4cb90ad5a80ac93db9300b4daa508bd Mon Sep 17 00:00:00 2001 From: SteeledSlagle13 Date: Mon, 12 Apr 2021 18:43:46 -0500 Subject: [PATCH 6/6] [Status Messages] Typo --- src/Starter.discord.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Starter.discord.ts b/src/Starter.discord.ts index 11a721a..9b1d076 100644 --- a/src/Starter.discord.ts +++ b/src/Starter.discord.ts @@ -49,11 +49,11 @@ export abstract class Starter { changeStatus(client: Client): void { let status = 3; const activities = [ - 'https://discord.js.org/#/', + 'https://discord.js.org/', '?help', 'https://github.com/OwenCalvin/discord.ts', '', - 'https://www.npmjs.com/package/@typeit/discord!', + 'https://www.npmjs.com/package/@typeit/discord', '?docs', ]; setInterval(() => {