3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-19 08:05:01 +00:00

Add a generic bot alert log type. Use this in several places.

This commit is contained in:
Dragory 2019-05-04 19:18:16 +03:00
parent 718029e9a5
commit c7fc789c1e
8 changed files with 110 additions and 27 deletions

View file

@ -3,6 +3,8 @@ import { decorators as d, IPluginOptions } from "knub";
import { Member, TextChannel } from "eris";
import { renderTemplate } from "../templateFormatter";
import { createChunkedMessage, stripObjectToScalars } from "../utils";
import { LogType } from "../data/LogType";
import { GuildLogs } from "../data/GuildLogs";
interface IWelcomeMessageConfig {
send_dm: boolean;
@ -13,6 +15,8 @@ interface IWelcomeMessageConfig {
export class WelcomeMessagePlugin extends ZeppelinPlugin<IWelcomeMessageConfig> {
public static pluginName = "welcome_message";
protected logs: GuildLogs;
protected getDefaultOptions(): IPluginOptions<IWelcomeMessageConfig> {
return {
config: {
@ -23,6 +27,10 @@ export class WelcomeMessagePlugin extends ZeppelinPlugin<IWelcomeMessageConfig>
};
}
protected onLoad() {
this.logs = new GuildLogs(this.guildId);
}
@d.event("guildMemberAdd")
async onGuildMemberAdd(_, member: Member) {
const config = this.getConfig();
@ -39,7 +47,12 @@ export class WelcomeMessagePlugin extends ZeppelinPlugin<IWelcomeMessageConfig>
try {
createChunkedMessage(dmChannel, formatted);
} catch (e) {} // tslint:disable-line
} catch (e) {
this.logs.log(LogType.BOT_ALERT, {
body: `Failed send a welcome DM to {userMention(member)}`,
member: stripObjectToScalars(member),
});
}
}
if (config.send_to_channel) {
@ -48,7 +61,13 @@ export class WelcomeMessagePlugin extends ZeppelinPlugin<IWelcomeMessageConfig>
try {
createChunkedMessage(channel, formatted);
} catch (e) {} // tslint:disable-line
} catch (e) {
this.logs.log(LogType.BOT_ALERT, {
body: `Failed send a welcome message for {userMention(member)} to {channelMention(channel)}`,
member: stripObjectToScalars(member),
channel: stripObjectToScalars(channel),
});
}
}
}
}