在discord.py中修改Discord服务器RTC区域时参数错误的技术咨询
解决Discord.py修改服务器RTC区域的参数错误问题
错误原因
你的代码使用了旧版discord.py的参数名rtc_region,但在discord.py v2.0及以上版本中,修改服务器语音(RTC)区域的参数已更名为voice_region,因此触发TypeError提示参数不存在。
修正后的代码
替换参数名并添加合法性校验,避免无效输入:
import discord from discord.ext import commands # 假设edit是已定义的命令组 @edit.command() async def region(ctx, *, region_name: str): try: # 将输入转换为合法的VoiceRegion枚举值(不区分大小写) target_region = discord.VoiceRegion(region_name.lower()) await ctx.guild.edit(voice_region=target_region) await ctx.send(f"服务器语音区域已成功修改为:{target_region.name}") except ValueError: # 列出所有可用的合法区域,提示用户正确输入 available_regions = ", ".join([region.value for region in discord.VoiceRegion]) await ctx.send(f"无效的区域名称!可用区域列表:{available_regions}")
额外说明
- 使用
discord.VoiceRegion枚举可以严格校验区域名称的合法性,防止因拼写错误导致修改失败 - 异常处理逻辑能给用户清晰的错误反馈,同时提供所有可选区域参考
内容的提问来源于stack exchange,提问作者Rafael
相关产品推荐
相关产品推荐

