当前位置: 首页 > 知识库问答 >
问题:

不一致py如何获取用户的语音频道ID并将其保存到。txt文件?

陶乐生
2023-03-14

我试图制作一个不和谐机器人,用户可以分配某些语音频道,让机器人在用户加入时自动加入语音频道。

但是,我需要制作一个类似数据库的东西来保存分配为自动连接频道的语音频道列表,以防止在bot关闭时丢失分配的频道列表。

我写了一个代码来保存到. txt文件中,代码是:

@bot.command()
async def assign(ctx):
        channel = ctx.author.voice.channel
        save = open('C:\Discordbots\channels_database.txt','w')
        save.write(channel)

但是,当我运行它时,会出现如下错误:

discord.ext.commands.errors.CommandInvokeError:
Command raised an exception: TypeError: write() argument must be str, not VoiceChannel

我不知道如何将语音频道id转换为str,在频道周围使用str()也不起作用。

有没有办法让我做到这一点??

共有1个答案

公良安邦
2023-03-14

您可以使用ctx。著者嗓音频道名称如下所示:

channel = ctx.author.voice.channel.name

ctx。著者嗓音频道id(即使更改频道名称,也将保持相同):

channel = str(ctx.author.voice.channel.id)

同样好的做法是将一起使用,所以我建议将您的代码更改为:

@bot.command()
async def assign(ctx):
    channel = ctx.author.voice.channel.name
    with open("C:\Discordbots\channels_database.txt", "w") as f:
        f.write(channel)
 类似资料:
  • 我正在为我的discord服务器制作一个机器人,但我遇到了问题。我想要的是,当最后一个人离开一个语音频道(它是由机器人生成的)时,我想要删除该语音频道。 我也考虑过测试任何空的语音频道并删除它们,但我不知道如何做。

  • 我正在制作一个音乐机器人,当成员写入“~play”时,机器人会在文件夹中搜索一个随机文件(. mp3),并加入用户当前所在的语音通道。我希望我的机器人在所有用户离开语音通道时离开语音通道。

  • 如何获取用户角色并将其保存在数组中?我尝试了不同的方法,下面是一个例子 但它不起作用,我也不知道该怎么做,我希望你能帮忙

  • 我想知道是否有可能知道任何成员连接到discord中的特定语音频道。jsv12。2.0. 最近几天我一直在问这个问题。如果你有什么线索,请告诉我。

  • 问题内容: 我正在尝试创建文件并将其保存到站点的根目录,但是我不知道它在哪里创建文件,因为看不到任何文件。而且,如果可能的话,我需要每次都覆盖该文件。 这是我的代码: 如何设置保存在根目录下? 问题答案: 它在与脚本相同的目录中创建文件。试试这个吧。

  • 在Netty 4.0.0.CR9中,Channel.id()已被删除。 现在我如何获得频道的ID? 我曾经在我的所有处理程序(例如System.out.println(ctx.channel())中使用id()进行日志记录。id()-readable bytes():" in . readable bytes()))。 我不能依赖通道的toString方法,因为它可能会被覆盖。