Advertisement
Guest User

jobs.js

a guest
Feb 9th, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. function genJobTable() {
  4.     let display = "<table border='1' cellspacing='0' cellpadding='5' width='100%'>" +
  5.                     "<tbody><tr><th>Employer</th><th>Description</th><th>Reward</th><th>Completed</th></tr>";
  6.     for (var id in Db("jobs").object()) {
  7.         display += "<tr>" +
  8.                         "<td align='center'><button name='send' value='/profile " + Db("jobs").get([id, "owner"]) + "'><b>" + Db("jobs").get([id, "owner"]) + "</b></button>" + "</td>" +
  9.                         "<td align='center'>" + Db("jobs").get([id, "description"]) + "</td>" +
  10.                         "<td align='center'>" + Db("jobs").get([id, "reward"]) + "</td>" +
  11.                         "<td align='center'><button name='send' value='/jobs delete " + id + "'>" + "Completed" + "</td>" +
  12.                     "</tr>";
  13.     }
  14.     return display;
  15. }
  16. let commands = {
  17.     add: function (target, room, user) {
  18.         // Driver and up only
  19.         if (!this.can('lock')) return this.errorReply('Only staff members can add jobs.');
  20.         let args = target.split(",");
  21.  
  22.         // Generate Job ID
  23.         let id = Math.floor(Math.random() * 16777215).toString(16);
  24.         while (Db('jobs').get(id)) {
  25.             id = Math.floor(Math.random() * 16777215).toString(16);
  26.         }
  27.  
  28.         // Do some checks
  29.         if (args[0].length > 200) return this.errorReply('Description must be 200 characters or less.');
  30.         if (!Math.round(args[1]) === args[1]) return this.errorReply('Reward must be an integer.');
  31.  
  32.         // Create job in database
  33.         Db("jobs").set(id,{
  34.             'description':args[0],
  35.             'reward': +args[1],
  36.             'owner': user.userid,
  37.         });
  38.  
  39.         // Send reply back to user
  40.         this.sendReply("Successfully added job " + id);
  41.     },
  42.     delete: function (target) {
  43.         // Do some checks
  44.         if (!this.can('lock')) return this.errorReply('Only staff members to delete jobs.');
  45.         if (!Db("jobs").get(target)) return this.errorReply('Job not found');
  46.  
  47.         // Delete job and send reply back to user
  48.         Db("jobs").delete(target);
  49.         this.sendReply("Job " + target + " deleted.");
  50.     },
  51.     list: function (target) {
  52.         if (!this.canBroadcast()) return false;
  53.         this.sendReplyBox(genJobTable());
  54.     },
  55. };
  56. exports.commands = {
  57.     jobs: commands,
  58. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement