簡體   English   中英

Discord Api 機器人未始終加入語音頻道

[英]Discord Api bot not joining the voice channel consistently

我已經制作了一個機器人,它可以在不和諧成員加入所述頻道時加入語音頻道,但有時當成員離開並重新加入時,我會收到機器人已經連接的錯誤,所以我添加了 is_connected 函數來檢查機器人是否是在嘗試加入之前已經連接。由於某種原因,此功能僅在一半時間內有效,如果我多次加入並離開通話,最終它會停止加入並且不會留下錯誤代碼,它會停止。 這是代碼:

@client.event
async def on_ready():
  
  print("Logged in as {0.user}".format(client))

@client.event
async def on_voice_state_update(member, before, after):

  if not before.channel and after.channel and member.id == 450333776485285919 or member.id==232855365082021890 or member.id==282234566066962433 or member.id==256759154524291074:
    
    channel = client.get_channel(988050675604803648)
    
    await is_connected()
    
    
  

@client.event
async def  is_connected():
    channel = client.get_channel(988050675604803648)
    voice_client=discord.utils.get(client.voice_clients)
    
    if(voice_client==None):
      
      await channel.connect()
    else:
      print("is connected:")

我是不是用錯了功能?

您為 is_connected() 創建了一個並非完全必要的完整函數。 您需要在 on_voice_state_update 中使用該事件來檢查機器人是否已連接到該當前語音通道。

@client.event
async def on_voice_state_update(member, before, after):

  if not before.channel and after.channel and member.id == 450333776485285919 or member.id==232855365082021890 or member.id==282234566066962433 or member.id==256759154524291074:
    
channel = client.get_channel(988050675604803648)

if client.voice.is_connected():
  return print("already connected")
    
await channel.connect()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM