Advertisement
Guest User

Untitled

a guest
May 27th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. var Quantities = Quantities || (function() {
  2. 'use strict';
  3.  
  4. var version = "0.1a",
  5.  
  6. updateHandout = function() {
  7. // Party owns ...
  8. var str = "The party has:\n";
  9. for (var key in state.quantities) {
  10. if (state.quantities.hasOwnProperty(key)) {
  11. str += state.quantities[key] + " " + key + "\n";
  12. }
  13. }
  14.  
  15. //Does handout exist?
  16. var handout = findObjs({
  17. _type: 'handout',
  18. name: 'Quantities',
  19. })[0];
  20.  
  21. if(!handout) {
  22. // create handout
  23. handout = createObj('handout', {
  24. name: 'Quantities',
  25. notes: str,
  26. inplayerjournals: 'all',
  27. });
  28. }
  29.  
  30. handout.set("notes", str);
  31. },
  32.  
  33. getQuantity = function(quantity) {
  34. // Does property exist?
  35. if (!(state.quantities.hasOwnProperty(quantity))) {
  36. sendChat("Quantities", "This quantity does not exist, did you mean to type !quantity " + quantity.toString() + " [num]");
  37. return null;
  38. } else {
  39. sendChat("Quantities", "The party has " + state.quantities[quantity] + " " + quantity);
  40. }
  41. },
  42.  
  43.  
  44. setQuantity = function(quantity, n, who) {
  45. if(isNaN(n)) {
  46. sendChat("Quantities", "Quantities must be set to a numerical value");
  47. return null;
  48. }
  49.  
  50. if(n === "0") {
  51. delete(state.quantities[quantity]);
  52. } else if ((n.charAt(0) === '+') || (n.charAt(0) === '-')) {
  53. state.quantities[quantity] = (Number(state.quantities[quantity]) + Number(n)).toString();
  54. } else {
  55. state.quantities[quantity] = n.toString();
  56. }
  57.  
  58. sendChat("Quantities", "/w " + who + quantity + " set to " + state.quantities[quantity]);
  59.  
  60. updateHandout();
  61. },
  62.  
  63. printQuantities = function() {
  64. var str = "&{template:default} {{name=Party Supplies}}";
  65.  
  66. for (var key in state.quantities) {
  67. if (state.quantities.hasOwnProperty(key)) {
  68. str += " {{" + key + "=" + state.quantities[key] + "}}";
  69. }
  70. }
  71. sendChat("Quantities", str);
  72. },
  73.  
  74. initialise = function() {
  75. log("Initialising Quantities v0.1a");
  76.  
  77. on("chat:message", function(msg) {
  78. var args = msg.content.split(/\s+/);
  79.  
  80. if(msg.type == "api" && ((args[0] == "!quantity") || (args[0] == "!q"))) {
  81.  
  82. if (args.length == 3) {
  83. setQuantity(args[1], args[2], msg.who);
  84. } else if (args.length == 2) {
  85. getQuantity(args[1]);
  86. } else if (args.length == 1) {
  87. printQuantities();
  88. }else {
  89. sendChat("Quantities", "Incorrect number of arguments");
  90. return null;
  91. }
  92. }
  93. });
  94. };
  95.  
  96. return {
  97. initialise: initialise
  98. };
  99. }());
  100.  
  101. on("ready", function() {
  102. log("Ready for Quantities");
  103. if (!state.hasOwnProperty("quantities")) {
  104. state["quantities"] = {};
  105. }
  106.  
  107. Quantities.initialise();
  108. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement