Merge branch 'master' into custom-success-emoji

This commit is contained in:
Miikka 2020-01-12 13:39:59 +02:00 committed by GitHub
commit 4e22d521f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 28 additions and 7 deletions

View file

@ -2776,9 +2776,9 @@
}
},
"knub": {
"version": "28.0.0",
"resolved": "https://registry.npmjs.org/knub/-/knub-28.0.0.tgz",
"integrity": "sha512-dhLjlQP32AbkXoD0tUFrqa8/Emh/U5lvYXNCz+bIWiAlzYr1cQKRuh9qNjAL944sCWmtfhKXVMXRFS99P6M7qw==",
"version": "29.0.0",
"resolved": "https://registry.npmjs.org/knub/-/knub-29.0.0.tgz",
"integrity": "sha512-jnWG/wuh2PogBDwwrYKGw0rI29quk0NEsC/inoOi0l5YbtzoIpK6Qj9BsZf/vjgtIeTemiJySlQZ7HeailYexQ==",
"requires": {
"escape-string-regexp": "^2.0.0",
"knub-command-manager": "^7.0.0",

View file

@ -32,7 +32,7 @@
"humanize-duration": "^3.15.0",
"io-ts": "^2.0.0",
"js-yaml": "^3.13.1",
"knub": "^28.0.0",
"knub": "^29.0.0",
"knub-command-manager": "^7.0.0",
"last-commit-log": "^2.1.0",
"lodash.chunk": "^4.2.0",

View file

@ -4,7 +4,7 @@ import yaml from "js-yaml";
import fs from "fs";
const fsp = fs.promises;
import { Knub, logger, PluginError, Plugin, IGuildConfig } from "knub";
import { Knub, logger, PluginError, Plugin, IGlobalConfig, IGuildConfig, IGuildData } from "knub";
import { SimpleError } from "./SimpleError";
import DiscordRESTError from "eris/lib/errors/DiscordRESTError"; // tslint:disable-line
@ -75,7 +75,7 @@ import { customArgumentTypes } from "./customArgumentTypes";
import { errorMessage, successMessage } from "./utils";
import { startUptimeCounter } from "./uptime";
import { AllowedGuilds } from "./data/AllowedGuilds";
import { IGuildData } from "knub/dist/Knub";
import { IZeppelinGuildConfig, IZeppelinGlobalConfig } from "./types";
logger.info("Connecting to database");
connect().then(async conn => {
@ -94,7 +94,7 @@ connect().then(async conn => {
const allowedGuilds = new AllowedGuilds();
const guildConfigs = new Configs();
const bot = new Knub(client, {
const bot = new Knub<IZeppelinGuildConfig, IZeppelinGlobalConfig>(client, {
plugins: availablePlugins,
globalPlugins: availableGlobalPlugins,

View file

@ -8,6 +8,7 @@ import { deepKeyIntersect, isSnowflake, isUnicodeEmoji, resolveMember, resolveUs
import { Member, User } from "eris";
import { performance } from "perf_hooks";
import { decodeAndValidateStrict, StrictValidationError } from "../validatorUtils";
import { TZeppelinKnub } from "../types";
const SLOW_RESOLVE_THRESHOLD = 1500;
@ -15,6 +16,8 @@ export class GlobalZeppelinPlugin<TConfig extends {} = IBasePluginConfig> extend
public static configSchema: t.TypeC<any>;
public static dependencies = [];
protected readonly knub: TZeppelinKnub;
/**
* Since we want to do type checking without creating instances of every plugin,
* we need a static version of getDefaultOptions(). This static version is then,

View file

@ -23,6 +23,8 @@ import DiscordRESTError from "eris/lib/errors/DiscordRESTError"; // tslint:disab
import { performance } from "perf_hooks";
import { decodeAndValidateStrict, StrictValidationError, validate } from "../validatorUtils";
import { SimpleCache } from "../SimpleCache";
import { Knub } from "knub/dist/Knub";
import { TZeppelinKnub } from "../types";
const SLOW_RESOLVE_THRESHOLD = 1500;
@ -67,6 +69,8 @@ export class ZeppelinPlugin<TConfig extends {} = IBasePluginConfig> extends Plug
public static configSchema: t.TypeC<any>;
public static dependencies = [];
protected readonly knub: TZeppelinKnub;
protected throwPluginRuntimeError(message: string) {
throw new PluginRuntimeError(message, this.runtimePluginName, this.guildId);
}

14
backend/src/types.ts Normal file
View file

@ -0,0 +1,14 @@
import { IGlobalConfig, IGuildConfig, Knub } from "knub";
// Remove this tslint exception once there are properties in the interface
// tslint:disable-next-line
export interface IZeppelinGuildConfig extends IGuildConfig {
// To fill
}
export interface IZeppelinGlobalConfig extends IGlobalConfig {
url: string;
owners?: string[];
}
export type TZeppelinKnub = Knub<IZeppelinGuildConfig, IZeppelinGlobalConfig>;