Advertisement
Tarna256

Untitled

Nov 26th, 2020 (edited)
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.95 KB | None | 0 0
  1. const mineflayer = require('mineflayer');
  2. const Discord = require('discord.js');
  3. const fs = require('fs');
  4. require('dotenv').config;
  5. const tags = require('./tags.json');
  6. const bot = new Discord.Client();
  7. const client = mineflayer.createBot({
  8. host: process.env.SERVER,
  9. username: process.env.MINECRAFT_EMAIL,
  10. password: process.env.MINECRAFT_PASS
  11. });
  12.  
  13. client.connectedToMCServer = true;
  14.  
  15. client.once('spawn', () => {
  16. console.log('Minecraft bot spawned!');
  17. });
  18.  
  19. bot.on('ready', () => {
  20. console.log('Discord bot ready!');
  21. if (!tags.managers.includes(process.env.YOUR_ID)) {
  22. tags.managers.push(process.env.YOUR_ID);
  23. fs.writeFileSync('./tags.json', JSON.stringify(tags));
  24. }
  25. });
  26.  
  27. client.on('message', (msg) => {
  28. console.log(msg.toString());
  29. let message = msg.toString().replace(/(\`)/g, '');
  30. if (msg.toString() === '' || `\`${message}\`` === '``') return;
  31. bot.channels.cache.get(process.env.DISCORD_CHANNEL).send(`\`${message}\``);
  32. });
  33.  
  34. bot.on('message', (msg) => {
  35. if (msg.channel.id === process.env.DISCORD_CHANNEL) {
  36. if (msg.author.id !== process.env.YOUR_ID) return;
  37. if (!msg.content.startsWith('!')) {
  38. client.chat(msg.content);
  39. } else {
  40. for (const i of tags.list) {
  41. if (msg.content === '!' + i) return client.chat(tags.tags[i]);
  42. }
  43. }
  44. } else if (msg.content.startsWith('!')) {
  45. if (!tags.managers.includes(msg.author.id)) return;
  46. let args = msg.content.split(' ');
  47. let cmd = args[0].substr(1);
  48. args.shift();
  49. // This'll be the minimal thing for commands, I guess. Cant be bothered with a command handler rn.
  50. switch (cmd) {
  51. case 'tag':
  52. switch (args[0]) {
  53. case 'set':
  54. if (!tags.list.includes(args[1])) tags.list.push(args[1]);
  55. tags.tags[args[1]] = args.slice(2).join(" ");
  56. msg.channel.send('Successfully updated tag `' + args[1] + '`!');
  57. fs.writeFileSync('./tags.json', JSON.stringify(tags));
  58. break;
  59. case 'delete':
  60. if (!tags.list.includes(args[1])) return msg.channel.send('That tag doesn\'t exist!');
  61. tags.list.splice(tags.list.indexOf(args[1]), 1);
  62. delete tags.tags[args[1]];
  63. fs.writeFileSync('./tags.json', JSON.stringify(tags));
  64. msg.channel.send('Successfully deleted tag `' + args[1] + '`!');
  65. break;
  66. case 'list':
  67. msg.channel.send(`Showing ${tags.list.length} tags:\n\n\`${tags.list.join("\`, \`")}\``);
  68. break;
  69. case 'source':
  70. if (!tags.list.includes(args[1])) return msg.channel.send('That tag doesn\'t exist!');
  71. msg.channel.send('```\n' + tags.tags[args[1]] + '\n```');
  72. break;
  73. case 'manager':
  74. if (msg.author.id !== process.env.YOUR_ID) return;
  75. let member = bot.users.cache.get(args[2].replace(/[^0-9]/g, ''));
  76. switch (args[1]) {
  77. case 'add':
  78. if (!member) return msg.channel.send('Couldn\'t find that user!');
  79. tags.managers.push(member.id);
  80. fs.writeFileSync('./tags.json', JSON.stringify(tags));
  81. msg.channel.send('Successfully added ' + member.tag + ' to the list of managers!');
  82. break;
  83. case 'del':
  84. if (!member) return msg.channel.send('Couldn\'t find that user!');
  85. if (!tags.managers.includes(member.id)) return msg.channel.send('That user isn\'t a manager!');
  86. tags.managers.splice(tags.managers.indexOf(member.id), 1);
  87. fs.writeFileSync('./tags.json', JSON.stringify(tags));
  88. msg.channel.send('Successfully removed ' + member.tag + ' from the list of managers!');
  89. break;
  90. default:
  91. msg.channel.send('Invalid command!');
  92. break;
  93. }
  94. break;
  95. default:
  96. msg.channel.send('Invalid command!');
  97. break;
  98. }
  99. break;
  100. default:
  101. msg.channel.send('Invalid command!');
  102. break;
  103. }
  104. }
  105. });
  106.  
  107. bot.login(process.env.BOT_TOKEN);
  108.  
  109.  
  110.  
  111.  
  112. bot.on('message', (msg) => {
  113. if (msg.channel.id !== process.env.discord_channel_id) {
  114. let prefix = '?';
  115. if (msg.content.startsWith(prefix)) {
  116. const args = msg.content.slice(prefix.length).trim().split(/ +/g);
  117. const cmd = args.shift().toLowerCase();
  118.  
  119. if (cmd === 'leave') {
  120. if(!client.connectedToMCServer) return msg.channel.send('The bot isn\'t connected to any server!');
  121. client.quit();
  122. msg.channel.send('Disconnected from server!');
  123. } else if (cmd === 'join') {
  124. if(client.connectedToMCServer) return msg.channel.send('The bot is already connected to a server!');
  125. if(!args[0]) return msg.channel.send('No server provided!');
  126. client = mineflayer.createBot({
  127. host: args[0],
  128. username: process.env.MINECRAFT_EMAIL,
  129. password: process.env.MINECRAFT_PASS
  130. });
  131. console.log('Bot connected to new server!');
  132. client.connectedToMCServer = true;
  133. return msg.channel.send('Connected to `' + args[0] + '`!');
  134. }
  135. }
  136. }
  137. })
  138.  
  139. const http = require('http');
  140. const server = http.createServer((req, res) => {
  141. res.writeHead(200);
  142. res.end('ok');
  143. });
  144. server.listen(3000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement