【问题标题】:How to change a channels name using discord.py v.1.0.0a?如何使用 discord.py v.1.0.0a 更改频道名称?
【发布时间】:2019-01-13 07:28:08
【问题描述】:

我已经在网上搜索了很多关于此的内容。在那里我遇到了 API Refrence (https://discordpy.readthedocs.io/en/rewrite/api.html#discord.TextChannel),它帮助我找到了我需要使用的命令。所以我的结论是使用这个代码:

channel = client.get_channel(475772135730708480)
@client.command()
async def emoivb(ctx):
    await discord.VoiceChannel.edit(channel, name = "test")

问题是它不能解决这个错误:

File "C:/Users/MyUser/Desktop/discordbot.py", line 25, in emoivb
    await discord.VoiceChannel.edit(channel, name = "test")

所以这个错误根本没有帮助我......但我确定我只是没有正确理解 API 引用并且没有使用应该使用的命令。我对 python 编码很陌生,所以这是最有可能发生的事情。 如果有人有更多的python知识并且能够理解我做错了什么,我将非常感谢您的帮助! :)

【问题讨论】:

  • 完整的错误信息是什么?它可能会告诉您channelTextChannel 而不是VoiceChannel。出于这个原因,你应该只是做channel.edit(name='test')。你可能会受益于做一些更一般的 Python 阅读,比如Python Tutorial

标签: python python-3.x discord discord.py


【解决方案1】:

更简单的方法是在命令中指定目标通道和名称,例如

@client.command()
async def emoivb(ctx, channel: discord.VoiceChannel, *, new_name):
    await channel.edit(name=new_name)

但这并不完美:对于带有空格的名称,您必须将现有频道名称括在引号中

!rename "Old Channel" New Channel

这是因为 Discord 不支持提及语音频道。

【讨论】:

  • 感谢您的回答,确实帮助了我,但后来我收到此错误:raise MissingRequiredArgument(param) discord.ext.commands.errors.MissingRequiredArgument: channel is a required argument that is missing。跨度>
  • @EmotionIce 您在调用命令时是否提供了该参数?
  • 我以我在最初尝试中编写它的方式提供参数:channel = client.get_channel(475772135730708480) 但我不认为这符合你提供参数的意思。 Tbh 我真的不明白我应该为频道定义什么,除了它是一个不和谐的.VoiceChannel
  • @EmotionIce 我按照我的方式编写命令,以便您将旧名称和新名称直接传递给命令。请参阅我的答案中的示例用法。
  • @PatrickHaugh 非常感谢。没有你,我整个晚上都在寻找它。
猜你喜欢
  • 1970-01-01
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 2018-02-20
  • 2019-12-28
  • 1970-01-01
相关资源
最近更新 更多