Fix broken role & channel exemptions (#115)

* Fix broken role & channel exemptions

* fix for citra

* Fix long broken logging exemption

* Typo

* Typo2
This commit is contained in:
Vamsi Krishna 2021-07-08 08:24:44 +05:30 committed by GitHub
parent e3ae371c57
commit bffc187300
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -39,7 +39,7 @@ function findArray(haystack: string | any[], arr: any[]) {
} }
function IsIgnoredCategory(categoryName: string) { function IsIgnoredCategory(categoryName: string) {
const IgnoredCategory = ['internal-development', 'internal-general', 'internal-casual', 'website']; const IgnoredCategory = ['internal', 'team', 'development'];
return IgnoredCategory.includes(categoryName); return IgnoredCategory.includes(categoryName);
} }
@ -79,30 +79,38 @@ client.on('guildMemberAdd', (member) => {
}); });
client.on('messageDelete', message => { client.on('messageDelete', message => {
let parent = (message.channel as discord.TextChannel).parent; const AllowedRoles = ['Administrators', 'Moderators', 'Team', 'Developer', 'Support', 'VIP'];
if (parent && IsIgnoredCategory(parent.name) === false) { let authorRoles = message.member?.roles?.cache?.map(x => x.name);
if (((message.content && message.content.startsWith('.') === false) || (message.attachments.array().length > 0)) && message.author?.bot === false) { if (!authorRoles) {
let messageAttachment = message.attachments.array()[0]?.proxyURL logger.error(`Unable to get the roles for ${message.author}`);
return;
}
if (!findArray(authorRoles, AllowedRoles)) {
let parent = (message.channel as discord.TextChannel).parent;
if (parent && IsIgnoredCategory(parent.name) === false) {
if (((message.content && message.content.startsWith('.') === false) || (message.attachments.array().length > 0)) && message.author?.bot === false) {
let messageAttachment = message.attachments.array()[0]?.proxyURL
const deletionEmbed = new discord.MessageEmbed() const deletionEmbed = new discord.MessageEmbed()
.setAuthor(message.author?.tag, message.author?.displayAvatarURL()) .setAuthor(message.author?.tag, message.author?.displayAvatarURL())
.setDescription(`Message deleted in ${message.channel.toString()}`) .setDescription(`Message deleted in ${message.channel.toString()}`)
.addField('Content', message.cleanContent || '<no content>', false) .addField('Content', message.cleanContent || '<no content>', false)
.setTimestamp() .setTimestamp()
.setColor('RED'); .setColor('RED');
if (messageAttachment) deletionEmbed.setImage(messageAttachment) if (messageAttachment) deletionEmbed.setImage(messageAttachment)
let userInfo = `${message.author?.toString()} (${message.author?.username}) (${message.author})` let userInfo = `${message.author?.toString()} (${message.author?.username}) (${message.author})`
state.msglogChannel.send(userInfo, { embed: deletionEmbed }); state.msglogChannel.send(userInfo, { embed: deletionEmbed });
logger.info(`${message.author?.username} ${message.author} deleted message: ${message.cleanContent}.`); logger.info(`${message.author?.username} ${message.author} deleted message: ${message.cleanContent}.`);
}
} }
} }
}); });
client.on('messageUpdate', (oldMessage, newMessage) => { client.on('messageUpdate', (oldMessage, newMessage) => {
const AllowedRoles = ['Administrators', 'Moderators', 'Team', 'VIP']; const AllowedRoles = ['Administrators', 'Moderators', 'Team', 'Developer', 'Support', 'VIP'];
let authorRoles = oldMessage.member?.roles?.cache?.map(x => x.name); let authorRoles = oldMessage.member?.roles?.cache?.map(x => x.name);
if (!authorRoles) { if (!authorRoles) {
logger.error(`Unable to get the roles for ${oldMessage.author}`); logger.error(`Unable to get the roles for ${oldMessage.author}`);