簡體   English   中英

discord.py 按名稱提及用戶

[英]discord.py Mention user by name

我試圖在 discord.py 中以用戶的名字提及用戶。 我目前的代碼是:

@bot.command(name='mention')
@commands.has_role(OwnerCommands)
async def mention(ctx, *, member: discord.Member):
    memberid = member.id
    await ctx.message.delete()
    await ctx.send('<@{}>'.format(memberid))

但它不起作用。 我該怎么做呢?

編輯,我找到了答案。

這是相當直接的member.mention

@bot.command(name='mention')
@commands.has_role(OwnerCommands)
async def mention(ctx, *, member: discord.Member):
    await ctx.message.delete()
    await ctx.send(member.mention)

我們可以跳過手工操作,直接使用discord的Member Model Member 對象上的mention向我們返回字符串以允許我們直接提及它們。

@bot.command(name='mention')
@commands.has_role(OwnerCommands)
async def mention(ctx, *, member: discord.Member):
    await ctx.message.delete()
    await ctx.send(member.mention)

沒關系,我找到了方法。 我只是在 Discord Developers 頁面中打開了特權縮進。

如果您不想通過使用 discord.py MemberConverter擴展兩次提及成員,另一種解決方案,並且不要忘記從不和諧開發者門戶激活成員特權縮進。

資源: https : //discordpy.readthedocs.io/en/rewrite/ext/commands/api.html#discord.ext.commands.MemberConverter 如何將字符串轉換為用戶 discord.py

import discord
from discord.ext import commands
from discord.ext.commands import MemberConverter 

intents = discord.Intents(members = True)

client = commands.Bot(command_prefix="$", intents=intents)

@client.command()
async def mention(ctx, member):
  converter = MemberConverter()
  member = await converter.convert(ctx, (member))
  await ctx.send(member.mention)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM