Fix member fetching in a few places

This commit is contained in:
Dragory 2019-05-02 08:21:11 +03:00
parent 78790627ad
commit 1e2b68119c
6 changed files with 19 additions and 19 deletions

View file

@ -171,11 +171,17 @@ export class LogsPlugin extends ZeppelinPlugin<ILogsPluginConfig> {
try {
formatted = await renderTemplate(format, {
...data,
userMention: user => {
userMention: async user => {
if (!user) return "";
if (user.user) user = user.user;
const member = this.guild.members.get(user.id);
let member: Member;
if (user.user) {
member = user;
user = member.user;
} else {
member = await this.getMember(user.id);
}
const memberConfig = this.getMatchingConfig({ member, userId: user.id });
if (memberConfig.ping_user) {
@ -389,11 +395,11 @@ export class LogsPlugin extends ZeppelinPlugin<ILogsPluginConfig> {
}
@d.event("userUpdate")
onUserUpdate(user: User, oldUser: User) {
async onUserUpdate(user: User, oldUser: User) {
if (!oldUser) return;
if (user.username !== oldUser.username || user.discriminator !== oldUser.discriminator) {
const member = this.guild.members.get(user.id) || { id: user.id, user };
const member = (await this.getMember(user.id)) || { id: user.id, user };
this.guildLogs.log(LogType.MEMBER_USERNAME_CHANGE, {
member: stripObjectToScalars(member, ["user"]),
oldName: `${oldUser.username}#${oldUser.discriminator}`,

View file

@ -1079,7 +1079,7 @@ export class ModActionsPlugin extends ZeppelinPlugin<IModActionsPluginConfig> {
// Verify we can act on each of the users specified
for (const userId of args.userIds) {
const member = this.guild.members.get(userId);
const member = this.guild.members.get(userId); // TODO: Get members on demand?
if (member && !this.canActOn(msg.member, member)) {
this.sendErrorMessage(msg.channel, "Cannot massban one or more users: insufficient permissions");
return;

View file

@ -341,13 +341,7 @@ export class MutesPlugin extends ZeppelinPlugin<IMutesPluginConfig> {
for (const [index, mute] of filteredMutes.entries()) {
const muteWithDetails = { ...mute };
let member = this.guild.members.get(mute.user_id);
if (!member) {
try {
member = await this.bot.getRESTGuildMember(this.guildId, mute.user_id);
this.guild.members.add(member);
} catch (e) {} // tslint:disable-line
}
const member = await this.getMember(mute.user_id);
if (!member) {
if (!bannedIds) {
@ -531,7 +525,7 @@ export class MutesPlugin extends ZeppelinPlugin<IMutesPluginConfig> {
let cleared = 0;
for (const mute of activeMutes) {
const member = this.guild.members.get(mute.user_id);
const member = await this.getMember(mute.user_id);
if (!member) continue;
if (!member.roles.includes(muteRole)) {
@ -559,7 +553,7 @@ export class MutesPlugin extends ZeppelinPlugin<IMutesPluginConfig> {
protected async clearExpiredMutes() {
const expiredMutes = await this.mutes.getExpiredMutes();
for (const mute of expiredMutes) {
const member = this.guild.members.get(mute.user_id);
const member = await this.getMember(mute.user_id);
if (!member) continue;
try {

View file

@ -162,7 +162,7 @@ export class ReactionRolesPlugin extends ZeppelinPlugin<IReactionRolesPluginConf
timeout: null,
changes: [],
applyFn: async () => {
const member = await this.guild.members.get(memberId);
const member = await this.getMember(memberId);
if (member) {
const newRoleIds = new Set(member.roles);
for (const change of newPendingRoleChangeObj.changes) {
@ -336,7 +336,7 @@ export class ReactionRolesPlugin extends ZeppelinPlugin<IReactionRolesPluginConf
const reactionRoles = await this.reactionRoles.getForMessage(msg.id);
if (reactionRoles.length === 0) return;
const member = this.guild.members.get(userId);
const member = await this.getMember(userId);
if (!member) return;
if (emoji.name === CLEAR_ROLES_EMOJI) {

View file

@ -297,7 +297,7 @@ export class SlowmodePlugin extends ZeppelinPlugin<ISlowmodePluginConfig> {
if (thisMsgLock.interrupted) return;
// Make sure this user is affected by the slowmode
const member = this.guild.members.get(msg.user_id);
const member = await this.getMember(msg.user_id);
const isAffected = this.hasPermission("is_affected", { channelId: channel.id, userId: msg.user_id, member });
if (!isAffected) return thisMsgLock.unlock();

View file

@ -203,7 +203,7 @@ export class TagsPlugin extends ZeppelinPlugin<ITagsPluginConfig> {
}
async onMessageCreate(msg: SavedMessage) {
const member = this.guild.members.get(msg.user_id);
const member = await this.getMember(msg.user_id);
if (!this.hasPermission("can_use", { member, channelId: msg.channel_id })) return;
if (!msg.data.content) return;