Advertisement
Guest User

finger.js

a guest
Jul 20th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const Parse = require("../util/parse.js");
  2. const DBuser = require("../util/dbuser.js");
  3. const Embed = require("../util/embed.js");
  4.  
  5. class Finger extends Parse {
  6.  
  7.   run(args, argument, user) { //all from the same command, so the arguments parse starts here
  8.     let modboolean = false;
  9.     if(args[0] && this.Search.get(args[0])) { //if the first word summons a user then we do something different
  10.       user = this.Search.get(args[0]); //the user we use becomes the args[0] (instead of message.author);
  11.       args = args.slice(1); //and of course that word summonging the user is removed from the arguments we take into account
  12.       argument = args.join(" ").replace(/[^a-zA-Z0-9\.!\?',;:"£\$%~\+=()\s\u200B-\u200D\uFEFF-]+/g, "");
  13.       modboolean = true; //user summoning is a mod action. It's find for just viewing profiles but for changing we need permissions.
  14.     };
  15.     let dbuser = DBuser.getfromuser(user);
  16.     if(!args[0] || !argument) return this.get(dbuser); //so if there's no arguments left, just view the profile.
  17.     if(modboolean && !this.Check.role(this.member, this.server.roles.admin)) return; //to change or clear, need mod permissions.
  18.     if(args[0] === "clear") return this.clear(dbuser);
  19.     return this.update(dbuser, argument);
  20.   }
  21.  
  22.   get (dbuser, title) {
  23.     this.Output.sender({
  24.       "title": (title ? title : "Current") + " finger message for " + dbuser.username + ":",
  25.       "description": "\`\`\`" + (dbuser.finger || " ") + "\`\`\`", //if no finger, send empty message so it's clear for the user
  26.       "footer": Embed.footer("\"!finger clear\" to remove your finger message.")
  27.     }) //just parse the information and send it
  28.   }
  29.  
  30.   clear (dbuser) {
  31.     delete dbuser.finger; //delete the entry, easy as that
  32.     DBuser.setData(dbuser);
  33.     this.get(dbuser, "Cleared") //send the view message with first word changed to "cleared"
  34.   }
  35.  
  36.   update (dbuser, argument) {
  37.     if(argument.length > 500) return this.Output.onError(`Finger must be within **500** characters. Text submitted is **${argument.length - 499}** characters too long!`);
  38.     if(dbuser.finger === argument) return this.Output.onError(`Finger was already that!`);
  39.     dbuser.finger = argument;
  40.     DBuser.setData(dbuser);    
  41.     this.get(dbuser, "Updated"); //all self explanatory
  42.   }
  43.  
  44. }
  45.  
  46. module.exports = Finger;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement