utility: start on presence
This commit is contained in:
parent
0a5a95aa05
commit
f1b8282ba2
1 changed files with 79 additions and 0 deletions
|
@ -639,3 +639,82 @@ charinfo.callback = async function (msg, line) {
|
|||
}
|
||||
};
|
||||
hf.registerCommand(charinfo);
|
||||
|
||||
const PRESENCE_ICONS = {
|
||||
desktop: {
|
||||
online: "<:desktop_online:1028887024670871552>",
|
||||
idle: "<:desktop_idle:1028887022938624033>",
|
||||
dnd: "<:desktop_dnd:1028887021848121364>",
|
||||
},
|
||||
mobile: {
|
||||
online: "<:mobile_online:1028887017637036043>",
|
||||
idle: "<:mobile_idle:1028887019226669116>",
|
||||
dnd: "<:mobile_dnd:1028887020560449637>",
|
||||
},
|
||||
web: {
|
||||
online: "<:web_online:1028887016353574962>",
|
||||
idle: "<:web_idle:1028887014579392592>",
|
||||
dnd: "<:web_dnd:1028887012855525486>",
|
||||
},
|
||||
embedded: {
|
||||
online: "<:embedded_online:1028887010636726313>",
|
||||
idle: "<:embedded_idle:1028887009147760681>",
|
||||
dnd: "<:embedded_dnd:1028887008149516299>",
|
||||
},
|
||||
};
|
||||
|
||||
const presence = new Command("presence");
|
||||
presence.category = CATEGORY;
|
||||
presence.helpText = "Get presences of a user.";
|
||||
presence.usage = "<user>";
|
||||
presence.callback = async function (msg, line) {
|
||||
if (!msg.guildID) return "Can only be used in guilds.";
|
||||
|
||||
let target;
|
||||
if (line) {
|
||||
const user = await lookupUser(msg, line);
|
||||
if (
|
||||
user == "No results" ||
|
||||
user == "Canceled" ||
|
||||
user == "Request timed out"
|
||||
) {
|
||||
return user;
|
||||
} else {
|
||||
let member = user;
|
||||
const guild = msg.channel.guild || hf.bot.guilds.get(msg.guildID);
|
||||
if (guild) {
|
||||
if (guild.members.has(user.id)) {
|
||||
member = guild.members.get(user.id);
|
||||
} else {
|
||||
const fetched = await guild.fetchMembers({
|
||||
userIDs: [user.id],
|
||||
});
|
||||
member = fetched[0];
|
||||
target = member;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
target = msg.member;
|
||||
}
|
||||
|
||||
if (target) {
|
||||
if (!target.presence) return `**${target.tag}** is offline.`;
|
||||
|
||||
let icons = "";
|
||||
for (const platform in target.presence.client_status) {
|
||||
const status = target.presence.client_status[platform];
|
||||
|
||||
icons += PRESENCE_ICONS[platform][status] + " ";
|
||||
}
|
||||
|
||||
const embeds = [];
|
||||
|
||||
return {
|
||||
content: `Presence for **${target.tag}**: ${icons}`,
|
||||
};
|
||||
} else {
|
||||
return ":warning: Could not get user???";
|
||||
}
|
||||
};
|
||||
hf.registerCommand(presence);
|
||||
|
|
Loading…
Reference in a new issue