mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-03-15 05:41:51 +00:00
feat: update knub; update public interfaces for new knub
This commit is contained in:
parent
c2ae6d53d8
commit
c89c5ea430
15 changed files with 193 additions and 241 deletions
|
@ -45,7 +45,7 @@
|
||||||
"fp-ts": "^2.0.1",
|
"fp-ts": "^2.0.1",
|
||||||
"humanize-duration": "^3.15.0",
|
"humanize-duration": "^3.15.0",
|
||||||
"js-yaml": "^3.13.1",
|
"js-yaml": "^3.13.1",
|
||||||
"knub": "^32.0.0-next.20",
|
"knub": "^32.0.0-next.21",
|
||||||
"knub-command-manager": "^9.1.0",
|
"knub-command-manager": "^9.1.0",
|
||||||
"last-commit-log": "^2.1.0",
|
"last-commit-log": "^2.1.0",
|
||||||
"lodash.chunk": "^4.2.0",
|
"lodash.chunk": "^4.2.0",
|
||||||
|
|
|
@ -10,7 +10,7 @@ import {
|
||||||
PermissionsBitField,
|
PermissionsBitField,
|
||||||
TextBasedChannel,
|
TextBasedChannel,
|
||||||
} from "discord.js";
|
} from "discord.js";
|
||||||
import { AnyPluginData, CommandContext, ExtendedMatchParams, GuildPluginData, helpers } from "knub";
|
import { AnyPluginData, BasePluginData, CommandContext, ExtendedMatchParams, GuildPluginData, helpers } from "knub";
|
||||||
import { logger } from "./logger";
|
import { logger } from "./logger";
|
||||||
import { isStaff } from "./staff";
|
import { isStaff } from "./staff";
|
||||||
import { TZeppelinKnub } from "./types";
|
import { TZeppelinKnub } from "./types";
|
||||||
|
@ -124,3 +124,16 @@ export function mapToPublicFn<T extends AnyFn>(inputFn: T) {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FnWithPluginData<TPluginData> = (pluginData: TPluginData, ...args: any[]) => any;
|
||||||
|
|
||||||
|
export function makePublicFn<TPluginData extends BasePluginData<any>, T extends FnWithPluginData<TPluginData>>(
|
||||||
|
pluginData: TPluginData,
|
||||||
|
fn: T,
|
||||||
|
) {
|
||||||
|
return (...args: Tail<Parameters<T>>): ReturnType<T> => {
|
||||||
|
return fn(pluginData, ...args);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// ???
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
import { guildPlugin } from "knub";
|
import { guildPlugin } from "knub";
|
||||||
import { CaseTypes } from "../../data/CaseTypes";
|
|
||||||
import { GuildArchives } from "../../data/GuildArchives";
|
import { GuildArchives } from "../../data/GuildArchives";
|
||||||
import { GuildCases } from "../../data/GuildCases";
|
import { GuildCases } from "../../data/GuildCases";
|
||||||
import { GuildLogs } from "../../data/GuildLogs";
|
import { GuildLogs } from "../../data/GuildLogs";
|
||||||
import { Case } from "../../data/entities/Case";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
|
||||||
import { InternalPosterPlugin } from "../InternalPoster/InternalPosterPlugin";
|
import { InternalPosterPlugin } from "../InternalPoster/InternalPosterPlugin";
|
||||||
import { TimeAndDatePlugin } from "../TimeAndDate/TimeAndDatePlugin";
|
import { TimeAndDatePlugin } from "../TimeAndDate/TimeAndDatePlugin";
|
||||||
import { createCase } from "./functions/createCase";
|
import { createCase } from "./functions/createCase";
|
||||||
|
@ -15,7 +13,7 @@ import { getCaseTypeAmountForUserId } from "./functions/getCaseTypeAmountForUser
|
||||||
import { getRecentCasesByMod } from "./functions/getRecentCasesByMod";
|
import { getRecentCasesByMod } from "./functions/getRecentCasesByMod";
|
||||||
import { getTotalCasesByMod } from "./functions/getTotalCasesByMod";
|
import { getTotalCasesByMod } from "./functions/getTotalCasesByMod";
|
||||||
import { postCaseToCaseLogChannel } from "./functions/postToCaseLogChannel";
|
import { postCaseToCaseLogChannel } from "./functions/postToCaseLogChannel";
|
||||||
import { CaseArgs, CaseNoteArgs, CasesPluginType, zCasesConfig } from "./types";
|
import { CasesPluginType, zCasesConfig } from "./types";
|
||||||
|
|
||||||
// The `any` cast here is to prevent TypeScript from locking up from the circular dependency
|
// The `any` cast here is to prevent TypeScript from locking up from the circular dependency
|
||||||
function getLogsPlugin(): Promise<any> {
|
function getLogsPlugin(): Promise<any> {
|
||||||
|
@ -40,36 +38,17 @@ export const CasesPlugin = guildPlugin<CasesPluginType>()({
|
||||||
configParser: (input) => zCasesConfig.parse(input),
|
configParser: (input) => zCasesConfig.parse(input),
|
||||||
defaultOptions,
|
defaultOptions,
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
createCase(pluginData) {
|
return {
|
||||||
return (args: CaseArgs) => {
|
createCase: makePublicFn(pluginData, createCase),
|
||||||
return createCase(pluginData, args);
|
createCaseNote: makePublicFn(pluginData, createCaseNote),
|
||||||
};
|
postCaseToCaseLogChannel: makePublicFn(pluginData, postCaseToCaseLogChannel),
|
||||||
},
|
getCaseTypeAmountForUserId: makePublicFn(pluginData, getCaseTypeAmountForUserId),
|
||||||
|
getTotalCasesByMod: makePublicFn(pluginData, getTotalCasesByMod),
|
||||||
createCaseNote(pluginData) {
|
getRecentCasesByMod: makePublicFn(pluginData, getRecentCasesByMod),
|
||||||
return (args: CaseNoteArgs) => {
|
getCaseEmbed: makePublicFn(pluginData, getCaseEmbed),
|
||||||
return createCaseNote(pluginData, args);
|
getCaseSummary: makePublicFn(pluginData, getCaseSummary),
|
||||||
};
|
};
|
||||||
},
|
|
||||||
|
|
||||||
postCaseToCaseLogChannel(pluginData) {
|
|
||||||
return (caseOrCaseId: Case | number) => {
|
|
||||||
return postCaseToCaseLogChannel(pluginData, caseOrCaseId);
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
getCaseTypeAmountForUserId(pluginData) {
|
|
||||||
return (userID: string, type: CaseTypes) => {
|
|
||||||
return getCaseTypeAmountForUserId(pluginData, userID, type);
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
getTotalCasesByMod: mapToPublicFn(getTotalCasesByMod),
|
|
||||||
getRecentCasesByMod: mapToPublicFn(getRecentCasesByMod),
|
|
||||||
|
|
||||||
getCaseEmbed: mapToPublicFn(getCaseEmbed),
|
|
||||||
getCaseSummary: mapToPublicFn(getCaseSummary),
|
|
||||||
},
|
},
|
||||||
|
|
||||||
afterLoad(pluginData) {
|
afterLoad(pluginData) {
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { EventEmitter } from "events";
|
||||||
import { PluginOptions, guildPlugin } from "knub";
|
import { PluginOptions, guildPlugin } from "knub";
|
||||||
import { GuildCounters } from "../../data/GuildCounters";
|
import { GuildCounters } from "../../data/GuildCounters";
|
||||||
import { CounterTrigger, parseCounterConditionString } from "../../data/entities/CounterTrigger";
|
import { CounterTrigger, parseCounterConditionString } from "../../data/entities/CounterTrigger";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { MINUTES, convertDelayStringToMS, values } from "../../utils";
|
import { MINUTES, convertDelayStringToMS, values } from "../../utils";
|
||||||
import { AddCounterCmd } from "./commands/AddCounterCmd";
|
import { AddCounterCmd } from "./commands/AddCounterCmd";
|
||||||
import { CountersListCmd } from "./commands/CountersListCmd";
|
import { CountersListCmd } from "./commands/CountersListCmd";
|
||||||
|
@ -62,20 +62,16 @@ export const CountersPlugin = guildPlugin<CountersPluginType>()({
|
||||||
// TODO: Separate input and output types
|
// TODO: Separate input and output types
|
||||||
configParser: (input) => zCountersConfig.parse(input),
|
configParser: (input) => zCountersConfig.parse(input),
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
counterExists: mapToPublicFn(counterExists),
|
return {
|
||||||
|
counterExists: makePublicFn(pluginData, counterExists),
|
||||||
// Change a counter's value by a relative amount, e.g. +5
|
changeCounterValue: makePublicFn(pluginData, changeCounterValue),
|
||||||
changeCounterValue: mapToPublicFn(changeCounterValue),
|
setCounterValue: makePublicFn(pluginData, setCounterValue),
|
||||||
|
getPrettyNameForCounter: makePublicFn(pluginData, getPrettyNameForCounter),
|
||||||
// Set a counter's value to an absolute value
|
getPrettyNameForCounterTrigger: makePublicFn(pluginData, getPrettyNameForCounterTrigger),
|
||||||
setCounterValue: mapToPublicFn(setCounterValue),
|
onCounterEvent: makePublicFn(pluginData, onCounterEvent),
|
||||||
|
offCounterEvent: makePublicFn(pluginData, offCounterEvent),
|
||||||
getPrettyNameForCounter: mapToPublicFn(getPrettyNameForCounter),
|
};
|
||||||
getPrettyNameForCounterTrigger: mapToPublicFn(getPrettyNameForCounterTrigger),
|
|
||||||
|
|
||||||
onCounterEvent: mapToPublicFn(onCounterEvent),
|
|
||||||
offCounterEvent: mapToPublicFn(offCounterEvent),
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// prettier-ignore
|
// prettier-ignore
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import { guildPlugin } from "knub";
|
import { guildPlugin } from "knub";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
import { GuildMemberCache } from "../../data/GuildMemberCache";
|
import { GuildMemberCache } from "../../data/GuildMemberCache";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { SECONDS } from "../../utils";
|
import { SECONDS } from "../../utils";
|
||||||
import { cancelDeletionOnMemberJoin } from "./events/cancelDeletionOnMemberJoin";
|
import { cancelDeletionOnMemberJoin } from "./events/cancelDeletionOnMemberJoin";
|
||||||
import { removeMemberCacheOnMemberLeave } from "./events/removeMemberCacheOnMemberLeave";
|
import { removeMemberCacheOnMemberLeave } from "./events/removeMemberCacheOnMemberLeave";
|
||||||
|
@ -28,8 +28,10 @@ export const GuildMemberCachePlugin = guildPlugin<GuildMemberCachePluginType>()(
|
||||||
cancelDeletionOnMemberJoin,
|
cancelDeletionOnMemberJoin,
|
||||||
],
|
],
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
getCachedMemberData: mapToPublicFn(getCachedMemberData),
|
return {
|
||||||
|
getCachedMemberData: makePublicFn(pluginData, getCachedMemberData),
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeLoad(pluginData) {
|
beforeLoad(pluginData) {
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { PluginOptions, guildPlugin } from "knub";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
import { Queue } from "../../Queue";
|
import { Queue } from "../../Queue";
|
||||||
import { Webhooks } from "../../data/Webhooks";
|
import { Webhooks } from "../../data/Webhooks";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { editMessage } from "./functions/editMessage";
|
import { editMessage } from "./functions/editMessage";
|
||||||
import { sendMessage } from "./functions/sendMessage";
|
import { sendMessage } from "./functions/sendMessage";
|
||||||
import { InternalPosterPluginType } from "./types";
|
import { InternalPosterPluginType } from "./types";
|
||||||
|
@ -18,10 +18,11 @@ export const InternalPosterPlugin = guildPlugin<InternalPosterPluginType>()({
|
||||||
configParser: (input) => z.strictObject({}).parse(input),
|
configParser: (input) => z.strictObject({}).parse(input),
|
||||||
defaultOptions,
|
defaultOptions,
|
||||||
|
|
||||||
// prettier-ignore
|
public(pluginData) {
|
||||||
public: {
|
return {
|
||||||
sendMessage: mapToPublicFn(sendMessage),
|
sendMessage: makePublicFn(pluginData, sendMessage),
|
||||||
editMessage: mapToPublicFn(editMessage),
|
editMessage: makePublicFn(pluginData, editMessage),
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
async beforeLoad(pluginData) {
|
async beforeLoad(pluginData) {
|
||||||
|
|
|
@ -6,9 +6,9 @@ import { GuildLogs } from "../../data/GuildLogs";
|
||||||
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
|
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
|
||||||
import { LogType } from "../../data/LogType";
|
import { LogType } from "../../data/LogType";
|
||||||
import { logger } from "../../logger";
|
import { logger } from "../../logger";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { discardRegExpRunner, getRegExpRunner } from "../../regExpRunners";
|
import { discardRegExpRunner, getRegExpRunner } from "../../regExpRunners";
|
||||||
import { TypedTemplateSafeValueContainer, createTypedTemplateSafeValueContainer } from "../../templateFormatter";
|
import { createTypedTemplateSafeValueContainer } from "../../templateFormatter";
|
||||||
import { TimeAndDatePlugin } from "../TimeAndDate/TimeAndDatePlugin";
|
import { TimeAndDatePlugin } from "../TimeAndDate/TimeAndDatePlugin";
|
||||||
import { LogsChannelCreateEvt, LogsChannelDeleteEvt, LogsChannelUpdateEvt } from "./events/LogsChannelModifyEvts";
|
import { LogsChannelCreateEvt, LogsChannelDeleteEvt, LogsChannelUpdateEvt } from "./events/LogsChannelModifyEvts";
|
||||||
import {
|
import {
|
||||||
|
@ -30,7 +30,7 @@ import {
|
||||||
import { LogsThreadCreateEvt, LogsThreadDeleteEvt, LogsThreadUpdateEvt } from "./events/LogsThreadModifyEvts";
|
import { LogsThreadCreateEvt, LogsThreadDeleteEvt, LogsThreadUpdateEvt } from "./events/LogsThreadModifyEvts";
|
||||||
import { LogsGuildMemberUpdateEvt } from "./events/LogsUserUpdateEvts";
|
import { LogsGuildMemberUpdateEvt } from "./events/LogsUserUpdateEvts";
|
||||||
import { LogsVoiceStateUpdateEvt } from "./events/LogsVoiceChannelEvts";
|
import { LogsVoiceStateUpdateEvt } from "./events/LogsVoiceChannelEvts";
|
||||||
import { FORMAT_NO_TIMESTAMP, ILogTypeData, LogsPluginType, TLogChannel, zLogsConfig } from "./types";
|
import { FORMAT_NO_TIMESTAMP, LogsPluginType, zLogsConfig } from "./types";
|
||||||
import { getLogMessage } from "./util/getLogMessage";
|
import { getLogMessage } from "./util/getLogMessage";
|
||||||
import { log } from "./util/log";
|
import { log } from "./util/log";
|
||||||
import { onMessageDelete } from "./util/onMessageDelete";
|
import { onMessageDelete } from "./util/onMessageDelete";
|
||||||
|
@ -172,86 +172,79 @@ export const LogsPlugin = guildPlugin<LogsPluginType>()({
|
||||||
LogsGuildMemberRoleChangeEvt,
|
LogsGuildMemberRoleChangeEvt,
|
||||||
],
|
],
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
getLogMessage: (pluginData) => {
|
return {
|
||||||
return <TLogType extends keyof ILogTypeData>(
|
getLogMessage: makePublicFn(pluginData, getLogMessage),
|
||||||
type: TLogType,
|
logAutomodAction: makePublicFn(pluginData, logAutomodAction),
|
||||||
data: TypedTemplateSafeValueContainer<ILogTypeData[TLogType]>,
|
logBotAlert: makePublicFn(pluginData, logBotAlert),
|
||||||
opts?: Pick<TLogChannel, "format" | "timestamp_format" | "include_embed_timestamp">,
|
logCaseCreate: makePublicFn(pluginData, logCaseCreate),
|
||||||
) => {
|
logCaseDelete: makePublicFn(pluginData, logCaseDelete),
|
||||||
return getLogMessage(pluginData, type, data, opts);
|
logCaseUpdate: makePublicFn(pluginData, logCaseUpdate),
|
||||||
};
|
logCensor: makePublicFn(pluginData, logCensor),
|
||||||
},
|
logChannelCreate: makePublicFn(pluginData, logChannelCreate),
|
||||||
|
logChannelDelete: makePublicFn(pluginData, logChannelDelete),
|
||||||
logAutomodAction: mapToPublicFn(logAutomodAction),
|
logChannelUpdate: makePublicFn(pluginData, logChannelUpdate),
|
||||||
logBotAlert: mapToPublicFn(logBotAlert),
|
logClean: makePublicFn(pluginData, logClean),
|
||||||
logCaseCreate: mapToPublicFn(logCaseCreate),
|
logEmojiCreate: makePublicFn(pluginData, logEmojiCreate),
|
||||||
logCaseDelete: mapToPublicFn(logCaseDelete),
|
logEmojiDelete: makePublicFn(pluginData, logEmojiDelete),
|
||||||
logCaseUpdate: mapToPublicFn(logCaseUpdate),
|
logEmojiUpdate: makePublicFn(pluginData, logEmojiUpdate),
|
||||||
logCensor: mapToPublicFn(logCensor),
|
logMassBan: makePublicFn(pluginData, logMassBan),
|
||||||
logChannelCreate: mapToPublicFn(logChannelCreate),
|
logMassMute: makePublicFn(pluginData, logMassMute),
|
||||||
logChannelDelete: mapToPublicFn(logChannelDelete),
|
logMassUnban: makePublicFn(pluginData, logMassUnban),
|
||||||
logChannelUpdate: mapToPublicFn(logChannelUpdate),
|
logMemberBan: makePublicFn(pluginData, logMemberBan),
|
||||||
logClean: mapToPublicFn(logClean),
|
logMemberForceban: makePublicFn(pluginData, logMemberForceban),
|
||||||
logEmojiCreate: mapToPublicFn(logEmojiCreate),
|
logMemberJoin: makePublicFn(pluginData, logMemberJoin),
|
||||||
logEmojiDelete: mapToPublicFn(logEmojiDelete),
|
logMemberJoinWithPriorRecords: makePublicFn(pluginData, logMemberJoinWithPriorRecords),
|
||||||
logEmojiUpdate: mapToPublicFn(logEmojiUpdate),
|
logMemberKick: makePublicFn(pluginData, logMemberKick),
|
||||||
logMassBan: mapToPublicFn(logMassBan),
|
logMemberLeave: makePublicFn(pluginData, logMemberLeave),
|
||||||
logMassMute: mapToPublicFn(logMassMute),
|
logMemberMute: makePublicFn(pluginData, logMemberMute),
|
||||||
logMassUnban: mapToPublicFn(logMassUnban),
|
logMemberMuteExpired: makePublicFn(pluginData, logMemberMuteExpired),
|
||||||
logMemberBan: mapToPublicFn(logMemberBan),
|
logMemberMuteRejoin: makePublicFn(pluginData, logMemberMuteRejoin),
|
||||||
logMemberForceban: mapToPublicFn(logMemberForceban),
|
logMemberNickChange: makePublicFn(pluginData, logMemberNickChange),
|
||||||
logMemberJoin: mapToPublicFn(logMemberJoin),
|
logMemberNote: makePublicFn(pluginData, logMemberNote),
|
||||||
logMemberJoinWithPriorRecords: mapToPublicFn(logMemberJoinWithPriorRecords),
|
logMemberRestore: makePublicFn(pluginData, logMemberRestore),
|
||||||
logMemberKick: mapToPublicFn(logMemberKick),
|
logMemberRoleAdd: makePublicFn(pluginData, logMemberRoleAdd),
|
||||||
logMemberLeave: mapToPublicFn(logMemberLeave),
|
logMemberRoleChanges: makePublicFn(pluginData, logMemberRoleChanges),
|
||||||
logMemberMute: mapToPublicFn(logMemberMute),
|
logMemberRoleRemove: makePublicFn(pluginData, logMemberRoleRemove),
|
||||||
logMemberMuteExpired: mapToPublicFn(logMemberMuteExpired),
|
logMemberTimedBan: makePublicFn(pluginData, logMemberTimedBan),
|
||||||
logMemberMuteRejoin: mapToPublicFn(logMemberMuteRejoin),
|
logMemberTimedMute: makePublicFn(pluginData, logMemberTimedMute),
|
||||||
logMemberNickChange: mapToPublicFn(logMemberNickChange),
|
logMemberTimedUnban: makePublicFn(pluginData, logMemberTimedUnban),
|
||||||
logMemberNote: mapToPublicFn(logMemberNote),
|
logMemberTimedUnmute: makePublicFn(pluginData, logMemberTimedUnmute),
|
||||||
logMemberRestore: mapToPublicFn(logMemberRestore),
|
logMemberUnban: makePublicFn(pluginData, logMemberUnban),
|
||||||
logMemberRoleAdd: mapToPublicFn(logMemberRoleAdd),
|
logMemberUnmute: makePublicFn(pluginData, logMemberUnmute),
|
||||||
logMemberRoleChanges: mapToPublicFn(logMemberRoleChanges),
|
logMemberWarn: makePublicFn(pluginData, logMemberWarn),
|
||||||
logMemberRoleRemove: mapToPublicFn(logMemberRoleRemove),
|
logMessageDelete: makePublicFn(pluginData, logMessageDelete),
|
||||||
logMemberTimedBan: mapToPublicFn(logMemberTimedBan),
|
logMessageDeleteAuto: makePublicFn(pluginData, logMessageDeleteAuto),
|
||||||
logMemberTimedMute: mapToPublicFn(logMemberTimedMute),
|
logMessageDeleteBare: makePublicFn(pluginData, logMessageDeleteBare),
|
||||||
logMemberTimedUnban: mapToPublicFn(logMemberTimedUnban),
|
logMessageDeleteBulk: makePublicFn(pluginData, logMessageDeleteBulk),
|
||||||
logMemberTimedUnmute: mapToPublicFn(logMemberTimedUnmute),
|
logMessageEdit: makePublicFn(pluginData, logMessageEdit),
|
||||||
logMemberUnban: mapToPublicFn(logMemberUnban),
|
logMessageSpamDetected: makePublicFn(pluginData, logMessageSpamDetected),
|
||||||
logMemberUnmute: mapToPublicFn(logMemberUnmute),
|
logOtherSpamDetected: makePublicFn(pluginData, logOtherSpamDetected),
|
||||||
logMemberWarn: mapToPublicFn(logMemberWarn),
|
logPostedScheduledMessage: makePublicFn(pluginData, logPostedScheduledMessage),
|
||||||
logMessageDelete: mapToPublicFn(logMessageDelete),
|
logRepeatedMessage: makePublicFn(pluginData, logRepeatedMessage),
|
||||||
logMessageDeleteAuto: mapToPublicFn(logMessageDeleteAuto),
|
logRoleCreate: makePublicFn(pluginData, logRoleCreate),
|
||||||
logMessageDeleteBare: mapToPublicFn(logMessageDeleteBare),
|
logRoleDelete: makePublicFn(pluginData, logRoleDelete),
|
||||||
logMessageDeleteBulk: mapToPublicFn(logMessageDeleteBulk),
|
logRoleUpdate: makePublicFn(pluginData, logRoleUpdate),
|
||||||
logMessageEdit: mapToPublicFn(logMessageEdit),
|
logScheduledMessage: makePublicFn(pluginData, logScheduledMessage),
|
||||||
logMessageSpamDetected: mapToPublicFn(logMessageSpamDetected),
|
logScheduledRepeatedMessage: makePublicFn(pluginData, logScheduledRepeatedMessage),
|
||||||
logOtherSpamDetected: mapToPublicFn(logOtherSpamDetected),
|
logSetAntiraidAuto: makePublicFn(pluginData, logSetAntiraidAuto),
|
||||||
logPostedScheduledMessage: mapToPublicFn(logPostedScheduledMessage),
|
logSetAntiraidUser: makePublicFn(pluginData, logSetAntiraidUser),
|
||||||
logRepeatedMessage: mapToPublicFn(logRepeatedMessage),
|
logStageInstanceCreate: makePublicFn(pluginData, logStageInstanceCreate),
|
||||||
logRoleCreate: mapToPublicFn(logRoleCreate),
|
logStageInstanceDelete: makePublicFn(pluginData, logStageInstanceDelete),
|
||||||
logRoleDelete: mapToPublicFn(logRoleDelete),
|
logStageInstanceUpdate: makePublicFn(pluginData, logStageInstanceUpdate),
|
||||||
logRoleUpdate: mapToPublicFn(logRoleUpdate),
|
logStickerCreate: makePublicFn(pluginData, logStickerCreate),
|
||||||
logScheduledMessage: mapToPublicFn(logScheduledMessage),
|
logStickerDelete: makePublicFn(pluginData, logStickerDelete),
|
||||||
logScheduledRepeatedMessage: mapToPublicFn(logScheduledRepeatedMessage),
|
logStickerUpdate: makePublicFn(pluginData, logStickerUpdate),
|
||||||
logSetAntiraidAuto: mapToPublicFn(logSetAntiraidAuto),
|
logThreadCreate: makePublicFn(pluginData, logThreadCreate),
|
||||||
logSetAntiraidUser: mapToPublicFn(logSetAntiraidUser),
|
logThreadDelete: makePublicFn(pluginData, logThreadDelete),
|
||||||
logStageInstanceCreate: mapToPublicFn(logStageInstanceCreate),
|
logThreadUpdate: makePublicFn(pluginData, logThreadUpdate),
|
||||||
logStageInstanceDelete: mapToPublicFn(logStageInstanceDelete),
|
logVoiceChannelForceDisconnect: makePublicFn(pluginData, logVoiceChannelForceDisconnect),
|
||||||
logStageInstanceUpdate: mapToPublicFn(logStageInstanceUpdate),
|
logVoiceChannelForceMove: makePublicFn(pluginData, logVoiceChannelForceMove),
|
||||||
logStickerCreate: mapToPublicFn(logStickerCreate),
|
logVoiceChannelJoin: makePublicFn(pluginData, logVoiceChannelJoin),
|
||||||
logStickerDelete: mapToPublicFn(logStickerDelete),
|
logVoiceChannelLeave: makePublicFn(pluginData, logVoiceChannelLeave),
|
||||||
logStickerUpdate: mapToPublicFn(logStickerUpdate),
|
logVoiceChannelMove: makePublicFn(pluginData, logVoiceChannelMove),
|
||||||
logThreadCreate: mapToPublicFn(logThreadCreate),
|
logDmFailed: makePublicFn(pluginData, logDmFailed),
|
||||||
logThreadDelete: mapToPublicFn(logThreadDelete),
|
};
|
||||||
logThreadUpdate: mapToPublicFn(logThreadUpdate),
|
|
||||||
logVoiceChannelForceDisconnect: mapToPublicFn(logVoiceChannelForceDisconnect),
|
|
||||||
logVoiceChannelForceMove: mapToPublicFn(logVoiceChannelForceMove),
|
|
||||||
logVoiceChannelJoin: mapToPublicFn(logVoiceChannelJoin),
|
|
||||||
logVoiceChannelLeave: mapToPublicFn(logVoiceChannelLeave),
|
|
||||||
logVoiceChannelMove: mapToPublicFn(logVoiceChannelMove),
|
|
||||||
logDmFailed: mapToPublicFn(logDmFailed),
|
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeLoad(pluginData) {
|
beforeLoad(pluginData) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { GuildMember, Message, Snowflake } from "discord.js";
|
import { Message } from "discord.js";
|
||||||
import { EventEmitter } from "events";
|
import { EventEmitter } from "events";
|
||||||
import { guildPlugin } from "knub";
|
import { guildPlugin } from "knub";
|
||||||
import { Queue } from "../../Queue";
|
import { Queue } from "../../Queue";
|
||||||
|
@ -7,7 +7,7 @@ import { onGuildEvent } from "../../data/GuildEvents";
|
||||||
import { GuildLogs } from "../../data/GuildLogs";
|
import { GuildLogs } from "../../data/GuildLogs";
|
||||||
import { GuildMutes } from "../../data/GuildMutes";
|
import { GuildMutes } from "../../data/GuildMutes";
|
||||||
import { GuildTempbans } from "../../data/GuildTempbans";
|
import { GuildTempbans } from "../../data/GuildTempbans";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn, mapToPublicFn } from "../../pluginUtils";
|
||||||
import { MINUTES } from "../../utils";
|
import { MINUTES } from "../../utils";
|
||||||
import { CasesPlugin } from "../Cases/CasesPlugin";
|
import { CasesPlugin } from "../Cases/CasesPlugin";
|
||||||
import { LogsPlugin } from "../Logs/LogsPlugin";
|
import { LogsPlugin } from "../Logs/LogsPlugin";
|
||||||
|
@ -47,7 +47,7 @@ import { offModActionsEvent } from "./functions/offModActionsEvent";
|
||||||
import { onModActionsEvent } from "./functions/onModActionsEvent";
|
import { onModActionsEvent } from "./functions/onModActionsEvent";
|
||||||
import { updateCase } from "./functions/updateCase";
|
import { updateCase } from "./functions/updateCase";
|
||||||
import { warnMember } from "./functions/warnMember";
|
import { warnMember } from "./functions/warnMember";
|
||||||
import { BanOptions, KickOptions, ModActionsPluginType, WarnOptions, zModActionsConfig } from "./types";
|
import { ModActionsPluginType, zModActionsConfig } from "./types";
|
||||||
|
|
||||||
const defaultOptions = {
|
const defaultOptions = {
|
||||||
config: {
|
config: {
|
||||||
|
@ -147,42 +147,18 @@ export const ModActionsPlugin = guildPlugin<ModActionsPluginType>()({
|
||||||
DeleteCaseCmd,
|
DeleteCaseCmd,
|
||||||
],
|
],
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
warnMember(pluginData) {
|
return {
|
||||||
return (member: GuildMember, reason: string, warnOptions?: WarnOptions) => {
|
warnMember: makePublicFn(pluginData, warnMember),
|
||||||
warnMember(pluginData, member, reason, warnOptions);
|
kickMember: makePublicFn(pluginData, kickMember),
|
||||||
};
|
banUserId: makePublicFn(pluginData, banUserId),
|
||||||
},
|
updateCase: (msg: Message, caseNumber: number | null, note: string) =>
|
||||||
|
updateCase(pluginData, msg, { caseNumber, note }),
|
||||||
kickMember(pluginData) {
|
hasMutePermission: makePublicFn(pluginData, hasMutePermission),
|
||||||
return (member: GuildMember, reason: string, kickOptions?: KickOptions) => {
|
on: mapToPublicFn(onModActionsEvent),
|
||||||
kickMember(pluginData, member, reason, kickOptions);
|
off: mapToPublicFn(offModActionsEvent),
|
||||||
};
|
getEventEmitter: () => pluginData.state.events,
|
||||||
},
|
};
|
||||||
|
|
||||||
banUserId(pluginData) {
|
|
||||||
return (userId: string, reason?: string, banOptions?: BanOptions, banTime?: number) => {
|
|
||||||
banUserId(pluginData, userId, reason, banOptions, banTime);
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
updateCase(pluginData) {
|
|
||||||
return (msg: Message, caseNumber: number | null, note: string) => {
|
|
||||||
updateCase(pluginData, msg, { caseNumber, note });
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
hasMutePermission(pluginData) {
|
|
||||||
return (member: GuildMember, channelId: Snowflake) => {
|
|
||||||
return hasMutePermission(pluginData, member, channelId);
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
on: mapToPublicFn(onModActionsEvent),
|
|
||||||
off: mapToPublicFn(offModActionsEvent),
|
|
||||||
getEventEmitter(pluginData) {
|
|
||||||
return () => pluginData.state.events;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeLoad(pluginData) {
|
beforeLoad(pluginData) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { GuildCases } from "../../data/GuildCases";
|
||||||
import { onGuildEvent } from "../../data/GuildEvents";
|
import { onGuildEvent } from "../../data/GuildEvents";
|
||||||
import { GuildLogs } from "../../data/GuildLogs";
|
import { GuildLogs } from "../../data/GuildLogs";
|
||||||
import { GuildMutes } from "../../data/GuildMutes";
|
import { GuildMutes } from "../../data/GuildMutes";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { CasesPlugin } from "../Cases/CasesPlugin";
|
import { CasesPlugin } from "../Cases/CasesPlugin";
|
||||||
import { LogsPlugin } from "../Logs/LogsPlugin";
|
import { LogsPlugin } from "../Logs/LogsPlugin";
|
||||||
import { RoleManagerPlugin } from "../RoleManager/RoleManagerPlugin.js";
|
import { RoleManagerPlugin } from "../RoleManager/RoleManagerPlugin.js";
|
||||||
|
@ -84,21 +84,18 @@ export const MutesPlugin = guildPlugin<MutesPluginType>()({
|
||||||
RegisterManualTimeoutsEvt,
|
RegisterManualTimeoutsEvt,
|
||||||
],
|
],
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
muteUser: mapToPublicFn(muteUser),
|
return {
|
||||||
unmuteUser: mapToPublicFn(unmuteUser),
|
muteUser: makePublicFn(pluginData, muteUser),
|
||||||
hasMutedRole(pluginData) {
|
unmuteUser: makePublicFn(pluginData, unmuteUser),
|
||||||
return (member: GuildMember) => {
|
hasMutedRole: (member: GuildMember) => {
|
||||||
const muteRole = pluginData.config.get().mute_role;
|
const muteRole = pluginData.config.get().mute_role;
|
||||||
return muteRole ? member.roles.cache.has(muteRole as Snowflake) : false;
|
return muteRole ? member.roles.cache.has(muteRole as Snowflake) : false;
|
||||||
};
|
},
|
||||||
},
|
on: makePublicFn(pluginData, onMutesEvent),
|
||||||
|
off: makePublicFn(pluginData, offMutesEvent),
|
||||||
on: mapToPublicFn(onMutesEvent),
|
getEventEmitter: () => pluginData.state.events,
|
||||||
off: mapToPublicFn(offMutesEvent),
|
};
|
||||||
getEventEmitter(pluginData) {
|
|
||||||
return () => pluginData.state.events;
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeLoad(pluginData) {
|
beforeLoad(pluginData) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { PluginOptions, guildPlugin } from "knub";
|
import { PluginOptions, guildPlugin } from "knub";
|
||||||
import { hasPhishermanMasterAPIKey, phishermanApiKeyIsValid } from "../../data/Phisherman";
|
import { hasPhishermanMasterAPIKey, phishermanApiKeyIsValid } from "../../data/Phisherman";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { getDomainInfo } from "./functions/getDomainInfo";
|
import { getDomainInfo } from "./functions/getDomainInfo";
|
||||||
import { PhishermanPluginType, zPhishermanConfig } from "./types";
|
import { PhishermanPluginType, zPhishermanConfig } from "./types";
|
||||||
|
|
||||||
|
@ -17,9 +17,10 @@ export const PhishermanPlugin = guildPlugin<PhishermanPluginType>()({
|
||||||
configParser: (input) => zPhishermanConfig.parse(input),
|
configParser: (input) => zPhishermanConfig.parse(input),
|
||||||
defaultOptions,
|
defaultOptions,
|
||||||
|
|
||||||
// prettier-ignore
|
public(pluginData) {
|
||||||
public: {
|
return {
|
||||||
getDomainInfo: mapToPublicFn(getDomainInfo),
|
getDomainInfo: makePublicFn(pluginData, getDomainInfo),
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
async beforeLoad(pluginData) {
|
async beforeLoad(pluginData) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { guildPlugin } from "knub";
|
import { guildPlugin } from "knub";
|
||||||
import { GuildRoleQueue } from "../../data/GuildRoleQueue";
|
import { GuildRoleQueue } from "../../data/GuildRoleQueue";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { LogsPlugin } from "../Logs/LogsPlugin";
|
import { LogsPlugin } from "../Logs/LogsPlugin";
|
||||||
import { addPriorityRole } from "./functions/addPriorityRole";
|
import { addPriorityRole } from "./functions/addPriorityRole";
|
||||||
import { addRole } from "./functions/addRole";
|
import { addRole } from "./functions/addRole";
|
||||||
|
@ -15,11 +15,13 @@ export const RoleManagerPlugin = guildPlugin<RoleManagerPluginType>()({
|
||||||
dependencies: () => [LogsPlugin],
|
dependencies: () => [LogsPlugin],
|
||||||
configParser: (input) => zRoleManagerConfig.parse(input),
|
configParser: (input) => zRoleManagerConfig.parse(input),
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
addRole: mapToPublicFn(addRole),
|
return {
|
||||||
removeRole: mapToPublicFn(removeRole),
|
addRole: makePublicFn(pluginData, addRole),
|
||||||
addPriorityRole: mapToPublicFn(addPriorityRole),
|
removeRole: makePublicFn(pluginData, removeRole),
|
||||||
removePriorityRole: mapToPublicFn(removePriorityRole),
|
addPriorityRole: makePublicFn(pluginData, addPriorityRole),
|
||||||
|
removePriorityRole: makePublicFn(pluginData, removePriorityRole),
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeLoad(pluginData) {
|
beforeLoad(pluginData) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { GuildArchives } from "../../data/GuildArchives";
|
||||||
import { GuildLogs } from "../../data/GuildLogs";
|
import { GuildLogs } from "../../data/GuildLogs";
|
||||||
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
|
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
|
||||||
import { GuildTags } from "../../data/GuildTags";
|
import { GuildTags } from "../../data/GuildTags";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { convertDelayStringToMS } from "../../utils";
|
import { convertDelayStringToMS } from "../../utils";
|
||||||
import { LogsPlugin } from "../Logs/LogsPlugin";
|
import { LogsPlugin } from "../Logs/LogsPlugin";
|
||||||
import { TimeAndDatePlugin } from "../TimeAndDate/TimeAndDatePlugin";
|
import { TimeAndDatePlugin } from "../TimeAndDate/TimeAndDatePlugin";
|
||||||
|
@ -71,9 +71,11 @@ export const TagsPlugin = guildPlugin<TagsPluginType>()({
|
||||||
onMessageDelete,
|
onMessageDelete,
|
||||||
],
|
],
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
renderTagBody: mapToPublicFn(renderTagBody),
|
return {
|
||||||
findTagByName: mapToPublicFn(findTagByName),
|
renderTagBody: makePublicFn(pluginData, renderTagBody),
|
||||||
|
findTagByName: makePublicFn(pluginData, findTagByName),
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
configParser: (input) => zTagsConfig.parse(input),
|
configParser: (input) => zTagsConfig.parse(input),
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { PluginOptions, guildPlugin } from "knub";
|
import { PluginOptions, guildPlugin } from "knub";
|
||||||
import { GuildMemberTimezones } from "../../data/GuildMemberTimezones";
|
import { GuildMemberTimezones } from "../../data/GuildMemberTimezones";
|
||||||
import { mapToPublicFn } from "../../pluginUtils";
|
import { makePublicFn } from "../../pluginUtils";
|
||||||
import { ResetTimezoneCmd } from "./commands/ResetTimezoneCmd";
|
import { ResetTimezoneCmd } from "./commands/ResetTimezoneCmd";
|
||||||
import { SetTimezoneCmd } from "./commands/SetTimezoneCmd";
|
import { SetTimezoneCmd } from "./commands/SetTimezoneCmd";
|
||||||
import { ViewTimezoneCmd } from "./commands/ViewTimezoneCmd";
|
import { ViewTimezoneCmd } from "./commands/ViewTimezoneCmd";
|
||||||
|
@ -42,12 +42,14 @@ export const TimeAndDatePlugin = guildPlugin<TimeAndDatePluginType>()({
|
||||||
ViewTimezoneCmd,
|
ViewTimezoneCmd,
|
||||||
],
|
],
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
getGuildTz: mapToPublicFn(getGuildTz),
|
return {
|
||||||
inGuildTz: mapToPublicFn(inGuildTz),
|
getGuildTz: makePublicFn(pluginData, getGuildTz),
|
||||||
getMemberTz: mapToPublicFn(getMemberTz),
|
inGuildTz: makePublicFn(pluginData, inGuildTz),
|
||||||
inMemberTz: mapToPublicFn(inMemberTz),
|
getMemberTz: makePublicFn(pluginData, getMemberTz),
|
||||||
getDateFormat: mapToPublicFn(getDateFormat),
|
inMemberTz: makePublicFn(pluginData, inMemberTz),
|
||||||
|
getDateFormat: makePublicFn(pluginData, getDateFormat),
|
||||||
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeLoad(pluginData) {
|
beforeLoad(pluginData) {
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import { GuildMember, Snowflake } from "discord.js";
|
import { Snowflake } from "discord.js";
|
||||||
import { PluginOptions, guildPlugin } from "knub";
|
import { PluginOptions, guildPlugin } from "knub";
|
||||||
import { GuildArchives } from "../../data/GuildArchives";
|
import { GuildArchives } from "../../data/GuildArchives";
|
||||||
import { GuildCases } from "../../data/GuildCases";
|
import { GuildCases } from "../../data/GuildCases";
|
||||||
import { GuildLogs } from "../../data/GuildLogs";
|
import { GuildLogs } from "../../data/GuildLogs";
|
||||||
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
|
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
|
||||||
import { Supporters } from "../../data/Supporters";
|
import { Supporters } from "../../data/Supporters";
|
||||||
import { sendSuccessMessage } from "../../pluginUtils";
|
import { makePublicFn, sendSuccessMessage } from "../../pluginUtils";
|
||||||
import { discardRegExpRunner, getRegExpRunner } from "../../regExpRunners";
|
import { discardRegExpRunner, getRegExpRunner } from "../../regExpRunners";
|
||||||
import { LogsPlugin } from "../Logs/LogsPlugin";
|
import { LogsPlugin } from "../Logs/LogsPlugin";
|
||||||
import { ModActionsPlugin } from "../ModActions/ModActionsPlugin";
|
import { ModActionsPlugin } from "../ModActions/ModActionsPlugin";
|
||||||
|
@ -14,7 +14,7 @@ import { AboutCmd } from "./commands/AboutCmd";
|
||||||
import { AvatarCmd } from "./commands/AvatarCmd";
|
import { AvatarCmd } from "./commands/AvatarCmd";
|
||||||
import { BanSearchCmd } from "./commands/BanSearchCmd";
|
import { BanSearchCmd } from "./commands/BanSearchCmd";
|
||||||
import { ChannelInfoCmd } from "./commands/ChannelInfoCmd";
|
import { ChannelInfoCmd } from "./commands/ChannelInfoCmd";
|
||||||
import { CleanArgs, CleanCmd, cleanCmd } from "./commands/CleanCmd";
|
import { CleanCmd, cleanCmd } from "./commands/CleanCmd";
|
||||||
import { ContextCmd } from "./commands/ContextCmd";
|
import { ContextCmd } from "./commands/ContextCmd";
|
||||||
import { EmojiInfoCmd } from "./commands/EmojiInfoCmd";
|
import { EmojiInfoCmd } from "./commands/EmojiInfoCmd";
|
||||||
import { HelpCmd } from "./commands/HelpCmd";
|
import { HelpCmd } from "./commands/HelpCmd";
|
||||||
|
@ -155,24 +155,12 @@ export const UtilityPlugin = guildPlugin<UtilityPluginType>()({
|
||||||
AutoJoinThreadSyncEvt,
|
AutoJoinThreadSyncEvt,
|
||||||
],
|
],
|
||||||
|
|
||||||
public: {
|
public(pluginData) {
|
||||||
clean(pluginData) {
|
return {
|
||||||
return (args: CleanArgs, msg) => {
|
clean: makePublicFn(pluginData, cleanCmd),
|
||||||
cleanCmd(pluginData, args, msg);
|
userInfo: (userId: Snowflake) => getUserInfoEmbed(pluginData, userId, false),
|
||||||
};
|
hasPermission: makePublicFn(pluginData, hasPermission),
|
||||||
},
|
};
|
||||||
|
|
||||||
userInfo(pluginData) {
|
|
||||||
return (userId: Snowflake) => {
|
|
||||||
return getUserInfoEmbed(pluginData, userId, false);
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
hasPermission(pluginData) {
|
|
||||||
return (member: GuildMember, channelId: Snowflake, permission: string) => {
|
|
||||||
return hasPermission(pluginData, member, channelId, permission);
|
|
||||||
};
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
beforeLoad(pluginData) {
|
beforeLoad(pluginData) {
|
||||||
|
|
8
package-lock.json
generated
8
package-lock.json
generated
|
@ -44,7 +44,7 @@
|
||||||
"fp-ts": "^2.0.1",
|
"fp-ts": "^2.0.1",
|
||||||
"humanize-duration": "^3.15.0",
|
"humanize-duration": "^3.15.0",
|
||||||
"js-yaml": "^3.13.1",
|
"js-yaml": "^3.13.1",
|
||||||
"knub": "^32.0.0-next.20",
|
"knub": "^32.0.0-next.21",
|
||||||
"knub-command-manager": "^9.1.0",
|
"knub-command-manager": "^9.1.0",
|
||||||
"last-commit-log": "^2.1.0",
|
"last-commit-log": "^2.1.0",
|
||||||
"lodash.chunk": "^4.2.0",
|
"lodash.chunk": "^4.2.0",
|
||||||
|
@ -13250,9 +13250,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/knub": {
|
"node_modules/knub": {
|
||||||
"version": "32.0.0-next.20",
|
"version": "32.0.0-next.21",
|
||||||
"resolved": "https://registry.npmjs.org/knub/-/knub-32.0.0-next.20.tgz",
|
"resolved": "https://registry.npmjs.org/knub/-/knub-32.0.0-next.21.tgz",
|
||||||
"integrity": "sha512-RNi6VC4H83HShujPRuIUsuuHhVwvWY4qIaVQSswZPUGtCgY+h8rKtPQ5mCcNAroMJJWr4rVXVXUG7fOfY/ZyBg==",
|
"integrity": "sha512-ZzY9uOxKe0ZKCKQ4yp26SBxuPl6Gac1LGNpXMPGydYX/0EIL1q3zunYAwfpTpgc7LxR02hmYdDcsBCj8ri4xkA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"discord-api-types": "^0.37.67",
|
"discord-api-types": "^0.37.67",
|
||||||
"discord.js": "^14.14.1",
|
"discord.js": "^14.14.1",
|
||||||
|
|
Loading…
Add table
Reference in a new issue