Как написать бот Discord Auto-voice на python disnake?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как написать бот Discord Auto-voice на python disnake?

Сообщение Anonymous »

Я создаю бота для Discord на Python, используя disnake, но поскольку я новичок в этом деле, я не понимаю, как делать то, что хочу. Идея состоит в том, чтобы иметь один голосовой канал под названием «Создать голосовой чат», и когда пользователь присоединяется к нему, бот автоматически создает новый голосовой канал и перемещает в него этого пользователя. После того, как в созданном канале никого нет, он уничтожается.
Нашел на autocode.com то, что мне нужно, но не могу сообразить, как это переписать на python с помощью диснейка. Есть идеи?
Этот код из autocode(js)
const lib = require('lib')({token: process.env.STDLIB_SECRET_TOKEN});
const event = context.params.event;
const { guild_id, channel_id, user_id } = event

// The 'central' voice channel users must join first
const voiceChannelId = process.env.VOICE_CHANNEL_ID

// The voice channel name to create for the user
const voiceChannelName = `vc_${user_id}`

// Create a new voice channel when the user joins the specifc voice channel
const joinedChannel = channel_id === voiceChannelId
if (joinedChannel) {
const channel = await lib.discord.guilds['@0.1.0'].channels.create({
guild_id,
name: voiceChannelName,
type: 2, // vc
})
await lib.discord.guilds['@0.1.0'].members.update({
guild_id, user_id,
channel_id: channel.id,
});
return
}

// Delete the user's voice channel when the user disconnects
const leftChannel = !channel_id
if (leftChannel) {
const channels = await lib.discord.guilds['@0.1.0'].channels.list({ guild_id });
const channel = channels.find(c => c.name === voiceChannelName)
if (channel)
await lib.discord.channels['@0.2.0'].destroy({ channel_id: channel.id });
return
}

Что я сделал сам (не работает)
def _get_channel(self) -> disnake.abc.GuildChannel:
return self.channel

def __init__(self):
self.auto_channel = 1030505142820282408
self.auto_channel = self.guild.get_channel(self.auto_channel)

@bot.event
async def on_voice_state_update(self, member = disnake.Member, before = disnake.VoiceState, after = disnake.VoiceState) -> None:
if after.channel is not None and after.channel == auto_channel:
ch = await self.auto_channel.category.create_voice_channel(name=member.display_name, overwrites={**self.auto_channel.category.overwrites, member: disnake.PermissionOverwrite(connect=True, move_members=True, manage_channels=True, manage_roles=True)})
try:
await member.move_to(ch, reason='autochannel')
except disnake.HTTPException:
pass
if before.channel is not None and before.channel.id != auto_channel and before.channel.category.id == auto_channel and len(before.channel.members) == 0:
try:
await before.channel.delete()
except disnake.NotFound:
pass


Подробнее здесь: https://stackoverflow.com/questions/740 ... on-disnake
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сбой сборки и сбой приложения после добавления @react-native-voice/voice в React Native 0.75 во время обновления версии
    Anonymous » » в форуме Android
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous
  • [Android] [expo] [@React-Con-Voice/Voice] [TypeError: не может прочитать свойство «StartSpeech» NULL]
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Команда в боте Discord срабатывает несколько раз (disnake)
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Музыкальный бот Discord, когда я пропускаю трек, бот пропускает сразу 2 трека
    Anonymous » » в форуме Python
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • Бот Discord.py отправляет файл на канал Discord
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»