Как указать имя отправителя сообщения в переменную (discord.py)
Я хочу сделать чтобы бот при прописывании команды получал приватный текстовый канал, который может видеть только он. Для этого мне надо узнать его id я попробовал многое в том числе
#author = ctx.message.author
id = {author.mention}
В интернете тоже ничего не нашёл
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix='.')
bot.remove_command( 'help' )
token = 'Токен бота'
@bot.command()
async def приват(ctx):
guild = ctx.guild
overwrites = {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.ЗДЕСЬ ДОЛЖЕН БЫТЬ ОТПРАВИТЕЛЬ: discord.PermissionOverwrite(read_messages=True)
}
await guild.create_text_channel("Приватный-канал", overwrites=overwrites)
@bot.event
async def on_ready():
print("Bot started...")
bot.run(token)
Спасибо
Ответы (1 шт):
Автор решения: Fixator10
→ Ссылка
Все контекстные объекты можно достать из ctx, который контекстом и является.
Ключом в словаре "перезаписей" может быть как пользователь, так и роль, и они не обязательно должны быть аттрибутами сервера (Guild).
@bot.command()
async def приват(ctx):
overwrites = {
ctx.guild.default_role: discord.PermissionOverwrite(read_messages=False),
ctx.author: discord.PermissionOverwrite(read_messages=True)
}
await ctx.guild.create_text_channel("Приватный-канал", overwrites=overwrites)