【问题标题】:Discord Bot Leave ServerDiscord Bot 离开服务器
【发布时间】:2019-05-28 05:41:48
【问题描述】:
my_server = client.get_server('server id')

@client.event

async def on_ready():

    for server in client.servers:
        if server != my_server:
            await client.leave_server(server)

@client.event

async def on_server_join(server):

    if server != my_server:
        await client.leave_server(server)

如果我在 ('server id') 中添加服务器 ID,我的机器人最终会离开该服务器。但是对于某些服务器,我无权访问,因此无法获取服务器 ID。 那么如何让我的机器人离开那个服务器呢?

【问题讨论】:

  • 你的代码有问题吗?如果是这样,怎么做?例外?从您的代码(未经检查)的外观来看,它似乎能够离开除my_server 之外的所有服务器
  • I wrote this in response to 的问题是关于如何离开除一台以外的所有服务器。您需要将!= 更改为==(假设'server id' 是您要离开的服务器的id
  • 嗨帕特里克是的,代码是从你那里复制的,但实际上问题是他把我从服务器上踢了出去。所以我不知道他的服务器ID。上面的脚本会留下除我的服务器之外的所有服务器,或者只留下 1 台服务器及其服务器 ID。如果我不在该服务器中,我需要一个脚本,例如示例机器人应该离开服务器。如果我的机器人在 20 台服务器中,而我只是 10 台服务器的成员,那么它应该离开其他 10 台服务器。
  • 我也通过添加到我的 bot.py 来尝试上面的代码。我将!= 更改为=='server id' 更改为'845845894543' 我尝试添加我的和其他服务器ID 仍然没有任何反应。
  • 以上是你的完整代码吗?如果是这样,你就错过了client.run('TOKEN')

标签: python discord discord.py


【解决方案1】:

client.leave_server(server) 接受 Server 对象。

client.servers 返回客户端连接的服务器列表。所以你的代码应该符合你的预期。

当您的机器人被服务器踢出或禁止时,它应该不再连接。不是这样吗?

如果您要定义一种方法,如果它不是您的服务器,机器人会自动离开服务器,那么实际问题是有人可以访问您的机器人并在未经您许可的情况下在他们的服务器上使用它吗?在这种情况下,您需要通过生成新令牌和/或更改开发控制台的密码来撤销对机器人的访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-08
    • 2021-01-12
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    相关资源
    最近更新 更多