aboutsummaryrefslogtreecommitdiff
path: root/commands/Pokemon/claim.js
diff options
context:
space:
mode:
Diffstat (limited to 'commands/Pokemon/claim.js')
-rw-r--r--commands/Pokemon/claim.js102
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 = {