Discrd.py python 3.6 用户请求加入-离开频道
Discrd.py python 3.6 user requested Join-leave channel
我正在制作一个具有加入-离开消息的机器人,但我需要对其进行设置,以便用户可以发送指定他们希望将消息发布到的频道。
示例:
用户:.joinleave
Bot:请发送您希望发送加入-离开消息的频道 ID。
用户:[频道 ID]
机器人:谢谢!加入-离开消息将发布在[Channel-ID]
我目前拥有的:
@client.event
async def on_member_join(member):
role = discord.utils.get(member.server.roles, name='Member')
await client.add_roles(member, role)
embed = discord.Embed(title="{}'s info".format(member.name), description="New Member!!!", color='Blue')
embed.add_field(name="Name", value=member.name, inline=True)
embed.add_field(name="ID", value=member.id, inline=True)
embed.add_field(name="Status", value=member.status, inline=True)
embed.add_field(name="Roles", value=member.top_role)
embed.add_field(name="Joined", value=member.joined_at)
embed.add_field(name="Created", value=member.created_at)
embed.set_thumbnail(url=member.avatar_url)
inlul = client.get_channel("")
await client.send_message(inlul, embed=embed)
我想我会发出一个命令“.joinleave”,这就是他们输入频道 ID 的地方。我只是不知道如何从多个服务器保存该信息,并且每个服务器都不同。然后传递给@client.event.
您需要全局 dictionary variable that uses the server ID as the keys and the channel ID as the values. The problem is saving it to storage。我有两个解决方案。
一个文件
创建一个名为server_channels.txt
之类的文件,并为每个服务器创建一行。首先,它会显示服务器 ID,然后是频道 ID。它看起来像这样:
[server id 1] [channel id 1] # just replace each of these
[server id 2] [channel id 2]
...
您需要在机器人启动时解析此文件并将其放入字典中。每当字典有更新时,您还需要更新文件。
多个文件
与其读取整个文件,不如创建一个名为 server_channels
或其他名称的目录。它将包含每个服务器的文件。文件的名称是服务器 ID,文件将包含通道 ID。
我正在制作一个具有加入-离开消息的机器人,但我需要对其进行设置,以便用户可以发送指定他们希望将消息发布到的频道。
示例: 用户:.joinleave Bot:请发送您希望发送加入-离开消息的频道 ID。 用户:[频道 ID] 机器人:谢谢!加入-离开消息将发布在[Channel-ID]
我目前拥有的:
@client.event
async def on_member_join(member):
role = discord.utils.get(member.server.roles, name='Member')
await client.add_roles(member, role)
embed = discord.Embed(title="{}'s info".format(member.name), description="New Member!!!", color='Blue')
embed.add_field(name="Name", value=member.name, inline=True)
embed.add_field(name="ID", value=member.id, inline=True)
embed.add_field(name="Status", value=member.status, inline=True)
embed.add_field(name="Roles", value=member.top_role)
embed.add_field(name="Joined", value=member.joined_at)
embed.add_field(name="Created", value=member.created_at)
embed.set_thumbnail(url=member.avatar_url)
inlul = client.get_channel("")
await client.send_message(inlul, embed=embed)
我想我会发出一个命令“.joinleave”,这就是他们输入频道 ID 的地方。我只是不知道如何从多个服务器保存该信息,并且每个服务器都不同。然后传递给@client.event.
您需要全局 dictionary variable that uses the server ID as the keys and the channel ID as the values. The problem is saving it to storage。我有两个解决方案。
一个文件
创建一个名为server_channels.txt
之类的文件,并为每个服务器创建一行。首先,它会显示服务器 ID,然后是频道 ID。它看起来像这样:
[server id 1] [channel id 1] # just replace each of these
[server id 2] [channel id 2]
...
您需要在机器人启动时解析此文件并将其放入字典中。每当字典有更新时,您还需要更新文件。
多个文件
与其读取整个文件,不如创建一个名为 server_channels
或其他名称的目录。它将包含每个服务器的文件。文件的名称是服务器 ID,文件将包含通道 ID。