diff options
| author | Trey <trey6979@gmail.com> | 2018-04-06 13:37:22 -0400 |
|---|---|---|
| committer | Trey <trey6979@gmail.com> | 2018-04-06 13:37:22 -0400 |
| commit | 20b860bb2299d4a45aa9899fcab2b340cbe9a0b5 (patch) | |
| tree | 4022b84287f9df17854947a6f6ae98665719f209 /commands/Pokemon/claim.js | |
| parent | b85b686829798f29f5f19fe919ae8807ef9ad69c (diff) | |
| parent | e39d116465334ce84ee06267e8defb6007dddf22 (diff) | |
| download | PokeBot-20b860bb2299d4a45aa9899fcab2b340cbe9a0b5.tar.gz PokeBot-20b860bb2299d4a45aa9899fcab2b340cbe9a0b5.tar.bz2 PokeBot-20b860bb2299d4a45aa9899fcab2b340cbe9a0b5.zip | |
Merge branch 'master' of https://github.com/PokeWorld/PokeBot
Diffstat (limited to 'commands/Pokemon/claim.js')
| -rw-r--r-- | commands/Pokemon/claim.js | 102 |
1 files changed, 43 insertions, 59 deletions
diff --git a/commands/Pokemon/claim.js b/commands/Pokemon/claim.js index c91b20e..e76c2a7 100644 --- a/commands/Pokemon/claim.js +++ b/commands/Pokemon/claim.js @@ -3,73 +3,57 @@ * Claim: Plugin for PokeBot that powers the PokeWorld gym system. * Copyright (C) 2018 TheEdge, jtsshieh, Alee * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * Licensed under the Open Software License version 3.0 * * *************************************/ exports.run = async (bot, msg) => { - if (msg.guild.id != '417088992329334792') return msg.reply ('This is a PokeWorld exclusive command. Sorry!'); + const isWhitelist = await bot.plugins.whitelist.isWhitelist(msg.guild.id); + if (!isWhitelist) return msg.reply ('This is a Whiltelisted command. Only whitelisted servers can use this command. Sorry!'); + if (!msg.channel.name.startsWith('gym-')) return msg.reply('Go into one of the gym channels and try again.'); - if (msg.channel.topic == 'Current Owner: *none*') { - let team; - if (msg.member.roles.find('name', 'Skull')) team = 'Skull'; - if (msg.member.roles.find('name', 'Flare')) team = 'Flare'; + + if (!bot.plugins.gyms.isOwned(msg.channel.topic)) { + const team = bot.plugins.gyms.getTeam(msg.member); if (!team) return msg.reply('You have to join a team before you can claim a gym.'); msg.reply('Alright, you have claimed this gym as yours! Be ready to battle anyone who approaches you'); - msg.channel.setTopic('Current Owner: ' + msg.author.id + '/' + msg.author.tag + '/' + team); - } - else { - let team; - if (msg.member.roles.find('name', 'Skull')) team = 'Skull'; - if (msg.member.roles.find('name', 'Flare')) team = 'Flare'; - if (!team) return msg.reply('You have to join a team before you can claim a gym.'); - const owner = msg.channel.topic.slice(15).substring(0, 18); - if (msg.guild.members.find('id', owner).roles.find('name', team)) return msg.reply('Don\'t try battling your own team. They won\'t like you.'); - if (bot.gyms.get(msg.channel.id) != null) return msg.reply('Nope, someone is already battling the gym.'); - msg.channel.send('<@' + owner + '>, come here as ' + msg.member.displayName + ' wants to battle you.'); - const func = async mess => { - if (mess.channel != msg.channel) return; - let field = mess.embeds[0]; - if (!field) return; - field = field.description; - if (!field) return; - field = field.split('\n')[0]; - if (!field) return; - field = field.split(' ')[0]; - if (field != undefined) { - const user = msg.guild.members.find(member => member.user.username === field); - if (user != undefined) { - if (user.id == owner) { - await msg.channel.send('The owner has not been defeated!'); - bot.gyms.set(msg.channel.id, null); - bot.removeListener('message', func); - } - if (user.id == msg.author.id) { - await msg.channel.send('The owner has been defeated! Transferring gym!'); - let recipientTeam; - if (msg.member.roles.find('name', 'Skull')) recipientTeam = 'Skull'; - if (msg.member.roles.find('name', 'Flare')) recipientTeam = 'Flare'; - await msg.channel.setTopic('Current Owner: ' + msg.member.id + '/' + msg.author.tag + '/' + recipientTeam); - bot.gyms.set(msg.channel.id, null); - bot.removeListener('message', func); - } - } - } - }; - bot.gyms.set(msg.channel.id, func); - bot.on('message', func); + return msg.channel.setTopic(bot.plugins.gyms.getGymString(bot, msg.member)); } + + const team = bot.plugins.gyms.getTeam(msg.member); + if (!team) return msg.reply('You have to join a team before you can claim a gym.'); + + const owner = bot.plugins.gyms.getOwnerId(msg.channel.topic); + if (msg.guild.members.find('id', owner).roles.find('name', team)) return msg.reply('Don\'t try battling your own team. They won\'t like you.'); + + if (bot.gyms.get(msg.channel.id) != null) return msg.reply('Nope, someone is already battling the gym.'); + + msg.channel.send('<@' + owner + '>, come here as ' + msg.member.displayName + ' wants to battle you.'); + + const func = async mess => { + if (mess.channel != msg.channel) return; + if (!mess.embeds[0] && + !mess.embeds[0].description && + !mess.embeds[0].description.split('\n')[0] && + !mess.embeds[0].description.split('\n')[0].split(' ')[0] + ) return; + + const field = mess.embeds[0].description.split('\n')[0].split(' ')[0]; + const user = msg.guild.members.find(member => member.user.username === field); + if (!user) return; + if (user.id == owner) { + await msg.channel.send('The owner has not been defeated!'); + } + else if (user.id == msg.author.id) { + await msg.channel.send('The owner has been defeated! Transferring gym!'); + await msg.channel.setTopic(bot.plugins.gyms.getGymString(bot, msg.member)); + } + else { return; } + bot.gyms.set(msg.channel.id, null); + bot.removeListener('message', func); + }; + bot.gyms.set(msg.channel.id, func); + bot.on('message', func); }; exports.conf = { |
