Skip to content

Commit

Permalink
Merge pull request #1 from Googer/main-dev
Browse files Browse the repository at this point in the history
Back up to main-dev
  • Loading branch information
msten19 authored Mar 10, 2020
2 parents 630295c + 9772362 commit 7df9ddc
Show file tree
Hide file tree
Showing 113 changed files with 1,433 additions and 853 deletions.
2 changes: 1 addition & 1 deletion app/db.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class DBManager {

async initialize(client) {
await this.init();
client.guilds.forEach(guild =>
client.guilds.cache.forEach(guild =>
this.insertIfAbsent('Guild', Object.assign({},
{
snowflake: guild.id
Expand Down
99 changes: 52 additions & 47 deletions app/helper.js
Original file line number Diff line number Diff line change
@@ -1,55 +1,61 @@
"use strict";

const log = require('loglevel').getLogger('Helper'),
settings = require('../data/settings'),
{StaticPool} = require('node-worker-threads-pool'),
text = require('../data/text'),
{Team} = require('./constants'),
settings = require('../data/settings');
{Team} = require('./constants');

class Helper {
constructor() {
this.text = text;
this.client = null;
this.notifyClient = null;

// cache of emoji ids, populated on client login
this.emojis = null;

// pool of notification clients (just 1 for now)
this.notificationThreadPool = new StaticPool({
size: 1,
task: './app/send-message-worker.js'
});
}

setClient(client) {
this.client = client;

this.emojis = new Map(this.client.emojis.map(emoji => [emoji.name.toLowerCase(), emoji]));
this.emojis = new Map(this.client.emojis.cache.map(emoji => [emoji.name.toLowerCase(), emoji]));

// map out some shortcuts per connected guild, so that a lengthy "find" is not required constantly
// TODO: Some day instead of using a single configurable settings channel name, allow each guild to set a bot channel in DB
this.guild = new Map(this.client.guilds.map(guild => {
const roles = new Map(guild.roles.map(role => [role.name.toLowerCase(), role]));
this.guild = new Map(this.client.guilds.cache.map(guild => {
const roles = new Map(guild.roles.cache.map(role => [role.name.toLowerCase(), role]));

return [
guild.id,
{
channels: {
botLab: guild.channels.find(channel => {
botLab: guild.channels.cache.find(channel => {
return channel.name === settings.channels["bot-lab"];
}),
modBotLab: guild.channels.find(channel => {
modBotLab: guild.channels.cache.find(channel => {
return channel.name === settings.channels["mod-bot-lab"];
}),
unown: guild.channels.find(channel => {
unown: guild.channels.cache.find(channel => {
return channel.name === settings.channels.unown;
}),
exAnnounceChannel: guild.channels.find(channel => {
exAnnounceChannel: guild.channels.cache.find(channel => {
return channel.name === settings.channels["ex-gym-raids"];
}),
pvp: guild.channels.find(channel => {
pvp: guild.channels.cache.find(channel => {
return channel.name === settings.channels["pvp"];
}),
botUpdates: guild.channels.find(channel => {
botUpdates: guild.channels.cache.find(channel => {
return channel.name === settings.channels['bot-updates'];
})
},
categories: {
pvp: guild.channels.find(channel => {
pvp: guild.channels.cache.find(channel => {
return channel.name === settings.categories["pvp"] && channel.type === 'category';
})
},
Expand Down Expand Up @@ -82,29 +88,29 @@ class Helper {
guild.id,
{
channels: {
botLab: guild.channels.find(channel => {
botLab: guild.channels.cache.find(channel => {
return channel.name === settings.channels["bot-lab"];
}),
modBotLab: guild.channels.find(channel => {
modBotLab: guild.channels.cache.find(channel => {
return channel.name === settings.channels["mod-bot-lab"];
}),
unown: guild.channels.find(channel => {
unown: guild.channels.cache.find(channel => {
return channel.name === settings.channels.unown;
}),
exAnnounceChannel: guild.channels.find(channel => {
exAnnounceChannel: guild.channels.cache.find(channel => {
return channel.name === settings.channels["ex-gym-raids"];
}),
pvp: guild.channels.find(channel => {
pvp: guild.channels.cache.find(channel => {
return channel.name === settings.channels["pvp"];
}),
help: null,
},
categories: {
pvp: guild.channels.find(channel => {
pvp: guild.channels.cache.find(channel => {
return channel.name === settings.categories["pvp"];
})
},
roles: new Map(guild.roles.map(role => [role.name.toLowerCase(), role])),
roles: new Map(guild.roles.cache.map(role => [role.name.toLowerCase(), role])),
emojis: null
}
]);
Expand Down Expand Up @@ -167,12 +173,12 @@ class Helper {
});
}

setNotifyClient(client) {
this.notifyClient = client;
}

getMemberForNotification(guildId, memberId) {
return this.notifyClient.guilds.get(guildId).members.get(memberId)
sendNotificationMessages(messages) {
if (!!messages && messages.length > 0) {
return this.notificationThreadPool.exec(messages);
} else {
return Promise.resolve();
}
}

getExRaidAnnounceChannel(guild) {
Expand All @@ -197,8 +203,8 @@ class Helper {
moderatorRole.id :
-1;

isModOrAdmin = message.member.roles.has(adminRoleId) ||
message.member.roles.has(moderatorRoleId);
isModOrAdmin = message.member.roles.cache.has(adminRoleId) ||
message.member.roles.cache.has(moderatorRoleId);
}
return isModOrAdmin || this.client.isOwner(message.author);
}
Expand All @@ -212,7 +218,7 @@ class Helper {
botModRole.id :
-1;

isBotMod = message.member.roles.has(botRoleId);
isBotMod = message.member.roles.cache.has(botRoleId);
}

return isModOrAdmin || isBotMod || this.client.isOwner(message.author);
Expand Down Expand Up @@ -255,7 +261,7 @@ class Helper {
return guild.channels.botUpdates;
}

getPvPCategory(channel){
getPvPCategory(channel) {
const guild = this.guild.get(channel.guild.id);
return guild.categories.pvp;
}
Expand All @@ -275,15 +281,15 @@ class Helper {
getTeam(member) {
const roles = this.guild.get(member.guild.id).roles;

if (roles.has('instinct') && member.roles.has(roles.get('instinct').id)) {
if (roles.has('instinct') && member.roles.cache.has(roles.get('instinct').id)) {
return Team.INSTINCT;
}

if (roles.has('mystic') && member.roles.has(roles.get('mystic').id)) {
if (roles.has('mystic') && member.roles.cache.has(roles.get('mystic').id)) {
return Team.MYSTIC;
}

if (roles.has('valor') && member.roles.has(roles.get('valor').id)) {
if (roles.has('valor') && member.roles.cache.has(roles.get('valor').id)) {
return Team.VALOR;
}

Expand All @@ -306,15 +312,15 @@ class Helper {
// replace guild related variables (if any exist)
const guildId = message && message.guild && message.guild.id ?
message.guild.id :
Array.from(this.client.guilds)
.find(guild => guild[1].members.has(message.author.id))[0];
Array.from(this.client.guilds.cache)
.find(guild => guild[1].members.cache.has(message.author.id))[0];

let botChannelString = !!guildId ?
this.guild.get(guildId).channels.botLab.toString() :
`#${settings.channels["bot-lab"]}`;
let pvpChannelString = !!guildId ?
this.guild.get(guildId).channels.pvp.toString() :
`#${settings.channels["pvp"]}`;
let botChannelString = !!guildId ?
this.guild.get(guildId).channels.botLab.toString() :
`#${settings.channels["bot-lab"]}`;
let pvpChannelString = !!guildId ?
this.guild.get(guildId).channels.pvp.toString() :
`#${settings.channels["pvp"]}`;

text = text.replace(/\${bot-channel}/g, botChannelString);
text = text.replace(/\${pvp-channel}/g, pvpChannelString);
Expand All @@ -325,7 +331,7 @@ class Helper {

//check if channel exists by name in a specific gulid
doesChannelExist(channelName, guildId) {
const channels = this.client.guilds.get(guildId).channels.array();
const channels = this.client.guilds.resolve(guildId).channels.cache.array();
for (let i = 0; i < channels.length; i++) {
const chan = channels[i];
if (chan.name === channelName && channels[i].permissionsFor(this.client.user.id).has('VIEW_CHANNEL')) {
Expand All @@ -338,8 +344,7 @@ class Helper {

//check if channel is child of a category
isChannelChild(channelId) {
const channel = this.client.channels.get(channelId);
const channels = this.client.channels.array();
const channels = this.client.channels.cache.array();
for (let i = 0; i < channels.length; i++) {
const check = channels[i];
if (check.children) {
Expand All @@ -358,7 +363,7 @@ class Helper {

// Gets channel based on provided name
getChannelForName(channelName, guildId) {
const channels = this.client.guilds.get(guildId).channels.array();
const channels = this.client.guilds.resolve(guildId).channels.cache.array();
for (let i = 0; i < channels.length; i++) {
const channel = channels[i];
if (channel.name === channelName && channels[i].permissionsFor(this.client.user.id).has('VIEW_CHANNEL')) {
Expand All @@ -372,7 +377,7 @@ class Helper {
// Get a channel's category
getParentChannel(channelId) {
if (this.isChannelChild(channelId)) {
const channels = this.client.channels.array();
const channels = this.client.channels.cache.array();
for (let i = 0; i < channels.length; i++) {
const channel = channels[i];
if (channel.children) {
Expand All @@ -392,7 +397,7 @@ class Helper {

// Get channels below a specified category
childrenForCategory(categoryId) {
const channel = this.client.channels.get(categoryId);
const channel = this.client.channels.cache.get(categoryId);
if (channel.children) {
return channel.children.array();
} else {
Expand Down
2 changes: 1 addition & 1 deletion app/map.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class Map {
this.regions = {};

for (const region of regions) {
const channelName = this.client.channels.get(region.channelId).name,
const channelName = this.client.channels.cache.get(region.channelId).name,
regionRaw = await Region.getRegionsRaw(region.channelId)
.catch(error => null),
regionObject = !!regionRaw ?
Expand Down
Loading

0 comments on commit 7df9ddc

Please sign in to comment.