使用discord.py获取频道名称

时间:2018-10-21 14:25:32

标签: python discord discord.py

如何获取频道名称,以便该漫游器可以在其所安装的任何服务器上运行而无需更改代码? (在我放置“我在这里放什么”的代码中,是我希望名称包含在变量中的位置)谢谢

from discord.ext.commands import Bot
import time, asyncio

TOKEN = 'Its a secret'
BOT_PREFIX = ["!"]
client = Bot(command_prefix=BOT_PREFIX)




@client.event
async def on_message(message):
    if message.author == client.user:
        return




@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')
    await start()
    while True:
        currentTime = time.strftime("%M%S", time.gmtime(time.time()))
        if currentTime == "30:00":
            await start()
        await asyncio.sleep(1)


async def start():
    mainChannel = #What do i put here?
    print(mainChannel.name)
    await client.send_message(mainChannel, "Starting countdown", tts = True)



client.run(TOKEN)

3 个答案:

答案 0 :(得分:6)

现在重写中有一种名为discord.utils.get的方法,您可以在其中实际获取具有特定参数的不和谐对象

在您的情况下,使用频道名称:

import discord
channel = discord.utils.get(guild.text_channels, name="Name of channel")

如果discord无法找到具有该名称的文本通道,则应该为无

答案 1 :(得分:1)

从ID获取频道

首先,您需要获取频道ID 您可以通过右键单击频道并选择“复制ID”来完成此操作

第二,您需要将ID放在以下代码中:

client.get_channel("ID")

一个例子是:

client.get_channel("182583972662")

从名称获取频道

首先,从以下任一服务器获取服务器:

server = client.get_server("ID")

OR

for server in client.servers:
    if server.name == "Server name":
        break

第二,获取频道

for channel in server.channels:
    if channel.name == "Channel name":
        break

答案 2 :(得分:1)

其实很简单: 你可以简单地做message.channel.name

示例:

print(message.channel.name)