summaryrefslogtreecommitdiff
path: root/commands
diff options
context:
space:
mode:
Diffstat (limited to 'commands')
-rw-r--r--commands/vainsocial/guild_add.js2
-rw-r--r--commands/vainsocial/guild_update.js33
-rw-r--r--commands/vainsocial/guild_view.js2
-rw-r--r--commands/vainsocial/me.js3
4 files changed, 32 insertions, 8 deletions
diff --git a/commands/vainsocial/guild_add.js b/commands/vainsocial/guild_add.js
index 8474724..8fe952c 100644
--- a/commands/vainsocial/guild_add.js
+++ b/commands/vainsocial/guild_add.js
@@ -33,7 +33,7 @@ Register IGNs to your Guild.
await Promise.map(playersWaiters, async (waiter, idx) => {
await api.upsearchPlayer(args[idx]);
let success = false;
- while (await waiter.next() != undefined) {
+ while (["stats_update", undefined].indexOf(await waiter.next())) {
playersData[args[idx]] = await api.getPlayer(args[idx]);
await guildAddView.respond();
success = true;
diff --git a/commands/vainsocial/guild_update.js b/commands/vainsocial/guild_update.js
index 66e8a5f..7d36b0e 100644
--- a/commands/vainsocial/guild_update.js
+++ b/commands/vainsocial/guild_update.js
@@ -26,21 +26,42 @@ Update the match history for all your Guild members.
// internal / premium: immediately call backend player refresh
async run(msg, args) {
util.trackAction(msg, "vainsocial-guild-update");
+ // obj of ign: player
let playersData = {};
- const playersWaiters = args.map((name) => api.subscribeUpdates(name)),
- guildUpdateView = new GuildMembersProgressView(msg, playersData);
+ // collect an array of IGNs
+ let names, guild;
+ const guildUpdateView = new GuildMembersProgressView(msg,
+ playersData);
+ try {
+ guild = await api.getGuild(msg.author.id);
+ names = guild.members.map((m) => m.player.name);
+ } catch (err) {
+ console.log(err);
+ return await guildUpdateView.error(err.error.err);
+ }
+ // update all the IGNs
+ const playersWaiters = names.map((name) => api.subscribeUpdates(name));
// create waiter dict & data dict
await Promise.map(playersWaiters, async (waiter, idx) => {
- await api.updatePlayer(args[idx]);
+ await api.updatePlayer(names[idx]);
let success = false;
- while (await waiter.next() != undefined) {
- playersData[args[idx]] = await api.getPlayer(args[idx]);
+ while (["stats_update", undefined].indexOf(await waiter.next())) {
+ try {
+ playersData[names[idx]] = await api.getPlayer(names[idx]);
+ } catch (err) {
+ playersData[names[idx]] = undefined;
+ }
await guildUpdateView.respond();
success = true;
}
});
await guildUpdateView.respond("Your Guild's fame is being updated…");
- await api.calculateGuild(guild.id, msg.author.id);
+ try {
+ await api.calculateGuild(guild.id, msg.author.id);
+ } catch (err) {
+ console.log(err);
+ await guildUpdateView.error(err.error.err);
+ }
await guildUpdateView.respond("Your Guild was updated.");
}
};
diff --git a/commands/vainsocial/guild_view.js b/commands/vainsocial/guild_view.js
index 472b284..c8375d4 100644
--- a/commands/vainsocial/guild_view.js
+++ b/commands/vainsocial/guild_view.js
@@ -5,6 +5,7 @@
const Commando = require("discord.js-commando"),
oneLine = require("common-tags").oneLine,
util = require("../../util"),
+ api = require("../../api"),
GuildOverviewView = require("../../views/guild");
module.exports = class ViewGuildCommand extends Commando.Command {
@@ -38,6 +39,7 @@ Show a summary of your Guild.
const guild = await api.getGuild(msg.author.id);
await guildOverviewView.respond(guild);
} catch (err) {
+ console.log(err);
return await guildOverviewView.error(err.error.err);
}
}
diff --git a/commands/vainsocial/me.js b/commands/vainsocial/me.js
index d2afb24..de87b4c 100644
--- a/commands/vainsocial/me.js
+++ b/commands/vainsocial/me.js
@@ -37,7 +37,8 @@ Store your in game name for quicker access to other commands and for Guild manag
const registerView = new RegisterView(msg, args.name);
await api.upsearchPlayer(args.name);
try {
- await api.subscribeUpdates(args.name).next();
+ const waiter = api.subscribeUpdates(args.name);
+ while (await waiter.next() != "stats_update");
await api.setUser(msg.author.id, args.name);
} catch (err) {
console.log(err);