mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-10 12:25:02 +00:00
Typed log functions + more
This commit is contained in:
parent
d2ac700143
commit
bed6589d48
166 changed files with 4021 additions and 869 deletions
33
backend/src/plugins/Logs/logFunctions/logAutomodAction.ts
Normal file
33
backend/src/plugins/Logs/logFunctions/logAutomodAction.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogAutomodActionData {
|
||||
rule: string;
|
||||
user: User;
|
||||
users: User[];
|
||||
actionsTaken: string;
|
||||
matchSummary: string;
|
||||
}
|
||||
|
||||
export function logAutomodAction(pluginData: GuildPluginData<LogsPluginType>, data: LogAutomodActionData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.AUTOMOD_ACTION,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
rule: data.rule,
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
users: data.users.map(user => userToTemplateSafeUser(user)),
|
||||
actionsTaken: data.actionsTaken,
|
||||
matchSummary: data.matchSummary,
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
20
backend/src/plugins/Logs/logFunctions/logBotAlert.ts
Normal file
20
backend/src/plugins/Logs/logFunctions/logBotAlert.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
|
||||
interface LogBotAlertData {
|
||||
body: string;
|
||||
}
|
||||
|
||||
export function logBotAlert(pluginData: GuildPluginData<LogsPluginType>, data: LogBotAlertData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.BOT_ALERT,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
body: data.body,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
32
backend/src/plugins/Logs/logFunctions/logCaseCreate.ts
Normal file
32
backend/src/plugins/Logs/logFunctions/logCaseCreate.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogCaseCreateData {
|
||||
mod: User;
|
||||
userId: string;
|
||||
caseNum: number;
|
||||
caseType: string;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logCaseCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogCaseCreateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.CASE_CREATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
userId: data.userId,
|
||||
caseNum: data.caseNum,
|
||||
caseType: data.caseType,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.userId,
|
||||
},
|
||||
);
|
||||
}
|
25
backend/src/plugins/Logs/logFunctions/logCaseDelete.ts
Normal file
25
backend/src/plugins/Logs/logFunctions/logCaseDelete.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import { caseToTemplateSafeCase, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
import { Case } from "../../../data/entities/Case";
|
||||
|
||||
interface LogCaseDeleteData {
|
||||
mod: GuildMember;
|
||||
case: Case;
|
||||
}
|
||||
|
||||
export function logCaseDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogCaseDeleteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.CASE_DELETE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: memberToTemplateSafeMember(data.mod),
|
||||
case: caseToTemplateSafeCase(data.case),
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
28
backend/src/plugins/Logs/logFunctions/logCaseUpdate.ts
Normal file
28
backend/src/plugins/Logs/logFunctions/logCaseUpdate.ts
Normal file
|
@ -0,0 +1,28 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogCaseUpdateData {
|
||||
mod: User;
|
||||
caseNumber: number;
|
||||
caseType: string;
|
||||
note: string;
|
||||
}
|
||||
|
||||
export function logCaseUpdate(pluginData: GuildPluginData<LogsPluginType>, data: LogCaseUpdateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.CASE_UPDATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
caseNumber: data.caseNumber,
|
||||
caseType: data.caseType,
|
||||
note: data.note,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
41
backend/src/plugins/Logs/logFunctions/logCensor.ts
Normal file
41
backend/src/plugins/Logs/logFunctions/logCensor.ts
Normal file
|
@ -0,0 +1,41 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, ThreadChannel, User } from "discord.js";
|
||||
import {
|
||||
channelToTemplateSafeChannel,
|
||||
savedMessageToTemplateSafeSavedMessage,
|
||||
userToTemplateSafeUser,
|
||||
} from "../../../utils/templateSafeObjects";
|
||||
import { SavedMessage } from "../../../data/entities/SavedMessage";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
import { deactivateMentions, disableCodeBlocks } from "knub/dist/helpers";
|
||||
|
||||
interface LogCensorData {
|
||||
user: User | UnknownUser;
|
||||
channel: BaseGuildTextChannel | ThreadChannel;
|
||||
reason: string;
|
||||
message: SavedMessage;
|
||||
}
|
||||
|
||||
export function logCensor(pluginData: GuildPluginData<LogsPluginType>, data: LogCensorData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.CENSOR,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
reason: data.reason,
|
||||
message: savedMessageToTemplateSafeSavedMessage(data.message),
|
||||
messageText: disableCodeBlocks(deactivateMentions(data.message.data.content)),
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
bot: data.user instanceof User ? data.user.bot : false,
|
||||
},
|
||||
);
|
||||
}
|
25
backend/src/plugins/Logs/logFunctions/logChannelCreate.ts
Normal file
25
backend/src/plugins/Logs/logFunctions/logChannelCreate.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildChannel, NewsChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogChannelCreateData {
|
||||
channel: GuildChannel | NewsChannel;
|
||||
}
|
||||
|
||||
export function logChannelCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogChannelCreateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.CHANNEL_CREATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
}),
|
||||
{
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
25
backend/src/plugins/Logs/logFunctions/logChannelDelete.ts
Normal file
25
backend/src/plugins/Logs/logFunctions/logChannelDelete.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildChannel, NewsChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogChannelDeleteData {
|
||||
channel: GuildChannel | NewsChannel;
|
||||
}
|
||||
|
||||
export function logChannelDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogChannelDeleteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.CHANNEL_DELETE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
}),
|
||||
{
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
29
backend/src/plugins/Logs/logFunctions/logChannelUpdate.ts
Normal file
29
backend/src/plugins/Logs/logFunctions/logChannelUpdate.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildChannel, NewsChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogChannelUpdateData {
|
||||
oldChannel: GuildChannel | NewsChannel;
|
||||
newChannel: GuildChannel | NewsChannel;
|
||||
differenceString: string;
|
||||
}
|
||||
|
||||
export function logChannelUpdate(pluginData: GuildPluginData<LogsPluginType>, data: LogChannelUpdateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.CHANNEL_UPDATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
oldChannel: channelToTemplateSafeChannel(data.oldChannel),
|
||||
newChannel: channelToTemplateSafeChannel(data.newChannel),
|
||||
differenceString: data.differenceString,
|
||||
}),
|
||||
{
|
||||
channel: data.newChannel.id,
|
||||
category: data.newChannel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
31
backend/src/plugins/Logs/logFunctions/logClean.ts
Normal file
31
backend/src/plugins/Logs/logFunctions/logClean.ts
Normal file
|
@ -0,0 +1,31 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, User } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogCleanData {
|
||||
mod: User;
|
||||
channel: BaseGuildTextChannel;
|
||||
count: number;
|
||||
archiveUrl: string;
|
||||
}
|
||||
|
||||
export function logClean(pluginData: GuildPluginData<LogsPluginType>, data: LogCleanData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.CLEAN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
count: data.count,
|
||||
archiveUrl: data.archiveUrl,
|
||||
}),
|
||||
{
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
28
backend/src/plugins/Logs/logFunctions/logDmFailed.ts
Normal file
28
backend/src/plugins/Logs/logFunctions/logDmFailed.ts
Normal file
|
@ -0,0 +1,28 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogDmFailedData {
|
||||
source: string;
|
||||
user: User | UnknownUser;
|
||||
}
|
||||
|
||||
export function logDmFailed(pluginData: GuildPluginData<LogsPluginType>, data: LogDmFailedData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.DM_FAILED,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
source: data.source,
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user instanceof User ? data.user.bot : false,
|
||||
},
|
||||
);
|
||||
}
|
22
backend/src/plugins/Logs/logFunctions/logEmojiCreate.ts
Normal file
22
backend/src/plugins/Logs/logFunctions/logEmojiCreate.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Emoji } from "discord.js";
|
||||
import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogEmojiCreateData {
|
||||
emoji: Emoji;
|
||||
}
|
||||
|
||||
export function logEmojiCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogEmojiCreateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.EMOJI_CREATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
emoji: emojiToTemplateSafeEmoji(data.emoji),
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
22
backend/src/plugins/Logs/logFunctions/logEmojiDelete.ts
Normal file
22
backend/src/plugins/Logs/logFunctions/logEmojiDelete.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Emoji } from "discord.js";
|
||||
import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogEmojiDeleteData {
|
||||
emoji: Emoji;
|
||||
}
|
||||
|
||||
export function logEmojiDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogEmojiDeleteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.EMOJI_DELETE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
emoji: emojiToTemplateSafeEmoji(data.emoji),
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
26
backend/src/plugins/Logs/logFunctions/logEmojiUpdate.ts
Normal file
26
backend/src/plugins/Logs/logFunctions/logEmojiUpdate.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Emoji } from "discord.js";
|
||||
import { emojiToTemplateSafeEmoji } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogEmojiUpdateData {
|
||||
oldEmoji: Emoji;
|
||||
newEmoji: Emoji;
|
||||
differenceString: string;
|
||||
}
|
||||
|
||||
export function logEmojiUpdate(pluginData: GuildPluginData<LogsPluginType>, data: LogEmojiUpdateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.EMOJI_UPDATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
oldEmoji: emojiToTemplateSafeEmoji(data.oldEmoji),
|
||||
newEmoji: emojiToTemplateSafeEmoji(data.newEmoji),
|
||||
differenceString: data.differenceString,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
26
backend/src/plugins/Logs/logFunctions/logMassBan.ts
Normal file
26
backend/src/plugins/Logs/logFunctions/logMassBan.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMassBanData {
|
||||
mod: User;
|
||||
count: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMassBan(pluginData: GuildPluginData<LogsPluginType>, data: LogMassBanData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MASSBAN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
count: data.count,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
24
backend/src/plugins/Logs/logFunctions/logMassMute.ts
Normal file
24
backend/src/plugins/Logs/logFunctions/logMassMute.ts
Normal file
|
@ -0,0 +1,24 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMassMuteData {
|
||||
mod: User;
|
||||
count: number;
|
||||
}
|
||||
|
||||
export function logMassMute(pluginData: GuildPluginData<LogsPluginType>, data: LogMassMuteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MASSMUTE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
count: data.count,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
26
backend/src/plugins/Logs/logFunctions/logMassUnban.ts
Normal file
26
backend/src/plugins/Logs/logFunctions/logMassUnban.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMassUnbanData {
|
||||
mod: User;
|
||||
count: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMassUnban(pluginData: GuildPluginData<LogsPluginType>, data: LogMassUnbanData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MASSUNBAN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
count: data.count,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
32
backend/src/plugins/Logs/logFunctions/logMemberBan.ts
Normal file
32
backend/src/plugins/Logs/logFunctions/logMemberBan.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberBanData {
|
||||
mod: User | UnknownUser | null;
|
||||
user: User | UnknownUser;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberBan(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberBanData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_BAN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: data.mod ? userToTemplateSafeUser(data.mod) : null,
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user instanceof User ? data.user.bot : false,
|
||||
},
|
||||
);
|
||||
}
|
30
backend/src/plugins/Logs/logFunctions/logMemberForceban.ts
Normal file
30
backend/src/plugins/Logs/logFunctions/logMemberForceban.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, Snowflake } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberForcebanData {
|
||||
mod: GuildMember;
|
||||
userId: Snowflake;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberForceban(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberForcebanData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_FORCEBAN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: memberToTemplateSafeMember(data.mod),
|
||||
userId: data.userId,
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.userId,
|
||||
},
|
||||
);
|
||||
}
|
35
backend/src/plugins/Logs/logFunctions/logMemberJoin.ts
Normal file
35
backend/src/plugins/Logs/logFunctions/logMemberJoin.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
import moment from "moment-timezone";
|
||||
import humanizeDuration from "humanize-duration";
|
||||
|
||||
interface LogMemberJoinData {
|
||||
member: GuildMember;
|
||||
}
|
||||
|
||||
export function logMemberJoin(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberJoinData) {
|
||||
const newThreshold = moment.utc().valueOf() - 1000 * 60 * 60;
|
||||
const accountAge = humanizeDuration(moment.utc().valueOf() - data.member.user.createdTimestamp, {
|
||||
largest: 2,
|
||||
round: true,
|
||||
});
|
||||
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_JOIN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
new: data.member.user.createdTimestamp >= newThreshold ? " :new:" : "",
|
||||
account_age: accountAge,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberJoinWithPriorRecordsData {
|
||||
member: GuildMember;
|
||||
recentCaseSummary: string;
|
||||
}
|
||||
|
||||
export function logMemberJoinWithPriorRecords(
|
||||
pluginData: GuildPluginData<LogsPluginType>,
|
||||
data: LogMemberJoinWithPriorRecordsData,
|
||||
) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_JOIN_WITH_PRIOR_RECORDS,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
recentCaseSummary: data.recentCaseSummary,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
32
backend/src/plugins/Logs/logFunctions/logMemberKick.ts
Normal file
32
backend/src/plugins/Logs/logFunctions/logMemberKick.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, User } from "discord.js";
|
||||
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberKickData {
|
||||
mod: User | UnknownUser | null;
|
||||
user: User;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberKick(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberKickData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_KICK,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: data.mod ? userToTemplateSafeUser(data.mod) : null,
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
25
backend/src/plugins/Logs/logFunctions/logMemberLeave.ts
Normal file
25
backend/src/plugins/Logs/logFunctions/logMemberLeave.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, PartialGuildMember } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberLeaveData {
|
||||
member: GuildMember | PartialGuildMember;
|
||||
}
|
||||
|
||||
export function logMemberLeave(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberLeaveData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_LEAVE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
bot: data.member.user?.bot ?? false,
|
||||
},
|
||||
);
|
||||
}
|
32
backend/src/plugins/Logs/logFunctions/logMemberMute.ts
Normal file
32
backend/src/plugins/Logs/logFunctions/logMemberMute.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, User } from "discord.js";
|
||||
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberMuteData {
|
||||
mod: User | UnknownUser;
|
||||
user: User | UnknownUser;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberMute(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberMuteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_MUTE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user instanceof User ? data.user.bot : false,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import {
|
||||
memberToTemplateSafeMember,
|
||||
TemplateSafeUnknownMember,
|
||||
TemplateSafeUnknownUser,
|
||||
} from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberMuteExpiredData {
|
||||
member: GuildMember | UnknownUser;
|
||||
}
|
||||
|
||||
export function logMemberMuteExpired(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberMuteExpiredData) {
|
||||
const member =
|
||||
data.member instanceof GuildMember
|
||||
? memberToTemplateSafeMember(data.member)
|
||||
: new TemplateSafeUnknownMember({ ...data.member, user: new TemplateSafeUnknownUser({ ...data.member }) });
|
||||
|
||||
const roles = data.member instanceof GuildMember ? Array.from(data.member.roles.cache.keys()) : [];
|
||||
|
||||
const bot = data.member instanceof GuildMember ? data.member.user.bot : false;
|
||||
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_MUTE_EXPIRED,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles,
|
||||
bot,
|
||||
},
|
||||
);
|
||||
}
|
25
backend/src/plugins/Logs/logFunctions/logMemberMuteRejoin.ts
Normal file
25
backend/src/plugins/Logs/logFunctions/logMemberMuteRejoin.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberMuteRejoinData {
|
||||
member: GuildMember;
|
||||
}
|
||||
|
||||
export function logMemberMuteRejoin(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberMuteRejoinData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_MUTE_REJOIN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
30
backend/src/plugins/Logs/logFunctions/logMemberNickChange.ts
Normal file
30
backend/src/plugins/Logs/logFunctions/logMemberNickChange.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberNickChangeData {
|
||||
member: GuildMember;
|
||||
oldNick: string;
|
||||
newNick: string;
|
||||
}
|
||||
|
||||
export function logMemberNickChange(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberNickChangeData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_NICK_CHANGE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
oldNick: data.oldNick,
|
||||
newNick: data.newNick,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
32
backend/src/plugins/Logs/logFunctions/logMemberNote.ts
Normal file
32
backend/src/plugins/Logs/logFunctions/logMemberNote.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberNoteData {
|
||||
mod: User;
|
||||
user: User | UnknownUser;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberNote(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberNoteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_NOTE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user instanceof User ? data.user.bot : false,
|
||||
},
|
||||
);
|
||||
}
|
28
backend/src/plugins/Logs/logFunctions/logMemberRestore.ts
Normal file
28
backend/src/plugins/Logs/logFunctions/logMemberRestore.ts
Normal file
|
@ -0,0 +1,28 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberRestoreData {
|
||||
member: GuildMember;
|
||||
restoredData: string;
|
||||
}
|
||||
|
||||
export function logMemberRestore(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberRestoreData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_RESTORE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
restoredData: data.restoredData,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
30
backend/src/plugins/Logs/logFunctions/logMemberRoleAdd.ts
Normal file
30
backend/src/plugins/Logs/logFunctions/logMemberRoleAdd.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, Role, User } from "discord.js";
|
||||
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberRoleAddData {
|
||||
mod: User | null;
|
||||
member: GuildMember;
|
||||
roles: Role[];
|
||||
}
|
||||
|
||||
export function logMemberRoleAdd(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberRoleAddData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_ROLE_ADD,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
roles: data.roles.map(r => r.name).join(", "),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, User } from "discord.js";
|
||||
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberRoleChangesData {
|
||||
mod: User | UnknownUser | null;
|
||||
member: GuildMember;
|
||||
addedRoles: string;
|
||||
removedRoles: string;
|
||||
}
|
||||
|
||||
export function logMemberRoleChanges(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberRoleChangesData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_ROLE_CHANGES,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: data.mod ? userToTemplateSafeUser(data.mod) : null,
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
addedRoles: data.addedRoles,
|
||||
removedRoles: data.removedRoles,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
30
backend/src/plugins/Logs/logFunctions/logMemberRoleRemove.ts
Normal file
30
backend/src/plugins/Logs/logFunctions/logMemberRoleRemove.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, Role, User } from "discord.js";
|
||||
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberRoleRemoveData {
|
||||
mod: User | null;
|
||||
member: GuildMember;
|
||||
roles: Role[];
|
||||
}
|
||||
|
||||
export function logMemberRoleRemove(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberRoleRemoveData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_ROLE_REMOVE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
roles: data.roles.map(r => r.name).join(", "),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
34
backend/src/plugins/Logs/logFunctions/logMemberTimedBan.ts
Normal file
34
backend/src/plugins/Logs/logFunctions/logMemberTimedBan.ts
Normal file
|
@ -0,0 +1,34 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberTimedBanData {
|
||||
mod: User | UnknownUser;
|
||||
user: User | UnknownUser;
|
||||
banTime: string;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberTimedBan(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberTimedBanData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_TIMED_BAN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
banTime: data.banTime,
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user instanceof User ? data.user.bot : false,
|
||||
},
|
||||
);
|
||||
}
|
31
backend/src/plugins/Logs/logFunctions/logMemberTimedMute.ts
Normal file
31
backend/src/plugins/Logs/logFunctions/logMemberTimedMute.ts
Normal file
|
@ -0,0 +1,31 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberTimedMuteData {
|
||||
mod: User | UnknownUser;
|
||||
user: User | UnknownUser;
|
||||
time: string;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberTimedMute(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberTimedMuteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_TIMED_MUTE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
time: data.time,
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
33
backend/src/plugins/Logs/logFunctions/logMemberTimedUnban.ts
Normal file
33
backend/src/plugins/Logs/logFunctions/logMemberTimedUnban.ts
Normal file
|
@ -0,0 +1,33 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberTimedUnbanData {
|
||||
mod: User | UnknownUser;
|
||||
userId: string;
|
||||
banTime: string;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberTimedUnban(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberTimedUnbanData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_TIMED_UNBAN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
userId: data.userId,
|
||||
banTime: data.banTime,
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.userId,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberTimedUnmuteData {
|
||||
mod: User;
|
||||
user: User;
|
||||
time: string;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberTimedUnmute(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberTimedUnmuteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_TIMED_UNMUTE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
time: data.time,
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
31
backend/src/plugins/Logs/logFunctions/logMemberUnban.ts
Normal file
31
backend/src/plugins/Logs/logFunctions/logMemberUnban.ts
Normal file
|
@ -0,0 +1,31 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, Snowflake, User } from "discord.js";
|
||||
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMemberUnbanData {
|
||||
mod: User | UnknownUser | null;
|
||||
userId: Snowflake;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberUnban(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberUnbanData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_UNBAN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: data.mod ? userToTemplateSafeUser(data.mod) : null,
|
||||
userId: data.userId,
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.userId,
|
||||
},
|
||||
);
|
||||
}
|
31
backend/src/plugins/Logs/logFunctions/logMemberUnmute.ts
Normal file
31
backend/src/plugins/Logs/logFunctions/logMemberUnmute.ts
Normal file
|
@ -0,0 +1,31 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember, User } from "discord.js";
|
||||
import { memberToTemplateSafeMember, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberUnmuteData {
|
||||
mod: GuildMember;
|
||||
user: User;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberUnmute(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberUnmuteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_UNMUTE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: memberToTemplateSafeMember(data.mod),
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
32
backend/src/plugins/Logs/logFunctions/logMemberWarn.ts
Normal file
32
backend/src/plugins/Logs/logFunctions/logMemberWarn.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMemberWarnData {
|
||||
mod: GuildMember;
|
||||
member: GuildMember;
|
||||
caseNumber: number;
|
||||
reason: string;
|
||||
}
|
||||
|
||||
export function logMemberWarn(pluginData: GuildPluginData<LogsPluginType>, data: LogMemberWarnData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MEMBER_WARN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: memberToTemplateSafeMember(data.mod),
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
caseNumber: data.caseNumber,
|
||||
reason: data.reason,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
56
backend/src/plugins/Logs/logFunctions/logMessageDelete.ts
Normal file
56
backend/src/plugins/Logs/logFunctions/logMessageDelete.ts
Normal file
|
@ -0,0 +1,56 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { FORMAT_NO_TIMESTAMP, LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, ThreadChannel, User } from "discord.js";
|
||||
import {
|
||||
channelToTemplateSafeChannel,
|
||||
savedMessageToTemplateSafeSavedMessage,
|
||||
userToTemplateSafeUser,
|
||||
} from "../../../utils/templateSafeObjects";
|
||||
import moment from "moment-timezone";
|
||||
import { ISavedMessageAttachmentData, SavedMessage } from "../../../data/entities/SavedMessage";
|
||||
import { TimeAndDatePlugin } from "../../TimeAndDate/TimeAndDatePlugin";
|
||||
import { UnknownUser, useMediaUrls } from "../../../utils";
|
||||
|
||||
interface LogMessageDeleteData {
|
||||
user: User | UnknownUser;
|
||||
channel: BaseGuildTextChannel | ThreadChannel;
|
||||
message: SavedMessage;
|
||||
}
|
||||
|
||||
export function logMessageDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogMessageDeleteData) {
|
||||
// Replace attachment URLs with media URLs
|
||||
if (data.message.data.attachments) {
|
||||
for (const attachment of data.message.data.attachments as ISavedMessageAttachmentData[]) {
|
||||
attachment.url = useMediaUrls(attachment.url);
|
||||
}
|
||||
}
|
||||
|
||||
// See comment on FORMAT_NO_TIMESTAMP in types.ts
|
||||
const config = pluginData.config.get();
|
||||
const timestampFormat =
|
||||
(config.format.timestamp !== FORMAT_NO_TIMESTAMP ? config.format.timestamp : null) ?? config.timestamp_format;
|
||||
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MESSAGE_DELETE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
message: savedMessageToTemplateSafeSavedMessage(data.message),
|
||||
messageDate: pluginData
|
||||
.getPlugin(TimeAndDatePlugin)
|
||||
.inGuildTz(moment.utc(data.message.data.timestamp, "x"))
|
||||
.format(timestampFormat),
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
messageTextContent: data.message.data.content,
|
||||
bot: data.user instanceof User ? data.user.bot : false,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, User } from "discord.js";
|
||||
import {
|
||||
channelToTemplateSafeChannel,
|
||||
savedMessageToTemplateSafeSavedMessage,
|
||||
userToTemplateSafeUser,
|
||||
} from "../../../utils/templateSafeObjects";
|
||||
import { SavedMessage } from "../../../data/entities/SavedMessage";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMessageDeleteAutoData {
|
||||
message: SavedMessage;
|
||||
user: User | UnknownUser;
|
||||
channel: BaseGuildTextChannel;
|
||||
messageDate: string;
|
||||
}
|
||||
|
||||
export function logMessageDeleteAuto(pluginData: GuildPluginData<LogsPluginType>, data: LogMessageDeleteAutoData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MESSAGE_DELETE_AUTO,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
message: savedMessageToTemplateSafeSavedMessage(data.message),
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
messageDate: data.messageDate,
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user.bot,
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, ThreadChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMessageDeleteBareData {
|
||||
messageId: string;
|
||||
channel: BaseGuildTextChannel | ThreadChannel;
|
||||
}
|
||||
|
||||
export function logMessageDeleteBare(pluginData: GuildPluginData<LogsPluginType>, data: LogMessageDeleteBareData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MESSAGE_DELETE_BARE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
messageId: data.messageId,
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
}),
|
||||
{
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, ThreadChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMessageDeleteBulkData {
|
||||
count: number;
|
||||
authorIds: string[];
|
||||
channel: BaseGuildTextChannel | ThreadChannel;
|
||||
archiveUrl: string;
|
||||
}
|
||||
|
||||
export function logMessageDeleteBulk(pluginData: GuildPluginData<LogsPluginType>, data: LogMessageDeleteBulkData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MESSAGE_DELETE_BULK,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
count: data.count,
|
||||
authorIds: data.authorIds,
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
archiveUrl: data.archiveUrl,
|
||||
}),
|
||||
{
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
39
backend/src/plugins/Logs/logFunctions/logMessageEdit.ts
Normal file
39
backend/src/plugins/Logs/logFunctions/logMessageEdit.ts
Normal file
|
@ -0,0 +1,39 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, ThreadChannel, User } from "discord.js";
|
||||
import {
|
||||
channelToTemplateSafeChannel,
|
||||
savedMessageToTemplateSafeSavedMessage,
|
||||
userToTemplateSafeUser,
|
||||
} from "../../../utils/templateSafeObjects";
|
||||
import { SavedMessage } from "../../../data/entities/SavedMessage";
|
||||
import { UnknownUser } from "../../../utils";
|
||||
|
||||
interface LogMessageEditData {
|
||||
user: User | UnknownUser;
|
||||
channel: BaseGuildTextChannel | ThreadChannel;
|
||||
before: SavedMessage;
|
||||
after: SavedMessage;
|
||||
}
|
||||
|
||||
export function logMessageEdit(pluginData: GuildPluginData<LogsPluginType>, data: LogMessageEditData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MESSAGE_EDIT,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
before: savedMessageToTemplateSafeSavedMessage(data.before),
|
||||
after: savedMessageToTemplateSafeSavedMessage(data.after),
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
channel: data.channel.id,
|
||||
messageTextContent: data.after.data.content,
|
||||
bot: data.user instanceof User ? data.user.bot : false,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, GuildChannel, GuildMember, ThreadChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogMessageSpamDetectedData {
|
||||
member: GuildMember;
|
||||
channel: GuildChannel | ThreadChannel;
|
||||
description: string;
|
||||
limit: number;
|
||||
interval: number;
|
||||
archiveUrl: string;
|
||||
}
|
||||
|
||||
export function logMessageSpamDetected(pluginData: GuildPluginData<LogsPluginType>, data: LogMessageSpamDetectedData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.MESSAGE_SPAM_DETECTED,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
description: data.description,
|
||||
limit: data.limit,
|
||||
interval: data.interval,
|
||||
archiveUrl: data.archiveUrl,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { GuildMember } from "discord.js";
|
||||
import { memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogOtherSpamDetectedData {
|
||||
member: GuildMember;
|
||||
description: string;
|
||||
limit: number;
|
||||
interval: number;
|
||||
}
|
||||
|
||||
export function logOtherSpamDetected(pluginData: GuildPluginData<LogsPluginType>, data: LogOtherSpamDetectedData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.OTHER_SPAM_DETECTED,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
description: data.description,
|
||||
limit: data.limit,
|
||||
interval: data.interval,
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, User } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogPostedScheduledMessageData {
|
||||
author: User;
|
||||
channel: BaseGuildTextChannel;
|
||||
messageId: string;
|
||||
}
|
||||
|
||||
export function logPostedScheduledMessage(
|
||||
pluginData: GuildPluginData<LogsPluginType>,
|
||||
data: LogPostedScheduledMessageData,
|
||||
) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.POSTED_SCHEDULED_MESSAGE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
author: userToTemplateSafeUser(data.author),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
messageId: data.messageId,
|
||||
}),
|
||||
{
|
||||
userId: data.author.id,
|
||||
bot: data.author.bot,
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
39
backend/src/plugins/Logs/logFunctions/logRepeatedMessage.ts
Normal file
39
backend/src/plugins/Logs/logFunctions/logRepeatedMessage.ts
Normal file
|
@ -0,0 +1,39 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, User } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogRepeatedMessageData {
|
||||
author: User;
|
||||
channel: BaseGuildTextChannel;
|
||||
datetime: string;
|
||||
date: string;
|
||||
time: string;
|
||||
repeatInterval: string;
|
||||
repeatDetails: string;
|
||||
}
|
||||
|
||||
export function logRepeatedMessage(pluginData: GuildPluginData<LogsPluginType>, data: LogRepeatedMessageData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.REPEATED_MESSAGE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
author: userToTemplateSafeUser(data.author),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
datetime: data.datetime,
|
||||
date: data.date,
|
||||
time: data.time,
|
||||
repeatInterval: data.repeatInterval,
|
||||
repeatDetails: data.repeatDetails,
|
||||
}),
|
||||
{
|
||||
userId: data.author.id,
|
||||
bot: data.author.bot,
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
22
backend/src/plugins/Logs/logFunctions/logRoleCreate.ts
Normal file
22
backend/src/plugins/Logs/logFunctions/logRoleCreate.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Role } from "discord.js";
|
||||
import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogRoleCreateData {
|
||||
role: Role;
|
||||
}
|
||||
|
||||
export function logRoleCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogRoleCreateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.ROLE_CREATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
role: roleToTemplateSafeRole(data.role),
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
22
backend/src/plugins/Logs/logFunctions/logRoleDelete.ts
Normal file
22
backend/src/plugins/Logs/logFunctions/logRoleDelete.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Role } from "discord.js";
|
||||
import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogRoleDeleteData {
|
||||
role: Role;
|
||||
}
|
||||
|
||||
export function logRoleDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogRoleDeleteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.ROLE_DELETE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
role: roleToTemplateSafeRole(data.role),
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
26
backend/src/plugins/Logs/logFunctions/logRoleUpdate.ts
Normal file
26
backend/src/plugins/Logs/logFunctions/logRoleUpdate.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Role } from "discord.js";
|
||||
import { roleToTemplateSafeRole } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogRoleUpdateData {
|
||||
oldRole: Role;
|
||||
newRole: Role;
|
||||
differenceString: string;
|
||||
}
|
||||
|
||||
export function logRoleUpdate(pluginData: GuildPluginData<LogsPluginType>, data: LogRoleUpdateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.ROLE_UPDATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
oldRole: roleToTemplateSafeRole(data.oldRole),
|
||||
newRole: roleToTemplateSafeRole(data.newRole),
|
||||
differenceString: data.differenceString,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
35
backend/src/plugins/Logs/logFunctions/logScheduledMessage.ts
Normal file
35
backend/src/plugins/Logs/logFunctions/logScheduledMessage.ts
Normal file
|
@ -0,0 +1,35 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, User } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogScheduledMessageData {
|
||||
author: User;
|
||||
channel: BaseGuildTextChannel;
|
||||
datetime: string;
|
||||
date: string;
|
||||
time: string;
|
||||
}
|
||||
|
||||
export function logScheduledMessage(pluginData: GuildPluginData<LogsPluginType>, data: LogScheduledMessageData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.SCHEDULED_MESSAGE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
author: userToTemplateSafeUser(data.author),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
datetime: data.datetime,
|
||||
date: data.date,
|
||||
time: data.time,
|
||||
}),
|
||||
{
|
||||
userId: data.author.id,
|
||||
bot: data.author.bot,
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildTextChannel, User } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogScheduledRepeatedMessageData {
|
||||
author: User;
|
||||
channel: BaseGuildTextChannel;
|
||||
datetime: string;
|
||||
date: string;
|
||||
time: string;
|
||||
repeatInterval: string;
|
||||
repeatDetails: string;
|
||||
}
|
||||
|
||||
export function logScheduledRepeatedMessage(
|
||||
pluginData: GuildPluginData<LogsPluginType>,
|
||||
data: LogScheduledRepeatedMessageData,
|
||||
) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.SCHEDULED_REPEATED_MESSAGE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
author: userToTemplateSafeUser(data.author),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
datetime: data.datetime,
|
||||
date: data.date,
|
||||
time: data.time,
|
||||
repeatInterval: data.repeatInterval,
|
||||
repeatDetails: data.repeatDetails,
|
||||
}),
|
||||
{
|
||||
userId: data.author.id,
|
||||
bot: data.author.bot,
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
},
|
||||
);
|
||||
}
|
20
backend/src/plugins/Logs/logFunctions/logSetAntiraidAuto.ts
Normal file
20
backend/src/plugins/Logs/logFunctions/logSetAntiraidAuto.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
|
||||
interface LogSetAntiraidAutoData {
|
||||
level: string;
|
||||
}
|
||||
|
||||
export function logSetAntiraidAuto(pluginData: GuildPluginData<LogsPluginType>, data: LogSetAntiraidAutoData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.SET_ANTIRAID_AUTO,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
level: data.level,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
27
backend/src/plugins/Logs/logFunctions/logSetAntiraidUser.ts
Normal file
27
backend/src/plugins/Logs/logFunctions/logSetAntiraidUser.ts
Normal file
|
@ -0,0 +1,27 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { User } from "discord.js";
|
||||
import { userToTemplateSafeUser } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogSetAntiraidUserData {
|
||||
level: string;
|
||||
user: User;
|
||||
}
|
||||
|
||||
export function logSetAntiraidUser(pluginData: GuildPluginData<LogsPluginType>, data: LogSetAntiraidUserData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.SET_ANTIRAID_USER,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
level: data.level,
|
||||
user: userToTemplateSafeUser(data.user),
|
||||
}),
|
||||
{
|
||||
userId: data.user.id,
|
||||
bot: data.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { StageChannel, StageInstance } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogStageInstanceCreateData {
|
||||
stageInstance: StageInstance;
|
||||
stageChannel: StageChannel;
|
||||
}
|
||||
|
||||
export function logStageInstanceCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogStageInstanceCreateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.STAGE_INSTANCE_CREATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
stageInstance: stageToTemplateSafeStage(data.stageInstance),
|
||||
stageChannel: channelToTemplateSafeChannel(data.stageChannel),
|
||||
}),
|
||||
{
|
||||
channel: data.stageInstance.channel!.id,
|
||||
category: data.stageInstance.channel!.parentId,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { StageChannel, StageInstance } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogStageInstanceDeleteData {
|
||||
stageInstance: StageInstance;
|
||||
stageChannel: StageChannel;
|
||||
}
|
||||
|
||||
export function logStageInstanceDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogStageInstanceDeleteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.STAGE_INSTANCE_DELETE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
stageInstance: stageToTemplateSafeStage(data.stageInstance),
|
||||
stageChannel: channelToTemplateSafeChannel(data.stageChannel),
|
||||
}),
|
||||
{
|
||||
channel: data.stageInstance.channel!.id,
|
||||
category: data.stageInstance.channel!.parentId,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { StageChannel, StageInstance } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, stageToTemplateSafeStage } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogStageInstanceUpdateData {
|
||||
oldStageInstance: StageInstance;
|
||||
newStageInstance: StageInstance;
|
||||
stageChannel: StageChannel;
|
||||
differenceString: string;
|
||||
}
|
||||
|
||||
export function logStageInstanceUpdate(pluginData: GuildPluginData<LogsPluginType>, data: LogStageInstanceUpdateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.STAGE_INSTANCE_UPDATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
oldStageInstance: stageToTemplateSafeStage(data.oldStageInstance),
|
||||
newStageInstance: stageToTemplateSafeStage(data.newStageInstance),
|
||||
stageChannel: channelToTemplateSafeChannel(data.stageChannel),
|
||||
differenceString: data.differenceString,
|
||||
}),
|
||||
{
|
||||
channel: data.newStageInstance.channel!.id,
|
||||
category: data.newStageInstance.channel!.parentId,
|
||||
},
|
||||
);
|
||||
}
|
22
backend/src/plugins/Logs/logFunctions/logStickerCreate.ts
Normal file
22
backend/src/plugins/Logs/logFunctions/logStickerCreate.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Sticker } from "discord.js";
|
||||
import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogStickerCreateData {
|
||||
sticker: Sticker;
|
||||
}
|
||||
|
||||
export function logStickerCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogStickerCreateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.STICKER_CREATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
sticker: stickerToTemplateSafeSticker(data.sticker),
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
22
backend/src/plugins/Logs/logFunctions/logStickerDelete.ts
Normal file
22
backend/src/plugins/Logs/logFunctions/logStickerDelete.ts
Normal file
|
@ -0,0 +1,22 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Sticker } from "discord.js";
|
||||
import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogStickerDeleteData {
|
||||
sticker: Sticker;
|
||||
}
|
||||
|
||||
export function logStickerDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogStickerDeleteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.STICKER_DELETE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
sticker: stickerToTemplateSafeSticker(data.sticker),
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
26
backend/src/plugins/Logs/logFunctions/logStickerUpdate.ts
Normal file
26
backend/src/plugins/Logs/logFunctions/logStickerUpdate.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { Sticker } from "discord.js";
|
||||
import { stickerToTemplateSafeSticker } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogStickerUpdateData {
|
||||
oldSticker: Sticker;
|
||||
newSticker: Sticker;
|
||||
differenceString: string;
|
||||
}
|
||||
|
||||
export function logStickerUpdate(pluginData: GuildPluginData<LogsPluginType>, data: LogStickerUpdateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.STICKER_UPDATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
oldSticker: stickerToTemplateSafeSticker(data.oldSticker),
|
||||
newSticker: stickerToTemplateSafeSticker(data.newSticker),
|
||||
differenceString: data.differenceString,
|
||||
}),
|
||||
{},
|
||||
);
|
||||
}
|
25
backend/src/plugins/Logs/logFunctions/logThreadCreate.ts
Normal file
25
backend/src/plugins/Logs/logFunctions/logThreadCreate.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { ThreadChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogThreadCreateData {
|
||||
thread: ThreadChannel;
|
||||
}
|
||||
|
||||
export function logThreadCreate(pluginData: GuildPluginData<LogsPluginType>, data: LogThreadCreateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.THREAD_CREATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
thread: channelToTemplateSafeChannel(data.thread),
|
||||
}),
|
||||
{
|
||||
channel: data.thread.parentId,
|
||||
category: data.thread.parent?.parentId,
|
||||
},
|
||||
);
|
||||
}
|
25
backend/src/plugins/Logs/logFunctions/logThreadDelete.ts
Normal file
25
backend/src/plugins/Logs/logFunctions/logThreadDelete.ts
Normal file
|
@ -0,0 +1,25 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { ThreadChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogThreadDeleteData {
|
||||
thread: ThreadChannel;
|
||||
}
|
||||
|
||||
export function logThreadDelete(pluginData: GuildPluginData<LogsPluginType>, data: LogThreadDeleteData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.THREAD_DELETE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
thread: channelToTemplateSafeChannel(data.thread),
|
||||
}),
|
||||
{
|
||||
channel: data.thread.parentId,
|
||||
category: data.thread.parent?.parentId,
|
||||
},
|
||||
);
|
||||
}
|
29
backend/src/plugins/Logs/logFunctions/logThreadUpdate.ts
Normal file
29
backend/src/plugins/Logs/logFunctions/logThreadUpdate.ts
Normal file
|
@ -0,0 +1,29 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { ThreadChannel } from "discord.js";
|
||||
import { channelToTemplateSafeChannel } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogThreadUpdateData {
|
||||
oldThread: ThreadChannel;
|
||||
newThread: ThreadChannel;
|
||||
differenceString: string;
|
||||
}
|
||||
|
||||
export function logThreadUpdate(pluginData: GuildPluginData<LogsPluginType>, data: LogThreadUpdateData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.THREAD_UPDATE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
oldThread: channelToTemplateSafeChannel(data.oldThread),
|
||||
newThread: channelToTemplateSafeChannel(data.newThread),
|
||||
differenceString: data.differenceString,
|
||||
}),
|
||||
{
|
||||
channel: data.newThread.parentId,
|
||||
category: data.newThread.parent?.parentId,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildVoiceChannel, GuildMember, User } from "discord.js";
|
||||
import {
|
||||
channelToTemplateSafeChannel,
|
||||
memberToTemplateSafeMember,
|
||||
userToTemplateSafeUser,
|
||||
} from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogVoiceChannelForceDisconnectData {
|
||||
mod: User;
|
||||
member: GuildMember;
|
||||
oldChannel: BaseGuildVoiceChannel;
|
||||
}
|
||||
|
||||
export function logVoiceChannelForceDisconnect(
|
||||
pluginData: GuildPluginData<LogsPluginType>,
|
||||
data: LogVoiceChannelForceDisconnectData,
|
||||
) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.VOICE_CHANNEL_FORCE_DISCONNECT,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
oldChannel: channelToTemplateSafeChannel(data.oldChannel),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
channel: data.oldChannel.id,
|
||||
category: data.oldChannel.parentId,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildVoiceChannel, GuildMember, User } from "discord.js";
|
||||
import {
|
||||
channelToTemplateSafeChannel,
|
||||
memberToTemplateSafeMember,
|
||||
userToTemplateSafeUser,
|
||||
} from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogVoiceChannelForceMoveData {
|
||||
mod: User;
|
||||
member: GuildMember;
|
||||
oldChannel: BaseGuildVoiceChannel;
|
||||
newChannel: BaseGuildVoiceChannel;
|
||||
}
|
||||
|
||||
export function logVoiceChannelForceMove(
|
||||
pluginData: GuildPluginData<LogsPluginType>,
|
||||
data: LogVoiceChannelForceMoveData,
|
||||
) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.VOICE_CHANNEL_FORCE_MOVE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
mod: userToTemplateSafeUser(data.mod),
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
oldChannel: channelToTemplateSafeChannel(data.oldChannel),
|
||||
newChannel: channelToTemplateSafeChannel(data.newChannel),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
channel: data.newChannel.id,
|
||||
category: data.newChannel.parentId,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
30
backend/src/plugins/Logs/logFunctions/logVoiceChannelJoin.ts
Normal file
30
backend/src/plugins/Logs/logFunctions/logVoiceChannelJoin.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildVoiceChannel, GuildMember } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogVoiceChannelJoinData {
|
||||
member: GuildMember;
|
||||
channel: BaseGuildVoiceChannel;
|
||||
}
|
||||
|
||||
export function logVoiceChannelJoin(pluginData: GuildPluginData<LogsPluginType>, data: LogVoiceChannelJoinData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.VOICE_CHANNEL_JOIN,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildVoiceChannel, GuildMember } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogVoiceChannelLeaveData {
|
||||
member: GuildMember;
|
||||
channel: BaseGuildVoiceChannel;
|
||||
}
|
||||
|
||||
export function logVoiceChannelLeave(pluginData: GuildPluginData<LogsPluginType>, data: LogVoiceChannelLeaveData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.VOICE_CHANNEL_LEAVE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
channel: channelToTemplateSafeChannel(data.channel),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
channel: data.channel.id,
|
||||
category: data.channel.parentId,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
32
backend/src/plugins/Logs/logFunctions/logVoiceChannelMove.ts
Normal file
32
backend/src/plugins/Logs/logFunctions/logVoiceChannelMove.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
import { GuildPluginData } from "knub";
|
||||
import { LogsPluginType } from "../types";
|
||||
import { LogType } from "../../../data/LogType";
|
||||
import { log } from "../util/log";
|
||||
import { createTypedTemplateSafeValueContainer } from "../../../templateFormatter";
|
||||
import { BaseGuildVoiceChannel, GuildMember } from "discord.js";
|
||||
import { channelToTemplateSafeChannel, memberToTemplateSafeMember } from "../../../utils/templateSafeObjects";
|
||||
|
||||
interface LogVoiceChannelMoveData {
|
||||
member: GuildMember;
|
||||
oldChannel: BaseGuildVoiceChannel;
|
||||
newChannel: BaseGuildVoiceChannel;
|
||||
}
|
||||
|
||||
export function logVoiceChannelMove(pluginData: GuildPluginData<LogsPluginType>, data: LogVoiceChannelMoveData) {
|
||||
return log(
|
||||
pluginData,
|
||||
LogType.VOICE_CHANNEL_MOVE,
|
||||
createTypedTemplateSafeValueContainer({
|
||||
member: memberToTemplateSafeMember(data.member),
|
||||
oldChannel: channelToTemplateSafeChannel(data.oldChannel),
|
||||
newChannel: channelToTemplateSafeChannel(data.newChannel),
|
||||
}),
|
||||
{
|
||||
userId: data.member.id,
|
||||
roles: Array.from(data.member.roles.cache.keys()),
|
||||
channel: data.newChannel.id,
|
||||
category: data.newChannel.parentId,
|
||||
bot: data.member.user.bot,
|
||||
},
|
||||
);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue