如何使命令在某些服务器上不可用py

时间:2020-08-03 22:39:15

标签: python discord discord.py

我想列出一个包含ID不和谐服务器的列表,这些服务器要禁用我的机器人的某些功能。 例如:当某人进入服务器时,on_member_join方法将不会发送消息,而在启用此功能的另一方,它将发送该人已连接到服务器的消息。但是我不知道如何正确存储ID并使用它。此刻是这样的:

async def serverid(ctx):
  sid = ctx.message.guild.id
  await ctx.send(sid)

sid = 705735563696799723(取决于ID服务器)

这大概就是我最终想要得到的

async def test(ctx):
 f = open('/app/commands/servers.txt', 'r')
 servers_sid = f.readlines()
 now_sid = ctx.message.guild.id

 if now_sid == servers_sid: #i know servers_sid = ['id'] or something similar this is what i have a problem with
  await ctx.send('Command disabled')
 else:
  #command execution

我知道servers_sid = ['id']或类似的东西,这就是我遇到的问题

1 个答案:

答案 0 :(得分:1)

您应该使用splitlines,以免携带\n。我将其设为not in,如果它不在文件中,则它将结束

async def test(ctx):
    with open('/app/commands/servers.txt', 'r') as f:
        servers_sid = f.read().splitlines()

    now_sid = str(ctx.message.guild.id)

    if now_sid not in servers_sid: 
        await ctx.send('Command disabled')
        return
    


    await ctx.send('This is working')
    #command execution

我假设您的txt文件是这样的。

123
456
789