entry : multimap.entries()) {
- human.put(entry.getKey(), plugin.getUuidTranslator().getNameFromUuid(entry.getValue(), false));
- }
- serializeMultimap(human, true, out);
- } else {
- serializeMultiset(multimap.keys(), out);
- }
- break;
- case "Proxy":
- out.writeUTF("Proxy");
- out.writeUTF(plugin.getConfiguration().getServerId());
- break;
- case "PlayerProxy":
- String username = in.readUTF();
- out.writeUTF("PlayerProxy");
- out.writeUTF(username);
- out.writeUTF(plugin.getApi().getProxy(plugin.getUuidTranslator().getTranslatedUuid(username, true)));
- break;
- default:
- return;
- }
-
- ((Server) event.getSender()).sendData(currentChannel, out.toByteArray());
- });
- }
- }
-
- @Override
- @EventHandler
- public void onPubSubMessage(PubSubMessageEvent event) {
- if (event.getChannel().equals("redisbungee-allservers") || event.getChannel().equals("redisbungee-" + plugin.getApi().getServerId())) {
- String message = event.getMessage();
- if (message.startsWith("/"))
- message = message.substring(1);
- plugin.logInfo("Invoking command via PubSub: /" + message);
- ((Plugin) plugin).getProxy().getPluginManager().dispatchCommand(RedisBungeeCommandSender.getSingleton(), message);
- }
- }
-}
diff --git a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/commands/RedisBungeeCommands.java b/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/commands/RedisBungeeCommands.java
deleted file mode 100644
index cdc135f..0000000
--- a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/commands/RedisBungeeCommands.java
+++ /dev/null
@@ -1,343 +0,0 @@
-package com.imaginarycode.minecraft.redisbungee.commands;
-
-import com.google.common.base.Joiner;
-import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Multimap;
-import com.imaginarycode.minecraft.redisbungee.RedisBungeeAPI;
-import com.imaginarycode.minecraft.redisbungee.RedisBungeeBungeePlugin;
-import com.imaginarycode.minecraft.redisbungee.internal.RedisBungeePlugin;
-import net.md_5.bungee.api.ChatColor;
-import net.md_5.bungee.api.CommandSender;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.api.chat.ComponentBuilder;
-import net.md_5.bungee.api.chat.TextComponent;
-import net.md_5.bungee.api.config.ServerInfo;
-import net.md_5.bungee.api.connection.ProxiedPlayer;
-import net.md_5.bungee.api.plugin.Command;
-
-import java.net.InetAddress;
-import java.text.SimpleDateFormat;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.UUID;
-
-/**
- * This class contains subclasses that are used for the commands RedisBungee overrides or includes: /glist, /find and /lastseen.
- *
- * All classes use the {@link RedisBungeeAPI}.
- *
- * @author tuxed
- * @since 0.2.3
- */
-public class RedisBungeeCommands {
- private static final BaseComponent[] NO_PLAYER_SPECIFIED =
- new ComponentBuilder("You must specify a player name.").color(ChatColor.RED).create();
- private static final BaseComponent[] PLAYER_NOT_FOUND =
- new ComponentBuilder("No such player found.").color(ChatColor.RED).create();
- private static final BaseComponent[] NO_COMMAND_SPECIFIED =
- new ComponentBuilder("You must specify a command to be run.").color(ChatColor.RED).create();
-
- private static String playerPlural(int num) {
- return num == 1 ? num + " player is" : num + " players are";
- }
-
- public static class GlistCommand extends Command {
- private final RedisBungeeBungeePlugin plugin;
-
- public GlistCommand(RedisBungeeBungeePlugin plugin) {
- super("glist", "bungeecord.command.list", "redisbungee", "rglist");
- this.plugin = plugin;
- }
-
- @Override
- public void execute(final CommandSender sender, final String[] args) {
- plugin.getProxy().getScheduler().runAsync(plugin, new Runnable() {
- @Override
- public void run() {
- int count = plugin.getApi().getPlayerCount();
- BaseComponent[] playersOnline = new ComponentBuilder("").color(ChatColor.YELLOW)
- .append(playerPlural(count) + " currently online.").create();
- if (args.length > 0 && args[0].equals("showall")) {
- Multimap serverToPlayers = plugin.getApi().getServerToPlayers();
- Multimap human = HashMultimap.create();
- for (Map.Entry entry : serverToPlayers.entries()) {
- human.put(entry.getKey(), plugin.getUuidTranslator().getNameFromUuid(entry.getValue(), false));
- }
- for (String server : new TreeSet<>(serverToPlayers.keySet())) {
- TextComponent serverName = new TextComponent();
- serverName.setColor(ChatColor.GREEN);
- serverName.setText("[" + server + "] ");
- TextComponent serverCount = new TextComponent();
- serverCount.setColor(ChatColor.YELLOW);
- serverCount.setText("(" + serverToPlayers.get(server).size() + "): ");
- TextComponent serverPlayers = new TextComponent();
- serverPlayers.setColor(ChatColor.WHITE);
- serverPlayers.setText(Joiner.on(", ").join(human.get(server)));
- sender.sendMessage(serverName, serverCount, serverPlayers);
- }
- sender.sendMessage(playersOnline);
- } else {
- sender.sendMessage(playersOnline);
- sender.sendMessage(new ComponentBuilder("To see all players online, use /glist showall.").color(ChatColor.YELLOW).create());
- }
- }
- });
- }
- }
-
- public static class FindCommand extends Command {
- private final RedisBungeeBungeePlugin plugin;
-
- public FindCommand(RedisBungeeBungeePlugin plugin) {
- super("find", "bungeecord.command.find", "rfind");
- this.plugin = plugin;
- }
-
- @Override
- public void execute(final CommandSender sender, final String[] args) {
- plugin.getProxy().getScheduler().runAsync(plugin, new Runnable() {
- @Override
- public void run() {
- if (args.length > 0) {
- UUID uuid = plugin.getUuidTranslator().getTranslatedUuid(args[0], true);
- if (uuid == null) {
- sender.sendMessage(PLAYER_NOT_FOUND);
- return;
- }
- ServerInfo si = plugin.getProxy().getServerInfo(plugin.getApi().getServerFor(uuid));
- if (si != null) {
- TextComponent message = new TextComponent();
- message.setColor(ChatColor.BLUE);
- message.setText(args[0] + " is on " + si.getName() + ".");
- sender.sendMessage(message);
- } else {
- sender.sendMessage(PLAYER_NOT_FOUND);
- }
- } else {
- sender.sendMessage(NO_PLAYER_SPECIFIED);
- }
- }
- });
- }
- }
-
- public static class LastSeenCommand extends Command {
- private final RedisBungeeBungeePlugin plugin;
-
- public LastSeenCommand(RedisBungeeBungeePlugin plugin) {
- super("lastseen", "redisbungee.command.lastseen", "rlastseen");
- this.plugin = plugin;
- }
-
- @Override
- public void execute(final CommandSender sender, final String[] args) {
- plugin.getProxy().getScheduler().runAsync(plugin, new Runnable() {
- @Override
- public void run() {
- if (args.length > 0) {
- UUID uuid = plugin.getUuidTranslator().getTranslatedUuid(args[0], true);
- if (uuid == null) {
- sender.sendMessage(PLAYER_NOT_FOUND);
- return;
- }
- long secs = plugin.getApi().getLastOnline(uuid);
- TextComponent message = new TextComponent();
- if (secs == 0) {
- message.setColor(ChatColor.GREEN);
- message.setText(args[0] + " is currently online.");
- } else if (secs != -1) {
- message.setColor(ChatColor.BLUE);
- message.setText(args[0] + " was last online on " + new SimpleDateFormat().format(secs) + ".");
- } else {
- message.setColor(ChatColor.RED);
- message.setText(args[0] + " has never been online.");
- }
- sender.sendMessage(message);
- } else {
- sender.sendMessage(NO_PLAYER_SPECIFIED);
- }
- }
- });
- }
- }
-
- public static class IpCommand extends Command {
- private final RedisBungeeBungeePlugin plugin;
-
- public IpCommand(RedisBungeeBungeePlugin plugin) {
- super("ip", "redisbungee.command.ip", "playerip", "rip", "rplayerip");
- this.plugin = plugin;
- }
-
- @Override
- public void execute(final CommandSender sender, final String[] args) {
- plugin.getProxy().getScheduler().runAsync(plugin, new Runnable() {
- @Override
- public void run() {
- if (args.length > 0) {
- UUID uuid = plugin.getUuidTranslator().getTranslatedUuid(args[0], true);
- if (uuid == null) {
- sender.sendMessage(PLAYER_NOT_FOUND);
- return;
- }
- InetAddress ia = plugin.getApi().getPlayerIp(uuid);
- if (ia != null) {
- TextComponent message = new TextComponent();
- message.setColor(ChatColor.GREEN);
- message.setText(args[0] + " is connected from " + ia.toString() + ".");
- sender.sendMessage(message);
- } else {
- sender.sendMessage(PLAYER_NOT_FOUND);
- }
- } else {
- sender.sendMessage(NO_PLAYER_SPECIFIED);
- }
- }
- });
- }
- }
-
- public static class PlayerProxyCommand extends Command {
- private final RedisBungeeBungeePlugin plugin;
-
- public PlayerProxyCommand(RedisBungeeBungeePlugin plugin) {
- super("pproxy", "redisbungee.command.pproxy");
- this.plugin = plugin;
- }
-
- @Override
- public void execute(final CommandSender sender, final String[] args) {
- plugin.getProxy().getScheduler().runAsync(plugin, new Runnable() {
- @Override
- public void run() {
- if (args.length > 0) {
- UUID uuid = plugin.getUuidTranslator().getTranslatedUuid(args[0], true);
- if (uuid == null) {
- sender.sendMessage(PLAYER_NOT_FOUND);
- return;
- }
- String proxy = plugin.getApi().getProxy(uuid);
- if (proxy != null) {
- TextComponent message = new TextComponent();
- message.setColor(ChatColor.GREEN);
- message.setText(args[0] + " is connected to " + proxy + ".");
- sender.sendMessage(message);
- } else {
- sender.sendMessage(PLAYER_NOT_FOUND);
- }
- } else {
- sender.sendMessage(NO_PLAYER_SPECIFIED);
- }
- }
- });
- }
- }
-
- public static class SendToAll extends Command {
- private final RedisBungeeBungeePlugin plugin;
-
- public SendToAll(RedisBungeeBungeePlugin plugin) {
- super("sendtoall", "redisbungee.command.sendtoall", "rsendtoall");
- this.plugin = plugin;
- }
-
- @Override
- public void execute(CommandSender sender, String[] args) {
- if (args.length > 0) {
- String command = Joiner.on(" ").skipNulls().join(args);
- plugin.getApi().sendProxyCommand(command);
- TextComponent message = new TextComponent();
- message.setColor(ChatColor.GREEN);
- message.setText("Sent the command /" + command + " to all proxies.");
- sender.sendMessage(message);
- } else {
- sender.sendMessage(NO_COMMAND_SPECIFIED);
- }
- }
- }
-
- public static class ServerId extends Command {
- private final RedisBungeeBungeePlugin plugin;
-
- public ServerId(RedisBungeeBungeePlugin plugin) {
- super("serverid", "redisbungee.command.serverid", "rserverid");
- this.plugin = plugin;
- }
-
- @Override
- public void execute(CommandSender sender, String[] args) {
- TextComponent textComponent = new TextComponent();
- textComponent.setText("You are on " + plugin.getApi().getServerId() + ".");
- textComponent.setColor(ChatColor.YELLOW);
- sender.sendMessage(textComponent);
- }
- }
-
- public static class ServerIds extends Command {
- private final RedisBungeeBungeePlugin plugin;
- public ServerIds(RedisBungeeBungeePlugin plugin) {
- super("serverids", "redisbungee.command.serverids");
- this.plugin =plugin;
- }
-
- @Override
- public void execute(CommandSender sender, String[] strings) {
- TextComponent textComponent = new TextComponent();
- textComponent.setText("All server IDs: " + Joiner.on(", ").join(plugin.getApi().getAllServers()));
- textComponent.setColor(ChatColor.YELLOW);
- sender.sendMessage(textComponent);
- }
- }
-
- public static class PlistCommand extends Command {
- private final RedisBungeeBungeePlugin plugin;
-
- public PlistCommand(RedisBungeeBungeePlugin plugin) {
- super("plist", "redisbungee.command.plist", "rplist");
- this.plugin = plugin;
- }
-
- @Override
- public void execute(final CommandSender sender, final String[] args) {
- plugin.getProxy().getScheduler().runAsync(plugin, new Runnable() {
- @Override
- public void run() {
- String proxy = args.length >= 1 ? args[0] : plugin.getConfiguration().getServerId();
- if (!plugin.getServerIds().contains(proxy)) {
- sender.sendMessage(new ComponentBuilder(proxy + " is not a valid proxy. See /serverids for valid proxies.").color(ChatColor.RED).create());
- return;
- }
- Set players = plugin.getApi().getPlayersOnProxy(proxy);
- BaseComponent[] playersOnline = new ComponentBuilder("").color(ChatColor.YELLOW)
- .append(playerPlural(players.size()) + " currently on proxy " + proxy + ".").create();
- if (args.length >= 2 && args[1].equals("showall")) {
- Multimap serverToPlayers = plugin.getApi().getServerToPlayers();
- Multimap human = HashMultimap.create();
- for (Map.Entry entry : serverToPlayers.entries()) {
- if (players.contains(entry.getValue())) {
- human.put(entry.getKey(), plugin.getUuidTranslator().getNameFromUuid(entry.getValue(), false));
- }
- }
- for (String server : new TreeSet<>(human.keySet())) {
- TextComponent serverName = new TextComponent();
- serverName.setColor(ChatColor.RED);
- serverName.setText("[" + server + "] ");
- TextComponent serverCount = new TextComponent();
- serverCount.setColor(ChatColor.YELLOW);
- serverCount.setText("(" + human.get(server).size() + "): ");
- TextComponent serverPlayers = new TextComponent();
- serverPlayers.setColor(ChatColor.WHITE);
- serverPlayers.setText(Joiner.on(", ").join(human.get(server)));
- sender.sendMessage(serverName, serverCount, serverPlayers);
- }
- sender.sendMessage(playersOnline);
- } else {
- sender.sendMessage(playersOnline);
- sender.sendMessage(new ComponentBuilder("To see all players online, use /plist " + proxy + " showall.").color(ChatColor.YELLOW).create());
- }
- }
- });
- }
- }
-}
\ No newline at end of file
diff --git a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerChangedServerNetworkEvent.java b/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerChangedServerNetworkEvent.java
deleted file mode 100644
index ac01a96..0000000
--- a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerChangedServerNetworkEvent.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.imaginarycode.minecraft.redisbungee.events;
-
-import net.md_5.bungee.api.plugin.Event;
-
-import java.util.UUID;
-
-/**
- * This event is sent when a player connects to a new server. RedisBungee sends the event only when
- * the proxy the player has been connected to is different than the local proxy.
- *
- * This event corresponds to {@link net.md_5.bungee.api.event.ServerConnectedEvent}, and is fired
- * asynchronously.
- *
- * @since 0.3.4
- */
-public class PlayerChangedServerNetworkEvent extends Event {
- private final UUID uuid;
- private final String previousServer;
- private final String server;
-
- public PlayerChangedServerNetworkEvent(UUID uuid, String previousServer, String server) {
- this.uuid = uuid;
- this.previousServer = previousServer;
- this.server = server;
- }
-
- public UUID getUuid() {
- return uuid;
- }
-
- public String getServer() {
- return server;
- }
-
- public String getPreviousServer() {
- return previousServer;
- }
-}
diff --git a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerJoinedNetworkEvent.java b/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerJoinedNetworkEvent.java
deleted file mode 100644
index b9eac18..0000000
--- a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerJoinedNetworkEvent.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.imaginarycode.minecraft.redisbungee.events;
-
-import net.md_5.bungee.api.plugin.Event;
-
-import java.util.UUID;
-
-/**
- * This event is sent when a player joins the network. RedisBungee sends the event only when
- * the proxy the player has been connected to is different than the local proxy.
- *
- * This event corresponds to {@link net.md_5.bungee.api.event.PostLoginEvent}, and is fired
- * asynchronously.
- *
- * @since 0.3.4
- */
-public class PlayerJoinedNetworkEvent extends Event {
- private final UUID uuid;
-
- public PlayerJoinedNetworkEvent(UUID uuid) {
- this.uuid = uuid;
- }
-
- public UUID getUuid() {
- return uuid;
- }
-}
diff --git a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerLeftNetworkEvent.java b/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerLeftNetworkEvent.java
deleted file mode 100644
index 5e9e5ab..0000000
--- a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PlayerLeftNetworkEvent.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.imaginarycode.minecraft.redisbungee.events;
-
-import net.md_5.bungee.api.plugin.Event;
-
-import java.util.UUID;
-
-/**
- * This event is sent when a player disconnects. RedisBungee sends the event only when
- * the proxy the player has been connected to is different than the local proxy.
- *
- * This event corresponds to {@link net.md_5.bungee.api.event.PlayerDisconnectEvent}, and is fired
- * asynchronously.
- *
- * @since 0.3.4
- */
-public class PlayerLeftNetworkEvent extends Event {
- private final UUID uuid;
-
- public PlayerLeftNetworkEvent(UUID uuid) {
- this.uuid = uuid;
- }
-
- public UUID getUuid() {
- return uuid;
- }
-}
diff --git a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PubSubMessageEvent.java b/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PubSubMessageEvent.java
deleted file mode 100644
index 32bcb40..0000000
--- a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/events/PubSubMessageEvent.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.imaginarycode.minecraft.redisbungee.events;
-
-import net.md_5.bungee.api.plugin.Event;
-
-/**
- * This event is posted when a PubSub message is received.
- *
- * Warning: This event is fired in a separate thread!
- *
- * @since 0.2.6
- */
-
-public class PubSubMessageEvent extends Event {
- private final String channel;
- private final String message;
-
- public PubSubMessageEvent(String channel, String message) {
- this.channel = channel;
- this.message = message;
- }
-
- public String getChannel() {
- return channel;
- }
-
- public String getMessage() {
- return message;
- }
-}
diff --git a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/resources/plugin.yml b/RedisBungee-Velocity/RedisBungee-Bungee/src/main/resources/plugin.yml
deleted file mode 100644
index 797ef14..0000000
--- a/RedisBungee-Velocity/RedisBungee-Bungee/src/main/resources/plugin.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-name: RedisBungee
-main: com.imaginarycode.minecraft.redisbungee.RedisBungeeVelocityPlugin
-version: ${project.version}
-author: Chunkr and Govindas limework
-authors:
- - chunkr
- - Govindas Limework
-# This is used so that we can automatically override default BungeeCord behavior.
-softDepends: ["cmd_find", "cmd_list"]
\ No newline at end of file