forked from sh-edraft.de/sh_discord_bot
Reviewed-on: sh-edraft.de/kd_discord_bot#136 Reviewed-by: Sven Heidemann <sven.heidemann@sh-edraft.de> Closes #136
This commit is contained in:
commit
91fdf34d32
@ -1 +1 @@
|
||||
Subproject commit 52d19fab6dcfd2e7bce068f01d0e15ddf7d43212
|
||||
Subproject commit e7e9d85f7d0054ba95ae1ff87d91b4e218ef510f
|
@ -151,6 +151,10 @@
|
||||
},
|
||||
"footer": ""
|
||||
},
|
||||
"mass_move": {
|
||||
"moved": "Alle Personen aus {} wurden nach {} verschoben.",
|
||||
"channel_from_error": "Du musst dich in einem Voicechannel befinden oder die Option \"channel_from\" mit angeben."
|
||||
},
|
||||
"presence": {
|
||||
"changed": "Presence wurde geändert.",
|
||||
"removed": "Presence wurde entfernt.",
|
||||
|
@ -10,6 +10,7 @@ from modules.base.abc.base_helper_abc import BaseHelperABC
|
||||
from modules.base.command.afk_command import AFKCommand
|
||||
from modules.base.command.help_command import HelpCommand
|
||||
from modules.base.command.info_command import InfoCommand
|
||||
from modules.base.command.mass_move_command import MassMoveCommand
|
||||
from modules.base.command.ping_command import PingCommand
|
||||
from modules.base.command.presence_command import PresenceCommand
|
||||
from modules.base.command.purge_command import PurgeCommand
|
||||
@ -42,6 +43,7 @@ class BaseModule(ModuleABC):
|
||||
self._dc.add_command(AFKCommand)
|
||||
self._dc.add_command(HelpCommand)
|
||||
self._dc.add_command(InfoCommand)
|
||||
self._dc.add_command(MassMoveCommand)
|
||||
self._dc.add_command(PingCommand)
|
||||
self._dc.add_command(PresenceCommand)
|
||||
|
||||
|
49
kdb-bot/src/modules/base/command/mass_move_command.py
Normal file
49
kdb-bot/src/modules/base/command/mass_move_command.py
Normal file
@ -0,0 +1,49 @@
|
||||
import asyncio
|
||||
|
||||
import discord
|
||||
from cpl_discord.command import DiscordCommandABC
|
||||
from cpl_discord.service import DiscordBotServiceABC
|
||||
from cpl_translation import TranslatePipe
|
||||
from discord.ext import commands
|
||||
from discord.ext.commands import Context
|
||||
|
||||
from bot_core.abc.message_service_abc import MessageServiceABC
|
||||
from bot_core.helper.command_checks import CommandChecks
|
||||
from bot_core.logging.command_logger import CommandLogger
|
||||
|
||||
|
||||
class MassMoveCommand(DiscordCommandABC):
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
logger: CommandLogger,
|
||||
message_service: MessageServiceABC,
|
||||
bot: DiscordBotServiceABC,
|
||||
translate: TranslatePipe,
|
||||
):
|
||||
DiscordCommandABC.__init__(self)
|
||||
self._logger = logger
|
||||
self._message_service = message_service
|
||||
self._bot = bot
|
||||
self._t = translate
|
||||
|
||||
@commands.hybrid_command(name='mass-move')
|
||||
@CommandChecks.check_is_ready()
|
||||
@CommandChecks.check_is_member_moderator()
|
||||
async def mass_move(self, ctx: Context, channel_to: discord.VoiceChannel,
|
||||
channel_from: discord.VoiceChannel = None):
|
||||
self._logger.debug(__name__, f'Received command mass-move {ctx}')
|
||||
|
||||
if channel_from is None and ctx.author.voice is None:
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.mass_move.channel_from_error'))
|
||||
return
|
||||
|
||||
if channel_from is None:
|
||||
channel_from = ctx.author.voice.channel
|
||||
|
||||
moves = [member.move_to(channel_to) for member in channel_from.members]
|
||||
await asyncio.gather(*moves)
|
||||
|
||||
await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.mass_move.moved').format(channel_from.mention, channel_to.mention))
|
||||
|
||||
self._logger.trace(__name__, f'Finished mass-move command')
|
1
kdb-bot/src/modules/base/thread/__init__.py
Normal file
1
kdb-bot/src/modules/base/thread/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
# imports
|
Loading…
Reference in New Issue
Block a user