Merge pull request #86 from DarkView/k30_guildInfoSaver

[K30] Migrated GuildInfoSaver
This commit is contained in:
Miikka 2020-07-25 12:10:59 +03:00 committed by GitHub
commit df542654d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 38 additions and 0 deletions

View file

@ -0,0 +1,27 @@
import { zeppelinPlugin } from "../ZeppelinPluginBlueprint";
import { PluginData } from "knub";
import { AllowedGuilds } from "src/data/AllowedGuilds";
import { GuildInfoSaverPluginType } from "./types";
import { MINUTES } from "src/utils";
export const GuildInfoSaverPlugin = zeppelinPlugin<GuildInfoSaverPluginType>()("guild_info_saver", {
showInDocs: false,
onLoad(pluginData) {
const { state, guild } = pluginData;
state.allowedGuilds = new AllowedGuilds();
updateGuildInfo(pluginData);
state.updateInterval = setInterval(() => updateGuildInfo(pluginData), 60 * MINUTES);
},
});
function updateGuildInfo(pluginData: PluginData<GuildInfoSaverPluginType>) {
pluginData.state.allowedGuilds.updateInfo(
pluginData.guild.id,
pluginData.guild.name,
pluginData.guild.iconURL,
pluginData.guild.ownerID,
);
}

View file

@ -0,0 +1,9 @@
import { BasePluginType } from "knub";
import { AllowedGuilds } from "src/data/AllowedGuilds";
export interface GuildInfoSaverPluginType extends BasePluginType {
state: {
allowedGuilds: AllowedGuilds;
updateInterval: NodeJS.Timeout;
};
}

View file

@ -13,6 +13,7 @@ import { GuildConfigReloaderPlugin } from "./GuildConfigReloader/GuildConfigRelo
import { CasesPlugin } from "./Cases/CasesPlugin";
import { MutesPlugin } from "./Mutes/MutesPlugin";
import { TagsPlugin } from "./Tags/TagsPlugin";
import { GuildInfoSaverPlugin } from "./GuildInfoSaver/GuildInfoSaverPlugin";
import { CensorPlugin } from "./Censor/CensorPlugin";
import { RolesPlugin } from "./Roles/RolesPlugin";
import { SlowmodePlugin } from "./Slowmode/SlowmodePlugin";
@ -22,6 +23,7 @@ import { ChannelArchiverPlugin } from "./ChannelArchiver/ChannelArchiverPlugin";
// prettier-ignore
export const guildPlugins: Array<ZeppelinPluginBlueprint<any>> = [
AutoReactionsPlugin,
GuildInfoSaverPlugin,
CensorPlugin,
ChannelArchiverPlugin,
LocateUserPlugin,