получить название канала, используя discord.py - PullRequest
0 голосов
/ 21 октября 2018

как мне получить название канала, чтобы этот бот работал на любом сервере, на котором он установлен, без необходимости вносить изменения в код?(в коде, где я ставлю «что я здесь поставлю», я хочу, чтобы имя было в переменной) Спасибо

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)

1 Ответ

0 голосов
/ 13 ноября 2018

Получение канала с идентификатором

Сначала необходимо получить идентификатор канала. Это можно сделать, щелкнув правой кнопкой мыши канал и выбрав «Копировать идентификатор»

* 1006.* Во-вторых, вам нужно ввести идентификатор в следующем коде:
client.get_channel("ID")

Примером может быть:

client.get_channel("182583972662")

Получение канала от имени

Во-первых, получите сервер от одного из следующих:

server = client.get_server("ID")

ИЛИ

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

Во-вторых, получите канал

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