公会ID不正确
Posted
技术标签:
【中文标题】公会ID不正确【英文标题】:incorrect Guild ID 【发布时间】:2022-01-14 19:18:41 【问题描述】:错误原因
discord_slash.error。不正确的公会 ID 类型: 给出的雪花 ID 520499240150106148 不是整数列表。由于 discord.py 约定,请改用整数 ID。此外,“正在播放”命令将被停用并中断,直到修复为止。
代码
@slash.slash(
name="nowplaying",
description="Command to check what song is currently playing",
guild_ids=(os.getenv("GUILD_IDS")),
)
async def nowplaying(ctx):
try:
if not Vc.is_playing():
await ctx.reply("I need to play something first")
except:
await ctx.reply("I need to play something first")
else:
song_info = get_info.info(Tune)
embed = discord.Embed(color=0xC0F207)
embed.set_author(name="Now Playing ????", icon_url=ctx.guild.icon_url).add_field(
name="Playing", value=f"song_info[1] - song_info[0]", inline=False
).set_footer(
text="This bot is still in development, if you have any queries, please contact the owner",
icon_url=(ctx.author.avatar_url),
)
if song_info[2] is not None:
embed.add_field(name="Album", value=f"song_info[2]", inline=True)
if albumart is not None:
try:
embed.set_thumbnail(url=albumart[song_info[2]])
except KeyError:
logging.warning("No Albumart found")
pass
else:
pass
await ctx.send(embed=embed)
我对此感到非常困惑......
【问题讨论】:
从错误来看,它似乎希望某个公会ID作为一个列表中的整数,即使它只是一个ID。也许像[ID]
这样的东西可以代替ID
【参考方案1】:
您使用的斜杠命令库要求您将公会 ID 作为整数传递。但是,os.getenv()
返回字符串。您可以使用int()
函数将字符串转换为整数。
另一个问题是你试图传递一个元组,但因为你只有一个值,python 认为你只是想给os.getenv()
调用加上括号。解决方案是在右括号之前添加一个逗号。
这就是您的代码的样子:
@slash.slash(
name="nowplaying",
description="Command to check what song is currently playing",
guild_ids=(int(os.getenv("GUILD_IDS")),),
)
async def nowplaying(ctx):
# Your code here
【讨论】:
以上是关于公会ID不正确的主要内容,如果未能解决你的问题,请参考以下文章