38 lines
1.9 KiB
JavaScript
38 lines
1.9 KiB
JavaScript
// bot/commands/screenshot.js
|
|
module.exports = {
|
|
data: new SlashCommandBuilder().setName("screenshot").setDescription("Takes a screenshot of the player's screen").addStringOption((option) => option.setName("user").setDescription("Username or ID").setRequired(true)),
|
|
async execute(interaction, exports2) {
|
|
const userOrId = interaction.options.getString("user");
|
|
var embed = await prepareGenericEmbed("Taking Screenshot, please wait.");
|
|
await interaction.reply({ embeds: [embed] });
|
|
var inProgress = await exports2[EasyAdmin].isScreenshotInProgress();
|
|
if (inProgress) {
|
|
let embed2 = await prepareGenericEmbed("A screenshot is already in progress! Please try again later.");
|
|
interaction.editReply({ embeds: [embed2] });
|
|
return;
|
|
}
|
|
const user = await findPlayerFromUserInput(userOrId);
|
|
if (!user || user.dropped) {
|
|
interaction.editReply({ content: "Sorry, i couldn't find any user with the infos you provided.", ephemeral: true });
|
|
return;
|
|
}
|
|
emit("EasyAdmin:TakeScreenshot", user.id);
|
|
const screenshotHandler = async function(result) {
|
|
if (result == "ERROR") {
|
|
return;
|
|
}
|
|
var screenshotUrl = await exports2[EasyAdmin].matchURL(result.toString());
|
|
RemoveEventHandler("EasyAdmin:TookScreenshot", screenshotHandler);
|
|
clearTimeout(failedTimeout);
|
|
let embed2 = await prepareGenericEmbed(`Screenshot of **${user.name}**'s game taken.`, void 0, void 0, void 0, screenshotUrl);
|
|
await interaction.editReply({ embeds: [embed2] });
|
|
};
|
|
onNet("EasyAdmin:TookScreenshot", screenshotHandler);
|
|
var failedTimeout = setTimeout(async function() {
|
|
RemoveEventHandler("EasyAdmin:TookScreenshot", screenshotHandler);
|
|
let embed2 = await prepareGenericEmbed(`Screenshot of **${user.name}**'s game failed!`, void 0, 16711680);
|
|
await interaction.editReply({ embeds: [embed2] });
|
|
}, 25e3);
|
|
}
|
|
};
|