diff --git a/package-lock.json b/package-lock.json index c308747..8be8f18 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bgsbot", - "version": "3.0.2", + "version": "3.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -75,6 +75,31 @@ "resolved": "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz", "integrity": "sha512-htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==" }, + "@discordjs/collection": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", + "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" + }, + "@discordjs/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "dependencies": { + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + } + } + }, "@gulp-sourcemaps/identity-map": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", @@ -529,9 +554,9 @@ } }, "@types/node": { - "version": "13.1.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.8.tgz", - "integrity": "sha512-6XzyyNM9EKQW4HKuzbo/CkOIjn/evtCmsU+MUM1xDfJ+3/rNjBttM1NgN7AOQvN6tP1Sl1D1PIKMreTArnxM9A==", + "version": "12.19.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.3.tgz", + "integrity": "sha512-8Jduo8wvvwDzEVJCOvS/G6sgilOLvvhn1eMmK3TW8/T217O7u1jdrK6ImKLv80tVryaPSVeKu6sjDEiFjd4/eg==", "dev": true }, "@types/qs": { @@ -602,6 +627,14 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -959,7 +992,8 @@ "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true }, "async-listener": { "version": "0.6.10", @@ -2018,15 +2052,25 @@ "dev": true }, "discord.js": { - "version": "11.5.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-11.5.1.tgz", - "integrity": "sha512-tGhV5xaZXE3Z+4uXJb3hYM6gQ1NmnSxp9PClcsSAYFVRzH6AJH74040mO3afPDMWEAlj8XsoPXXTJHTxesqcGw==", - "requires": { - "long": "^4.0.0", - "prism-media": "^0.0.3", - "snekfetch": "^3.6.4", - "tweetnacl": "^1.0.0", - "ws": "^6.0.0" + "version": "12.4.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.4.1.tgz", + "integrity": "sha512-KxOB8LOAN3GmrvkD6a6Fr1nlfArIFZ+q7Uqg4T/5duB90GZy9a0/Py2E+Y+eHKP6ZUCR2mbNMLCcHGjahiaNqA==", + "requires": { + "@discordjs/collection": "^0.1.6", + "@discordjs/form-data": "^3.0.1", + "abort-controller": "^3.0.0", + "node-fetch": "^2.6.1", + "prism-media": "^1.2.2", + "setimmediate": "^1.0.5", + "tweetnacl": "^1.0.3", + "ws": "^7.3.1" + }, + "dependencies": { + "ws": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", + "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==" + } } }, "dot-prop": { @@ -2342,6 +2386,11 @@ "es5-ext": "~0.10.14" } }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, "eventemitter2": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", @@ -4411,11 +4460,6 @@ "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", "dev": true }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -4861,6 +4905,11 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, "nodemon": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.6.tgz", @@ -5700,9 +5749,9 @@ "dev": true }, "prism-media": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-0.0.3.tgz", - "integrity": "sha512-c9KkNifSMU/iXT8FFTaBwBMr+rdVcN+H/uNv1o+CuFeTThNZNTOrQ+RgXA1yL/DeLk098duAeRPP3QNPNbhxYQ==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.2.tgz", + "integrity": "sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw==" }, "process-nextick-args": { "version": "2.0.1", @@ -6285,6 +6334,11 @@ } } }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -6449,11 +6503,6 @@ } } }, - "snekfetch": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/snekfetch/-/snekfetch-3.6.4.tgz", - "integrity": "sha512-NjxjITIj04Ffqid5lqr7XdgwM7X61c/Dns073Ly170bPQHLm6jkmelye/eglS++1nfTWktpP6Y2bFXjdPlQqdw==" - }, "socket.io-client": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-3.0.0.tgz", @@ -6973,9 +7022,9 @@ "dev": true }, "tweetnacl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.2.tgz", - "integrity": "sha512-+8aPRjmXgf1VqvyxSlBUzKzeYqVS9Ai8vZ28g+mL7dNQl1jlUTCMDZnvNQdAS1xTywMkIXwJsfipsR/6s2+syw==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" }, "type": { "version": "1.2.0", @@ -7451,6 +7500,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, "requires": { "async-limiter": "~1.0.0" } diff --git a/package.json b/package.json index 69c9b3e..af95537 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "bgsbot", - "version": "3.0.2", + "version": "3.1.0", "license": "Apache-2.0", "scripts": { "start": "gulp scripts && cross-env PORT=4002 pm2 start process.json --env production", @@ -12,7 +12,7 @@ "content-disposition": "^0.5.3", "cron": "^1.8.2", "debug": "^4.2.0", - "discord.js": "^11.5.1", + "discord.js": "^12.4.1", "express": "^4.17.1", "moment": "^2.29.1", "mongoose": "^5.10.13", @@ -29,7 +29,7 @@ "@types/mongoose": "^5.7.37", "@types/mongoose-paginate": "^5.0.8", "@types/morgan": "^1.9.2", - "@types/node": "^13.1.8", + "@types/node": "^12.19.3", "@types/request-promise-native": "^1.0.17", "cross-env": "^7.0.2", "gulp": "^4.0.2", diff --git a/src/modules/cron/autoReport.ts b/src/modules/cron/autoReport.ts index 55a6808..656ada0 100644 --- a/src/modules/cron/autoReport.ts +++ b/src/modules/cron/autoReport.ts @@ -15,10 +15,10 @@ */ import { CronJob } from 'cron'; -import { IGuildModel } from '../../db/models/index'; +import { IGuildModel } from '../../db/models'; import { Client, GuildChannel, TextChannel } from 'discord.js'; import { CronJobStore } from '../../interfaces/typings'; -import { BGSReport } from '../discord/commands/bgsReport'; +import { BGSReport } from '../discord/commands'; import App from '../../server'; export class AutoReport { @@ -32,7 +32,7 @@ export class AutoReport { let cronJob = new CronJob(cronPattern, async () => { try { console.log('CRONjob execute'); - let bgsChannel: GuildChannel = client.guilds.get(guild.guild_id).channels.get(guild.bgs_channel_id); + let bgsChannel: GuildChannel = client.guilds.cache.get(guild.guild_id).channels.cache.get(guild.bgs_channel_id); if (bgsChannel && bgsChannel.type === 'text') { let bgsReport = new BGSReport(); let embedArray = await bgsReport.getBGSReportEmbed(guild.guild_id, bgsChannel as TextChannel); @@ -57,8 +57,7 @@ export class AutoReport { time: guild.bgs_time }); cronJob.start(); - } - catch (err) { + } catch (err) { App.bugsnagClient.call(err, { metaData: { time: guild.bgs_time, @@ -80,7 +79,7 @@ export class AutoReport { try { let cronPattern = `${guild.bgs_time.split(':')[2]} ${guild.bgs_time.split(':')[1]} ${guild.bgs_time.split(':')[0]} * * *`; let cronJob = new CronJob(cronPattern, async () => { - let bgsChannel: GuildChannel = client.guilds.get(guild.guild_id).channels.get(guild.bgs_channel_id); + let bgsChannel: GuildChannel = client.guilds.cache.get(guild.guild_id).channels.cache.get(guild.bgs_channel_id); if (bgsChannel && bgsChannel.type === 'text') { let bgsReport = new BGSReport(); let embedArray = await bgsReport.getBGSReportEmbed(guild.guild_id, bgsChannel as TextChannel); @@ -97,8 +96,7 @@ export class AutoReport { time: guild.bgs_time }); cronJob.start(); - } - catch (err) { + } catch (err) { App.bugsnagClient.call(err, { metaData: { time: guild.bgs_time, @@ -121,7 +119,7 @@ export class AutoReport { try { let cronPattern = `${guild.bgs_time.split(':')[2]} ${guild.bgs_time.split(':')[1]} ${guild.bgs_time.split(':')[0]} * * *`; let cronJob = new CronJob(cronPattern, async () => { - let bgsChannel: GuildChannel = client.guilds.get(guild.guild_id).channels.get(guild.bgs_channel_id); + let bgsChannel: GuildChannel = client.guilds.cache.get(guild.guild_id).channels.cache.get(guild.bgs_channel_id); if (bgsChannel && bgsChannel.type === 'text') { let bgsReport = new BGSReport(); let embedArray = await bgsReport.getBGSReportEmbed(guild.guild_id, bgsChannel as TextChannel); @@ -135,8 +133,7 @@ export class AutoReport { this.jobs[indexOfJob].cronJob = cronJob; this.jobs[indexOfJob].time = guild.bgs_time; cronJob.start(); - } - catch (err) { + } catch (err) { App.bugsnagClient.call(err, { metaData: { time: guild.bgs_time, diff --git a/src/modules/discord/access.ts b/src/modules/discord/access.ts index d7c5fd9..80dadf4 100644 --- a/src/modules/discord/access.ts +++ b/src/modules/discord/access.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Guild, User } from 'discord.js'; import App from '../../server'; export class Access { @@ -23,15 +23,15 @@ export class Access { public static readonly BGS: string = "bgs"; public static readonly FORBIDDEN: string = "forbidden"; - public static async has(author: discord.User, guild: discord.Guild, perms: string[], allowAdmin = false): Promise { - let member = await guild.fetchMember(author) + public static async has(author: User, guild: Guild, perms: string[], allowAdmin = false): Promise { + let member = guild.member(author) if (allowAdmin && member.hasPermission("ADMINISTRATOR")) { return true; } else { let db = App.db; let guildId = member.guild.id; let roles = member.roles; - let guild = await db.model.guild.findOne({ guild_id: guildId }); + let guild = await db.model.guild.findOne({guild_id: guildId}); let bool = false; if (guild) { perms.forEach((permission, index) => { @@ -43,7 +43,7 @@ export class Access { case "admin": { let adminRoles = guild.admin_roles_id; adminRoles.forEach((role, index) => { - if (roles.has(role)) { + if (roles.cache.has(role)) { bool = true; } }); @@ -51,14 +51,14 @@ export class Access { break; case "bgs": { let bgsRole = guild.bgs_role_id; - if (roles.has(bgsRole)) { + if (roles.cache.has(bgsRole)) { bool = true; } } case "forbidden": { let forbiddenRoles = guild.forbidden_roles_id; forbiddenRoles.forEach((role, index) => { - if (roles.has(role)) { + if (roles.cache.has(role)) { bool = false; } }); diff --git a/src/modules/discord/client.ts b/src/modules/discord/client.ts index 560d1f5..e89ca53 100644 --- a/src/modules/discord/client.ts +++ b/src/modules/discord/client.ts @@ -14,25 +14,42 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Client, Message, User } from 'discord.js'; import { DiscordSecrets } from '../../secrets'; import { Responses } from './responseDict'; -import { Hi, Help, MyGuild, BGSRole, AdminRoles, ForbiddenRoles, BGSChannel, MonitorSystems, MonitorFactions, SystemStatus, FactionStatus, BGSReport, Sort, Chart, Theme, Tick } from './commands'; +import { + AdminRoles, + BGSChannel, + BGSReport, + BGSRole, + Chart, + FactionStatus, + ForbiddenRoles, + Help, + Hi, + MonitorFactions, + MonitorSystems, + MyGuild, + Sort, + SystemStatus, + Theme, + Tick +} from './commands'; import { HouseKeeping } from './houseKeeping'; import { HelpSchema } from '../../interfaces/typings'; import App from '../../server'; -import { DB } from '../../db/index'; +import { DB } from '../../db'; import { CustomFunctionality } from './custom' export class DiscordClient { - public client: discord.Client; + public client: Client; public commandsMap: Map; private houseKeeping: HouseKeeping; private db: DB; private custom: CustomFunctionality; constructor() { - this.client = new discord.Client(); + this.client = new Client(); this.commandsMap = new Map(); this.login(); this.listen(); @@ -77,11 +94,11 @@ export class DiscordClient { } }); - this.client.on("messageReactionAdd", (messageReaction, user) => { + this.client.on("messageReactionAdd", (messageReaction, user: User) => { let helpObject = this.commandsMap.get('help') as Help; if (!user.bot && messageReaction.message.id === helpObject.helpMessageID) { - if (!messageReaction.users.has(this.client.user.id)) { - messageReaction.remove(user); + if (!messageReaction.users.cache.has(this.client.user.id)) { + messageReaction.users.remove(user); } helpObject.emojiCaught(messageReaction, user); } @@ -138,7 +155,7 @@ export class DiscordClient { }); } - public getCommandArguments(message: discord.Message) { + public getCommandArguments(message: Message) { //removed replace(/\s+/g, ' ') since its causing issues with faction names with multiple spaces let messageString = message.content.replace(new RegExp(`<@!?${this.client.user.id}>`), "").trim(); let messageArray = messageString.split(" "); @@ -147,10 +164,10 @@ export class DiscordClient { if (messageArray.length > 1) { commandArguments = messageArray.slice(1, messageArray.length).join(" "); } - return { command, commandArguments } + return {command, commandArguments} } - public processNormal(message: discord.Message): void { + public processNormal(message: Message): void { let commandArguments = this.getCommandArguments(message); if (this.commandsMap.has(commandArguments.command)) { console.log(commandArguments.command + " command requested"); diff --git a/src/modules/discord/commands/adminRoles.ts b/src/modules/discord/commands/adminRoles.ts index 14cbdf8..68e5ad5 100644 --- a/src/modules/discord/commands/adminRoles.ts +++ b/src/modules/discord/commands/adminRoles.ts @@ -14,11 +14,11 @@ * limitations under the License. */ -import * as discord from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { DB } from '../../../db'; import { Access } from '../access'; +import { Message, MessageEmbed, Permissions } from 'discord.js'; export class AdminRoles { db: DB; @@ -27,7 +27,7 @@ export class AdminRoles { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -48,15 +48,15 @@ export class AdminRoles { } } - async add(message: discord.Message, argsArray: string[]) { + async add(message: Message, argsArray: string[]) { // Only the server admins can set the admin roles - let member = await message.guild.fetchMember(message.author) - if (member.hasPermission("ADMINISTRATOR")) { + let member = message.guild.member(message.author); + if (member.hasPermission(Permissions.FLAGS.ADMINISTRATOR)) { if (argsArray.length === 2) { let guildId = message.guild.id; let adminRoleId = argsArray[1]; - if (message.guild.roles.has(adminRoleId)) { + if (message.guild.roles.cache.has(adminRoleId)) { try { let guild = await this.db.model.guild.findOneAndUpdate( {guild_id: guildId}, @@ -95,7 +95,7 @@ export class AdminRoles { } } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN], true); if (argsArray.length === 2) { @@ -137,7 +137,7 @@ export class AdminRoles { } } - async list(message: discord.Message, argsArray: string[]) { + async list(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN], true); if (argsArray.length === 1) { @@ -147,13 +147,13 @@ export class AdminRoles { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.admin_roles_id && guild.admin_roles_id.length !== 0) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("Admin Roles"); embed.setColor([255, 0, 255]); let idList = ""; guild.admin_roles_id.forEach(id => { - if (message.guild.roles.has(id)) { - idList += `${id} - @${message.guild.roles.get(id).name}\n`; + if (message.guild.roles.cache.has(id)) { + idList += `${id} - @${message.guild.roles.cache.get(id).name}\n`; } else { idList += `${id} - Does not exist in Discord. Please delete this from BGSBot`; } @@ -210,7 +210,7 @@ export class AdminRoles { help() { return [ 'adminroles', - 'Adds, removes or lists the roles that should have administorial capability over BGSBot', + 'Adds, removes or lists the roles that should have administering capability over BGSBot', 'adminroles ', [ '`@BGSBot adminroles add 1234564789012345678`', diff --git a/src/modules/discord/commands/bgsChannel.ts b/src/modules/discord/commands/bgsChannel.ts index b66b9c3..97d5b08 100644 --- a/src/modules/discord/commands/bgsChannel.ts +++ b/src/modules/discord/commands/bgsChannel.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { DB } from '../../../db'; @@ -27,7 +27,7 @@ export class BGSChannel { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -48,14 +48,14 @@ export class BGSChannel { } } - async set(message: discord.Message, argsArray: string[]) { + async set(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 2) { let guildId = message.guild.id; let bgsChannelId = argsArray[1]; - if (message.guild.channels.has(bgsChannelId)) { + if (message.guild.channels.cache.has(bgsChannelId)) { try { let guild = await this.db.model.guild.findOneAndUpdate( {guild_id: guildId}, @@ -94,7 +94,7 @@ export class BGSChannel { } } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -133,7 +133,7 @@ export class BGSChannel { } } - async show(message: discord.Message, argsArray: string[]) { + async show(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -143,12 +143,12 @@ export class BGSChannel { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.bgs_channel_id && guild.bgs_channel_id.length !== 0) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("BGS Channel"); embed.setColor([255, 0, 255]); let id = ""; - if (message.guild.channels.has(guild.bgs_channel_id)) { - id = `${guild.bgs_channel_id} - @${message.guild.channels.get(guild.bgs_channel_id).name}\n`; + if (message.guild.channels.cache.has(guild.bgs_channel_id)) { + id = `${guild.bgs_channel_id} - @${message.guild.channels.cache.get(guild.bgs_channel_id).name}\n`; } else { id = `${guild.bgs_channel_id} - Does not exist in Discord. Please delete this from BGSBot`; } diff --git a/src/modules/discord/commands/bgsReport.ts b/src/modules/discord/commands/bgsReport.ts index 0b81b5d..324ceb5 100644 --- a/src/modules/discord/commands/bgsReport.ts +++ b/src/modules/discord/commands/bgsReport.ts @@ -14,8 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; -import { RichEmbed } from 'discord.js'; +import { Message, MessageEmbed, TextChannel } from 'discord.js'; import * as request from 'request-promise-native'; import { FullResponse, OptionsWithUrl } from 'request-promise-native'; import * as moment from 'moment'; @@ -42,7 +41,7 @@ export class BGSReport { this.tickTime = ""; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -59,13 +58,13 @@ export class BGSReport { } } - async get(message: discord.Message, argsArray: string[]) { + async get(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length === 1) { let guildId = message.guild.id; try { - let embedArray = await this.getBGSReportEmbed(guildId, message.channel as discord.TextChannel); + let embedArray = await this.getBGSReportEmbed(guildId, message.channel as TextChannel); for (let index = 0; index < embedArray.length; index++) { await message.channel.send(embedArray[index]); } @@ -81,7 +80,7 @@ export class BGSReport { } } - async settime(message: discord.Message, argsArray: string[]) { + async settime(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length === 2) { @@ -144,7 +143,7 @@ export class BGSReport { } } - async showtime(message: discord.Message, argsArray: string[]) { + async showtime(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -154,7 +153,7 @@ export class BGSReport { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.bgs_time && guild.bgs_time.length !== 0) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("BGS Reporting Time"); embed.setColor([255, 0, 255]); embed.addField("Ids and Names", `${guild.bgs_time} UTC`); @@ -204,7 +203,7 @@ export class BGSReport { } } - async unsettime(message: discord.Message, argsArray: string[]) { + async unsettime(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -244,7 +243,7 @@ export class BGSReport { } } - public async getBGSReportEmbed(guildId: string, channel: discord.TextChannel): Promise { + public async getBGSReportEmbed(guildId: string, channel: TextChannel): Promise { try { let tick = new Tick(); this.tickTime = (await tick.getTickData()).updated_at; @@ -1033,9 +1032,9 @@ export class BGSReport { } } let numberOfMessages = pagedFields.length; - let embedArray: RichEmbed[] = []; + let embedArray: MessageEmbed[] = []; for (let index = 0; index < numberOfMessages; index++) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); if (index === 0) { embed.setTitle("BGS REPORT"); } else { diff --git a/src/modules/discord/commands/bgsRole.ts b/src/modules/discord/commands/bgsRole.ts index a88054c..2ead204 100644 --- a/src/modules/discord/commands/bgsRole.ts +++ b/src/modules/discord/commands/bgsRole.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { DB } from '../../../db'; @@ -27,7 +27,7 @@ export class BGSRole { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -44,13 +44,13 @@ export class BGSRole { } } - async set(message: discord.Message, argsArray: string[]) { + async set(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 2) { let guildId = message.guild.id; let bgsRoleId = argsArray[1]; - if (message.guild.roles.has(bgsRoleId)) { + if (message.guild.roles.cache.has(bgsRoleId)) { try { let guild = await this.db.model.guild.findOneAndUpdate( @@ -90,7 +90,7 @@ export class BGSRole { } } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -129,7 +129,7 @@ export class BGSRole { } } - async show(message: discord.Message, argsArray: string[]) { + async show(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -139,12 +139,12 @@ export class BGSRole { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.bgs_role_id && guild.bgs_role_id.length !== 0) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("BGS Role"); embed.setColor([255, 0, 255]); let id = ""; - if (message.guild.channels.has(guild.bgs_channel_id)) { - id = `${guild.bgs_role_id} - @${message.guild.roles.get(guild.bgs_role_id).name}\n`; + if (message.guild.channels.cache.has(guild.bgs_channel_id)) { + id = `${guild.bgs_role_id} - @${message.guild.roles.cache.get(guild.bgs_role_id).name}\n`; } else { id = `${guild.bgs_role_id} - Does not exist in Discord. Please delete this from BGSBot`; } diff --git a/src/modules/discord/commands/chart.ts b/src/modules/discord/commands/chart.ts index 026374c..ffaa549 100644 --- a/src/modules/discord/commands/chart.ts +++ b/src/modules/discord/commands/chart.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageAttachment } from 'discord.js'; import * as request from 'request-promise-native'; import { FullResponse, OptionsWithUrl } from 'request-promise-native'; import * as contentDisposition from 'content-disposition'; @@ -30,7 +30,7 @@ export class Chart { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -47,7 +47,7 @@ export class Chart { } } - async get(message: discord.Message, argsArray: string[]) { + async get(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length >= 4 || (argsArray.length === 2 && argsArray[1] === 'tick')) { @@ -83,7 +83,7 @@ export class Chart { let response: FullResponse = await request.get(requestOptions); if (response.statusCode === 200) { - let attachment = new discord.Attachment(response.body as Buffer, contentDisposition.parse(response.headers['content-disposition']).parameters.filename); + let attachment = new MessageAttachment(response.body as Buffer, contentDisposition.parse(response.headers['content-disposition']).parameters.filename); message.channel.send(attachment); } else { App.bugsnagClient.call(response.statusMessage, { diff --git a/src/modules/discord/commands/factionStatus.ts b/src/modules/discord/commands/factionStatus.ts index 48fe480..5eb845e 100644 --- a/src/modules/discord/commands/factionStatus.ts +++ b/src/modules/discord/commands/factionStatus.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import * as request from 'request-promise-native'; import { FullResponse, OptionsWithUrl } from 'request-promise-native'; import * as moment from 'moment'; @@ -36,7 +36,7 @@ export class FactionStatus { this.tickTime = ""; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -53,7 +53,7 @@ export class FactionStatus { } } - async get(message: discord.Message, argsArray: string[]) { + async get(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length >= 2) { @@ -230,7 +230,7 @@ export class FactionStatus { } let numberOfMessages = Math.ceil(fieldRecord.length / 24); for (let index = 0; index < numberOfMessages; index++) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); if (index === 0) { embed.setTitle("FACTION STATUS"); } else { diff --git a/src/modules/discord/commands/forbiddenRoles.ts b/src/modules/discord/commands/forbiddenRoles.ts index 3248914..4a0e65e 100644 --- a/src/modules/discord/commands/forbiddenRoles.ts +++ b/src/modules/discord/commands/forbiddenRoles.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { DB } from '../../../db'; @@ -27,7 +27,7 @@ export class ForbiddenRoles { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -44,14 +44,14 @@ export class ForbiddenRoles { } } - async add(message: discord.Message, argsArray: string[]) { + async add(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN], true); if (argsArray.length === 2) { let guildId = message.guild.id; let forbiddenRoleId = argsArray[1]; - if (message.guild.roles.has(forbiddenRoleId)) { + if (message.guild.roles.cache.has(forbiddenRoleId)) { try { let guild = await this.db.model.guild.findOneAndUpdate( {guild_id: guildId}, @@ -90,7 +90,7 @@ export class ForbiddenRoles { } } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN], true); if (argsArray.length === 2) { @@ -132,7 +132,7 @@ export class ForbiddenRoles { } } - async list(message: discord.Message, argsArray: string[]) { + async list(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN], true); if (argsArray.length === 1) { @@ -142,13 +142,13 @@ export class ForbiddenRoles { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.forbidden_roles_id && guild.forbidden_roles_id.length !== 0) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("Forbidden Roles"); embed.setColor([255, 0, 255]); let idList = ""; guild.forbidden_roles_id.forEach(id => { - if (message.guild.roles.has(id)) { - idList += `${id} - @${message.guild.roles.get(id).name}\n`; + if (message.guild.roles.cache.has(id)) { + idList += `${id} - @${message.guild.roles.cache.get(id).name}\n`; } else { idList += `${id} - Does not exist in Discord. Please delete this from BGSBot`; } diff --git a/src/modules/discord/commands/help.ts b/src/modules/discord/commands/help.ts index a39356f..f526dc2 100644 --- a/src/modules/discord/commands/help.ts +++ b/src/modules/discord/commands/help.ts @@ -14,8 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; -import { Message, MessageReaction, RichEmbed, User } from 'discord.js'; +import { Message, MessageEmbed, MessageReaction, User } from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { HelpSchema } from '../../../interfaces/typings'; @@ -35,7 +34,7 @@ export class Help { this.helpMessageID = null; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -82,7 +81,7 @@ export class Help { } async display(message: Message) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setColor(6684774); embed.setTitle(`:grey_question: BGSBot Help`); embed.setDescription(`Help Associated with BGSBot commands`); @@ -117,12 +116,12 @@ export class Help { } } - async helpList(displayCommands: HelpSchema[], embed: RichEmbed, message: Message) { + async helpList(displayCommands: HelpSchema[], embed: MessageEmbed, message: Message) { displayCommands.forEach((help, index) => { embed.addField(`${index + 1}. ${help.command}`, help.helpMessage); }); - let member = await message.guild.fetchMember(message.author) + let member = message.guild.member(message.author); if (member) { return member.send(embed); } else { @@ -142,7 +141,7 @@ export class Help { } } - async helpDescription(command: HelpSchema, embed: RichEmbed, message: Message) { + async helpDescription(command: HelpSchema, embed: MessageEmbed, message: Message) { embed.addField("Command:", `@BGSBot ${command.command}`); embed.addField("Description", command.helpMessage); embed.addField("Template", command.template); @@ -152,7 +151,7 @@ export class Help { }); embed.addField("Examples", exampleString); - let member = await message.guild.fetchMember(message.author) + let member = message.guild.member(message.author); if (member) { return member.send(embed); } else { diff --git a/src/modules/discord/commands/hi.ts b/src/modules/discord/commands/hi.ts index b91eb96..7b8f277 100644 --- a/src/modules/discord/commands/hi.ts +++ b/src/modules/discord/commands/hi.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message } from 'discord.js'; export class Hi { - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { if (commandArguments.length === 0) { message.channel.send("Hey there!"); } diff --git a/src/modules/discord/commands/monitorFactions.ts b/src/modules/discord/commands/monitorFactions.ts index 9d07395..2ddcdb0 100644 --- a/src/modules/discord/commands/monitorFactions.ts +++ b/src/modules/discord/commands/monitorFactions.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import * as request from 'request-promise-native'; import { FullResponse, OptionsWithUrl } from 'request-promise-native'; import App from '../../../server'; @@ -30,7 +30,7 @@ export class MonitorFactions { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -47,7 +47,7 @@ export class MonitorFactions { } } - async add(message: discord.Message, argsArray: string[], primary: boolean = false) { + async add(message: Message, argsArray: string[], primary: boolean = false) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length >= 2) { @@ -116,11 +116,11 @@ export class MonitorFactions { } } - addprimary(message: discord.Message, argsArray: string[]) { + addprimary(message: Message, argsArray: string[]) { this.add(message, argsArray, true); } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length >= 2) { @@ -160,7 +160,7 @@ export class MonitorFactions { } } - async list(message: discord.Message, argsArray: string[]) { + async list(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -170,7 +170,7 @@ export class MonitorFactions { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.monitor_factions && guild.monitor_factions.length !== 0) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("MONITORED FACTIONS"); embed.setColor([255, 0, 255]); let factionList = ""; diff --git a/src/modules/discord/commands/monitorSystems.ts b/src/modules/discord/commands/monitorSystems.ts index 526fbd0..56d616b 100644 --- a/src/modules/discord/commands/monitorSystems.ts +++ b/src/modules/discord/commands/monitorSystems.ts @@ -14,7 +14,6 @@ * limitations under the License. */ -import * as discord from 'discord.js'; import * as request from 'request-promise-native'; import { FullResponse, OptionsWithUrl } from 'request-promise-native'; import App from '../../../server'; @@ -22,6 +21,7 @@ import { Responses } from '../responseDict'; import { DB } from '../../../db'; import { Access } from '../access'; import { EBGSSystemsV4WOHistory } from "../../../interfaces/typings"; +import { Message, MessageEmbed } from "discord.js"; export class MonitorSystems { db: DB; @@ -30,7 +30,7 @@ export class MonitorSystems { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -47,7 +47,7 @@ export class MonitorSystems { } } - async add(message: discord.Message, argsArray: string[], primary: boolean = false) { + async add(message: Message, argsArray: string[], primary: boolean = false) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length >= 2) { @@ -121,11 +121,11 @@ export class MonitorSystems { } } - addprimary(message: discord.Message, argsArray: string[]) { + addprimary(message: Message, argsArray: string[]) { this.add(message, argsArray, true); } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length >= 2) { @@ -165,7 +165,7 @@ export class MonitorSystems { } } - async list(message: discord.Message, argsArray: string[]) { + async list(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -175,7 +175,7 @@ export class MonitorSystems { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.monitor_systems && guild.monitor_systems.length !== 0) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("MONITORED SYSTEMS"); embed.setColor([255, 0, 255]); let systemList = ""; diff --git a/src/modules/discord/commands/myGuild.ts b/src/modules/discord/commands/myGuild.ts index 01d11eb..28f7f50 100644 --- a/src/modules/discord/commands/myGuild.ts +++ b/src/modules/discord/commands/myGuild.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message } from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { DB } from '../../../db'; @@ -27,7 +27,7 @@ export class MyGuild { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -44,9 +44,9 @@ export class MyGuild { } } - async set(message: discord.Message, argsArray: string[]) { + async set(message: Message, argsArray: string[]) { // Only the server admins can set the guild - let member = await message.guild.fetchMember(message.author) + let member = await message.guild.member(message.author) if (member.hasPermission("ADMINISTRATOR")) { if (argsArray.length === 1) { let guildId = message.guild.id; @@ -93,7 +93,7 @@ export class MyGuild { } } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { diff --git a/src/modules/discord/commands/sort.ts b/src/modules/discord/commands/sort.ts index bec0a66..ea2096d 100644 --- a/src/modules/discord/commands/sort.ts +++ b/src/modules/discord/commands/sort.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { DB } from '../../../db'; @@ -27,7 +27,7 @@ export class Sort { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -44,7 +44,7 @@ export class Sort { } } - async set(message: discord.Message, argsArray: string[]) { + async set(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 3) { @@ -108,7 +108,7 @@ export class Sort { } } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -150,7 +150,7 @@ export class Sort { } } - async show(message: discord.Message, argsArray: string[]) { + async show(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -160,7 +160,7 @@ export class Sort { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.sort && guild.sort.length !== 0 && guild.sort_order) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("Sorting"); embed.setColor([255, 0, 255]); let sortOrder = 'Disabled'; diff --git a/src/modules/discord/commands/systemStatus.ts b/src/modules/discord/commands/systemStatus.ts index a3fd458..197d26c 100644 --- a/src/modules/discord/commands/systemStatus.ts +++ b/src/modules/discord/commands/systemStatus.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import * as request from 'request-promise-native'; import { FullResponse, OptionsWithUrl } from 'request-promise-native'; import * as moment from 'moment'; @@ -35,7 +35,7 @@ export class SystemStatus { this.tickTime = ""; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -52,7 +52,7 @@ export class SystemStatus { } } - async get(message: discord.Message, argsArray: string[]) { + async get(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.BGS, Access.FORBIDDEN]); if (argsArray.length >= 2) { @@ -227,7 +227,7 @@ export class SystemStatus { // Multipage is not needed for systems due to number of faction restriction but still keeping it let numberOfMessages = Math.ceil(fieldRecord.length / 24); for (let index = 0; index < numberOfMessages; index++) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); if (index === 0) { embed.setTitle("SYSTEM STATUS"); } else { diff --git a/src/modules/discord/commands/theme.ts b/src/modules/discord/commands/theme.ts index 686cd10..a714ef9 100644 --- a/src/modules/discord/commands/theme.ts +++ b/src/modules/discord/commands/theme.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import * as discord from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { DB } from '../../../db'; @@ -27,7 +27,7 @@ export class Theme { this.db = App.db; } - exec(message: discord.Message, commandArguments: string): void { + exec(message: Message, commandArguments: string): void { let argsArray: string[] = []; if (commandArguments.length !== 0) { argsArray = commandArguments.split(" "); @@ -44,7 +44,7 @@ export class Theme { } } - async set(message: discord.Message, argsArray: string[]) { + async set(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 2) { @@ -95,7 +95,7 @@ export class Theme { } } - async remove(message: discord.Message, argsArray: string[]) { + async remove(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -136,7 +136,7 @@ export class Theme { } } - async show(message: discord.Message, argsArray: string[]) { + async show(message: Message, argsArray: string[]) { try { await Access.has(message.author, message.guild, [Access.ADMIN, Access.FORBIDDEN]); if (argsArray.length === 1) { @@ -146,7 +146,7 @@ export class Theme { let guild = await this.db.model.guild.findOne({guild_id: guildId}); if (guild) { if (guild.theme) { - let embed = new discord.RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("Theme"); embed.setColor([255, 0, 255]); embed.addField("Theme: ", guild.theme); diff --git a/src/modules/discord/commands/tick.ts b/src/modules/discord/commands/tick.ts index 8aef46b..eb3cb57 100644 --- a/src/modules/discord/commands/tick.ts +++ b/src/modules/discord/commands/tick.ts @@ -17,7 +17,7 @@ import * as request from 'request-promise-native'; import { FullResponse, OptionsWithUrl } from 'request-promise-native'; import * as moment from 'moment'; -import { Message, RichEmbed } from 'discord.js'; +import { Message, MessageEmbed } from 'discord.js'; import App from '../../../server'; import { Responses } from '../responseDict'; import { DB } from '../../../db'; @@ -55,7 +55,7 @@ export class Tick { if (argsArray.length === 1) { try { let lastTick = await this.getTickData(); - let embed = new RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("Tick"); embed.setColor([255, 0, 255]); let lastTickFormattedTime = moment(lastTick.time).utc().format('HH:mm'); diff --git a/src/modules/listener/tickDetector.ts b/src/modules/listener/tickDetector.ts index f80145c..ad55c77 100644 --- a/src/modules/listener/tickDetector.ts +++ b/src/modules/listener/tickDetector.ts @@ -18,7 +18,7 @@ import { io } from 'socket.io-client'; import * as moment from 'moment'; import App from '../../server'; import { IGuildModel } from '../../db/models'; -import { Client, GuildChannel, RichEmbed, TextChannel } from 'discord.js'; +import { Client, GuildChannel, MessageEmbed, TextChannel } from 'discord.js'; import { Socket } from 'socket.io-client/build/socket'; export class TickDetector { @@ -38,9 +38,9 @@ export class TickDetector { for (let guild of this.guilds) { try { if (guild.announce_tick && guild.bgs_channel_id && guild.bgs_channel_id.length > 0) { - let bgsChannel: GuildChannel = client.guilds.get(guild.guild_id).channels.get(guild.bgs_channel_id); + let bgsChannel: GuildChannel = client.guilds.cache.get(guild.guild_id).channels.cache.get(guild.bgs_channel_id); if (bgsChannel && bgsChannel.type === 'text') { - let embed = new RichEmbed(); + let embed = new MessageEmbed(); embed.setTitle("Tick Detected"); embed.setColor([255, 0, 255]); let lastTickFormattedTime = moment(tickTime).utc().format('HH:mm'); diff --git a/src/version.ts b/src/version.ts index 6a8ba75..f205372 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const Version = '3.0.2'; +export const Version = '3.1.0';