Use MobArena's global messenger for query commands.

Changes the command output in the query commands to the same approach
used in the import/export and delete commands for better consistency
(and arguably prettier output).

It could probably still do with some fine tuning or maybe custmization
options, but that's out of scope for this particular issue.

Closes #1
This commit is contained in:
Andreas Troelsen
2021-07-01 23:06:05 +02:00
parent aa08925f24
commit 8cbdb4d9c6
3 changed files with 53 additions and 18 deletions
@@ -1,5 +1,6 @@
package org.mobarena.stats.command; package org.mobarena.stats.command;
import com.garbagemule.MobArena.Messenger;
import com.garbagemule.MobArena.commands.Command; import com.garbagemule.MobArena.commands.Command;
import com.garbagemule.MobArena.commands.CommandInfo; import com.garbagemule.MobArena.commands.CommandInfo;
import com.garbagemule.MobArena.framework.ArenaMaster; import com.garbagemule.MobArena.framework.ArenaMaster;
@@ -11,8 +12,14 @@ import org.mobarena.stats.MobArenaStatsPlugin;
import org.mobarena.stats.store.ArenaStats; import org.mobarena.stats.store.ArenaStats;
import org.mobarena.stats.store.StatsStore; import org.mobarena.stats.store.StatsStore;
import java.util.Arrays;
import java.util.List; import java.util.List;
import static java.lang.String.format;
import static org.bukkit.ChatColor.AQUA;
import static org.bukkit.ChatColor.RESET;
import static org.bukkit.ChatColor.YELLOW;
@CommandInfo( @CommandInfo(
name = "arena-stats", name = "arena-stats",
pattern = "arena-stats", pattern = "arena-stats",
@@ -32,17 +39,21 @@ public class ArenaStatsCommand implements Command {
} }
String slug = Slugs.create(args[0]); String slug = Slugs.create(args[0]);
Messenger messenger = am.getGlobalMessenger();
plugin.getAsyncExecutor().execute(() -> { plugin.getAsyncExecutor().execute(() -> {
StatsStore store = plugin.getStatsStore(); StatsStore store = plugin.getStatsStore();
ArenaStats stats = store.getArenaStats(slug); ArenaStats stats = store.getArenaStats(slug);
sender.sendMessage("Stats for arena " + slug + ":"); List<String> lines = Arrays.asList(
sender.sendMessage("- Highest wave: " + stats.highestWave); format("Stats for arena %s%s%s:", YELLOW, slug, RESET),
sender.sendMessage("- Longest duration: " + stats.highestSeconds + " secs"); format("- Highest wave: %s%d%s", AQUA, stats.highestWave, RESET),
sender.sendMessage("- Most kills: " + stats.highestKills); format("- Longest duration: %s%d%s secs", AQUA, stats.highestSeconds, RESET),
sender.sendMessage("- Total sessions: " + stats.totalSessions); format("- Most kills: %s%d%s", AQUA, stats.highestKills, RESET),
sender.sendMessage("- Total duration: " + stats.totalSeconds + " secs"); format("- Total sessions: %s%d%s", AQUA, stats.totalSessions, RESET),
sender.sendMessage("- Total kills: " + stats.totalKills); format("- Total duration: %s%d%s secs", AQUA, stats.totalSeconds, RESET),
sender.sendMessage("- Total waves: " + stats.totalWaves); format("- Total kills: %s%d%s", AQUA, stats.totalKills, RESET),
format("- Total waves: %s%d%s", AQUA, stats.totalWaves, RESET)
);
messenger.tell(sender, String.join("\n", lines));
}); });
return true; return true;
@@ -1,5 +1,6 @@
package org.mobarena.stats.command; package org.mobarena.stats.command;
import com.garbagemule.MobArena.Messenger;
import com.garbagemule.MobArena.commands.Command; import com.garbagemule.MobArena.commands.Command;
import com.garbagemule.MobArena.commands.CommandInfo; import com.garbagemule.MobArena.commands.CommandInfo;
import com.garbagemule.MobArena.framework.ArenaMaster; import com.garbagemule.MobArena.framework.ArenaMaster;
@@ -9,6 +10,14 @@ import org.mobarena.stats.MobArenaStatsPlugin;
import org.mobarena.stats.store.GlobalStats; import org.mobarena.stats.store.GlobalStats;
import org.mobarena.stats.store.StatsStore; import org.mobarena.stats.store.StatsStore;
import java.util.Arrays;
import java.util.List;
import static java.lang.String.format;
import static org.bukkit.ChatColor.AQUA;
import static org.bukkit.ChatColor.RESET;
import static org.bukkit.ChatColor.YELLOW;
@CommandInfo( @CommandInfo(
name = "global-stats", name = "global-stats",
pattern = "global-stats", pattern = "global-stats",
@@ -23,14 +32,18 @@ public class GlobalStatsCommand implements Command {
// :( // :(
MobArenaStats plugin = MobArenaStatsPlugin.getInstance(); MobArenaStats plugin = MobArenaStatsPlugin.getInstance();
Messenger messenger = am.getGlobalMessenger();
plugin.getAsyncExecutor().execute(() -> { plugin.getAsyncExecutor().execute(() -> {
StatsStore store = plugin.getStatsStore(); StatsStore store = plugin.getStatsStore();
GlobalStats stats = store.getGlobalStats(); GlobalStats stats = store.getGlobalStats();
sender.sendMessage("Global stats:"); List<String> lines = Arrays.asList(
sender.sendMessage("- Total sessions: " + stats.totalSessions); format("Global stats across %sall arenas%s:", YELLOW, RESET),
sender.sendMessage("- Total duration: " + stats.totalSeconds + " secs"); format("- Total sessions: %s%d%s", AQUA, stats.totalSessions, RESET),
sender.sendMessage("- Total kills: " + stats.totalKills); format("- Total duration: %s%d%s secs", AQUA, stats.totalSeconds, RESET),
sender.sendMessage("- Total waves: " + stats.totalWaves); format("- Total kills: %s%d%s", AQUA, stats.totalKills, RESET),
format("- Total waves: %s%d%s", AQUA, stats.totalWaves, RESET)
);
messenger.tell(sender, String.join("\n", lines));
}); });
return true; return true;
@@ -1,5 +1,6 @@
package org.mobarena.stats.command; package org.mobarena.stats.command;
import com.garbagemule.MobArena.Messenger;
import com.garbagemule.MobArena.commands.Command; import com.garbagemule.MobArena.commands.Command;
import com.garbagemule.MobArena.commands.CommandInfo; import com.garbagemule.MobArena.commands.CommandInfo;
import com.garbagemule.MobArena.framework.ArenaMaster; import com.garbagemule.MobArena.framework.ArenaMaster;
@@ -10,8 +11,14 @@ import org.mobarena.stats.MobArenaStatsPlugin;
import org.mobarena.stats.store.PlayerStats; import org.mobarena.stats.store.PlayerStats;
import org.mobarena.stats.store.StatsStore; import org.mobarena.stats.store.StatsStore;
import java.util.Arrays;
import java.util.List; import java.util.List;
import static java.lang.String.format;
import static org.bukkit.ChatColor.AQUA;
import static org.bukkit.ChatColor.RESET;
import static org.bukkit.ChatColor.YELLOW;
@CommandInfo( @CommandInfo(
name = "player-stats", name = "player-stats",
pattern = "player-stats", pattern = "player-stats",
@@ -36,14 +43,18 @@ public class PlayerStatsCommand implements Command {
name = args[0]; name = args[0];
} }
Messenger messenger = am.getGlobalMessenger();
plugin.getAsyncExecutor().execute(() -> { plugin.getAsyncExecutor().execute(() -> {
StatsStore store = plugin.getStatsStore(); StatsStore store = plugin.getStatsStore();
PlayerStats stats = store.getPlayerStats(name); PlayerStats stats = store.getPlayerStats(name);
sender.sendMessage("Stats for player " + name + ":"); List<String> lines = Arrays.asList(
sender.sendMessage("- Total sessions: " + stats.totalSessions); format("Stats for player %s%s%s:", YELLOW, name, RESET),
sender.sendMessage("- Total duration: " + stats.totalSeconds + " secs"); format("- Total sessions: %s%d%s", AQUA, stats.totalSessions, RESET),
sender.sendMessage("- Total kills: " + stats.totalKills); format("- Total duration: %s%d%s secs", AQUA, stats.totalSeconds, RESET),
sender.sendMessage("- Total waves: " + stats.totalWaves); format("- Total kills: %s%d%s", AQUA, stats.totalKills, RESET),
format("- Total waves: %s%d%s", AQUA, stats.totalWaves, RESET)
);
messenger.tell(sender, String.join("\n", lines));
}); });
return true; return true;