昨天使用了MemberCinverter,那今天要來寫用來查看Guild資訊的GuildConverter。
commands.GuildConverter 是 Discord.py 中的一個參數轉換器(Converter),它可以用來將文字轉換成 Guild (伺服器)物件
查找伺服器的順序如下(順序由上至下):
from discord.ext import commands
import discord
intents = discord.Intents.all()
@bot.command()
async def serverinfo(ctx, guild: commands.GuildConverter = None):
if guild is None:
guild = ctx.guild
await ctx.send(f'{guild.id} ')
bot.run(‘token’)
GuildConverter與MemberConverter有個巨大的差異,MemberConverter會自動預設值但GuildConverter。自動預設值的意思是如果在呼叫命令時沒有輸入使用者 ID 或其他資訊,它會自動將值預設為這個命令中指定的使用者,像是
!userinfo @apple
MemberConverter就會自動預設為apple;但GuildConverter無法做到,像是
@bot.command()
async def getguild(ctx):
await ctx.send(f'guild id: {ctx.guild.id}')
就無法執行,一定要有guild: commands.GuildConverter = None