Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.bluegamestv.core.proxy.lobbybalancer;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import de.bluegamestv.core.Core;
- import de.bluegamestv.core.module.Module;
- import de.bluegamestv.core.profile.ProfileManager;
- import de.bluegamestv.core.profile.rank.Rank;
- import de.bluegamestv.core.proxy.silentlobby.SilentLobbyManager;
- import net.md_5.bungee.api.ChatColor;
- import net.md_5.bungee.api.ProxyServer;
- import net.md_5.bungee.api.chat.BaseComponent;
- import net.md_5.bungee.api.chat.TextComponent;
- import net.md_5.bungee.api.config.ServerInfo;
- import net.md_5.bungee.api.event.ServerConnectEvent;
- import net.md_5.bungee.api.event.ServerKickEvent;
- import net.md_5.bungee.event.EventHandler;
- public class LobbyBalancer extends Module {
- public LobbyBalancer() {
- super("§cLobby Balancer");
- }
- @EventHandler
- public void onConnect(ServerConnectEvent event) {
- List<ServerInfo> silentLobby = new ArrayList<ServerInfo>();
- for (ServerInfo server : ProxyServer.getInstance().getServers().values()) {
- String name = server.getName().toLowerCase();
- if (name.startsWith("silentlobby")) {
- silentLobby.add(server);
- }
- }
- List<ServerInfo> servers = new ArrayList<ServerInfo>();
- for (ServerInfo server : ProxyServer.getInstance().getServers().values()) {
- String name = server.getName().toLowerCase();
- if (name.startsWith("lobby")) {
- servers.add(server);
- }
- }
- List<ServerInfo> premiumServers = new ArrayList<ServerInfo>();
- for (ServerInfo server : ProxyServer.getInstance().getServers().values()) {
- String name = server.getName().toLowerCase();
- if (name.startsWith("premiumlobby")) {
- premiumServers.add(server);
- }
- }
- if (event.getTarget().getName().equals("Lobby")) {
- if((ProfileManager.hasRank(event.getPlayer(), Rank.YOUTUBER))) {
- if(SilentLobbyManager.isSilentLobby(event.getPlayer().getUniqueId())) {
- if (silentLobby.size() > 0) {
- Collections.shuffle(silentLobby);
- event.setTarget(silentLobby.get(0));
- event.getPlayer().sendMessage(new TextComponent(SilentLobbyManager.getSilentLobbyJoin()));
- } else if (premiumServers.size() > 0) {
- Collections.shuffle(premiumServers);
- event.setTarget(premiumServers.get(0));
- event.getPlayer().sendMessage(new TextComponent(Core.getPrefix() + "§cEs konnte §ckeine §cVerbindung §czu §ceinem §cSilentLobby §cServer §chergestellt §cwerden"));
- } else if (servers.size() > 0) {
- Collections.shuffle(servers);
- event.setTarget(servers.get(0));
- event.getPlayer().sendMessage(new TextComponent(Core.getPrefix() + "§cEs konnte §ckeine §cVerbindung §czu §ceinem §cSilentLobby §cServer §chergestellt §cwerden"));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- } else if (premiumServers.size() > 0) {
- Collections.shuffle(premiumServers);
- event.setTarget(premiumServers.get(0));
- } else if (servers.size() > 0) {
- Collections.shuffle(servers);
- event.setTarget(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- } else if(ProfileManager.hasRank(event.getPlayer(), Rank.PREMIUM)) {
- if (premiumServers.size() > 0) {
- Collections.shuffle(premiumServers);
- event.setTarget(premiumServers.get(0));
- } else if (servers.size() > 0) {
- Collections.shuffle(servers);
- event.setTarget(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- } else {
- if (servers.size() > 0) {
- Collections.shuffle(servers);
- event.setTarget(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- }
- } else if(SilentLobbyManager.newJoined.contains(event.getPlayer().getUniqueId())) {
- SilentLobbyManager.newJoined.remove(event.getPlayer().getUniqueId());
- if((ProfileManager.hasRank(event.getPlayer(), Rank.YOUTUBER))) {
- if(SilentLobbyManager.isSilentLobby(event.getPlayer().getUniqueId())) {
- if (silentLobby.size() > 0) {
- Collections.shuffle(silentLobby);
- event.setTarget(silentLobby.get(0));
- event.getPlayer().sendMessage(new TextComponent(SilentLobbyManager.getSilentLobbyJoin()));
- } else if (premiumServers.size() > 0) {
- Collections.shuffle(premiumServers);
- event.setTarget(premiumServers.get(0));
- event.getPlayer().sendMessage(new TextComponent(Core.getPrefix() + "§cEs konnte §ckeine §cVerbindung §czu §ceinem §cSilentLobby §cServer §chergestellt §cwerden"));
- } else if (servers.size() > 0) {
- Collections.shuffle(servers);
- event.setTarget(servers.get(0));
- event.getPlayer().sendMessage(new TextComponent(Core.getPrefix() + "§cEs konnte §ckeine §cVerbindung §czu §ceinem §cSilentLobby §cServer §chergestellt §cwerden"));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- } else if (premiumServers.size() > 0) {
- Collections.shuffle(premiumServers);
- event.setTarget(premiumServers.get(0));
- } else if (servers.size() > 0) {
- Collections.shuffle(servers);
- event.setTarget(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- } else if(ProfileManager.hasRank(event.getPlayer(), Rank.PREMIUM)) {
- if (premiumServers.size() > 0) {
- Collections.shuffle(premiumServers);
- event.setTarget(premiumServers.get(0));
- } else if (servers.size() > 0) {
- Collections.shuffle(servers);
- event.setTarget(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- } else {
- if (servers.size() > 0) {
- Collections.shuffle(servers);
- event.setTarget(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- }
- } else if(event.getTarget().getName().equals(event.getPlayer().getServer().getInfo().getName())) {
- event.setCancelled(true);
- } else if(event.getTarget().getName().startsWith("SilentLobby")) {
- if(ProfileManager.hasRank(event.getPlayer(), Rank.YOUTUBER)) {
- if(!(SilentLobbyManager.isSilentLobby(event.getPlayer().getUniqueId()))) {
- SilentLobbyManager.setSilentLobby(event.getPlayer().getUniqueId(), true);
- event.getPlayer().sendMessage(new TextComponent(SilentLobbyManager.getSilentLobbyJoin()));
- }
- }
- }
- // try {
- // if (event.getTarget().getName().equalsIgnoreCase("Lobby")) {
- // ServerInfo emptiest = ProxyServer.getInstance().getServerInfo("Lobby-1");
- // for (ServerInfo info : Core.getServers("Lobby")) {
- // if (info.getName().equalsIgnoreCase("Lobby") || info.getPlayers().size() >= emptiest.getPlayers().size())
- // continue;
- // emptiest = info;
- // if (info.getPlayers().size() == 0)
- // break;
- // }
- // event.setTarget(emptiest);
- // }
- // } catch (Exception e) {
- // BungeeCord.getInstance().getConsole().sendMessage(new TextComponent(
- // Core.getPrefix() + "§cEs konnte keine Verbindung zu einem Lobby Server hergestellt werden"));
- // }
- }
- @SuppressWarnings("deprecation")
- @EventHandler
- public void onDisconnect(ServerKickEvent event) {
- String kickReason = BaseComponent.toLegacyText(event.getKickReasonComponent());
- List<ServerInfo> silentLobby = new ArrayList<ServerInfo>();
- for (ServerInfo server : ProxyServer.getInstance().getServers().values()) {
- String name = server.getName().toLowerCase();
- if (name.startsWith("silentlobby")) {
- silentLobby.add(server);
- }
- }
- List<ServerInfo> servers = new ArrayList<ServerInfo>();
- for (ServerInfo server : ProxyServer.getInstance().getServers().values()) {
- String name = server.getName().toLowerCase();
- if (name.startsWith("lobby")) {
- servers.add(server);
- }
- }
- List<ServerInfo> premiumServers = new ArrayList<ServerInfo>();
- for (ServerInfo server : ProxyServer.getInstance().getServers().values()) {
- String name = server.getName().toLowerCase();
- if (name.startsWith("premiumlobby")) {
- premiumServers.add(server);
- }
- }
- if(!(ProfileManager.hasRank(event.getPlayer(), Rank.YOUTUBER))) {
- if(SilentLobbyManager.existPlayerSilentLobby(event.getPlayer().getUniqueId())) {
- SilentLobbyManager.deletePlayerSilentLobby(event.getPlayer().getUniqueId());
- if(ProfileManager.hasRank(event.getPlayer(), Rank.PREMIUM)) {
- if (premiumServers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(premiumServers);
- event.setCancelServer(premiumServers.get(0));
- } else if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- } else {
- if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.getPlayer().disconnect(component);
- }
- }
- }
- }
- // ProxyServer.getInstance().broadcast(new TextComponent(ChatColor.stripColor(event.getKickReason()).startsWith("#LOGINKICK#") + ""));
- // ProxyServer.getInstance().broadcast(new TextComponent(kickReason));
- // ProxyServer.getInstance().broadcast(event.getKickReasonComponent());
- // ProxyServer.getInstance().broadcast(new TextComponent(event.getKickReason()));
- // ProxyServer.getInstance().broadcast(new TextComponent(event.getKickedFrom().getName()));
- // ProxyServer.getInstance().broadcast(new TextComponent(event.getState().name()));
- if(ChatColor.stripColor(kickReason).startsWith("Server geschlossen") || ChatColor.stripColor(kickReason).startsWith("Server closed")) {
- if(ProfileManager.hasRank(event.getPlayer(), Rank.YOUTUBER)) {
- if(SilentLobbyManager.isSilentLobby(event.getPlayer().getUniqueId())) {
- if (silentLobby.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(silentLobby);
- event.setCancelServer(silentLobby.get(0));
- event.getPlayer().sendMessage(new TextComponent(SilentLobbyManager.getSilentLobbyJoin()));
- } else if (premiumServers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(premiumServers);
- event.setCancelServer(premiumServers.get(0));
- event.getPlayer().sendMessage(new TextComponent(Core.getPrefix() + "§cEs konnte §ckeine §cVerbindung §czu §ceinem §cSilentLobby §cServer §chergestellt §cwerden"));
- } else if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- event.getPlayer().sendMessage(new TextComponent(Core.getPrefix() + "§cEs konnte §ckeine §cVerbindung §czu §ceinem §cSilentLobby §cServer §chergestellt §cwerden"));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.setKickReasonComponent(new TextComponent[] { component });
- }
- } else if (premiumServers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(premiumServers);
- event.setCancelServer(premiumServers.get(0));
- } else if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.setKickReasonComponent(new TextComponent[] { component });
- }
- } else if(ProfileManager.hasRank(event.getPlayer(), Rank.PREMIUM)) {
- if (premiumServers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(premiumServers);
- event.setCancelServer(premiumServers.get(0));
- } else if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es ist ein Fehler aufgetreten!\n"
- + "Bitte versuche es erneut. Sollte der Fehler weiterhinbestehen,\n schicke uns einen Screenshot des\nfolgenden Fehlercode:\n\n" + event.getKickReason());
- component.setColor(ChatColor.RED);
- event.setKickReasonComponent(new TextComponent[] { component });
- }
- } else {
- if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es ist ein Fehler aufgetreten!\n"
- + "Bitte versuche es erneut und sollte der Fehler weiterhin\nbestehen, schicke uns einen Screenshot des\nfolgenden Fehlercode:\n" + event.getKickReason());
- component.setColor(ChatColor.RED);
- event.setKickReasonComponent(new TextComponent[] { component });
- }
- }
- } else if(ChatColor.stripColor(kickReason).startsWith("#LOGINKICK#")) {
- event.setCancelled(true);
- event.setCancelServer(event.getPlayer().getServer().getInfo());
- kickReason = kickReason.replaceAll("#LOGINKICK#", "");
- event.getPlayer().sendMessage(new TextComponent(kickReason));
- } else if(ProfileManager.hasRank(event.getPlayer(), Rank.YOUTUBER)) {
- if(SilentLobbyManager.isSilentLobby(event.getPlayer().getUniqueId())) {
- if (silentLobby.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(silentLobby);
- event.setCancelServer(silentLobby.get(0));
- event.getPlayer().sendMessage(new TextComponent(SilentLobbyManager.getSilentLobbyJoin()));
- } else if (premiumServers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(premiumServers);
- event.setCancelServer(premiumServers.get(0));
- event.getPlayer().sendMessage(new TextComponent(Core.getPrefix() + "§cEs konnte §ckeine §cVerbindung §czu §ceinem §cSilentLobby §cServer §chergestellt §cwerden"));
- } else if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- event.getPlayer().sendMessage(new TextComponent(Core.getPrefix() + "§cEs konnte §ckeine §cVerbindung §czu §ceinem §cSilentLobby §cServer §chergestellt §cwerden"));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.setKickReasonComponent(new TextComponent[] { component });
- }
- } else if (premiumServers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(premiumServers);
- event.setCancelServer(premiumServers.get(0));
- } else if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es konnte keine Verbindung zu einem Lobby Server hergestellt werden!\nBitte versuche es in wenigen Minuten erneut");
- component.setColor(ChatColor.RED);
- event.setKickReasonComponent(new TextComponent[] { component });
- }
- } else if(ProfileManager.hasRank(event.getPlayer(), Rank.PREMIUM)) {
- if (premiumServers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(premiumServers);
- event.setCancelServer(premiumServers.get(0));
- } else if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es ist ein Fehler aufgetreten!\n"
- + "Bitte versuche es erneut. Sollte der Fehler weiterhinbestehen,\n schicke uns einen Screenshot des\nfolgenden Fehlercode:\n\n" + event.getKickReason());
- component.setColor(ChatColor.RED);
- event.setKickReasonComponent(new TextComponent[] { component });
- }
- } else {
- if (servers.size() > 0) {
- event.setCancelled(true);
- Collections.shuffle(servers);
- event.setCancelServer(servers.get(0));
- } else {
- event.setCancelled(true);
- TextComponent component = new TextComponent("Es ist ein Fehler aufgetreten!\n"
- + "Bitte versuche es erneut und sollte der Fehler weiterhin\nbestehen, schicke uns einen Screenshot des\nfolgenden Fehlercode:\n" + event.getKickReason());
- component.setColor(ChatColor.RED);
- event.setKickReasonComponent(new TextComponent[] { component });
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement