Как сделать так, чтобы команду можно было отключить на определенных серверах Discord Py - PullRequest
0 голосов
/ 04 августа 2020

Я хочу составить список со списком серверов id Discord, которые хотят отключить некоторые функции моего бота. Например: метод 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

i знаю server_sid = ['id'] или что-то подобное, вот с чем у меня проблема с

1 Ответ

1 голос
/ 04 августа 2020

Вы должны использовать 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
...