Advertisement
Guest User

Untitled

a guest
Aug 26th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var fs = require('fs')
  2. const axios = require('axios')
  3. const bot = require('discord.js')
  4.  
  5. const client = new bot.Client()
  6. const token = ""
  7.  
  8. const roles = new Map([
  9.     ['atc', '194717624708366336'],
  10.     ['mentor', '337014482335170562'],
  11.     ['staff', '194710733924073472']
  12. ])
  13.  
  14. const commands = {
  15.  
  16.     avatar (...args) {
  17.         let message = args[0]
  18.         message.reply(message.author.avatarURL)
  19.     },
  20.  
  21.     ping (...args) {
  22.         let message = args[0]
  23.         message.channel.send('pong')
  24.     },
  25.  
  26.     whoami (...args) {
  27.         let message = args[0]
  28.         let member = message.member || message.author
  29.         let nickname = member.displayName || member.username
  30.         member.send(`Hey, ${nickname}. Your unique discord id is \`${member.id}\`. Don't give this to **anyone**!`)
  31.    },
  32.  
  33.    forget (...args) {
  34.        let message = args[0]
  35.        let member = message.member || message.author
  36.        let nickname = member.displayName || member.username
  37.        member.send(`Sad to see you go, ${nickname}. See ya later!`).then(e => {member.kick()})
  38.    },
  39.  
  40.    metar (...args) {
  41.        let message = args[0]
  42.        let codes = [...new Set(args[1])]
  43.  
  44.        if (codes.length === 0)
  45.            return message.reply("You need to supply at least one ICAO code! How am I supposed to know which airport(s) you're talking about!?")
  46.        if (codes.length > 3)
  47.            return message.reply(":astonished: Slow down cowboy! You are limited to three (3) icao codes per request!")
  48.  
  49.        Promise.all(codes.map(c => {return axios.get(`http://metar.vatsim.net/metar.php?id=${c}`)}))
  50.        .then( responses => {
  51.            responses.forEach(e => {
  52.                if (e.data.substr(0,18) == `No METAR available`)
  53.                    return message.reply(':confused: ' + e.data)
  54.                return message.reply(e.data)
  55.            });
  56.        })
  57.    }
  58. }
  59.  
  60. client.on('message', message => {
  61.    if (message.content.charAt(0) != '.') return
  62.  
  63.    let list = Object.keys(commands)
  64.    let args = message.content.substr(1).split(" ")
  65.    let command = args.shift()
  66.    
  67.    if (command === 'list')
  68.        message.reply(list.join(', '))
  69.    else if (list.includes(command))
  70.        commands[command](message, args)
  71.    else
  72.        message.reply(`I'm gonna go ahead and assume that your message wasn't meant for me.\n I cannot understand a word you're saying... Run \`.list\` for a list of all available commands!`)
  73. })
  74.  
  75. client.on('presenceUpdate', (o, member) => {
  76.    if (!(o.presence.status === 'offline' && member.presence.status === 'online')) return
  77.  
  78.    let identifier = `../alcyoneus.hvacc.org/storage/app/${member.id}`
  79.  
  80.    if (!fs.existsSync(identifier)) {
  81.        message = `Hello ${member}! My name is Alcyoneus and I am the gatekeeper of the Hellenic vACC discord server. I believe that your account is unverified.\n\nI shall grant you access after you have verified your account. To do this go to https://alcyoneus.hvacc.org/${member.id} and follow the on-screen instructions.\n\n*Please note that you must be a member of the Hellenic vACC forum for this to work.*`
  82.        return member.send(message).then(e => {member.kick()})
  83.    }
  84.  
  85.    let u = JSON.parse(fs.readFileSync(identifier, 'utf8'))
  86.    let r = u.roles.map(e => {return roles.get(e)})
  87.    member.setNickname(u.nickname)
  88.    member.setRoles(r)
  89. })
  90.  
  91. client.login(token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement