Advertisement
Guest User

Untitled

a guest
Jan 14th, 2019
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.96 KB | None | 0 0
  1.  
  2. const Discord = require("discord.js");
  3. var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
  4. const bot = new Discord.Client();
  5. const json = require("json").JSON;
  6. const mysql = require("mysql");
  7. var sys = require('sys');
  8. var exec = require('child_process').exec;
  9. var fs = require('fs');
  10. var os = require('os');
  11. var child;
  12. const guildId = "382941847122518019 i changed this";
  13. const broadcastChannel = "405719020533317632 i changed this";
  14.  
  15. const connection = mysql.createConnection({
  16. host : 'localhost',
  17. port : '3306',
  18. user : 'root',
  19. password : 'i changed this',
  20. database : 'unknown'
  21. });
  22.  
  23. const UPDATE_ABLE_RANKS = ["VIP", "VIP+", "MVP", "MVP++"];
  24.  
  25. var fortunes = [
  26. "Yes",
  27. "No",
  28. "Maybe",
  29. "Not really",
  30. " " + "a wild swear has appeared"
  31. ];
  32.  
  33. /
  34. *
  35. * @type {number}
  36. */
  37. var broadcasted = 0;
  38.  
  39. var wasSent = true;
  40.  
  41.  
  42. const broadcastMessages = {0 : "Website: I hidden this", 1 : "Get list of available commands with !help", 2 : "Have you purchased rank? Use !fetchrank to also get that rank here!", 3 : "Server is in beta and you may experience bugs while playing", 4 : "See all event in special-events channel"};
  43.  
  44.  
  45.  
  46.  
  47. connection.connect(function(err) {
  48. if (err) throw err;
  49. console.log("Connected to MYSQL!");
  50. });
  51.  
  52. function inArray(needle, haystack) {
  53. var length = haystack.length;
  54. for(var i = 0; i < length; i++) {
  55. if(haystack[i] == needle) return true;
  56. }
  57. return false;
  58. }
  59.  
  60. function isNumber (text) {
  61. if(text) {
  62. var reg = new RegExp('[0-9]+$');
  63. return reg.test(text);
  64. }
  65. return false;
  66. }
  67.  
  68. function removeSpecials(text) {
  69. if(text) {
  70. var lower = text.toLowerCase();
  71. var upper = text.toUpperCase();
  72. var result = "";
  73. for(var i=0; i<lower.length; ++i) {
  74. if(isNumber(text[i]) || (lower[i] != upper[i]) || (lower[i].trim() === '')) {
  75. result += text[i];
  76. }
  77. }
  78. return result;
  79. }
  80. return '';
  81. }
  82.  
  83. bot.on('ready', (() => {
  84. console.log("Bot is up and running in " + bot.channels.length + " channels");
  85. bot.user.setStatus('dnd', 'Chicken')
  86. bot.user.setActivity("Netsword Database")
  87.  
  88. }));
  89.  
  90. bot.on("disconnected", function () {
  91. console.log("Disconnected from Discord");
  92. process.exit(1);
  93. });
  94.  
  95.  
  96. function leftToEight(){
  97. var d = new Date();
  98. return (-d + d.setHours(8,0,0,0));
  99. }
  100.  
  101. function sendMessage(){
  102. if(!wasSent){
  103. return;
  104. }
  105. var guild = bot.guilds.get(guildId);
  106. if(guild && bot.channels.get(broadcastChannel)){
  107. // guild.channels.get(broadcastChannel).send(broadcastMessages[broadcasted]);
  108. var embed = new Discord.RichEmbed()
  109. .addField("Broadcast", broadcastMessages[broadcasted]);
  110. guild.channels.get(broadcastChannel).sendEmbed(embed);
  111. broadcasted++;
  112. if(broadcasted >= 4){
  113. broadcasted = 0;
  114. }
  115. wasSent = false;
  116. }else{
  117. console.log()
  118. }
  119.  
  120. }
  121.  
  122.  
  123. bot.on("message", message => {
  124. if(message.author.bot
  125. )
  126. return;
  127.  
  128.  
  129.  
  130. var dict = {"clientID" : message.author.id,
  131. "xp" : 0,
  132. "level" : 0};
  133. var dictstring = JSON.stringify(dict);
  134. var id = message.author.id;
  135. var msg = message.content.toLowerCase();
  136. fs.exists("./players/" + id +".json", function(exists) {
  137. if (!exists) {
  138. fs.writeFile("./players/" + id + ".json", dictstring);
  139. }
  140. });
  141.  
  142. function regexIndexOf(text, re, i) {
  143. var indexInSuffix = text.slice(i).search(re);
  144. return indexInSuffix < 0 ? indexInSuffix : indexInSuffix + i;
  145. }
  146.  
  147.  
  148.  
  149. if(message.channel.id == broadcastChannel){
  150. wasSent = true;
  151. }
  152. //var test = 'dpbre jidlo';
  153. fs.readFile('./badwords.json', function read(err, data) {
  154. if (err) {
  155. throw err;
  156. }
  157. var content = data;
  158. let json3 = JSON.parse(content)['badwords'];
  159. length = json3.length;
  160. while(length--) {
  161. if (msg.indexOf(json3[length])!=-1) {
  162. message.reply(":rage: LANGUAGE")
  163. .then(msg => {
  164. msg.delete(10000)
  165. });
  166. message.delete();
  167. return;
  168. }
  169. }
  170.  
  171. });
  172. if (m
  173.  
  174. Honza, [26.12.18 20:59]
  175. essage.content.indexOf('!') !== 0) return;
  176. const args = message.content.slice("!").trim().split(/ +/g);
  177. const command = args.shift().toLowerCase();
  178. if (command == '!playerinfo') {
  179. let [name] = args;
  180. if (name == null) {
  181. message.channel.sendMessage(':cry: Invalid arguments provided');
  182. return;
  183. }
  184. var result = [];
  185. connection.query("SELECT * FROM players WHERE name='" + name + "'", function (err, res, fields) {
  186. if (err) console.log(err);
  187. if (res.length) {
  188. for (var i = 0; i < res.length; i++) {
  189. result.push(res[i]);
  190. }
  191. }
  192. if (result[0] == null) {
  193. message.channel.sendMessage(":cry: Could not with user with username with username " + args[0]);
  194. return;
  195. }
  196. message.channel.sendMessage("XBL Username: " + result[0].name);
  197. message.channel.sendMessage("Coins: " + result[0].coins);
  198. message.channel.sendMessage("Gems: " + result[0].gems);
  199. message.channel.sendMessage("Rank: " + result[0].rank);
  200. var pet = "None";
  201. if (result[0].pet !== "") {
  202. pet = result[0].pet;
  203. pet = pet.replace(pet[0], pet[0].toUpperCase());
  204. }
  205. var prefix = "None";
  206. if(result[0].prefix !== ""){
  207. prefix = result[0].prefix;
  208. }
  209. message.channel.sendMessage("Pet: " + pet);
  210. message.channel.sendMessage("Prefix: " + prefix);
  211. });
  212. } else if (command == '!serverinfo') {
  213. message.channel.sendMessage('Retrieving server info...');
  214. var result2 = [];
  215. var data = httpGet('https://use.gameapis.net/mcpe/query/extensive/i changed this');
  216. let json2 = JSON.parse(data);
  217. result2.push(json2);
  218. var status = result2[0]['status'];
  219. message.channel.sendMessage("Server active: " + status);
  220. if (!status) {
  221. return;
  222. }
  223. message.channel.sendMessage("Players Online: " + result2[0]['players']['online']);
  224. /* if(data.status == false){
  225. message.channel.sendMessage("Server Status: offline");
  226. return;
  227. }*/
  228. /* message.channel.sendMessage("Server Status: online");
  229. message.channel.sendMessage("Online Players: " . myObj.status);*/
  230. } else if (command == '!exec') {
  231. message.delete();
  232. if (!message.member.roles.find("name", "Server Administrator")) {
  233. message.channel.sendMessage(":cry: You don't have permission to use this command")
  234. .then(msg => {
  235. msg.delete(5000)
  236. })
  237. ;
  238. return;
  239. }
  240. var NewsArgs = args.toString().replace(",", " ");
  241. if (NewsArgs == null || NewsArgs === "") {
  242. message.channel.sendMessage(':cry: Invalid arguments provided')
  243. .then(msg => {
  244. msg.delete(5000)
  245. });
  246. return;
  247. }
  248. message.channel.sendMessage("Executing " + NewsArgs);
  249. child = exec(NewsArgs, function (error, stdout, stderr) {
  250. console.log(stderr);
  251. if (error !== null) {
  252. message.channel.sendMessage('Error:' + error);
  253. }
  254. });
  255.  
  256. Honza, [26.12.18 20:59]
  257. } else if (command == '!8ball') {
  258. if (args[0]) message.channel.sendMessage(fortunes[Math.floor(Math.random() * fortunes.length)]);
  259. } else if (command == '!broadcast') {
  260. message.delete();
  261. if (!message.member.roles.find("name", "Server Administrator") && !message.member.roles.find("name", "Builder") && !message.member.roles.find("name", "Server Developer")) {
  262. message.channel.sendMessage(":cry: You don't have permission to use this command")
  263. .then(msg => {
  264. msg.delete(5000)
  265. });
  266. return;
  267. }
  268. message.channel.sendMessage(message.content.slice(10));
  269. } else if (command == '!clear') {
  270. message.delete();
  271. if (!message.member.roles.find("name", "Server Administrator") && !message.member.roles.find("name", "Builder") && !message.member.roles.find("name", "Server Developer")) {
  272. message.channel.sendMessage(":cry: You don't have permission to use this command")
  273. .then(msg => {
  274. msg.delete(5000)});
  275. return;
  276. }
  277. if (!args[0]) {
  278. message.channel.sendMessage(':cry: Invalid arguments provided')
  279. .then(msg => {
  280. msg.delete(5000)});
  281. return;
  282. }
  283. if(args[0] > 100){
  284. message.channel.send("You can't delete more than 100 messages").then(msg => msg.delete(3000));
  285. return;
  286. }
  287. message.channel.bulkDelete(args[0]).then(() => {
  288. message.channel.send("Deleted " +args[0]+ " messages.").then(msg => msg.delete(3000));
  289. });
  290.  
  291.  
  292. }else if(command == '!info'){
  293. message.reply('channel id: ' + message.channel.id + " guild: " + message.guild.id);
  294. }else if(command == '!fetchrank'){
  295. if (!args[0]) {
  296. message.channel.sendMessage(':cry: Invalid arguments provided')
  297. .then(msg => {
  298. msg.delete(5000)});
  299. return;
  300. }
  301. var result = [];
  302. connection.query("SELECT * FROM players WHERE name='" + args[0] + "'", function (err, res, fields) {
  303. if (err) console.log(err);
  304. if (res.length) {
  305. for (var i = 0; i < res.length; i++) {
  306. result.push(res[i]);
  307. }
  308. }
  309. if (result[0] == null) {
  310. message.channel.sendMessage(":cry: Could not with user with username with username " + result[0] + "");
  311. return;
  312. }
  313. if(result[0].prefix == "discord"){
  314. message.channel.sendMessage("Account " + args[0] + " already has discord prefix!");
  315. }else {
  316. connection.query("UPDATE players SET prefix='discord' WHERE name='" + args[0] + "'");
  317. message.channel.sendMessage("**Congratulations! Added discord prefix and particles to account " + args[0]);
  318. message.channel.sendMessage("Applying discord verified role to " + args[0] + "...");
  319. message.channel.sendMessage("If you are connected on server, you may have to reconnect to see the changes.");
  320. var role = message.guild.roles.find("name", "Discord Verified");
  321. message.member.addRole(role);
  322. /* if(inArray(result[0].rank, UPDATE_ABLE_RANKS)){
  323. message.channel.sendMessage("I have added Discord features to the Xbox Account ipedrowtspvp");
  324. var role = message.guild.roles.find("name", result[0].rank);
  325. var Mrole = message.member.roles.find("name", result[0].rank);
  326. if(Mrole){
  327. message.channel.sendMessage("I could not add the discord tag since you already have a tag")
  328. .then(msg => {
  329. msg.delete(5000)});
  330. return;
  331. }
  332. message.member.addRole(role);
  333. message.channel.sendMessage("You now have " + result[0].rank + " rank! Congratulations!");*/
  334. /* }else{
  335. message.channel.sendMessage("Sorry, only users with purchased rank can fetch their account")
  336. .then(msg => {
  337. msg.delete(5000)});
  338. }*/
  339. }
  340.  
  341. Honza, [26.12.18 20:59]
  342. });
  343. }else if(command == '!help'){
  344. var embed = new Discord.RichEmbed()
  345. .addField("Command Lis**t" + os.EOL, "!playerinfo**" + os.EOL + "Retrieve info about specified player" + os.EOL.repeat(2) + "!fetchrank" + os.EOL + "Connect your xbox account to discord account" + os.EOL.repeat(2) + "!serverinfo" + os.EOL + "Give info about server");
  346. message.channel.sendEmbed(embed);
  347. }
  348. });
  349.  
  350. function httpGet(theUrl)
  351. {
  352. var xmlHttp = new XMLHttpRequest();
  353. xmlHttp.open( "GET", theUrl, false );
  354. xmlHttp.send( null );
  355. return xmlHttp.responseText;
  356. }
  357.  
  358. bot.login('NDI5NzUyNTE1OTMyNzE3MDU4.DaGN0g.Sy89zKI broke this boiii');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement