大家好,我正在尝试创建一个函数,检查我的不和谐服务器中是否有几个频道已满,但我不知道如何指定它们。 我最好的主意是使用该主意,但是无法将其设置为通道对象,那么我该怎么做?或者还有其他好主意吗?
def full(channel):
while True:
if len(channel.voice_members) == channel.user_limit:
print("Wooo There is a full channel.")
asyncio.sleep(10)
但是我不知道该如何设置channel参数。 预先感谢您的帮助。
答案 0 :(得分:1)
您可以按ID或按名称获取频道对象。
使用discord.utils.get()
按名称返回频道(例如语音频道):
channel = discord.utils.get(server.channels, name="Channel_name_here", type="ChannelType.voice")
或者,如果您具有频道ID,则可以使用discord.get_channel(id)
。
例如,如果您有要检查的频道名称列表:
channel_names = ['channel1', 'channel2', 'channel3']
for ch in channel_names:
channel = discord.get.utils(server.channels, name=ch, type="ChannelType.voice")
full(channel)
在documentation中查看更多信息:
答案 1 :(得分:0)
如果您希望将此命令用作命令,则还可以利用converters:
@bot.command(pass_context=True)
async def full(ctx, channel: discord.Channel):
if len(channel.voice_members) == channel.user_limit:
await bot.say("{} is full".format(channel.name))
else:
await bot.say("{} is not full".format(channel.name))