提问者:小点点

从一个机器人到另一个机器人的不和谐机器人命令


大家好,我在服务器上有一个简单的不和谐机器人,还有一个音乐机器人。我的简单机器人只需打开带有音乐链接的txt文件,并在聊天m中发送命令!播放链接。但是音乐机器人看不到我的机器人发送的命令。音乐机器人乔基音乐

从conf import TOKEN随机导入randint导入不和谐

类DSClient(discord. Client):

async def on_ready(self):
    print(self.guilds)

async def on_message(self, message):

    if message.content == "Грязюка":

        with open("songs.txt", "rt") as f:

            tracks = [song.strip().split() for song in f.readlines()]
            for _ in range(len(tracks)):
                index = randint(0, len(tracks) - 1)
                track = tracks.pop(index)
                print(track)
                await message.channel.send(f"m!play {track[0]}")

client=DSClient(intents=discord. Intents.default().all())

client.run(代币)

我的代码


共1个答案

匿名用户

如果您要发出命令的机器人不是来自您,您无法解决此问题…因为他们在代码中设置了它,因此只会响应用户帐户。

如果你要给命令的Bot(音乐bot)是你发出的,你需要去代码中,使命令由on_message事件触发,因为来自discord.py的内置命令处理程序只会监听用户消息,而忽略其他Bot发送的命令

@bot.listen
async def on_message(message):
    if message.content.startswith('m!play'):
        await play_song(song_name=message.content.split(' ')[1])

play_song函数在这里是将播放歌曲的异步函数,我只是在这里传递了一个示例参数。