Nyax

define bot

Jan 15th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.27 KB | None | 0 0
  1. // GLOBAL VARIABLES
  2. // ******** ******** ********
  3. var vgBotName = "++Pie: ";
  4. var vgCommandSymbol = "-";
  5. var vgBotEnabled = true;
  6. var vgOfficalChannelArray = ["Blackjack", "Developer's Den", "Evolution Game", "Hangman", "Indigo Plateau", "Mafia", "Mafia Review", "Tohjo Falls", "Tohjo v2", "Tournaments", "TrivReview", "Trivia", "Victory Road", "Watch"];
  7.  
  8. // DEFINE CACHE MEMORY
  9. var vgDefineCacheWord, vgDefineCacheData;
  10.  
  11. // PRINT
  12. // ******** ******** ********
  13. function print(message) {
  14. // THIS OVERWRITES THE BUILT-IN PRINT FUNCTION TO ONLY DISPLAY MESSAGE IN CURRENT CHANNEL
  15. client.printChannelMessage(message, client.currentChannel(), false);
  16. }
  17.  
  18. print(vgBotName + "Scripts updated.");
  19. print(vgBotName + "Commands:");
  20. print(vgBotName + "// -bot [off/on]");
  21. print(vgBotName + "// -define [word]:[entry number]");
  22.  
  23. var objPoScript;
  24. objPoScript = ({
  25. beforeChannelMessage: function (message, channel, html) {
  26. // VARIABLES
  27. // ******** ******** ********
  28. var x,
  29. vMyName = client.ownName(),
  30. vUserSentName = message.substring(0, message.indexOf(':')),
  31. vUserSentMessage = message.substr(message.indexOf(':') + 2).toLowerCase(),
  32. vChannelName = client.channelName(channel);
  33.  
  34. // COMMAND + COMMAND DATA SETUP
  35. // ******** ******** ********
  36. var vCommand = "", vCommandData = "", vSplit;
  37. if (vgCommandSymbol === vUserSentMessage.charAt(0)) {
  38. vSplit = vUserSentMessage.indexOf(" ");
  39. if (vSplit !== -1) {
  40. vCommand = vUserSentMessage.substring(1, vSplit).toLowerCase();
  41. vCommandData = vUserSentMessage.substr(vSplit + 1);
  42. } else {
  43. vCommand = vUserSentMessage.substr(1).toLowerCase();
  44. }
  45. }
  46.  
  47. // BOT OWNER COMMANDS
  48. // ******** ******** ********
  49. if (vMyName === vUserSentName ) {
  50. // AUTO RESPOND SWITCH
  51. // ******** ******** ********
  52. if (vCommand === "bot") {
  53. if (vCommandData === "on") {
  54. vgBotEnabled = true;
  55. client.network().sendChanMessage(channel, vgBotName + "Bots Enabled.");
  56. }
  57. if (vCommandData === "off") {
  58. vgBotEnabled = false;
  59. client.network().sendChanMessage(channel, vgBotName + "Bots Disabled.");
  60. }
  61. }
  62. }
  63.  
  64. // DEFINE
  65. // ******** ******** ********
  66. if (vgBotEnabled === true) {
  67. if (vgOfficalChannelArray.indexOf(vChannelName) === -1) {
  68. if (vCommand === "define") {
  69. // DECLAIRE COMMAND VARIABLES
  70. var vSplit,
  71. vDefineWord = "",
  72. vDefineEntry = "0",
  73. vDefineStatus = "",
  74. vDefineData;
  75. // -- CHECK IF NO COMMAND DATA EXIST AND ALERT USER --
  76. if ((vCommandData === undefined) || (vCommandData === "")) {
  77. client.network().sendChanMessage(channel, vgBotName + "Hahahaha learn to type bruh.");
  78. return;
  79. }
  80. // CHECK FOR SECONDARY COMMAND DATA
  81. if (vCommandData.indexOf(":") !== -1) {
  82. // SPLIT
  83. vSplit = vCommandData.split(":", 2);
  84. vDefineWord = vSplit[0];
  85. vDefineEntry = vSplit[1];
  86.  
  87. // MAKE SURE vDefineEntry IS AN INTEGER AND FLOOR
  88. vDefineEntry = Math.floor(parseInt(vDefineEntry, 10));
  89. if (vDefineEntry !== parseInt(vDefineEntry, 10)) {
  90. vDefineEntry = 0;
  91. }
  92. } else {
  93. vDefineWord = vCommandData;
  94. vDefineEntry = 0;
  95. }
  96.  
  97. // IF WORD IS STORED IN CACHED READ CURRENTLY DOWNLOAD ONE
  98. if (vgDefineCacheWord === vDefineWord) {
  99. vDefineData = vgDefineCacheData;
  100. vDefineStatus = "(Cached)";
  101. }
  102. // IF WORD NOT CURRENTLY STORED IN CACHED DOWNLOAD IT
  103. if (vgDefineCacheWord !== vDefineWord) {
  104. // GET RESULT FROM URBAN DICTIONARY AND STORE DATA
  105. vDefineData = JSON.parse(sys.synchronousWebCall("http://api.urbandictionary.com/v0/define?term=" + (encodeURIComponent(vDefineWord))));
  106. vgDefineCacheWord = vDefineWord;
  107. vgDefineCacheData = vDefineData;
  108. vDefineStatus = "(Being Awesome)";
  109. }
  110.  
  111. // CHECK IF DEFINITION DOESNT EXIST
  112. if (vDefineData.result_type !== "exact") {
  113. client.network().sendChanMessage(channel, vgBotName + "\"" + vDefineWord.toLowerCase() + "\"" + " is not defined!");
  114. return;
  115. }
  116. // BUILD AND COUNT DEFINITIONS AVAILABLE
  117. var vDefineStringArray = [],
  118. vDefineLength = -1,
  119. vCheckedLength = false;
  120. for (x = 0; vCheckedLength === false; x++) {
  121. try {
  122. vDefineStringArray[x] = vDefineData.list[x].definition;
  123. vDefineLength++;
  124. } catch (error) {
  125. vCheckedLength = true;
  126. }
  127. }
  128.  
  129. // DEFINE SELECTION RANGE CHECK
  130. if (vDefineEntry > vDefineLength) {
  131. vDefineEntry = vDefineLength;
  132. }
  133. if (vDefineEntry < 0) {
  134. vDefineEntry = 0;
  135. }
  136.  
  137. // OBTAIN STRING TO ALLOW LENGTH CHECK
  138. var vStringLimit = 420, // String Limit is 420
  139. vStringToPrint = vDefineStringArray[vDefineEntry];
  140.  
  141. // MESSAGE FORMAT
  142. var vDefMessageWord = "\"" + vDefineWord.toLowerCase() + "\"",
  143. vDefMessageInfo = vStringToPrint,
  144. vDefMessageSelection = "(" + vDefineEntry + "/" + vDefineLength + ")",
  145. vDefMessageLimitReached = "[String Limit of " + vStringLimit + " Reached]";
  146.  
  147. // STRING LIMIT CHECK
  148. if (vStringToPrint.length <= vStringLimit) {
  149. client.network().sendChanMessage(channel, vgBotName + " " + vDefineStatus + " " + vDefMessageWord + " " + vDefMessageSelection + ": " + vDefMessageInfo);
  150. }
  151. if (vStringToPrint.length > vStringLimit) {
  152. client.network().sendChanMessage(channel, vgBotName + " " + vDefineStatus + " " + vDefMessageWord + " " + vDefMessageSelection + ": " + vDefMessageInfo.substring(0, vStringLimit) + " " + vDefMessageLimitReached);
  153.  
  154. }
  155. }
  156. }
  157. }
  158. } // END OF beforeChannelMessage
  159. });
Add Comment
Please, Sign In to add comment