iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

轉換器介紹完後我們就來寫程式吧

程式碼

from discord.ext import commands
import discord

intents = discord.Intents.all()

#訊息開頭需是!
bot = commands.Bot(command_prefix='!', intents=intents)

@bot.command()
async def userinfo(ctx, member: commands.MemberConverter):

    roles = [role.name for role in member.roles[1:]]

    await ctx.send(
        f"User name: {member.name}\n"
        f"User ID: {member.id}\n"
        f"Joined at: {member.joined_at}\n" 
        f"Roles: {', '.join(roles)}"
    )

bot.run(‘token’)

程式碼說明

  • 使用@bot.command()創建一個userinfo命令
  • 使用commands.MemberConverter將命令參數轉換為Member物件
  • 透過Member物件的屬性取得使用者相關資訊
    • name為使用者名稱
    • id為使用者ID
    • joined_at為使用者加入伺服器時間
  • 從member.roles中提取用戶所有身份組跳過第一個身份組(通常是默認身份組everyone)將身份組名存入列表roles中
  • 使用mem.send()傳送獲取的資訊給使用者

執行結果

只要你輸入!userinfo 加你要查詢的使用者時,機器人就會回傳該使用者在Discord的名稱、ID、加入時間及身份組。透過MemberConverter可以方便地將命令參數轉換為Member物件,使用其屬性就可以輕鬆獲取所需的使用者資訊。


上一篇
[Day7] 查看username、id、加入時間及身份組(上)
下一篇
[Day9]查看伺服器(Guild)資訊
系列文
使用discord.py開發自己的機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言