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