Update to Knub 14.0.0 and make changes to plugins accordingly

This commit is contained in:
Dragory 2019-01-03 06:15:28 +02:00
parent 4a33932ffa
commit b0cd8762f1
19 changed files with 57 additions and 25 deletions

6
package-lock.json generated
View file

@ -2155,9 +2155,9 @@
"dev": true
},
"knub": {
"version": "13.1.0",
"resolved": "https://registry.npmjs.org/knub/-/knub-13.1.0.tgz",
"integrity": "sha512-u5wdOxnDRRnol4/vixbKPoV6fAxMVV60kmz/WM1NH6f3z1rfIQJuSlj1eHtmIZTYp0PAI92/YuqgJ+aQuOYGyg==",
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/knub/-/knub-14.0.0.tgz",
"integrity": "sha512-okVS+72XBoSvrV+5xwqezPQQCAfrNe0uPIbHIe/PqyuiKURC7V6VflWAEg5mSofC9Lc5uAnU7sMyLqhFIGPBNQ==",
"requires": {
"escape-string-regexp": "^1.0.5",
"lodash.at": "^4.6.0",

View file

@ -33,7 +33,7 @@
"escape-string-regexp": "^1.0.5",
"humanize-duration": "^3.15.0",
"js-yaml": "^3.12.0",
"knub": "^13.1.0",
"knub": "^14.0.0",
"lodash.at": "^4.6.0",
"lodash.chunk": "^4.2.0",
"lodash.difference": "^4.5.0",

View file

@ -75,29 +75,30 @@ connect().then(async conn => {
const basePlugins = ["message_saver", "cases", "mutes"];
const bot = new Knub(client, {
plugins: {
plugins: [
// Base plugins (always enabled)
message_saver: MessageSaverPlugin,
cases: CasesPlugin,
mutes: MutesPlugin,
MessageSaverPlugin,
CasesPlugin,
MutesPlugin,
// Regular plugins
utility: UtilityPlugin,
mod_actions: ModActionsPlugin,
logs: LogsPlugin,
post: PostPlugin,
reaction_roles: ReactionRolesPlugin,
censor: CensorPlugin,
persist: PersistPlugin,
spam: SpamPlugin,
tags: TagsPlugin,
slowmode: SlowmodePlugin,
starboard: StarboardPlugin
},
globalPlugins: {
bot_control: BotControlPlugin,
log_server: LogServerPlugin
},
UtilityPlugin,
ModActionsPlugin,
LogsPlugin,
PostPlugin,
ReactionRolesPlugin,
CensorPlugin,
PersistPlugin,
SpamPlugin,
TagsPlugin,
SlowmodePlugin,
StarboardPlugin
],
globalPlugins: [
BotControlPlugin,
LogServerPlugin
],
options: {
getEnabledPlugins(guildId, guildConfig): string[] {

View file

@ -9,6 +9,8 @@ let activeReload: [string, string] = null;
* A global plugin that allows bot owners to control the bot
*/
export class BotControlPlugin extends GlobalPlugin {
public static pluginName = 'bot_control';
getDefaultOptions() {
return {
config: {

View file

@ -8,6 +8,8 @@ import { ZeppelinPlugin } from "./ZeppelinPlugin";
import { GuildActions } from "../data/GuildActions";
export class CasesPlugin extends ZeppelinPlugin {
public static pluginName = 'cases';
protected actions: GuildActions;
protected cases: GuildCases;

View file

@ -15,6 +15,8 @@ import { GuildSavedMessages } from "../data/GuildSavedMessages";
import { SavedMessage } from "../data/entities/SavedMessage";
export class CensorPlugin extends Plugin {
public static pluginName = 'censor';
protected serverLogs: GuildLogs;
protected savedMessages: GuildSavedMessages;

View file

@ -12,6 +12,8 @@ function notFound(res: ServerResponse) {
}
export class LogServerPlugin extends GlobalPlugin {
public static pluginName = 'log_server';
protected archives: GuildArchives;
protected server: http.Server;

View file

@ -36,6 +36,8 @@ const unknownUser = {
};
export class LogsPlugin extends Plugin {
public static pluginName = 'logs';
protected guildLogs: GuildLogs;
protected savedMessages: GuildSavedMessages;
protected archives: GuildArchives;

View file

@ -4,6 +4,8 @@ import { GuildSavedMessages } from "../data/GuildSavedMessages";
import { successMessage } from "../utils";
export class MessageSaverPlugin extends Plugin {
public static pluginName = 'message_saver';
protected savedMessages: GuildSavedMessages;
getDefaultOptions() {

View file

@ -37,6 +37,8 @@ interface IIgnoredEvent {
const CASE_LIST_REASON_MAX_LENGTH = 80;
export class ModActionsPlugin extends ZeppelinPlugin {
public static pluginName = 'mod_actions';
protected actions: GuildActions;
protected mutes: GuildMutes;
protected cases: GuildCases;

View file

@ -10,6 +10,8 @@ import { LogType } from "../data/LogType";
import { GuildLogs } from "../data/GuildLogs";
export class MutesPlugin extends ZeppelinPlugin {
public static pluginName = 'mutes';
protected actions: GuildActions;
protected mutes: GuildMutes;
protected cases: GuildCases;

View file

@ -7,6 +7,8 @@ import { LogType } from "../data/LogType";
import { stripObjectToScalars } from "../utils";
export class PersistPlugin extends Plugin {
public static pluginName = 'persist';
protected persistedData: GuildPersistedData;
protected logs: GuildLogs;

View file

@ -5,6 +5,8 @@ import { GuildSavedMessages } from "../data/GuildSavedMessages";
import { ISavedMessageData } from "../data/entities/SavedMessage";
export class PostPlugin extends Plugin {
public static pluginName = 'post';
protected savedMessages: GuildSavedMessages;
onLoad() {

View file

@ -10,6 +10,8 @@ type CustomEmoji = {
} & Emoji;
export class ReactionRolesPlugin extends Plugin {
public static pluginName = 'reaction_roles';
protected reactionRoles: GuildReactionRoles;
getDefaultOptions() {

View file

@ -5,6 +5,8 @@ import { GuildSlowmodes } from "../data/GuildSlowmodes";
import humanizeDuration from "humanize-duration";
export class SlowmodePlugin extends Plugin {
public static pluginName = 'slowmode';
protected slowmodes: GuildSlowmodes;
protected clearInterval;

View file

@ -43,6 +43,8 @@ const MAX_INTERVAL = 300;
const SPAM_ARCHIVE_EXPIRY_DAYS = 90;
export class SpamPlugin extends Plugin {
public static pluginName = 'spam';
protected actions: GuildActions;
protected logs: GuildLogs;
protected archives: GuildArchives;

View file

@ -16,9 +16,10 @@ import path from "path";
import moment from "moment-timezone";
import { GuildSavedMessages } from "../data/GuildSavedMessages";
import { SavedMessage } from "../data/entities/SavedMessage";
import url from "url";
export class StarboardPlugin extends ZeppelinPlugin {
public static pluginName = 'starboard';
protected starboards: GuildStarboards;
protected savedMessages: GuildSavedMessages;

View file

@ -4,6 +4,8 @@ import { errorMessage, successMessage } from "../utils";
import { GuildTags } from "../data/GuildTags";
export class TagsPlugin extends Plugin {
public static pluginName = 'tags';
protected tags: GuildTags;
getDefaultOptions() {

View file

@ -19,6 +19,8 @@ const CLEAN_COMMAND_DELETE_DELAY = 5000;
const activeReloads: Map<string, TextChannel> = new Map();
export class UtilityPlugin extends ZeppelinPlugin {
public static pluginName = 'utility';
protected logs: GuildLogs;
protected cases: GuildCases;
protected savedMessages: GuildSavedMessages;