3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-15 05:41:51 +00:00

Allow kicking the user from VC on mute (#156)

* Allow kicking the user from VC on mute

If any non-id string is entered in `move_to_voice_channel`, the user is kicked from the VC instead of being moved. We do not automatically kick if the option is set to null in order to not make this a breaking change for old, intended behavior

* Add explicit config option for kicking instead of kicking on any non-id

Kicking takes precedent in this case and will take effect instead of moving to voice id
This commit is contained in:
Nils 2021-04-02 15:39:22 +02:00 committed by GitHub
parent fb4979ff00
commit 2fc8cffd80
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 3 deletions

View file

@ -25,6 +25,7 @@ const defaultOptions = {
config: {
mute_role: null,
move_to_voice_channel: null,
kick_from_voice_channel: false,
dm_on_mute: false,
dm_on_update: false,

View file

@ -120,11 +120,12 @@ export async function muteUser(
}
// If enabled, move the user to the mute voice channel (e.g. afk - just to apply the voice perms from the mute role)
const moveToVoiceChannelId = pluginData.config.get().move_to_voice_channel;
if (moveToVoiceChannelId) {
const cfg = pluginData.config.get();
const moveToVoiceChannel = cfg.kick_from_voice_channel ? null : cfg.move_to_voice_channel;
if (moveToVoiceChannel || cfg.kick_from_voice_channel) {
// TODO: Add back the voiceState check once we figure out how to get voice state for guild members that are loaded on-demand
try {
await member.edit({ channelID: moveToVoiceChannelId });
await member.edit({ channelID: moveToVoiceChannel });
} catch (e) {} // tslint:disable-line
}
}

View file

@ -15,6 +15,7 @@ import { EventEmitter } from "events";
export const ConfigSchema = t.type({
mute_role: tNullable(t.string),
move_to_voice_channel: tNullable(t.string),
kick_from_voice_channel: t.boolean,
dm_on_mute: t.boolean,
dm_on_update: t.boolean,