From 54a83fa86e4215f931f36a5405ec0fca1d759d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20M=C3=A9ndez?= <45081533+FerMdez@users.noreply.github.com> Date: Wed, 3 Feb 2021 18:35:33 +0100 Subject: [PATCH] Add files via upload --- DiskoBOTlo_Discord/bot.js | 83 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 DiskoBOTlo_Discord/bot.js diff --git a/DiskoBOTlo_Discord/bot.js b/DiskoBOTlo_Discord/bot.js new file mode 100644 index 0000000..f1b08b2 --- /dev/null +++ b/DiskoBOTlo_Discord/bot.js @@ -0,0 +1,83 @@ +// Librerías y dependendias: +const Discord = require("discord.js"); +const client = new Discord.Client(); +const config = require("./config.json"); +const mcping = require('mc-ping-updated'); + +// Prefijo para comandos "/": +let prefix = config.prefix; + + + +// Funciones del bot: +client.on('ready', () => { + // Mensaje al iniciar el bot: + console.log("[ " + Date() + " ] Se ha iniciado el bot."); + +}); + +client.on('message', message => { + // Ignoramos el contenido de los mensajes del BOT (evita bucle infinito): + // if (!message.content.startsWith(prefix)) return; + // if (message.author.bot) return; + + // Id del canal de bienvenida: + var welcomeChanel = client.channels.cache.get(config.welcomeChanel); + // Id del canal de Minecraft: + var serverMinecraftChanel = client.channels.cache.get(config.serverMinecraftChanel); + //Id del canal de Junta: + var juntaChanel = client.channels.cache.get(config.juntaChanel); + + // Id del rol "Suscriptor": + //var socioRol = message.guild.roles.cache.find(r => r.name === "socioRol"); + var socioRol = message.guild.roles.cache.get(config.socioID); + + // Asignación del rol al decir "Hola" en el canal de bienvenida. + if(message.channel == welcomeChanel){ + //console.log(message.content); + if(message.content === 'Hola'){ + if(message.member.roles.cache.has(socioRol.id)) { + message.channel.send('Hola a ti también 😉'); + console.log("[ " + Date() + " ] Se ha interactuado con" + message.member.user.username + " en #BIENVENIDA."); + } + else { + message.member.roles.add(socioRol).catch(console.error); //Agregamos el rol al usuario + message.channel.send(message.member.user.username + ' *¡Bienvenido al servidor de Diskobolo!* 👋\n' + + '⚠️ Usa los canales adecuados para hablar de cada tema y respeta a los demás ⚠️\n' + + '👉 Se te ha asignado el rol: `'+socioRol.name+'` 👈.\n\n' + + '🐦 Puedes seguirnos en *twitter* 🐦: https://twitter.com/DSKbolo \n\n' + + '🔎 Recuerda la IP del servidor de Minecraft ⛏️: *diskobolo.fdi.ucm.es*\n', { parse_mode: 'Markdown' }); + console.log("[ " + Date() + " ] Se ha asignado un rol de socioRol a " + message.member.user.username ); + } + } else if(!(message.member.roles.cache.has(socioRol.id))) { + message.channel.send(message.member.user.username + ' escribe "Hola", para que se te asigne un rol.'); + console.log("[ " + Date() + " ] Se ha solicitado a " + message.member.user.username + " que diga hola."); + } + } + + if(message.channel == juntaChanel || message.channel == serverMinecraftChanel) { + if(message.content.startsWith(prefix + 'ping')) { + message.channel.send(`pong 🏓`); + } + if(message.content.startsWith(prefix + 'minecraft')) { + mcping('diskobolo.fdi.ucm.es', 25565, function(err, res) { + if (err) { + // Some kind of error + message.channel.send('El servidor *NO* funciona. Puede que haya explotado un creeper 🤷‍♂️', { parse_mode: 'Markdown' }); + console.error("[ " + Date() + " ]" + message.member.user.username + "Error al mostrar el estado del servidor de Minecraft.\n\n" + err); + } else { + // Success! + message.channel.send('⛏️*SERVIDOR DE MINECRAFT DE Diskobolo*⛏️ \n\n' + + 'Estado: *ACTIVO* \n' + + 'IP del servidor: *diskobolo.fdi.ucm.es* \n' + + 'Versión del servidor: *' + res.version.name + '* \n' + + 'Jugadores conectados: *' + res.players.online +'*', { parse_mode: 'Markdown' }); + console.log("[ " + Date() + " ]" + message.member.user.username + " Ha solicitado el estado del servidor de Minecraft. \n\n" + res) + //console.log(res); + } + }, 3000); + } + } +}); + +client.login(config.BOT_TOKEN); \ No newline at end of file