因此,对于我的代码,如果当前公会 ID 与特定公会 ID 相同,我想向控制台打印一条消息。机器人应该检查数据库中列出的每台服务器。
这就是我的代码:
@tasks.loop(minutes=15.0)
async def topic():
print("topic start")
mydb = getConnection()
mycursor = mydb.cursor()
mycursor.execute(f"SELECT * FROM partner_list")
myresult = mycursor.fetchall()
for x in myresult:
try:
x1 = [x]
guild = bot.get_guild(int(x1[0][0]))
name = (str(x1[0][1]))
print("inside try catch")
print(guild.id)
print(ctx.guild.id) # <--- This doesn't work
if int(ctx.guild.id) == int(guild.id):
print("Trading Sucht")
#mydb.commit()
except:
pass
mycursor.close()
mydb.close()
错误是 ctx.guild.id 不起作用,因为他找不到“ctx”。有没有其他方法可以让机器人通过我的数据库中的每个公会行并检查当前公会 ID 是否与数据库中的相同?
答案 0 :(得分:1)
您想提取 guild id
,这可以通过创建另一个命令来完成。
guild_id = []
async def func():
for guild in client.guilds:
id = guild.id
print(id) # As your BOT is in one single server, only one ID would be extracted and this can be used.
guild_id.append(id)
这是你可以解决的。如果您仍然遇到此错误,请随时提出任何问题。 :)
谢谢! :D