как подключить дискорд селф бота к войсу

NORTEX666

Участник
Автор темы
149
10
делаю селфбота, мне нужно что бы я указывал в коде ID войса и бот к нему подключался.
мои попытки :

Python:
@client.command()
async def join(ctx):
    channel.id = '1067526271661256787'
    await channel.connect()

Python:
@client.command()
async def join(ctx, pon):
    channel.id = (pon)
    await channel.connect()

выдает ошибку :
Код:
Ignoring exception in command join:
Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "C:\Microsoft\Новая папка (3)\kreora\kreora (фикс крч).py", line 73, in join
    channel.id = (pon)
NameError: name 'channel' is not defined

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'channel' is not defined
 
  • Ха-ха
Реакции: wigel

TastyBread123

Известный
609
288
делаю селфбота, мне нужно что бы я указывал в коде ID войса и бот к нему подключался.
мои попытки :

Python:
@client.command()
async def join(ctx):
    channel.id = '1067526271661256787'
    await channel.connect()

Python:
@client.command()
async def join(ctx, pon):
    channel.id = (pon)
    await channel.connect()

выдает ошибку :
Код:
Ignoring exception in command join:
Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "C:\Microsoft\Новая папка (3)\kreora\kreora (фикс крч).py", line 73, in join
    channel.id = (pon)
NameError: name 'channel' is not defined

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: NameError: name 'channel' is not defined
У тебя есть channel.id, но нет самого объекта channel. Используй
voice_ch = ctx.guild.fetch_channel(channel_id)
voice_ch.connect()
 

NORTEX666

Участник
Автор темы
149
10
У тебя есть channel.id, но нет самого объекта channel. Используй
voice_ch = ctx.guild.fetch_channel(channel_id)
voice_ch.connect()
вроде все правильно сделал, что тут не так? можешь пожалуйста прикрепить правильный код с использованием event ?

код:
@client.command()
async def join(ctx, arg1):
    voice_ch.id = (arg1)
    voice_ch = ctx.guild.fetch_channel(channel.id)
    voice_ch.connect()

ошибка:
Ignoring exception in command join:
Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "C:\Microsoft\Новая папка (3)\kreora\kreora (фикс крч).py", line 73, in join
    voice_ch.id = (arg1)
UnboundLocalError: local variable 'voice_ch' referenced before assignment

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: UnboundLocalError: local variable 'voice_ch' referenced before assignment
 
  • Ха-ха
Реакции: Majunti и wigel

TastyBread123

Известный
609
288
Оаоа:
@client.command()
async def join(ctx, arg1):
    voice_ch = ctx.guild.fetch_channel(int(arg1))
    voice_ch.connect()

# ЗАЧЕМ ты используешь в имени переменной точку? Точкой обозначается АТРИБУТЫ, вот он не может найти voice_ch, к которому ты хочешь добавить аргумент id.

# ЗАЧЕМ ты создаешь еще одну ненужную переменную, смысл от этого если ты просто дублируешь значение из аргумента
 

NORTEX666

Участник
Автор темы
149
10
Оаоа:
@client.command()
async def join(ctx, arg1):
    voice_ch = ctx.guild.fetch_channel(int(arg1))
    voice_ch.connect()

# ЗАЧЕМ ты используешь в имени переменной точку? Точкой обозначается АТРИБУТЫ, вот он не может найти voice_ch, к которому ты хочешь добавить аргумент id.

# ЗАЧЕМ ты создаешь еще одну ненужную переменную, смысл от этого если ты просто дублируешь значение из аргумента
oshibka:
Ignoring exception in command join:
Traceback (most recent call last):
  File "C:\Users\Kiril\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "C:\Microsoft\Новая папка (3)\kreora\kreora (фикс крч).py", line 73, in join
    voice_ch = ctx.guild.fetch_channel(int(arg1))
AttributeError: 'Guild' object has no attribute 'fetch_channel'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Kiril\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\Kiril\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\Kiril\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Guild' object has no attribute 'fetch_channel'
 

TastyBread123

Известный
609
288
oshibka:
Ignoring exception in command join:
Traceback (most recent call last):
  File "C:\Users\Kiril\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "C:\Microsoft\Новая папка (3)\kreora\kreora (фикс крч).py", line 73, in join
    voice_ch = ctx.guild.fetch_channel(int(arg1))
AttributeError: 'Guild' object has no attribute 'fetch_channel'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Kiril\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Users\Kiril\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Users\Kiril\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Guild' object has no attribute 'fetch_channel'
Я не помню точный метод, смотри в документации, скорее всего client.fetch_channel