当前位置: 首页 > 知识库问答 >
问题:

Discord bot未加入语音频道(python)

靳涵亮
2023-03-14

我正在尝试将我的discord机器人连接到语音通道,但它不工作。

没有任何错误或任何事情,当我这样做时什么都不会发生!加入我的不和频道。

这是我的代码。我试图寻找一些教程,但大多数似乎已经过时了。

有人能帮我吗?

import discord
from discord.ext import commands
from discord.utils import get
import os

token = os.environ.get('DISCORD_TOKEN')
client = commands.Bot(command_prefix='!')


@client.command(pass_context=True)
async def join(ctx):
    channel = ctx.message.author.voice.channel
    voice = get(client.voice_clients, guild=ctx.guild)

    if voice and voice.is_connected():
        await voice.move_to(channel)
    else:
        voice = await channel.connect()
    await ctx.send(f'Joined {channel}')

client.run(token)

编辑:

import discord
from discord.ext import commands
from discord.utils import get
import os
import youtube_dl

token = os.environ.get('DISCORD_TOKEN')
client = commands.Bot(command_prefix='!')
@client.event
async def on_message(message):
    channels = ['bot-commands']
    if str(message.channel) in channels:
        if message.content == '!help':
            embed = discord.Embed(title='How to use the ImposterBot', description='Useful Commands')
            embed.add_field(name='!help', value='Display all the commands')
            embed.add_field(name='!music', value='Play a music playlist')
            embed.add_field(name='!valorant', value='Get the most recent version of Valorant stats')
            embed.add_field(name='!hello', value='Greet a user')
            await message.channel.send(content=None, embed=embed)
        elif message.content == '!hello':
            await message.channel.send(f'Greeting, {message.author}!')
        elif message.content == '!valorant':
            await message.channel.send('This feature is not ready yet')
        elif message.content == '!music':
            await message.channel.send('This feature is not ready yet')
        elif 'sustin' in message.content:
            await message.channel.send(f"""it's sustin... {"<:monkas:392806765789446144>"} """)


@client.command(pass_context=True)
async def join(ctx):
    channel = ctx.message.author.voice.channel
    voice = get(client.voice_clients, guild=ctx.guild)

    if voice and voice.is_connected():
        await voice.move_to(channel)
    else:
        voice = await channel.connect()
    await ctx.send(f'Joined {channel}')

client.run(token)

共有1个答案

易雅畅
2023-03-14

此代码中的错误是,如果存在on_消息事件,则bot不会调用命令,除非该事件以此行开头:

async def on_message(message):
    await bot.process_commands(message)
 类似资料:
  • 我只是想做一个简单的方法,让我的不和谐机器人加入一个频道。我已经看了多个线程,其中一些已经过时,因为它们是在discord.py迁移到v1.0之前。我已经使用type()和dir()来检查通道是什么类型,并查看它有什么方法。我将其与discord.py的API进行了比较,我发现一个问题是dir()创建了一个名为的字段,但是API显示对象有一个名为方法。感谢所有的帮助!:)

  • 我正在做一个简单的不和谐机器人,node.js.我让它运行并响应,但我不能召唤它到语音频道这是我使用的代码 它总是转到“加入语音频道”消息,即使我在语音频道。

  • 这是很新的。我一直在阅读readthedocs API参考资料以了解不和谐。这对我来说没什么意义。到目前为止我有 我们的目标是让机器人加入带有的用户加入的语音频道,但我在让机器人加入频道时遇到了麻烦。

  • 我希望我的不和谐机器人加入语音频道。但是我遇到了一个问题,每当我想让它加入风投时,什么都不会发生——甚至没有错误。我尝试过SO/Git的其他解决方案,但没有一个适合我(下面有一个)。 编辑:解决了!问题是:没有不和。已安装py[语音]模块。解决方案:

  • 我正在努力让我的机器人进入语音频道,我已经阅读了这里的很多帖子,但没有一篇能够解决我的问题,我正在尝试让我的机器人复制yt视频的声音,但它甚至没有加入,我不知道该怎么办,下面是代码:

  • 我正在开发一个播放音乐的discord机器人。我已经设法让机器人离开通道,但服务器中的任何人都可以断开它。 我试图添加一个if语句,该语句要求命令作者的语音通道连接等于该帮会中机器人的语音通道连接。 这返回: 我在留档上找不到任何定义机器人连接到哪个公会的语音频道的东西。