From e00eae0478fc377feb9bc812cb944905e3f1fa21 Mon Sep 17 00:00:00 2001 From: almeidx Date: Wed, 16 Sep 2020 09:24:26 +0100 Subject: [PATCH 1/2] added 'nick' aliases to the nickname commands --- backend/src/plugins/Utility/commands/NicknameCmd.ts | 2 +- backend/src/plugins/Utility/commands/NicknameResetCmd.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/plugins/Utility/commands/NicknameCmd.ts b/backend/src/plugins/Utility/commands/NicknameCmd.ts index 1d187d0e..42130544 100644 --- a/backend/src/plugins/Utility/commands/NicknameCmd.ts +++ b/backend/src/plugins/Utility/commands/NicknameCmd.ts @@ -4,7 +4,7 @@ import { errorMessage } from "../../../utils"; import { canActOn, sendSuccessMessage } from "../../../pluginUtils"; export const NicknameCmd = utilityCmd({ - trigger: "nickname", + trigger: ["nickname", "nick"], description: "Set a member's nickname", usage: "!nickname 106391128718245888 Drag", permission: "can_nickname", diff --git a/backend/src/plugins/Utility/commands/NicknameResetCmd.ts b/backend/src/plugins/Utility/commands/NicknameResetCmd.ts index c69bf3d6..6e954743 100644 --- a/backend/src/plugins/Utility/commands/NicknameResetCmd.ts +++ b/backend/src/plugins/Utility/commands/NicknameResetCmd.ts @@ -4,7 +4,7 @@ import { errorMessage } from "../../../utils"; import { canActOn, sendSuccessMessage } from "../../../pluginUtils"; export const NicknameResetCmd = utilityCmd({ - trigger: "nickname reset", + trigger: ["nickname reset", "nick reset"], description: "Reset a member's nickname to their username", usage: "!nickname reset 106391128718245888", permission: "can_nickname", From ff053d2f05386913c3ede78c4e42f2449053031c Mon Sep 17 00:00:00 2001 From: Dark <7890309+DarkView@users.noreply.github.com> Date: Mon, 21 Sep 2020 18:11:18 +0200 Subject: [PATCH 2/2] Allow companion_channels to take category ID --- .../events/VoiceChannelJoinEvt.ts | 3 ++- .../events/VoiceChannelLeaveEvt.ts | 2 +- .../events/VoiceChannelSwitchEvt.ts | 2 +- ...etCompanionChannelOptsForVoiceChannelId.ts | 10 ++++--- .../functions/handleCompanionPermissions.ts | 26 +++++++++---------- 5 files changed, 24 insertions(+), 19 deletions(-) diff --git a/backend/src/plugins/CompanionChannels/events/VoiceChannelJoinEvt.ts b/backend/src/plugins/CompanionChannels/events/VoiceChannelJoinEvt.ts index 042a6101..0794bfd8 100644 --- a/backend/src/plugins/CompanionChannels/events/VoiceChannelJoinEvt.ts +++ b/backend/src/plugins/CompanionChannels/events/VoiceChannelJoinEvt.ts @@ -1,10 +1,11 @@ import { eventListener } from "knub"; import { CompanionChannelsPluginType } from "../types"; import { handleCompanionPermissions } from "../functions/handleCompanionPermissions"; +import { stripObjectToScalars } from "src/utils"; export const VoiceChannelJoinEvt = eventListener()( "voiceChannelJoin", ({ pluginData, args: { member, newChannel } }) => { - handleCompanionPermissions(pluginData, member.id, newChannel.id); + handleCompanionPermissions(pluginData, member.id, newChannel); }, ); diff --git a/backend/src/plugins/CompanionChannels/events/VoiceChannelLeaveEvt.ts b/backend/src/plugins/CompanionChannels/events/VoiceChannelLeaveEvt.ts index cf584d7e..171f5341 100644 --- a/backend/src/plugins/CompanionChannels/events/VoiceChannelLeaveEvt.ts +++ b/backend/src/plugins/CompanionChannels/events/VoiceChannelLeaveEvt.ts @@ -5,6 +5,6 @@ import { handleCompanionPermissions } from "../functions/handleCompanionPermissi export const VoiceChannelLeaveEvt = eventListener()( "voiceChannelLeave", ({ pluginData, args: { member, oldChannel } }) => { - handleCompanionPermissions(pluginData, member.id, null, oldChannel.id); + handleCompanionPermissions(pluginData, member.id, null, oldChannel); }, ); diff --git a/backend/src/plugins/CompanionChannels/events/VoiceChannelSwitchEvt.ts b/backend/src/plugins/CompanionChannels/events/VoiceChannelSwitchEvt.ts index fe382578..102e9013 100644 --- a/backend/src/plugins/CompanionChannels/events/VoiceChannelSwitchEvt.ts +++ b/backend/src/plugins/CompanionChannels/events/VoiceChannelSwitchEvt.ts @@ -5,6 +5,6 @@ import { handleCompanionPermissions } from "../functions/handleCompanionPermissi export const VoiceChannelSwitchEvt = eventListener()( "voiceChannelSwitch", ({ pluginData, args: { member, oldChannel, newChannel } }) => { - handleCompanionPermissions(pluginData, member.id, newChannel.id, oldChannel.id); + handleCompanionPermissions(pluginData, member.id, newChannel, oldChannel); }, ); diff --git a/backend/src/plugins/CompanionChannels/functions/getCompanionChannelOptsForVoiceChannelId.ts b/backend/src/plugins/CompanionChannels/functions/getCompanionChannelOptsForVoiceChannelId.ts index fc9693f4..dddfd84c 100644 --- a/backend/src/plugins/CompanionChannels/functions/getCompanionChannelOptsForVoiceChannelId.ts +++ b/backend/src/plugins/CompanionChannels/functions/getCompanionChannelOptsForVoiceChannelId.ts @@ -1,3 +1,4 @@ +import { VoiceChannel } from "eris"; import { PluginData } from "knub"; import { CompanionChannelsPluginType, TCompanionChannelOpts } from "../types"; @@ -8,10 +9,13 @@ const defaultCompanionChannelOpts: Partial = { export function getCompanionChannelOptsForVoiceChannelId( pluginData: PluginData, userId: string, - voiceChannelId: string, + voiceChannel: VoiceChannel, ): TCompanionChannelOpts[] { - const config = pluginData.config.getMatchingConfig({ userId, channelId: voiceChannelId }); + const config = pluginData.config.getMatchingConfig({ userId, channelId: voiceChannel.id }); return Object.values(config.entries) - .filter(opts => opts.voice_channel_ids.includes(voiceChannelId)) + .filter( + opts => + opts.voice_channel_ids.includes(voiceChannel.id) || opts.voice_channel_ids.includes(voiceChannel.parentID), + ) .map(opts => Object.assign({}, defaultCompanionChannelOpts, opts)); } diff --git a/backend/src/plugins/CompanionChannels/functions/handleCompanionPermissions.ts b/backend/src/plugins/CompanionChannels/functions/handleCompanionPermissions.ts index b5a51a66..1ac701b8 100644 --- a/backend/src/plugins/CompanionChannels/functions/handleCompanionPermissions.ts +++ b/backend/src/plugins/CompanionChannels/functions/handleCompanionPermissions.ts @@ -1,7 +1,7 @@ import { CompanionChannelsPluginType, TCompanionChannelOpts } from "../types"; import { getCompanionChannelOptsForVoiceChannelId } from "./getCompanionChannelOptsForVoiceChannelId"; import { PluginData } from "knub"; -import { TextChannel } from "eris"; +import { TextChannel, VoiceChannel } from "eris"; import { isDiscordRESTError, MINUTES } from "../../../utils"; import { LogsPlugin } from "../../Logs/LogsPlugin"; import { LogType } from "../../../data/LogType"; @@ -12,20 +12,20 @@ const ERROR_COOLDOWN = 5 * MINUTES; export async function handleCompanionPermissions( pluginData: PluginData, userId: string, - voiceChannelId: string, - oldChannelId?: string, + voiceChannel: VoiceChannel, + oldChannel?: VoiceChannel, ); export async function handleCompanionPermissions( pluginData: PluginData, userId: string, - voiceChannelId: null, - oldChannelId: string, + voiceChannel: null, + oldChannel: VoiceChannel, ); export async function handleCompanionPermissions( pluginData: PluginData, userId: string, - voiceChannelId?: string, - oldChannelId?: string, + voiceChannel?: VoiceChannel, + oldChannel?: VoiceChannel, ) { if (pluginData.state.errorCooldownManager.isOnCooldown(ERROR_COOLDOWN_KEY)) { return; @@ -35,11 +35,11 @@ export async function handleCompanionPermissions( const oldPerms: Map = new Map(); // channelId => permissions const permsToSet: Map = new Map(); // channelId => permissions - const oldChannelOptsArr: TCompanionChannelOpts[] = oldChannelId - ? getCompanionChannelOptsForVoiceChannelId(pluginData, userId, oldChannelId) + const oldChannelOptsArr: TCompanionChannelOpts[] = oldChannel + ? getCompanionChannelOptsForVoiceChannelId(pluginData, userId, oldChannel) : []; - const newChannelOptsArr: TCompanionChannelOpts[] = voiceChannelId - ? getCompanionChannelOptsForVoiceChannelId(pluginData, userId, voiceChannelId) + const newChannelOptsArr: TCompanionChannelOpts[] = voiceChannel + ? getCompanionChannelOptsForVoiceChannelId(pluginData, userId, voiceChannel) : []; for (const oldChannelOpts of oldChannelOptsArr) { @@ -65,7 +65,7 @@ export async function handleCompanionPermissions( for (const channelId of permsToDelete) { const channel = pluginData.guild.channels.get(channelId); if (!channel || !(channel instanceof TextChannel)) continue; - await channel.deletePermission(userId, `Companion Channel for ${oldChannelId} | User Left`); + await channel.deletePermission(userId, `Companion Channel for ${oldChannel.id} | User Left`); } for (const [channelId, permissions] of permsToSet) { @@ -76,7 +76,7 @@ export async function handleCompanionPermissions( permissions, 0, "member", - `Companion Channel for ${voiceChannelId} | User Joined`, + `Companion Channel for ${voiceChannel.id} | User Joined`, ); } } catch (e) {