forked from Galactic/galactic-bot
bugfixes
This commit is contained in:
parent
393337fbbd
commit
ce6b430771
@ -86,7 +86,7 @@ class PollCommand extends SlashCommand {
|
|||||||
}),
|
}),
|
||||||
fields: questions,
|
fields: questions,
|
||||||
color: 619452,
|
color: 619452,
|
||||||
timestamp: new Date()
|
timestamp: new Date().toISOString()
|
||||||
};
|
};
|
||||||
|
|
||||||
let pollMsg = null;
|
let pollMsg = null;
|
||||||
|
@ -52,7 +52,7 @@ class MuteInfraction extends Infraction {
|
|||||||
switch (setting.type) {
|
switch (setting.type) {
|
||||||
case 0:
|
case 0:
|
||||||
try {
|
try {
|
||||||
this.member.roles.add(role, this._reason);
|
await this.member.roles.add(role, this._reason);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.client.logger.debug(`Mute fail, type 1:\n${e.stack}`);
|
this.client.logger.debug(`Mute fail, type 1:\n${e.stack}`);
|
||||||
return this._fail('COMMAND_MUTE_1FAIL');
|
return this._fail('COMMAND_MUTE_1FAIL');
|
||||||
@ -63,9 +63,9 @@ class MuteInfraction extends Infraction {
|
|||||||
r.comparePositionTo(this.guild.members.me.roles.highest) < 0 &&
|
r.comparePositionTo(this.guild.members.me.roles.highest) < 0 &&
|
||||||
r.id !== this.guild.id);
|
r.id !== this.guild.id);
|
||||||
try {
|
try {
|
||||||
this.member.roles.set([
|
await this.member.roles.set([
|
||||||
...this.member.roles.cache.filter((r) => r.managed ||
|
...this.member.roles.cache.filter((r) => r.managed ||
|
||||||
r.comparePositionTo(this.guild.members.me.roles.highest) > 0 ||
|
r.comparePositionTo(this.guild.members.me.roles.highest) >= 0 ||
|
||||||
r.id === this.guild.id).values(),
|
r.id === this.guild.id).values(),
|
||||||
role
|
role
|
||||||
], this._reason);
|
], this._reason);
|
||||||
@ -79,8 +79,8 @@ class MuteInfraction extends Infraction {
|
|||||||
r.comparePositionTo(this.guild.members.me.roles.highest) < 0 &&
|
r.comparePositionTo(this.guild.members.me.roles.highest) < 0 &&
|
||||||
r.id !== this.guild.id);
|
r.id !== this.guild.id);
|
||||||
try {
|
try {
|
||||||
this.member.roles.set(this.member.roles.cache.filter((r) => r.managed ||
|
await this.member.roles.set(this.member.roles.cache.filter((r) => r.managed ||
|
||||||
r.comparePositionTo(this.guild.members.me.roles.highest) > 0 ||
|
r.comparePositionTo(this.guild.members.me.roles.highest) >= 0 ||
|
||||||
r.id === this.guild.id), this._reason);
|
r.id === this.guild.id), this._reason);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.client.logger.error(`Mute infraction failed to calculate removeable roles, might want to check this out.\n${error.stack || error}`);
|
this.client.logger.error(`Mute infraction failed to calculate removeable roles, might want to check this out.\n${error.stack || error}`);
|
||||||
@ -89,7 +89,7 @@ class MuteInfraction extends Infraction {
|
|||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
try {
|
try {
|
||||||
this.member.timeout(this.duration, this._reason);
|
await this.member.timeout(this.duration, this._reason);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
this.client.logger.error(`Mute timeout failed:\n${e.stack || e}`);
|
this.client.logger.error(`Mute timeout failed:\n${e.stack || e}`);
|
||||||
return this._fail(`COMMAND_MUTE_4FAIL`);
|
return this._fail(`COMMAND_MUTE_4FAIL`);
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
const { AuditLogEvent } = require("discord.js");
|
||||||
const { Observer, Infraction } = require("../../interfaces");
|
const { Observer, Infraction } = require("../../interfaces");
|
||||||
|
|
||||||
class AuditLogObserver extends Observer {
|
class AuditLogObserver extends Observer {
|
||||||
@ -118,11 +119,13 @@ class AuditLogObserver extends Observer {
|
|||||||
async _logRoleMute(oldMember, newMember) {
|
async _logRoleMute(oldMember, newMember) {
|
||||||
const { guildWrapper: wrapper } = newMember;
|
const { guildWrapper: wrapper } = newMember;
|
||||||
const settings = await wrapper.settings();
|
const settings = await wrapper.settings();
|
||||||
|
console.log(1);
|
||||||
if (!settings.moderation.channel) return undefined;
|
if (!settings.moderation.channel) return undefined;
|
||||||
|
|
||||||
const mutedRole = settings.mute.role;
|
const mutedRole = settings.mute.role;
|
||||||
if (!mutedRole) return undefined;
|
if (!mutedRole) return undefined;
|
||||||
const audit = await this._fetchFirstEntry(newMember.guild, newMember.user, 'MemberRoleUpdate');
|
const audit = await this._fetchFirstEntry(newMember.guild, newMember.user, 'MemberRoleUpdate');
|
||||||
|
console.log(audit);
|
||||||
if (!audit) return undefined;
|
if (!audit) return undefined;
|
||||||
let type = null;
|
let type = null;
|
||||||
|
|
||||||
@ -148,6 +151,7 @@ class AuditLogObserver extends Observer {
|
|||||||
|
|
||||||
async _fetchFirstEntry(guild, user, type, subtype = null) {
|
async _fetchFirstEntry(guild, user, type, subtype = null) {
|
||||||
if (!guild.members.me.permissions.has('ViewAuditLog')) return null;
|
if (!guild.members.me.permissions.has('ViewAuditLog')) return null;
|
||||||
|
type = AuditLogEvent[type];
|
||||||
const audit = await guild.fetchAuditLogs({ limit: 1, type });
|
const audit = await guild.fetchAuditLogs({ limit: 1, type });
|
||||||
if (audit.entries.size === 0) return null;
|
if (audit.entries.size === 0) return null;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
const { EmbedBuilder, Message } = require('discord.js');
|
const { EmbedBuilder, Message, ChannelType } = require('discord.js');
|
||||||
const { Util } = require('../../../utilities');
|
const { Util } = require('../../../utilities');
|
||||||
const { InvokerWrapper, MessageWrapper } = require('../../client/wrappers');
|
const { InvokerWrapper, MessageWrapper } = require('../../client/wrappers');
|
||||||
const { Observer, CommandError } = require('../../interfaces/');
|
const { Observer, CommandError } = require('../../interfaces/');
|
||||||
@ -314,13 +314,13 @@ class CommandHandler extends Observer {
|
|||||||
},
|
},
|
||||||
TEXT_CHANNELS: async (string) => {
|
TEXT_CHANNELS: async (string) => {
|
||||||
const args = Util.parseQuotes(string).map(([str]) => str);
|
const args = Util.parseQuotes(string).map(([str]) => str);
|
||||||
const channels = await guild.resolveChannels(args, null, (channel) => channel.type === 'GUILD_TEXT');
|
const channels = await guild.resolveChannels(args, null, (channel) => channel.type === ChannelType.GuildText);
|
||||||
if(!channels.length) return { error: true };
|
if(!channels.length) return { error: true };
|
||||||
return { value: channels };
|
return { value: channels };
|
||||||
},
|
},
|
||||||
VOICE_CHANNELS: async (string) => {
|
VOICE_CHANNELS: async (string) => {
|
||||||
const args = Util.parseQuotes(string).map(([str]) => str);
|
const args = Util.parseQuotes(string).map(([str]) => str);
|
||||||
const channels = await guild.resolveChannels(args, null, (channel) => channel.type === 'GUILD_VOICE');
|
const channels = await guild.resolveChannels(args, null, (channel) => channel.type === ChannelType.GuildVoice);
|
||||||
if (!channels.length) return { error: true };
|
if (!channels.length) return { error: true };
|
||||||
return { value: channels };
|
return { value: channels };
|
||||||
},
|
},
|
||||||
@ -389,12 +389,12 @@ class CommandHandler extends Observer {
|
|||||||
},
|
},
|
||||||
TEXT_CHANNEL: async (channel) => {
|
TEXT_CHANNEL: async (channel) => {
|
||||||
channel = await guild.resolveChannel(channel);
|
channel = await guild.resolveChannel(channel);
|
||||||
if(channel.type !== 'GUILD_TEXT') return { error: true };
|
if(channel.type !== ChannelType.GuildText) return { error: true };
|
||||||
return { error: false, value: channel };
|
return { error: false, value: channel };
|
||||||
},
|
},
|
||||||
VOICE_CHANNEL: async (channel) => {
|
VOICE_CHANNEL: async (channel) => {
|
||||||
channel = await guild.resolveChannel(channel);
|
channel = await guild.resolveChannel(channel);
|
||||||
if(channel.type !== 'GUILD_VOICE') return { error: true };
|
if(channel.type !== ChannelType.GuildVoice) return { error: true };
|
||||||
return { error: false, value: channel };
|
return { error: false, value: channel };
|
||||||
},
|
},
|
||||||
CHANNEL: async (channel) => {
|
CHANNEL: async (channel) => {
|
||||||
|
@ -191,7 +191,7 @@ class GuildLogger extends Observer {
|
|||||||
footer: {
|
footer: {
|
||||||
text: wrapper.format('MSGLOG_DELETE_FOOTER', { msgID: id, userID: author.id })
|
text: wrapper.format('MSGLOG_DELETE_FOOTER', { msgID: id, userID: author.id })
|
||||||
},
|
},
|
||||||
timestamp: message.createdAt,
|
timestamp: message.createdAt.toISOString(),
|
||||||
fields: []
|
fields: []
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -580,7 +580,7 @@ class GuildLogger extends Observer {
|
|||||||
},
|
},
|
||||||
description: wrapper.format('MSGLOG_EDIT_JUMP', { guild: guild.id, channel: channel.id, message: oldMessage.id }),
|
description: wrapper.format('MSGLOG_EDIT_JUMP', { guild: guild.id, channel: channel.id, message: oldMessage.id }),
|
||||||
color: CONSTANTS.COLORS.YELLOW,
|
color: CONSTANTS.COLORS.YELLOW,
|
||||||
timestamp: oldMessage.createdAt,
|
timestamp: oldMessage.createdAt.toISOString(),
|
||||||
fields: []
|
fields: []
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -95,12 +95,16 @@ class Infraction {
|
|||||||
if (moderation.channel) {
|
if (moderation.channel) {
|
||||||
if (moderation.infractions.includes(this.type)) {
|
if (moderation.infractions.includes(this.type)) {
|
||||||
this._moderationLog = await this.client.resolver.resolveChannel(moderation.channel, true, this.guild);
|
this._moderationLog = await this.client.resolver.resolveChannel(moderation.channel, true, this.guild);
|
||||||
if (!this._moderationLog) return;
|
if (this._moderationLog) {
|
||||||
this.modlogId = this._moderationLog.id;
|
this.modlogId = this._moderationLog.id;
|
||||||
try {
|
try {
|
||||||
this._logMessage = await this._moderationLog.send({ embeds: [this._embed()] });
|
this._logMessage = await this._moderationLog.send({ embeds: [this._embed()] });
|
||||||
this.modLogMessageId = this._logMessage.id;
|
this.modLogMessageId = this._logMessage.id;
|
||||||
} catch (e) { } //eslint-disable-line no-empty
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
} //eslint-disable-line no-empty
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.client.logger.debug(`Did not log infraction ${this.type} because it is not in the infractions.`);
|
this.client.logger.debug(`Did not log infraction ${this.type} because it is not in the infractions.`);
|
||||||
}
|
}
|
||||||
@ -160,7 +164,7 @@ class Infraction {
|
|||||||
name: `${this.target.displayName || this.target.username || this.target.name} (${this.targetId})`,
|
name: `${this.target.displayName || this.target.username || this.target.name} (${this.targetId})`,
|
||||||
icon_url: this.targetIcon //eslint-disable-line camelcase
|
icon_url: this.targetIcon //eslint-disable-line camelcase
|
||||||
},
|
},
|
||||||
timestamp: this.timestamp,
|
timestamp: new Date(this.timestamp).toISOString(),
|
||||||
color: this.color,
|
color: this.color,
|
||||||
footer: {
|
footer: {
|
||||||
text: `》 Case ${this.case}`
|
text: `》 Case ${this.case}`
|
||||||
|
Loading…
Reference in New Issue
Block a user