smokey ♱
smokey ♱
DIAdiscord.js - Imagine an app
Created by smokey ♱ on 5/27/2024 in #djs-questions
Get embed info of another bot and who it replied to
No description
11 replies
DIAdiscord.js - Imagine an app
Created by smokey ♱ on 4/30/2024 in #djs-questions
Detecting Application Commands Intended for Other Bots!
I'm currently working on a Discord.js bot where I need to detect when users trigger application commands intended for other bots. I want to be able to track when a user sends a command like "/play" meant for a music bot, and then capture the interaction where the music bot responds. Example: a user types "/play", thinking it will trigger the music bot, but my bot intercepts it and logs that it was intended for the music bot. Then, when the music bot responds to the user's command, my bot should detect this interaction and log that the music bot replied, possibly with additional details such as an embed containing a link. My question is: Is it possible to achieve this functionality with Discord.js, and if so, how can I implement it effectively? What I've tried:
client.on('interactionCreate', async (interaction) => {
if (!interaction.isCommand()) return; // Ignore if not a slash command

// Check if the command is "/play"
if (interaction.commandName === 'play') {
// Log that the /play command was detected for the music bot
console.log("Detected /play command meant for music bot.");

// Check if the music bot responds with an embed containing a link
const filter = (response) => {
return response.author.id === '123456789012345678' && response.embeds.length && response.embeds[0].title === "Music Bot Response" && response.embeds[0].description === "Here is your requested song: [Song Title](songlink)";
};

interaction.channel.awaitMessages({ filter, max: 1, time: 10000, errors: ['time'] })
.then(async (collected) => {
console.log("Detected music bot replied with an embed containing a link.");

// logic for handling the music bot's response
})
.catch((error) => {
console.error('Error while waiting for music bot response:', error);
});
}
});
client.on('interactionCreate', async (interaction) => {
if (!interaction.isCommand()) return; // Ignore if not a slash command

// Check if the command is "/play"
if (interaction.commandName === 'play') {
// Log that the /play command was detected for the music bot
console.log("Detected /play command meant for music bot.");

// Check if the music bot responds with an embed containing a link
const filter = (response) => {
return response.author.id === '123456789012345678' && response.embeds.length && response.embeds[0].title === "Music Bot Response" && response.embeds[0].description === "Here is your requested song: [Song Title](songlink)";
};

interaction.channel.awaitMessages({ filter, max: 1, time: 10000, errors: ['time'] })
.then(async (collected) => {
console.log("Detected music bot replied with an embed containing a link.");

// logic for handling the music bot's response
})
.catch((error) => {
console.error('Error while waiting for music bot response:', error);
});
}
});
5 replies