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…
	
	Add table
		Add a link
		
	
		Reference in a new issue