Advertisement
Mo0nSw0rth

Untitled

Jul 26th, 2021
1,258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 71.31 KB | None | 0 0
  1. //
  2. // Decompiled by Procyon v0.5.36
  3. //
  4.  
  5. package site.www.jhdev.net.antibot.bungee;
  6.  
  7. import net.md_5.bungee.api.ChatMessageType;
  8. import net.md_5.bungee.api.event.PluginMessageEvent;
  9. import net.md_5.bungee.api.ChatColor;
  10. import java.net.InetSocketAddress;
  11. import site.www.jhdev.net.antibot.bungee.events.BadPacketTracker;
  12. import net.md_5.bungee.api.plugin.Command;
  13. import java.util.concurrent.TimeUnit;
  14. import site.www.jhdev.net.antibot.bungee.connection.Pipeline;
  15. import net.md_5.bungee.api.ProxyServer;
  16. import java.util.logging.Logger;
  17. import java.util.logging.Filter;
  18. import net.md_5.bungee.BungeeCord;
  19. import site.www.jhdev.net.antibot.utils.BungeeConsoleFilter;
  20. import java.io.IOException;
  21. import java.io.InputStream;
  22. import java.nio.file.Files;
  23. import java.nio.file.CopyOption;
  24. import net.md_5.bungee.api.event.PostLoginEvent;
  25. import net.md_5.bungee.api.event.ChatEvent;
  26. import net.md_5.bungee.api.chat.TextComponent;
  27. import net.md_5.bungee.BungeeTitle;
  28. import net.md_5.bungee.api.event.PlayerDisconnectEvent;
  29. import java.util.Map;
  30. import net.md_5.bungee.api.connection.ProxiedPlayer;
  31. import net.md_5.bungee.api.config.ListenerInfo;
  32. import java.util.Iterator;
  33. import java.util.Collection;
  34. import java.util.ArrayList;
  35. import net.md_5.bungee.api.CommandSender;
  36. import net.md_5.bungee.config.ConfigurationProvider;
  37. import net.md_5.bungee.config.YamlConfiguration;
  38. import java.io.File;
  39. import net.md_5.bungee.config.Configuration;
  40. import site.www.jhdev.net.antibot.bungee.events.ProtocolHandlerEvent;
  41. import site.www.jhdev.net.antibot.utils.IpInfo;
  42. import net.md_5.bungee.api.event.PreLoginEvent;
  43. import net.md_5.bungee.api.event.ProxyPingEvent;
  44. import net.md_5.bungee.event.EventHandler;
  45. import site.www.jhdev.net.antibot.bungee.events.ConnectionEvent;
  46. import net.md_5.bungee.api.event.PlayerHandshakeEvent;
  47. import site.www.jhdev.net.antibot.utils.IpController;
  48. import java.text.DecimalFormat;
  49. import java.util.HashMap;
  50. import site.www.jhdev.net.antibot.utils.Status;
  51. import net.md_5.bungee.api.chat.BaseComponent;
  52. import java.util.List;
  53. import site.www.jhdev.net.antibot.utils.Settings;
  54. import net.md_5.bungee.api.plugin.Listener;
  55. import net.md_5.bungee.api.plugin.Plugin;
  56.  
  57. public class Main extends Plugin implements Listener
  58. {
  59.     private boolean useDatabase;
  60.     private long lastcheck;
  61.     private boolean dev;
  62.     Settings settings;
  63.     private List<String> joinmotd;
  64.     private List<String> verbosePlayers;
  65.     private boolean attackStatus;
  66.     private long serverStartTime;
  67.     private long attackTimer;
  68.     private static boolean lasted;
  69.     private final BaseComponent[] defaultKick;
  70.     private Status status;
  71.     private HashMap<String, Long> times;
  72.     private String lastServerIp;
  73.     private static Main instance;
  74.     private DecimalFormat formatter;
  75.     private IpController ipcontroller;
  76.     private boolean updateCheck;
  77.     private long timeAttackStart;
  78.    
  79.     public void disconnect(final PlayerHandshakeEvent a) {
  80.         a.getHandshake().setRequestedProtocol(99);
  81.         a.getConnection().disconnect(this.defaultKick);
  82.         this.status.addBlocked();
  83.     }
  84.    
  85.     public static String time(final long a) {
  86.         final long n = a / 1000L;
  87.         final long n2 = n / 60L;
  88.         final long n3 = n2 / 60L;
  89.         final long l = n3 / 24L;
  90.         return String.valueOf((l > 0L) ? new StringBuilder(String.valueOf(l)).append("|8xt").toString() : "") + ((n3 > 0L) ? (String.valueOf(n3 % 24L) + "|4{w") : "") + ((n2 > 0L) ? (String.valueOf(n2 % 60L) + "|1zv") : "") + n % 60L + "|\"\u007f";
  91.     }
  92.    
  93.     @EventHandler
  94.     public void onConnectionHandlerIsBlocked(final ConnectionEvent a) {
  95.         if (a.isCancelled()) {
  96.             this.status.addBlocked();
  97.         }
  98.     }
  99.    
  100.     @EventHandler(priority = 64)
  101.     public void onServerListPing(final ProxyPingEvent a) {
  102.         final String hostAddress = a.getConnection().getAddress().getAddress().getHostAddress();
  103.         if (this.joinmotd.contains(hostAddress)) {
  104.             this.joinmotd.remove(hostAddress);
  105.         }
  106.         if (this.dev) {
  107.             a.getResponse().setDescription("¶w::;;;;ss\u00fd6Zx\u000f.w!SBDC7DTC\u0002\u0011I\u0011\u008e[$$*^yob6gqRU*hot3.>76ePZ~ol!}bWEo=7: 7");
  108.         }
  109.     }
  110.    
  111.     @EventHandler(priority = Byte.MIN_VALUE)
  112.     public void PreLoginEvent(final PreLoginEvent a) {
  113.         final String hostAddress = a.getConnection().getAddress().getAddress().getHostAddress();
  114.         if (hostAddress.equalsIgnoreCase("\r41?!qols") || hostAddress.startsWith("7?#?ni{m")) {
  115.             return;
  116.         }
  117.         final String name = a.getConnection().getName();
  118.         final long currentTimeMillis = System.currentTimeMillis();
  119.         final IpInfo ipOrNull = this.ipcontroller.getIpOrNull(hostAddress);
  120.         final long lastJoin = ipOrNull.getLastJoin();
  121.         ipOrNull.setLastJoin(currentTimeMillis);
  122.         if (ipOrNull.isBlacklisted() && !ipOrNull.isWhitelisted()) {
  123.             a.setCancelled(true);
  124.             a.setCancelReason(this.settings.getIpBlacklistedMessage());
  125.             return;
  126.         }
  127.         if (this.joinmotd.contains(hostAddress)) {
  128.             this.joinmotd.remove(hostAddress);
  129.         }
  130.         if (ipOrNull.getTempban() > currentTimeMillis && !ipOrNull.isWhitelisted()) {
  131.             a.setCancelled(true);
  132.             a.setCancelReason(this.settings.getIpTempbannedMessage().replace("je62)1", time(ipOrNull.getTempban() - currentTimeMillis)));
  133.             return;
  134.         }
  135.         if ((!ipOrNull.isChecked() && (this.settings.isProxyVerificationEnabled() || this.settings.getBlacklistOrWhitelistCountry() != 3)) || this.ipcontroller.isInQueue(hostAddress)) {
  136.             this.ipcontroller.addToQueue(hostAddress);
  137.             a.setCancelled(true);
  138.             a.setCancelReason(this.settings.getIpQueueMessage().replace("j/0>0", String.valueOf(this.ipcontroller.getQueueLocation(hostAddress))));
  139.             return;
  140.         }
  141.         if (ipOrNull.isProxy() && !ipOrNull.isWhitelisted() && this.settings.isProxyVerificationEnabled()) {
  142.             a.setCancelled(true);
  143.             a.setCancelReason(this.settings.getIpProxyMessage());
  144.             return;
  145.         }
  146.         if (!ipOrNull.getConnectionCaptcha()) {
  147.             if (ipOrNull.getLastConnectionTime() <= -1L || ipOrNull.getLastConnectionTime() >= 100L) {
  148.                 if (this.times.containsKey(hostAddress)) {
  149.                     this.times.remove(hostAddress);
  150.                 }
  151.                 a.setCancelled(true);
  152.                 a.setCancelReason(this.settings.getIpVerificationMessage());
  153.                 return;
  154.             }
  155.             final IpInfo ipInfo = ipOrNull;
  156.             ipOrNull.setConnectionCaptcha(true);
  157.             ipInfo.setViolations(0);
  158.         }
  159.         if (currentTimeMillis - lastJoin <= this.settings.getJoinDelay() && this.settings.getJoinDelay() > 0L) {
  160.             a.setCancelled(true);
  161.             a.setCancelReason(this.settings.getJoinDelayMessage());
  162.             return;
  163.         }
  164.         if (this.settings.isRefreshServerListEnabled()) {
  165.             if (ipOrNull.getLastPing() == -1L && this.settings.isRefreshServerListEnabled()) {
  166.                 a.setCancelled(true);
  167.                 a.setCancelReason(this.settings.getRefreshServerListMessage());
  168.                 ipOrNull.setNick(name);
  169.                 return;
  170.             }
  171.             final IpInfo ipInfo2 = ipOrNull;
  172.             final boolean empty = ipOrNull.getNick().isEmpty();
  173.             if (!ipInfo2.getNick().equalsIgnoreCase(name) || empty) {
  174.                 ipOrNull.setLastPing(-1L);
  175.                 if (empty) {
  176.                     ipOrNull.setNick(name);
  177.                     a.setCancelled(true);
  178.                     a.setCancelReason(this.settings.getRefreshServerListMessage());
  179.                     return;
  180.                 }
  181.                 ipOrNull.setNick("");
  182.                 a.setCancelled(true);
  183.                 a.setCancelReason(this.settings.getIpVerificationMessage());
  184.                 return;
  185.             }
  186.         }
  187.         if (!ipOrNull.isWhitelisted()) {
  188.             final boolean contains = this.settings.getCountryList().contains(ipOrNull.getCountry());
  189.             if (this.settings.getBlacklistOrWhitelistCountry() == 1 && !contains) {
  190.                 a.setCancelled(true);
  191.                 a.setCancelReason(this.settings.getCountryBannedMessage());
  192.                 return;
  193.             }
  194.             if (this.settings.getBlacklistOrWhitelistCountry() == 2 && contains) {
  195.                 a.setCancelled(true);
  196.                 a.setCancelReason(this.settings.getCountryBannedMessage());
  197.                 return;
  198.             }
  199.         }
  200.         if (this.onlineByIP(hostAddress, this.settings.getPerIpPlayerLimit())) {
  201.             a.setCancelled(true);
  202.             a.setCancelReason(this.settings.getOnlineIpReachedMessage());
  203.             return;
  204.         }
  205.         if (this.dev && !this.verbosePlayers.contains(name)) {
  206.             this.verbosePlayers.add(name);
  207.         }
  208.     }
  209.    
  210.     @EventHandler
  211.     public void onHandshakeisBlocked(final ProtocolHandlerEvent a) {
  212.         if (a.isCancelled()) {
  213.             this.status.addBlocked();
  214.         }
  215.     }
  216.    
  217.     public static String time2(final long a) {
  218.         final long n = a / 1000L;
  219.         final long n2 = n / 60L;
  220.         final long n3 = n2 / 60L;
  221.         final long l = n3 / 24L;
  222.         return String.valueOf((l > 0L) ? new StringBuilder(String.valueOf(l)).append("w3.\"").toString() : "") + ((n3 > 0L) ? (String.valueOf((n3 <= 9L) ? "3" : "") + n3 % 24L + ":") : "") + ((n2 > 0L) ? (String.valueOf((n2 <= 9L) ? "1" : "") + n2 % 60L + "<") : "") + ((n % 60L <= 9L) ? ("7" + n % 60L) : Long.valueOf(n % 60L));
  223.     }
  224.    
  225.     private /* synthetic */ void saveConfig(final Configuration a2, String a) {
  226.         this.saveDefaultConfig(a, false);
  227.         a = (String)new File(this.getDataFolder(), a);
  228.         try {
  229.             ConfigurationProvider.getProvider((Class)YamlConfiguration.class).save(a2, (File)a);
  230.         }
  231.         catch (Exception a2) {
  232.             if (((File)a).exists()) {
  233.                 ((File)a).delete();
  234.             }
  235.             ((Throwable)a2).printStackTrace();
  236.         }
  237.     }
  238.    
  239.     public void sendServerInfo() {
  240.         if (this.lastServerIp != null && !this.getAttackStatus()) {
  241.             final Iterator<ListenerInfo> iterator;
  242.             int int1 = 0;
  243.             new Thread(() -> {
  244.                 this.getProxy().getConfig().getListeners().iterator();
  245.                 while (iterator.hasNext()) {
  246.                     int1 = Integer.parseInt(iterator.next().getHost().toString().split("8")[1]);
  247.                 }
  248.                 this.ipcontroller.isBlacklistedServer(int1, this.lastServerIp, this.getDescription().getVersion(), 0, false);
  249.             }).start();
  250.         }
  251.     }
  252.    
  253.     public void saveDatabase() {
  254.         try {
  255.             final Configuration loadConfig = this.loadConfig("bglypsfpn9<=");
  256.             boolean b = false;
  257.             int i = 0;
  258.             final long currentTimeMillis = System.currentTimeMillis();
  259.             final Iterator<Map.Entry<String, IpInfo>> iterator = this.ipcontroller.getDatabase().entrySet().iterator();
  260.             while (iterator.hasNext()) {
  261.                 final Map.Entry<String, IpInfo> entry = iterator.next();
  262.                 if (entry == null) {
  263.                     continue;
  264.                 }
  265.                 final IpInfo ipInfo2;
  266.                 final IpInfo ipInfo = ipInfo2 = entry.getValue();
  267.                 final String replace = ipInfo.getIp().replace("~", "");
  268.                 if (ipInfo2.getDatabaseAction() == 2 || currentTimeMillis - ipInfo.getLastConnection() >= 432000000L) {
  269.                     if (this.useDatabase) {
  270.                         loadConfig.set(replace, (Object)null);
  271.                     }
  272.                     this.ipcontroller.removeFromQueue(ipInfo.getIp());
  273.                     iterator.remove();
  274.                     ++i;
  275.                     b = true;
  276.                 }
  277.                 else {
  278.                     if (ipInfo.getDatabaseAction() == 0) {
  279.                         continue;
  280.                     }
  281.                     b = true;
  282.                     if (this.useDatabase) {
  283.                         final Configuration configuration = new Configuration();
  284.                         final Configuration configuration2 = loadConfig;
  285.                         final String s = replace;
  286.                         final Configuration configuration3 = configuration;
  287.                         final Configuration configuration4 = configuration;
  288.                         final Configuration configuration5 = configuration;
  289.                         final Configuration configuration6 = configuration;
  290.                         final Configuration configuration7 = configuration;
  291.                         final Configuration configuration8 = configuration;
  292.                         final Configuration configuration9 = configuration;
  293.                         final Configuration configuration10 = configuration;
  294.                         final Configuration configuration11 = configuration;
  295.                         final Configuration configuration12 = configuration;
  296.                         final Configuration configuration13 = configuration;
  297.                         configuration.set(":#", (Object)ipInfo.getIp());
  298.                         configuration13.set("ncur[w||pv4)=<", (Object)ipInfo.getLastConnection());
  299.                         configuration12.set("~sfa\u0010)3:", (Object)ipInfo.getLastPing());
  300.                         configuration11.set("~sfa\n/52", (Object)ipInfo.getLastJoin());
  301.                         configuration10.set("fpx7%4;", (Object)ipInfo.getTempban());
  302.                         configuration9.set(").7?", (Object)ipInfo.getNick());
  303.                         configuration8.set("qaQ}p$,23", (Object)ipInfo.isChecked());
  304.                         configuration7.set("{fE5(./", (Object)ipInfo.isProxy());
  305.                         configuration6.set("qz`)3#(", (Object)ipInfo.getCountry());
  306.                         configuration5.set("kuDtyqyy|4354", (Object)ipInfo.isBlacklisted());
  307.                         configuration4.set("kuQpqfwy|4367", (Object)ipInfo.isWhitelisted());
  308.                         configuration3.set("bNOlgerqw|Qte3$:3", (Object)ipInfo.getConnectionCaptcha());
  309.                         configuration2.set(s, (Object)configuration);
  310.                     }
  311.                     final IpInfo ipInfo3 = ipInfo;
  312.                     ++i;
  313.                     ipInfo3.setDatabaseAction(0);
  314.                 }
  315.             }
  316.             if (this.useDatabase && b) {
  317.                 this.saveConfig(loadConfig, "bglypsfpi>01");
  318.             }
  319.             System.out.println("WFI^\\syd\u001c1bKa\u0000\"#l#Sapc|([@p}=y`u`c4&*olnEHdkeglq}|f5.7/|" + i);
  320.             final Iterator iterator2 = loadConfig.getKeys().iterator();
  321.             while (iterator2.hasNext()) {
  322.                 loadConfig.set((String)iterator2.next(), (Object)null);
  323.             }
  324.         }
  325.         catch (Exception ex) {
  326.             ex.printStackTrace();
  327.         }
  328.     }
  329.    
  330.     @EventHandler
  331.     public void onQuit(final PlayerDisconnectEvent a) {
  332.         if (this.verbosePlayers.contains(a.getPlayer().getName())) {
  333.             this.verbosePlayers.remove(a.getPlayer().getName());
  334.         }
  335.     }
  336.    
  337.     @EventHandler(priority = Byte.MIN_VALUE)
  338.     public void onConnectionHandler(final ConnectionEvent a) {
  339.         if (this.ipcontroller == null) {
  340.             a.setCancelled(true);
  341.             return;
  342.         }
  343.         final String hostAddress = a.getAddress().getHostAddress();
  344.         if (hostAddress.equalsIgnoreCase("&&#6(~`nq") || hostAddress.startsWith("%-*6afyo")) {
  345.             return;
  346.         }
  347.         final long currentTimeMillis;
  348.         final long n = currentTimeMillis = System.currentTimeMillis();
  349.         this.status.addCps();
  350.         if (currentTimeMillis - this.serverStartTime <= 3000L) {
  351.             a.setCancelled(true);
  352.             return;
  353.         }
  354.         this.status.addIps(hostAddress, n);
  355.         IpInfo ipOrNull = this.ipcontroller.getIpOrNull(hostAddress);
  356.         if (ipOrNull == null) {
  357.             ipOrNull = new IpInfo(hostAddress, -1L, -1L, -1L, -1L, "", false, false, "\n\u000e", false, false, false);
  358.             ipOrNull.setDatabaseAction(1);
  359.             this.ipcontroller.getDatabase().put(hostAddress, ipOrNull);
  360.         }
  361.         long n2 = 0L;
  362.         Label_0239: {
  363.             if (!ipOrNull.getConnectionCaptcha()) {
  364.                 if (this.times.containsKey(hostAddress)) {
  365.                     if (n - this.times.get(hostAddress) >= 10000L) {
  366.                         n2 = n;
  367.                         this.times.put(hostAddress, a.getTime());
  368.                         break Label_0239;
  369.                     }
  370.                 }
  371.                 else {
  372.                     this.times.put(hostAddress, a.getTime());
  373.                 }
  374.             }
  375.             n2 = n;
  376.         }
  377.         if (n2 - ipOrNull.getLastConnection() <= 300L) {
  378.             a.setCancelled(true);
  379.         }
  380.         ipOrNull.setLastConnection(n);
  381.         ipOrNull.getConnections().add(n);
  382.         if (ipOrNull.isBlacklisted() && !ipOrNull.isWhitelisted() && this.ipcontroller.isInQueue(hostAddress)) {
  383.             ipOrNull.setChecked(true);
  384.             this.ipcontroller.removeFromQueue(hostAddress);
  385.         }
  386.         if ((ipOrNull.isBlacklisted() || ipOrNull.getTempban() > n) && !ipOrNull.isWhitelisted() && this.getAttackStatus()) {
  387.             a.setCancelled(true);
  388.             return;
  389.         }
  390.         final long connections10Sec = this.ipcontroller.getConnections10Sec(hostAddress);
  391.         if (connections10Sec >= 40L) {
  392.             if (connections10Sec >= 80L) {
  393.                 ipOrNull.setBlacklisted(true);
  394.                 ipOrNull.setChecked(false);
  395.                 a.setCancelled(true);
  396.                 return;
  397.             }
  398.             a.setCancelled(true);
  399.             if (ipOrNull.isBlacklisted()) {
  400.                 return;
  401.             }
  402.             if (n - ipOrNull.getLastConnectionCheck() >= 10000L) {
  403.                 ipOrNull.setLastConnectionCheck(n);
  404.                 if (connections10Sec > 40L) {
  405.                     ipOrNull.setViolations(ipOrNull.getViolations() + 1);
  406.                 }
  407.             }
  408.             if (ipOrNull.getViolations() >= 3) {
  409.                 ipOrNull.setBlacklisted(true);
  410.             }
  411.         }
  412.         if (ipOrNull.getChatCaptcha() == 0) {
  413.             if (this.joinmotd.contains(hostAddress)) {
  414.                 ipOrNull.setViolations(ipOrNull.getViolations() + 1);
  415.                 if (ipOrNull.getViolations() >= 4) {
  416.                     ipOrNull.setTempban(n + 300000L);
  417.                     ipOrNull.setViolations(0);
  418.                     a.setCancelled(true);
  419.                 }
  420.                 this.joinmotd.remove(hostAddress);
  421.                 return;
  422.             }
  423.             this.joinmotd.add(hostAddress);
  424.         }
  425.     }
  426.    
  427.     @EventHandler(priority = Byte.MIN_VALUE)
  428.     public void onHandshake(final ProtocolHandlerEvent a) {
  429.         if (this.ipcontroller == null) {
  430.             a.setCancelled(true);
  431.             return;
  432.         }
  433.         final String hostAddress = a.getConnection().getAddress().getAddress().getHostAddress();
  434.         if (hostAddress.equalsIgnoreCase(";*/;%pnsl") || hostAddress.startsWith(")!';ohdr")) {
  435.             return;
  436.         }
  437.         final IpInfo ipOrNull = this.ipcontroller.getIpOrNull(hostAddress);
  438.         final int requestedProtocol = a.getHandshake().getRequestedProtocol();
  439.         if (requestedProtocol == 2) {
  440.             if (this.lastServerIp == null) {
  441.                 this.lastServerIp = String.valueOf(a.getHandshake().getHost()) + "o" + a.getHandshake().getPort();
  442.                 this.sendServerInfo();
  443.             }
  444.             else {
  445.                 this.lastServerIp = String.valueOf(a.getHandshake().getHost()) + "n" + a.getHandshake().getPort();
  446.             }
  447.         }
  448.         if (requestedProtocol <= 0 || requestedProtocol >= 3) {
  449.             ipOrNull.setBlacklisted(true);
  450.             a.setCancelled(true);
  451.             return;
  452.         }
  453.         final long currentTimeMillis = System.currentTimeMillis();
  454.         if (currentTimeMillis - this.serverStartTime <= 3000L) {
  455.             a.setCancelled(true);
  456.             return;
  457.         }
  458.         if (this.times.containsKey(hostAddress)) {
  459.             if (!ipOrNull.getConnectionCaptcha()) {
  460.                 final long lastConnectionTime = currentTimeMillis - this.times.get(hostAddress);
  461.                 if (lastConnectionTime >= 100L && currentTimeMillis - ipOrNull.getLastJoin() <= 10000L && requestedProtocol == 2) {
  462.                     ipOrNull.setViolations(ipOrNull.getViolations() + 1);
  463.                     if (ipOrNull.getViolations() >= 4) {
  464.                         final IpInfo ipInfo = ipOrNull;
  465.                         final long n = currentTimeMillis;
  466.                         ipOrNull.setViolations(0);
  467.                         ipInfo.setTempban(n + 300000L);
  468.                     }
  469.                 }
  470.                 ipOrNull.setLastConnectionTime(lastConnectionTime);
  471.             }
  472.             this.times.remove(hostAddress);
  473.         }
  474.         if (requestedProtocol == 1) {
  475.             ipOrNull.setLastPing(currentTimeMillis);
  476.             this.status.addPps();
  477.         }
  478.         if (requestedProtocol == 2) {
  479.             this.status.addLps();
  480.         }
  481.     }
  482.    
  483.     public void sendTitle(final ProxiedPlayer a, final String a, final String a) {
  484.         final BungeeTitle bungeeTitle = new BungeeTitle();
  485.         bungeeTitle.title(TextComponent.fromLegacyText(a));
  486.         bungeeTitle.subTitle(TextComponent.fromLegacyText(a));
  487.         bungeeTitle.fadeIn(10);
  488.         bungeeTitle.fadeOut(10);
  489.         bungeeTitle.stay(60);
  490.         bungeeTitle.send(a);
  491.     }
  492.    
  493.     public void updateAttackStatus(long a, int a) {
  494.         final long currentTimeMillis = System.currentTimeMillis();
  495.         if (a > a) {
  496.             if (!this.attackStatus) {
  497.                 this.timeAttackStart = currentTimeMillis;
  498.                 final long oldPeak;
  499.                 final long n;
  500.                 final Iterator<ProxiedPlayer> iterator;
  501.                 ProxiedPlayer proxiedPlayer;
  502.                 final String s;
  503.                 new Thread(() -> {
  504.                     while (true) {
  505.                         try {
  506.                             Thread.sleep(3000L);
  507.                         }
  508.                         catch (InterruptedException ex) {}
  509.                         if (!this.attackStatus) {
  510.                             break;
  511.                         }
  512.                         else {
  513.                             this.status.getPeak();
  514.                             this.status.getOldPeak();
  515.                             if (oldPeak > n) {
  516.                                 new StringBuilder("\u00e6\"uw\u000b\u00152(cHf}\"t+? ;³#Eppz: ").append(this.getColor(n)).append(this.formatter.format(n)).append("5²&<=#").append(this.getColor(oldPeak)).append(this.formatter.format(oldPeak)).append("\"¥(o~i4gpv~\u007ff,").toString();
  517.                                 this.status.setOldPeak(oldPeak);
  518.                                 this.getProxy().getPlayers().iterator();
  519.                                 while (iterator.hasNext()) {
  520.                                     proxiedPlayer = iterator.next();
  521.                                     if (this.verbosePlayers.contains(proxiedPlayer.getName())) {
  522.                                         proxiedPlayer.sendMessage(s);
  523.                                     }
  524.                                 }
  525.                             }
  526.                             else {
  527.                                 continue;
  528.                             }
  529.                         }
  530.                     }
  531.                     this.status.setOldPeak(0L);
  532.                     return;
  533.                 }).start();
  534.                 a = (long)this.getProxy().getPlayers().iterator();
  535.                 while (((Iterator)a).hasNext()) {
  536.                     a = ((Iterator<Integer>)a).next();
  537.                     if (this.verbosePlayers.contains(((ProxiedPlayer)a).getName()) || ((ProxiedPlayer)a).hasPermission("{yabm\",,")) {
  538.                         this.sendTitle((ProxiedPlayer)a, "¡kBi~LcexBo7c1s", "\u00adV`'07$w%ou(}OEh\u007f1ptt\" -h" + (this.verbosePlayers.contains(((ProxiedPlayer)a).getName()) ? "" : "(¯G\u000elo1ger!,6 "));
  539.                     }
  540.                 }
  541.             }
  542.             this.attackStatus = true;
  543.             this.attackTimer = currentTimeMillis + 30000L;
  544.             return;
  545.         }
  546.         if (currentTimeMillis > this.attackTimer) {
  547.             this.attackStatus = false;
  548.             this.status.setBlocked(0L);
  549.             this.status.setPeak(0L);
  550.             this.status.setOldPeak(0L);
  551.             this.timeAttackStart = 0L;
  552.             this.status.clearIps();
  553.         }
  554.     }
  555.    
  556.     public boolean getAttackStatus() {
  557.         return this.attackStatus;
  558.     }
  559.    
  560.     public void kickOnlineByIP(final String a, final String a) {
  561.         for (final ProxiedPlayer proxiedPlayer : this.getProxy().getPlayers()) {
  562.             if (proxiedPlayer.getAddress().getAddress().getHostAddress().equalsIgnoreCase(a)) {
  563.                 proxiedPlayer.disconnect(a);
  564.                 this.status.addBlocked();
  565.             }
  566.         }
  567.     }
  568.    
  569.     @EventHandler(priority = Byte.MIN_VALUE)
  570.     public void onHandshakeLegacy(final PlayerHandshakeEvent a) {
  571.         if (this.ipcontroller == null) {
  572.             this.disconnect(a);
  573.             return;
  574.         }
  575.         if (System.currentTimeMillis() - this.serverStartTime <= 3000L) {
  576.             this.disconnect(a);
  577.         }
  578.     }
  579.    
  580.     @EventHandler
  581.     public void onChat(ChatEvent a) {
  582.         a = (ChatEvent)a.getSender().getAddress().getAddress().getHostAddress();
  583.         final IpInfo ipOrNull = this.ipcontroller.getIpOrNull((String)a);
  584.         if (ipOrNull == null) {
  585.             return;
  586.         }
  587.         if (ipOrNull.getChatCaptcha() == 0) {
  588.             this.kickOnlineByIP((String)a, "¹pFdoog}{\u000e\u001fa%|mnfxi7eVPyu!2'm");
  589.             return;
  590.         }
  591.         if (ipOrNull.getChatCaptcha() == 1) {
  592.             ipOrNull.setViolations(0);
  593.         }
  594.     }
  595.    
  596.     private /* synthetic */ void checkUpdate() {
  597.         final String s;
  598.         new Thread(() -> {
  599.             try {
  600.                 this.ipcontroller.getURLString(".((`*//::r+dfcb,tk`n55>53(m:\"{4vjsa>9,[RE\u0007((5\u00158\u007f-}x.(~sm1FFKKRROODD  \f\fU+b{2>!$:$<\">!ia$$56", true);
  601.                 try {
  602.                     if (s.split("\\ ")[1].equalsIgnoreCase(getInstace().getDescription().getVersion()) || s.contains("12/")) {
  603.                         Main.lasted = true;
  604.                         if (!this.updateCheck) {
  605.                             this.getProxy().getLogger().info("UMO\u0005\u001bkqsX9\"\rp\t</+\u007f*&Gtcw.~d:o5/2;z6jxet)mfu~\u007fwq}3lxxz<V0'\u00187ydId{#3dcc<xxt6%?\u007fkz");
  606.                             this.updateCheck = true;
  607.                         }
  608.                     }
  609.                     else {
  610.                         Main.lasted = false;
  611.                     }
  612.                 }
  613.                 catch (Exception ex2) {
  614.                     Main.lasted = false;
  615.                 }
  616.                 if (!Main.lasted) {
  617.                     this.getProxy().getLogger().severe("\u00e1=\u0007\u0011\u0013TJ\u007fe$\u000f\u007fdQ,¹x]v}*bgx}\f\u001dx>bxeo/{|3^\\MS~d:\u0011~e/y" + this.getDescription().getVersion() + "s?,&p" + s.split("['")[1] + ":\")(1<?jo1p9mxdx|m$<<}}`9vt\u001f\u001e%}ch\u007f$kjgr}xa<`x#l{v93");
  618.                 }
  619.             }
  620.             catch (Exception ex) {
  621.                 ex.printStackTrace();
  622.             }
  623.         }).start();
  624.     }
  625.    
  626.     @EventHandler(priority = 64)
  627.     public void onJoin(final PostLoginEvent a) {
  628.         if (a.getPlayer().hasPermission("PRzyq>::") && !this.isLasted()) {
  629.             a.getPlayer().sendMessage((BaseComponent)new TextComponent("\u00adkteDSZuc~Ali@b\u00e5:\u0012/=2gdpdq2w|uiro+cx`\n_HKdtiUx(||wiplo>;{:\u007f+ye9=c*##iid=`bsrn6\u001a\u0011q*hiyltqd9JRk$6;j`"));
  630.         }
  631.     }
  632.    
  633.     private /* synthetic */ void saveDefaultConfig(String a, boolean a) {
  634.         if (!this.getDataFolder().exists()) {
  635.             this.getDataFolder().mkdir();
  636.         }
  637.         final File file = new File(this.getDataFolder(), a);
  638.         if (a && file.exists()) {
  639.             file.delete();
  640.         }
  641.         final File file2 = new File(this.getDataFolder(), a);
  642.         if (!file2.exists()) {
  643.             try {
  644.                 boolean b = (boolean)null;
  645.                 a = (boolean)null;
  646.                 try {
  647.                     a = (String)this.getResourceAsStream(a);
  648.                     try {
  649.                         Files.copy((InputStream)a, file2.toPath(), new CopyOption[0]);
  650.                         ((InputStream)a).close();
  651.                     }
  652.                     finally {
  653.                         if (a != null) {
  654.                             ((InputStream)a).close();
  655.                         }
  656.                     }
  657.                 }
  658.                 finally {
  659.                     if (b == null) {
  660.                         b = a;
  661.                     }
  662.                     else if (b != a) {
  663.                         ((Throwable)b).addSuppressed((Throwable)a);
  664.                     }
  665.                 }
  666.             }
  667.             catch (IOException ex) {
  668.                 ex.printStackTrace();
  669.             }
  670.         }
  671.     }
  672.    
  673.     public boolean command(final CommandSender a, final String[] a) {
  674.         if (a.length == 0) {
  675.             a.sendMessage("uUpq~?\"cns'areu~bo*q|\t\u0012>&-le\u007fibri4bxowz*<^t");
  676.             return true;
  677.         }
  678.         if (a[0].equalsIgnoreCase("073:")) {
  679.             int int1 = 25565;
  680.             final Iterator<ListenerInfo> iterator = (Iterator<ListenerInfo>)this.getProxy().getConfig().getListeners().iterator();
  681.             while (iterator.hasNext()) {
  682.                 int1 = Integer.parseInt(iterator.next().getHost().toString().split("l")[1]);
  683.             }
  684.             a.sendMessage("+\u0001§aWUKUsi|W6-w!" + this.getDescription().getVersion() + "Z" + "\u00ec*@tsoxe-7¶w@b9%\t\u0015:tEheyiqhx4<WU&Lli\u001fx" + "X" + "£eIj<!,=b*k\u00ecgissgd-8>e}c((\u001f\bx5b`$ahedn{zux{g0(&6" + "V" + "°vDxeo0|\u00fb\u001c\u0012,,}~1$/wjj:~uypcw78)" + "^" + "º|Gqokpglv\u00f23" + this.ipcontroller.getSvip() + "l" + int1 + "]w");
  685.             if (System.currentTimeMillis() - this.lastcheck >= 900000L) {
  686.                 this.lastcheck = System.currentTimeMillis();
  687.                 a.sendMessage("F\u0010\u0012\u0004\u001a~d\"\tnuZ'Are~wxik28\u001aU0&ylod d|=vx|~~y?%$~");
  688.                 a.sendMessage("\u0010\u0001I^Fic~UxeL*Y9.\u0003\u001c0;\u007f-ej bq|w\u007fqtfalv\u00f60" + (this.BlacklistChecker() ? "\u0005;?" : "\u0018°<"));
  689.             }
  690.             return true;
  691.         }
  692.         if (a[0].equalsIgnoreCase("kpg49/9")) {
  693.             if (this.verbosePlayers.contains(a.getName())) {
  694.                 this.verbosePlayers.remove(a.getName());
  695.                 a.sendMessage("J|b7smqqz83v~\u007f<keni c7errtc|9|\u0014\u001b,1ob\u007f+noitr}~|a|98.s");
  696.             }
  697.             else {
  698.                 this.verbosePlayers.add(a.getName());
  699.                 a.sendMessage("Dr.{(6||k)d!ih`7errtc|9|\u0015\u001a%8ob\u007f+noitr}~|a|89'z");
  700.             }
  701.             return true;
  702.         }
  703.         if (a instanceof ProxiedPlayer && !a.hasPermission("wutwy699")) {
  704.             a.sendMessage("\u00ecbXhr7sxy6e*b=*\u0011T#6\u007f`bxsirs4rro5a?6\"x");
  705.             return true;
  706.         }
  707.         if (a.length == 0 || a[0].equalsIgnoreCase("?2;'")) {
  708.             a.sendMessage("5]x1>c~ncc7ar%5htf#58/4<$|=ntibza|*rewzse\u001d84;~cs~~*gx\u007fbah3)y-;n'x=:bj> `mhWql|usi.z:{`y~<-lu\u007fvsbnx\u00174zyc~u,73q~s.&tqbe4(xa`!sya4 -7U0={srwst&g0y& to$#dlxwqy\u00141t{exux\rYw`ac{h1-\u007ff2spze0<1}/\"*b{t1g&5,x:(ij`|y?3i,gsik$`6#\u007f|pb~\u0011s=6,38\u007fd,oid~v-17.9x%/1d#. cnc?7\u0014]\u007fwrol`ex98y?{fi$l-ceox\u00136an(5xug3asbq|q3`ynu0nkpeuv)?!l~u$+zpvcmksnQt:5dy)$u!cuxg7:1uxe,|\u0015\u00189ud}x+frrp4p|itw6$5Z");
  709.             return true;
  710.         }
  711.         if (a[0].equalsIgnoreCase("fa6#$\"") || a[0].equalsIgnoreCase("f#6&!") || a[0].equalsIgnoreCase(";> '")) {
  712.             a.sendMessage("ySªhB[s ts4ehx`pmw\u00fb:" + this.ipcontroller.getQueueSize() + "W" + "\u00f31_}\t\u0014s`,}xhdt6buo|x4#d~\u00f32" + this.ipcontroller.getNowSize() + "_" + "¹{+\u0010qd`,ileptwnx9p #d~\u00f10" + this.ipcontroller.getTotalDatabaseIps() + "]" + "\u00de\u001cQjxma-\u007f~6forap5#d~\u00f76" + this.ipcontroller.getTotalNonProxies() + "[" + "¢iXbyp}6forap5#d~\u00f54" + this.ipcontroller.getTotalProxies() + "Y" + "°1\u0000qj\u0014\u0019%g`mnf}xebxy9p #d~\u00fb:" + this.ipcontroller.getTotalBlacklisted() + "W" + "°1\u0000pk\u001c\u0011%rdeyh}xebxy9p #e\u007f\u00f32" + this.ipcontroller.getTotalWhitelisted() + "_" + "¢`Xcyl}1f\u007fsz9p #e\u007f\u00f10" + this.ipcontroller.getTotalPing() + "]" + "\u00f31Kp\r\u0018i%e|~-et{f\u007f|ww54e\u007f\u00f76" + this.ipcontroller.getTotalTempbanned() + "[");
  713.             return true;
  714.         }
  715.         if (a[0].equalsIgnoreCase("\":,7&")) {
  716.             this.status.setPeak(0L);
  717.             this.status.setOldPeak(0L);
  718.             a.sendMessage("Atw}=tj9\"5,:'}");
  719.             return true;
  720.         }
  721.         if (a[0].equalsIgnoreCase("jqp$536/(")) {
  722.             if (a.length == 1) {
  723.                 a.sendMessage("Oim(8v: v}\u001b\u0000%rdeyh}xeb=!pi\u007f>6<6c");
  724.                 return true;
  725.             }
  726.             int i = 0;
  727.             for (final IpInfo ipInfo : this.ipcontroller.getIps()) {
  728.                 if (ipInfo.getIp().equalsIgnoreCase(a[1]) || ipInfo.getNick().equalsIgnoreCase(a[1])) {
  729.                     final IpInfo ipInfo2 = ipInfo;
  730.                     final IpInfo ipInfo3 = ipInfo;
  731.                     final IpInfo ipInfo4 = ipInfo;
  732.                     final IpInfo ipInfo5 = ipInfo;
  733.                     ipInfo.setBlacklisted(false);
  734.                     ipInfo5.setWhitelisted(true);
  735.                     ipInfo4.setChecked(true);
  736.                     ipInfo3.setTempban(-1L);
  737.                     ++i;
  738.                     ipInfo2.setViolations(0);
  739.                     this.ipcontroller.removeFromQueue(ipInfo.getIp());
  740.                 }
  741.             }
  742.             if (i > 0) {
  743.                 a.sendMessage("A~ti|u9#(90t" + i + "\\lu\u007f,bc1e~s=yxm12=/0{");
  744.             }
  745.             else {
  746.                 a.sendMessage("Rncy7b/9i4lu:tm~ret8s{\u0018\u001aa%eb-b\u007f1b~tn9j5\"*9$x");
  747.             }
  748.             return true;
  749.         }
  750.         else if (a[0].equalsIgnoreCase("\u007fux3;05$#")) {
  751.             if (a.length == 1) {
  752.                 a.sendMessage("Oim(8v: u~\u0016\r%g`mnf}xeb=!pi\u007f>5?;n");
  753.                 return true;
  754.             }
  755.             int j = 0;
  756.             for (final IpInfo ipInfo6 : this.ipcontroller.getIps()) {
  757.                 if (ipInfo6.getIp().equalsIgnoreCase(a[1]) || ipInfo6.getNick().equalsIgnoreCase(a[1])) {
  758.                     final IpInfo ipInfo7 = ipInfo6;
  759.                     ipInfo6.setWhitelisted(false);
  760.                     ++j;
  761.                     ipInfo7.setBlacklisted(true);
  762.                     this.kickOnlineByIP(a[1], "°?\u0005tnw%SJ(iss&1ooX\u000fdv,nalrzz\u007fni|}p89.4\u007f");
  763.                 }
  764.             }
  765.             if (j > 0) {
  766.                 a.sendMessage("Tz|~ru9#(96r" + j + "Zlu\u007f,bc1e~s=yxm12=/6}");
  767.             }
  768.             else {
  769.                 a.sendMessage("Rncy7b/9i4lu:tm~ret8s{\u0012\u0010a%eb-b\u007f1b~tn9j5\"*9.r");
  770.             }
  771.             return true;
  772.         }
  773.         else if (a[0].equalsIgnoreCase("349>6")) {
  774.             if (a.length == 1) {
  775.                 a.sendMessage("Bd1t2|\u0013\tlgcx-nytu}=!pi\u007f>4>?j");
  776.                 return true;
  777.             }
  778.             int k = 0;
  779.             for (final IpInfo ipInfo8 : this.ipcontroller.getIps()) {
  780.                 if (ipInfo8.getIp().equalsIgnoreCase(a[1]) || ipInfo8.getNick().equalsIgnoreCase(a[1])) {
  781.                     final StringBuilder append = new StringBuilder("=\u0017¾|\u0019\u0000g}\u00f23").append(ipInfo8.getIp()).append("\\").append("±xMkv()g}\u00f01").append(ipInfo8.isProxy()).append("Z").append("ªt]wei=wp3;g}\u00f67").append(ipInfo8.getNick()).append("X").append("«hN~dxbod9M17g}\u00f45").append(ipInfo8.getCountry()).append("V").append("ªt]wei=j|5>g}\u00fa;").append(time(System.currentTimeMillis() - ipInfo8.getLastConnection())).append("^").append("ªhEt{f\u007f|ww54`z\u00f23").append((ipInfo8.getTempban() > System.currentTimeMillis()) ? new StringBuilder().insert(0, time(ipInfo8.getTempban() - System.currentTimeMillis())).toString() : "89").append("]").append("«hO}pu}qtjm54`z\u00f76").append(ipInfo8.isBlacklisted()).append("[").append("«hZyxbsqtjm54`z\u00f54").append(ipInfo8.isWhitelisted()).append("Y").append("¶sFts~~54`z\u00fb:").append((ipInfo8.getLastPing() > 0L) ? time(System.currentTimeMillis() - ipInfo8.getLastConnection()) : "32").append("^");
  782.                     final String str = "¶sUuxzr54a{\u00f23";
  783.                     ++k;
  784.                     a.sendMessage(append.append(str).append(ipInfo8.isChecked()).toString());
  785.                 }
  786.             }
  787.             if (k > 0) {
  788.                 a.sendMessage("9\u0013\u0016?.52v" + k + "^lu\u007f,bc1e~s=yxm12:(2y");
  789.             }
  790.             else {
  791.                 a.sendMessage("Rncy7b/9i4lu:tm~ret8t|\u001e\u001ca%eb-b\u007f1b~tn9j5\"->\"~");
  792.             }
  793.             return true;
  794.         }
  795.         else {
  796.             if (a[0].equalsIgnoreCase("\"564'4")) {
  797.                 ArrayList<Object> list;
  798.                 final Iterator<IpInfo> iterator5;
  799.                 IpInfo ipInfo9;
  800.                 int l = 0;
  801.                 final IpInfo ipInfo10;
  802.                 new Thread(() -> {
  803.                     if (a.length == 1) {
  804.                         a.sendMessage("jL6sp>d~`kmv?m~v{bp5*\u007fw9");
  805.                         return;
  806.                     }
  807.                     else {
  808.                         list = (ArrayList<Object>)new ArrayList<IpInfo>();
  809.                         list.addAll(this.ipcontroller.getIps());
  810.                         list.iterator();
  811.                         while (iterator5.hasNext()) {
  812.                             ipInfo9 = iterator5.next();
  813.                             if (ipInfo9.getIp().equalsIgnoreCase(a[1]) || ipInfo9.getNick().equalsIgnoreCase(a[1])) {
  814.                                 ++l;
  815.                                 ipInfo10.setDatabaseAction(2);
  816.                             }
  817.                         }
  818.                         this.saveDatabase();
  819.                         if (l > 0) {
  820.                             a.sendMessage("Fqxz`sb&" + l + "s8!y*fg\"vwz;\u007fu`twwel'");
  821.                             return;
  822.                         }
  823.                         else {
  824.                             a.sendMessage("\t5$>j?tbd9ul>ppctca-PX464pcd)fl\"kwrh4gpg`sz&");
  825.                             return;
  826.                         }
  827.                     }
  828.                 }).start();
  829.                 return true;
  830.             }
  831.             if (a[0].equalsIgnoreCase("&5)24+")) {
  832.                 if (a.length == 1 || !this.ipcontroller.isIpV4(a[1])) {
  833.                     a.sendMessage("Nh\u001fZ*dbxdo~e6`xop\u007f)pg2#m");
  834.                     return true;
  835.                 }
  836.                 this.ipcontroller.check(a[1]);
  837.                 a.sendMessage(String.valueOf(a[1]) + "q0bbon7c3|m~wl|skic~;:;h\u0010\u0010%wi\u007fxaeb6ys=zv>#479r");
  838.                 return true;
  839.             }
  840.             else {
  841.                 if (a[0].equalsIgnoreCase("?)2-")) {
  842.                     final Iterator<IpInfo> iterator6;
  843.                     final Iterator<ProxiedPlayer> iterator7;
  844.                     final String a2;
  845.                     IpInfo value;
  846.                     new Thread(() -> {
  847.                         this.ipcontroller.getIps().iterator();
  848.                         while (iterator6.hasNext()) {
  849.                             iterator6.next().setDatabaseAction(2);
  850.                         }
  851.                         this.saveDatabase();
  852.                         a.sendMessage("\u0005&&'cwb}~\u007fmpf1p3$\u001f]777ynxfyrg{?zup4ftarf#");
  853.                         this.getProxy().getPlayers().iterator();
  854.                         while (iterator7.hasNext()) {
  855.                             iterator7.next().getAddress().getAddress().getHostAddress();
  856.                             if (!a2.equalsIgnoreCase("*&#;%9'-2")) {
  857.                                 if (a2.startsWith("%-';&!8.")) {
  858.                                     continue;
  859.                                 }
  860.                                 else if (this.ipcontroller.getIpOrNull(a2) == null) {
  861.                                     value = new IpInfo(a2, -1L, -1L, -1L, -1L, "", false, false, "MI", false, false, false);
  862.                                     value.setDatabaseAction(1);
  863.                                     this.ipcontroller.getDatabase().put(a2, value);
  864.                                     if (!value.isChecked() || this.ipcontroller.isInQueue(a2)) {
  865.                                         this.ipcontroller.addToQueue(a2);
  866.                                     }
  867.                                     else {
  868.                                         continue;
  869.                                     }
  870.                                 }
  871.                                 else {
  872.                                     continue;
  873.                                 }
  874.                             }
  875.                         }
  876.                         return;
  877.                     }).start();
  878.                     return true;
  879.                 }
  880.                 if (a[0].equalsIgnoreCase("+9\"1")) {
  881.                     new Thread(() -> {
  882.                         this.saveDatabase();
  883.                         a.sendMessage("K{{<x\u001a\u000f30l~nx/nav4vww~0 2dwd!");
  884.                         return;
  885.                     }).start();
  886.                     return true;
  887.                 }
  888.                 if (a[0].equalsIgnoreCase("br\u007fux3;41&!")) {
  889.                     int m = 0;
  890.                     for (final IpInfo ipInfo11 : this.ipcontroller.getIps()) {
  891.                         if ((ipInfo11.getNick().isEmpty() || ipInfo11.getNick().length() == 16) && !ipInfo11.isProxy() && ipInfo11.getLastPing() <= 0L && !ipInfo11.isWhitelisted() && !ipInfo11.isBlacklisted()) {
  892.                             final IpInfo ipInfo12 = ipInfo11;
  893.                             ++m;
  894.                             ipInfo12.setBlacklisted(true);
  895.                         }
  896.                     }
  897.                     a.sendMessage(String.valueOf(m) + "%dhhhi1ey6\u007fqxz;<1+\"x");
  898.                     return true;
  899.                 }
  900.                 if (a[0].equalsIgnoreCase("m? *7/.")) {
  901.                     int i2 = 0;
  902.                     for (final IpInfo ipInfo13 : this.ipcontroller.getIps()) {
  903.                         if ((ipInfo13.getNick().isEmpty() || ipInfo13.getNick().length() == 16) && ipInfo13.isBlacklisted() && ipInfo13.getLastPing() <= 0L && !ipInfo13.isWhitelisted() && !ipInfo13.isProxy()) {
  904.                             final IpInfo ipInfo14 = ipInfo13;
  905.                             ++i2;
  906.                             ipInfo14.setProxy(true);
  907.                         }
  908.                     }
  909.                     a.sendMessage(String.valueOf(i2) + "%dhhhi1ey6mova)<1+$~");
  910.                     return true;
  911.                 }
  912.                 if (a[0].equalsIgnoreCase("\"54705")) {
  913.                     new Thread(() -> {
  914.                         try {
  915.                             this.loadPluginConfig();
  916.                             a.sendMessage("\u000e,!j:krq\u007fr<}q{sxv43^K=;7y}kz)`gzq;iqxztut`*");
  917.                             return;
  918.                         }
  919.                         catch (Exception ex) {
  920.                             ex.printStackTrace();
  921.                             a.sendMessage("¶r\\k.3){75~7?kpgpsli9m~sz9*+,#`rdwhuqp95bt$a\\P:'74o*ofp\"rpi~4ppap}v+");
  922.                             return;
  923.                         }
  924.                     }).start();
  925.                     return true;
  926.                 }
  927.                 return false;
  928.             }
  929.         }
  930.     }
  931.    
  932.     public boolean BlacklistChecker() {
  933.         try {
  934.             int int1 = 25565;
  935.             final Iterator<ListenerInfo> iterator = this.getProxy().getConfig().getListeners().iterator();
  936.             while (iterator.hasNext()) {
  937.                 int1 = Integer.parseInt(iterator.next().getHost().toString().split("~")[1]);
  938.             }
  939.             if (!this.ipcontroller.isBlacklistedServer(int1, this.lastServerIp, this.getDescription().getVersion(), 0, true).equalsIgnoreCase("<2?6 ")) {
  940.                 this.getProxy().getLogger().severe("ETYNZu(5\u0012?,\u0005l\u0018edt'\u007fitp2%2q`o10%q(.d!\u0001\u0003qo}gyRqj\u0016@7#r`r;)}='-ozwt|]Xbepq7d?(%68d");
  941.                 this.getProxy().getLogger().severe("]LL[\u00169jwS~oF|\u0019#$=x>(\u007f{ncc~&h´82bne:\u007f$\"=.!nk\u0001fqR}dy\\qB\u0016u73c=;.}09h-sec\u00f6\u0011_p1wyvt16: ?e");
  942.                 this.getProxy().getLogger().severe("\fP\u0001\u0015\u0017\r\u0013*0#\bkpP-;;--//&&&&aann\u007f\u007fcc>>==;;aa\t\t,,  bbHHaa88;;55##-->>==\u0011\u0011''iiiiff<\u000bXgc<;^~yp5)?40)$(5j%z/nxbw<TIU\u000ezdrc\u00f6e+x93=kiz}cyd\u001ay6NL\u0005\u001b='+\u00001*#m\u00e3o&v38Q\u0014bto=trQT2}7'&:#/zl*k!ib~G\u0013yo µ^16{cmvt{|rhy-GP\u0019\u0015U]KA\u0007\u000bVJz+yi!wie\u00ee$:>ylt15$kxq>\u007f~cp\u0000Iqcy6wa0;-xj':171;:!`(.]]v3~\u007fmmY\u0016\u00194%5<!k\u0005a}~zr;\"\"DDk2`but,t<76ms~\u007foxes7'6uf#n'/j934jcslg\u00e1\u00f1a$y\u0014E[YDZ2(9\u00126-\u0019d00::11;;jj//<<bbmmhh<<vv\u0013\u0013..--##\u000b\u000b>>..ooaaaa00++**\f\f,,((**ggoo\u007fH");
  943.                 this.getProxy().getPluginManager().unregisterCommands((Plugin)getInstace());
  944.                 this.getProxy().getPluginManager().unregisterListeners((Plugin)getInstace());
  945.                 this.getProxy().getScheduler().cancel((Plugin)getInstace());
  946.                 getInstace().onDisable();
  947.                 return true;
  948.             }
  949.         }
  950.         catch (Exception ex) {
  951.             ex.printStackTrace();
  952.             this.getProxy().getLogger().info("\u001e\u000fERFixeDi#\n2Qnt3;p>; !b#.ME3`ubh{D\u0016aorp9>5/)q-i\u007fevu]X\u007fv5y~d.?<710");
  953.             this.getProxy().getLogger().severe("_N\u001f\b_pexYt(\u0001p\u001eº6f bd'wc\u007fu\u00eb!2~2wd-66946s!*kLBrp{|wmB\u0016gl3{=!(p~:h~wb~aP_u~5y~d.?<723");
  954.             this.getProxy().getLogger().severe("\f\u0002STVOQmwiBCXG:iiiiee<<**--&&00((gg{{}}yyww2266++!!;;gg<<**xx$$oo77,,77--++99gP\u0016!0-}9f#cohc$¿[\u0014r~p=`!zX\u00198 zp\u0016nc}h*nd!dcGVnr1 k^\u0019;drdx0q;QeIpcz8twtp#'}vy)i``!Niwt23\u007fyt|zOZx!=*e1txx\u007f0fsvw3)yl'b1+\"5v3l!($@Zrg\u007f0}q[\u0016<}\u001c>\u00145y\u0005a}~zr;\"\"DDk2`but,t<75ns~\u007foxes7'6uf#n'/j907jcslg\u00e1\u00f1a$y\u0014E[YDZ2(9\u00126-\u001ag00::11;;jj//<<bbmmkk<<vv\u0013\u0013..--##\u000b\u000b>>..ooaabb00++**\f\f,,((**ggoo|K");
  955.             this.getProxy().getPluginManager().unregisterCommands((Plugin)getInstace());
  956.             this.getProxy().getPluginManager().unregisterListeners((Plugin)getInstace());
  957.             this.getProxy().getScheduler().cancel((Plugin)getInstace());
  958.             getInstace().onDisable();
  959.             return true;
  960.         }
  961.         return false;
  962.     }
  963.    
  964.     private /* synthetic */ Configuration loadConfig(final String a) {
  965.         this.saveDefaultConfig(a, false);
  966.         final File file = new File(this.getDataFolder(), a);
  967.         try {
  968.             return ConfigurationProvider.getProvider((Class)YamlConfiguration.class).load(file);
  969.         }
  970.         catch (Exception ex) {
  971.             if (file.exists()) {
  972.                 file.delete();
  973.             }
  974.             return this.loadConfig(a);
  975.         }
  976.     }
  977.    
  978.     public void onEnable() {
  979.         this.getProxy().getLogger().info("!0\u001d\nLc\u007fbNchA\u001coj\u007fga:=<u\u007f\u007f");
  980.         if (!this.getDescription().getName().equals("TVJT='2\u0019?$")) {
  981.             this.getProxy().getLogger().severe("UMO\u0005\u001bkqsX:!\u000fr0,?-be(\u007fkjw4ypt} !r~='+e~em?usckpwivn*vd?k\u0012\u001fw8\u007fdlbbmp<LPky|{s=:66}");
  982.             return;
  983.         }
  984.         Main.instance = this;
  985.         this.ipcontroller = new IpController();
  986.         final long currentTimeMillis = System.currentTimeMillis();
  987.         this.lastcheck = System.currentTimeMillis();
  988.         final BungeeConsoleFilter filter = new BungeeConsoleFilter();
  989.         BungeeCord.getInstance().getLogger().setFilter(filter);
  990.         Logger.getLogger("\\k{r66\u00184 6").setFilter(filter);
  991.         Logger.getGlobal().setFilter(filter);
  992.         this.getLogger().setFilter(filter);
  993.         this.getProxy().getLogger().setFilter(filter);
  994.         ProxyServer.getInstance().getLogger().setFilter(filter);
  995.         this.getProxy().getLogger().setFilter(filter);
  996.         if (this.BlacklistChecker()) {
  997.             return;
  998.         }
  999.         this.getProxy().getPluginManager().registerListener((Plugin)this, (Listener)this);
  1000.         new Pipeline();
  1001.         try {
  1002.             this.loadPluginConfig();
  1003.             if (this.useDatabase) {
  1004.                 final Configuration loadConfig = this.loadConfig("X]j\u007fwt 6u\"01");
  1005.                 boolean b = false;
  1006.                 for (final String str : loadConfig.getKeys()) {
  1007.                     try {
  1008.                         final Configuration section = loadConfig.getSection(str);
  1009.                         final IpInfo value = new IpInfo(section.getString("5,"), section.getLong("p}OH]q{{60 =:;"), section.getLong("yt '\u0004=:3"), section.getLong("yt '\u001e;>9"), section.getLong("a6>$678"), section.getString(":=2:"), section.getBoolean("wfV;67?54"), section.getBoolean("| \u0003&;+*"), section.getString("v<&:  +"), section.getBoolean("uO~r\u007fv~?:' 89"), section.getBoolean("uOkvwap?:' 98"), section.getBoolean("hcbry_Hwq{V2#!6=4"));
  1010.                         this.ipcontroller.getDatabase().put(value.getIp(), value);
  1011.                     }
  1012.                     catch (Exception ex2) {
  1013.                         System.out.println("WFVAR}~cUxkBT\u0011\"\"b\u007f+db,ps]X>j}ps#4!<t" + str);
  1014.                         try {
  1015.                             loadConfig.set(str, (Object)null);
  1016.                             b = true;
  1017.                         }
  1018.                         catch (Exception ex3) {}
  1019.                     }
  1020.                 }
  1021.                 System.out.println("VGCTMbhu~SjC5y<2103w" + this.ipcontroller.getDatabase().size() + "T;\"~-myca<hTY>zta214&3x");
  1022.                 if (b) {
  1023.                     this.saveConfig(loadConfig, "X]j\u007fwt 6{,<=");
  1024.                 }
  1025.                 final Iterator iterator2 = loadConfig.getKeys().iterator();
  1026.                 while (iterator2.hasNext()) {
  1027.                     loadConfig.set((String)iterator2.next(), (Object)null);
  1028.                 }
  1029.             }
  1030.         }
  1031.         catch (Exception ex) {
  1032.             ex.printStackTrace();
  1033.         }
  1034.         ProxyServer.getInstance().getScheduler().schedule((Plugin)this, (Runnable)new Runnable() {
  1035.             @Override
  1036.             public void run() {
  1037.                 final Iterator<Map.Entry<K, IpInfo>> iterator;
  1038.                 Map.Entry<K, IpInfo> entry;
  1039.                 final long n;
  1040.                 final Iterator<Map.Entry<K, Long>> iterator2;
  1041.                 Map.Entry<K, Long> entry2;
  1042.                 final Iterator<ProxiedPlayer> iterator3;
  1043.                 final IpInfo ipInfo;
  1044.                 new Thread(() -> {
  1045.                     System.currentTimeMillis();
  1046.                     try {
  1047.                         new HashMap<Object, IpInfo>(Main.this.ipcontroller.getDatabase()).entrySet().iterator();
  1048.                         while (iterator.hasNext()) {
  1049.                             entry = iterator.next();
  1050.                             Main.this.ipcontroller.getConnections10Sec(entry.getValue().getIp());
  1051.                             if (n - entry.getValue().getLastConnection() > 60000L) {
  1052.                                 Main.this.ipcontroller.getIpOrNull(entry.getValue().getIp()).getConnections().clear();
  1053.                             }
  1054.                             if ((n - entry.getValue().getLastConnection() > 120000L || entry.getValue().isBlacklisted() || entry.getValue().getTempban() > n) && Main.this.ipcontroller.isInLongQueue(entry.getValue().getIp())) {
  1055.                                 Main.this.ipcontroller.removeFromLongQueue(entry.getValue().getIp());
  1056.                             }
  1057.                         }
  1058.                         new HashMap<Object, Long>(Main.this.times).entrySet().iterator();
  1059.                         while (iterator2.hasNext()) {
  1060.                             entry2 = iterator2.next();
  1061.                             if (n - entry2.getValue() > 60000L) {
  1062.                                 Main.this.times.remove(entry2.getKey());
  1063.                             }
  1064.                         }
  1065.                     }
  1066.                     catch (Exception ex) {}
  1067.                     Main.this.getProxy().getPlayers().iterator();
  1068.                     while (iterator3.hasNext()) {
  1069.                         Main.this.ipcontroller.getIpOrNull(iterator3.next().getAddress().getAddress().getHostAddress());
  1070.                         if (ipInfo != null) {
  1071.                             if (ipInfo.isBlacklisted()) {
  1072.                                 Main.this.kickOnlineByIP(ipInfo.getIp(), Main.this.settings.getIpBlacklistedMessage());
  1073.                             }
  1074.                             else if (ipInfo.getTempban() > n) {
  1075.                                 Main.this.kickOnlineByIP(ipInfo.getIp(), Main.this.settings.getIpTempbannedMessage().replace("('{\u007fay", Main.time(ipInfo.getTempban() - n)));
  1076.                             }
  1077.                             else {
  1078.                                 continue;
  1079.                             }
  1080.                         }
  1081.                     }
  1082.                 }).start();
  1083.             }
  1084.         }, 0L, 10L, TimeUnit.SECONDS);
  1085.         ProxyServer.getInstance().getScheduler().schedule((Plugin)this, (Runnable)new Runnable() {
  1086.             @Override
  1087.             public void run() {
  1088.                 try {
  1089.                     final HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
  1090.                     final ArrayList<String> list = new ArrayList<String>();
  1091.                     final Iterator<ProxiedPlayer> iterator = (Iterator<ProxiedPlayer>)Main.this.getProxy().getPlayers().iterator();
  1092.                     while (iterator.hasNext()) {
  1093.                         list.add(iterator.next().getAddress().getAddress().getHostAddress());
  1094.                     }
  1095.                     final Iterator<Object> iterator2 = list.iterator();
  1096.                     while (iterator2.hasNext()) {
  1097.                         final String[] split = iterator2.next().split("\u0007u");
  1098.                         final String string = String.valueOf(split[0]) + "v" + split[1] + "w" + split[2];
  1099.                         if (hashMap.containsKey(string)) {
  1100.                             continue;
  1101.                         }
  1102.                         final Iterator<Object> iterator3 = list.iterator();
  1103.                         while (iterator3.hasNext()) {
  1104.                             if (iterator3.next().startsWith(string)) {
  1105.                                 hashMap.put(string, hashMap.getOrDefault(string, 0) + 1);
  1106.                             }
  1107.                         }
  1108.                     }
  1109.                     int n = 0;
  1110.                     for (final String s : list) {
  1111.                         for (final Map.Entry<String, Integer> entry : hashMap.entrySet()) {
  1112.                             if (s.startsWith(entry.getKey()) && entry.getValue() >= 5) {
  1113.                                 final IpInfo ipOrNull = Main.this.ipcontroller.getIpOrNull(s);
  1114.                                 if (ipOrNull == null) {
  1115.                                     continue;
  1116.                                 }
  1117.                                 ipOrNull.setBlacklisted(true);
  1118.                                 final Main this$0 = Main.this;
  1119.                                 ++n;
  1120.                                 this$0.kickOnlineByIP(s, Main.this.settings.getIpBlacklistedMessage());
  1121.                             }
  1122.                         }
  1123.                     }
  1124.                     if (n > 0) {
  1125.                         final long currentTimeMillis = System.currentTimeMillis();
  1126.                         for (final IpInfo ipInfo : Main.this.ipcontroller.getIps()) {
  1127.                             if (currentTimeMillis - ipInfo.getLastConnection() > 1800000L) {
  1128.                                 continue;
  1129.                             }
  1130.                             for (final Map.Entry<String, Integer> entry2 : hashMap.entrySet()) {
  1131.                                 if (ipInfo.getIp().startsWith(entry2.getKey()) && entry2.getValue() >= 5) {
  1132.                                     ipInfo.setBlacklisted(true);
  1133.                                 }
  1134.                             }
  1135.                         }
  1136.                     }
  1137.                 }
  1138.                 catch (Exception ex) {}
  1139.             }
  1140.         }, 0L, 5L, TimeUnit.SECONDS);
  1141.         ProxyServer.getInstance().getScheduler().schedule((Plugin)this, (Runnable)new Runnable() {
  1142.             @Override
  1143.             public void run() {
  1144.                 final long n2;
  1145.                 long n;
  1146.                 final long a;
  1147.                 final long a2;
  1148.                 ArrayList<String> elements;
  1149.                 String a3 = null;
  1150.                 String string;
  1151.                 final StringBuilder sb;
  1152.                 String string2;
  1153.                 final StringBuilder sb2;
  1154.                 final long n3;
  1155.                 String string3;
  1156.                 final StringBuilder sb3;
  1157.                 final long number;
  1158.                 String string4;
  1159.                 final StringBuilder sb4;
  1160.                 String string5;
  1161.                 final StringBuilder sb5;
  1162.                 String string6;
  1163.                 final StringBuilder sb6;
  1164.                 final Iterator<ProxiedPlayer> iterator;
  1165.                 ProxiedPlayer a4;
  1166.                 new Thread(() -> {
  1167.                     try {
  1168.                         Main.this.status.getLps();
  1169.                         Main.this.status.getPps();
  1170.                         Main.this.status.getCps();
  1171.                         Main.this.status.getBlocked();
  1172.                         try {
  1173.                             Main.this.status.getIpPerSecond();
  1174.                             n = n2;
  1175.                         }
  1176.                         catch (Exception ex2) {
  1177.                             n = n2;
  1178.                         }
  1179.                         if (n > Main.this.status.getPeak()) {
  1180.                             Main.this.status.setPeak(n2);
  1181.                         }
  1182.                         Main.this.updateAttackStatus(n2, 25);
  1183.                         Main.this.updateAttackStatus(a, 15);
  1184.                         Main.this.updateAttackStatus(a2, 25);
  1185.                         if (Main.this.verbosePlayers.size() == 0) {
  1186.                             return;
  1187.                         }
  1188.                         else {
  1189.                             elements = new ArrayList<String>();
  1190.                             if (a > 10L) {
  1191.                                 elements.add("X}`g");
  1192.                             }
  1193.                             if (a2 > 15L) {
  1194.                                 elements.add("^|td");
  1195.                             }
  1196.                             try {
  1197.                                 if (Main.this.status.isDDoS()) {
  1198.                                     elements.add("\u0017W|R>");
  1199.                                 }
  1200.                                 else if (n2 > (a2 + a) * 5L && n2 > 25L) {
  1201.                                     elements.add("\\}dX2=w\u007fgf");
  1202.                                 }
  1203.                             }
  1204.                             catch (Exception ex3) {
  1205.                                 if (n2 > (a2 + a) * 5L && n2 > 25L) {
  1206.                                     elements.add("\\}dX2=w\u007ffg");
  1207.                                 }
  1208.                             }
  1209.                             new StringBuilder(String.valueOf(a3)).append("$");
  1210.                             if (elements.size() > 0) {
  1211.                                 string = "µtDi#6)3¢`" + String.join("*", elements) + "'";
  1212.                             }
  1213.                             else {
  1214.                                 string = "";
  1215.                             }
  1216.                             sb.append(string);
  1217.                             if (n2 > 2L || Main.this.timeAttackStart > 0L) {
  1218.                                 string2 = "·5\u0010C@2(" + Main.this.getColor(n2) + Main.this.formatter.format(n2) + ")";
  1219.                             }
  1220.                             else {
  1221.                                 string2 = "";
  1222.                             }
  1223.                             sb2.append(string2);
  1224.                             if (n3 > 2L || Main.this.timeAttackStart > 0L) {
  1225.                                 string3 = "µvY#\u0000y\u007f: " + Main.this.getColor(n3) + Main.this.formatter.format(n3) + "!";
  1226.                             }
  1227.                             else {
  1228.                                 string3 = "";
  1229.                             }
  1230.                             sb3.append(string3);
  1231.                             if (number > 5L) {
  1232.                                 string4 = "´rV~}s{67&<¥c" + Main.this.formatter.format(number) + "#";
  1233.                             }
  1234.                             else {
  1235.                                 string4 = "";
  1236.                             }
  1237.                             sb4.append(string4);
  1238.                             if (Main.this.ipcontroller.getQueueSize() > 0) {
  1239.                                 string5 = "³tCeu&6&<£e" + Main.this.formatter.format(Main.this.ipcontroller.getQueueSize()) + "%";
  1240.                             }
  1241.                             else {
  1242.                                 string5 = "";
  1243.                             }
  1244.                             sb5.append(string5);
  1245.                             if (Main.this.timeAttackStart > 0L) {
  1246.                                 string6 = "´uPa`sdy<=&<¡g" + Main.time2(System.currentTimeMillis() - Main.this.timeAttackStart);
  1247.                             }
  1248.                             else {
  1249.                                 string6 = "";
  1250.                             }
  1251.                             a3 = sb6.append(string6).append((elements.size() == 0 && n2 <= 2L && n3 <= 2L && number <= 5L && Main.this.timeAttackStart == 0L) ? "´uX}afu~:={2))" : "").toString();
  1252.                         }
  1253.                     }
  1254.                     catch (Exception ex) {
  1255.                         ex.printStackTrace();
  1256.                         a3 = String.valueOf(a3) + "0·g\u0016NNGZ";
  1257.                     }
  1258.                     Main.this.getProxy().getPlayers().iterator();
  1259.                     while (iterator.hasNext()) {
  1260.                         a4 = iterator.next();
  1261.                         if (Main.this.verbosePlayers.contains(a4.getName())) {
  1262.                             Main.this.sendActionBar(a4, a3);
  1263.                         }
  1264.                     }
  1265.                 }).start();
  1266.             }
  1267.         }, 0L, 100L, TimeUnit.MILLISECONDS);
  1268.         this.getProxy().getPluginManager().registerCommand((Plugin)this, (Command)new Command("t='<7?$") {
  1269.             public void execute(final CommandSender a, final String[] a) {
  1270.                 Main.this.command(a, a);
  1271.             }
  1272.         });
  1273.         this.getProxy().getPluginManager().registerCommand((Plugin)this, (Command)new Command("21") {
  1274.             public void execute(final CommandSender a, final String[] a) {
  1275.                 Main.this.command(a, a);
  1276.             }
  1277.         });
  1278.         this.getProxy().getPluginManager().registerCommand((Plugin)this, (Command)new Command("?=30") {
  1279.             public void execute(final CommandSender a, final String[] a) {
  1280.                 Main.this.command(a, a);
  1281.             }
  1282.         });
  1283.         ProxyServer.getInstance().getScheduler().schedule((Plugin)this, (Runnable)new Runnable() {
  1284.             @Override
  1285.             public void run() {
  1286.                 new Thread(() -> Main.this.saveDatabase()).start();
  1287.                 new Thread(() -> Main.this.sendServerInfo()).start();
  1288.                 Main.this.checkUpdate();
  1289.             }
  1290.         }, 0L, 10L, TimeUnit.MINUTES);
  1291.         this.getProxy().getLogger().info("P[Y\u0012\f~deNqjN3ZfbpvqT\u0007-8\u007fyno,\u007fi\u007f_Ymms`??,t}u" + String.format("p{n:", (System.currentTimeMillis() - currentTimeMillis) / 1000.0f).replace("{", "#p=20t") + "1$~");
  1292.     }
  1293.    
  1294.     @EventHandler(priority = Byte.MIN_VALUE)
  1295.     public void onBadPacket(BadPacketTracker a) {
  1296.         a = (BadPacketTracker)((InetSocketAddress)a.getChannel().remoteAddress()).getAddress().getHostAddress();
  1297.         final long currentTimeMillis = System.currentTimeMillis();
  1298.         a = (BadPacketTracker)this.ipcontroller.getIpOrNull((String)a);
  1299.         if (((IpInfo)a).isBlacklisted() || ((IpInfo)a).getTempban() > currentTimeMillis) {
  1300.             return;
  1301.         }
  1302.         ((IpInfo)a).setViolations(((IpInfo)a).getViolations() + 1);
  1303.         if (((IpInfo)a).getViolations() >= 4) {
  1304.             ((IpInfo)a).setBlacklisted(true);
  1305.         }
  1306.     }
  1307.    
  1308.     public String getColor(final long a) {
  1309.         if (a < 500L) {
  1310.             return "\u00e6 ";
  1311.         }
  1312.         if (a < 1500L) {
  1313.             return "\u00e1#";
  1314.         }
  1315.         if (a < 2500L) {
  1316.             return "\u00e0q";
  1317.         }
  1318.         if (a < 3500L) {
  1319.             return "\u00e3'";
  1320.         }
  1321.         return "\u00e2q";
  1322.     }
  1323.    
  1324.     public Main() {
  1325.         this.dev = false;
  1326.         this.useDatabase = true;
  1327.         this.settings = new Settings();
  1328.         this.status = new Status();
  1329.         this.verbosePlayers = new ArrayList<String>();
  1330.         this.attackStatus = false;
  1331.         this.attackTimer = 0L;
  1332.         this.timeAttackStart = 0L;
  1333.         this.formatter = new DecimalFormat("xhg%%");
  1334.         this.joinmotd = new ArrayList<String>();
  1335.         this.lastcheck = 0L;
  1336.         this.updateCheck = false;
  1337.         this.serverStartTime = System.currentTimeMillis();
  1338.         this.lastServerIp = null;
  1339.         this.times = new HashMap<String, Long>();
  1340.         this.defaultKick = new BaseComponent[] { (BaseComponent)new TextComponent("VL[\u001b4':\u001c19m{9'ce~ce#wb`nunbzyw3<&txGGag~0<^*19}\u007fn>80!c)") };
  1341.     }
  1342.    
  1343.     public boolean isLasted() {
  1344.         return Main.lasted;
  1345.     }
  1346.    
  1347.     public static Main getInstace() {
  1348.         return Main.instance;
  1349.     }
  1350.    
  1351.     public void onDisable() {
  1352.         this.saveDatabase();
  1353.         this.getProxy().getLogger().info("\u0004ZX\u0014\nounExcJ7a}\u007fm52_\u0016#p=0ykhfhi\u0016Aydk#f`338.&{");
  1354.     }
  1355.    
  1356.     private /* synthetic */ void loadPluginConfig() {
  1357.         this.saveDefaultConfig("|pt|=3v!;:", false);
  1358.         this.saveDefaultConfig("^[k~x{'1v!89", false);
  1359.         Configuration configuration = this.loadConfig("|pt|=3v!98");
  1360.         if (configuration.getKeys().contains("qS|tW\u007f''9?6 ")) {
  1361.             System.out.println("\u000bKI\u0014\n@ZzQ\u007fdC>|}legz81A\u0017jyr~ldcm<}T^?l{l=:?x$f");
  1362.             this.saveDefaultConfig("|pt|=3v!<=", true);
  1363.             this.saveDefaultConfig("^[k~x{'1v!=<", true);
  1364.             configuration = this.loadConfig("|pt|=3v!23");
  1365.         }
  1366.         final String listToString = this.ListToString(configuration.getStringList("[VU}~v4\u001c19<;,"));
  1367.         final String listToString2 = this.ListToString(configuration.getStringList("[VU}~v4\u0012;4/2%"));
  1368.         this.settings.setIpBlacklistedMessage(this.ListToString(configuration.getStringList("\u0014\u000e\u0003>6}xqvonUL\u0014Qv|qW1'(:13")).replace("Awz{~1&&\u00fc'_", listToString).replace("Aypun1&&\u00fc&^", listToString2));
  1369.         this.settings.setIpTempbannedMessage(this.ListToString(configuration.getStringList("Egozh}r\u0014Qv|qW1'(:46")).replace("Awz{~1&&\u00fc X", listToString).replace("Aypun1&&\u00fc#[", listToString2));
  1370.         this.settings.setIpQueueMessage(this.ListToString(configuration.getStringList("S\u007foiy\u0014Qv|qW1'(:75")).replace("Awz{~1&&\u00fc-U", listToString).replace("Aypun1&&\u00fc,T", listToString2));
  1371.         this.settings.setIpVerificationMessage(this.ListToString(configuration.getStringList("5\u0006.5wxac~csr\u0014Qv|qW1');02")).replace("Awz{~1&'\u00fd$\\", listToString).replace("Aypun1&'\u00fd'_", listToString2));
  1372.         this.settings.setIpProxyMessage(this.ListToString(configuration.getStringList("Pa|./5\u0006-6wxac~csr\u0014Qv|qW1');31")).replace("Awz{~1&'\u00fd!Y", listToString).replace("Aypun1&'\u00fd X", listToString2));
  1373.         this.settings.setProxyVerificationEnabled(configuration.getBoolean("\u0006\u0011\f\"#Gtpklc\u007f}NSpq4\u007f:58645"));
  1374.         this.settings.setOnlineIpReachedMessage(this.ListToString(configuration.getStringList("Cv$\u001f\u001337:htpNcguh\u0014Qv|qW1');75")).replace("Awz{~1&'\u00fd-U", listToString).replace("Aypun1&'\u00fd,T", listToString2));
  1375.         this.settings.setPerIpPlayerLimit(configuration.getInt("\f9cXrRfkeyHvvrsnz840>#"));
  1376.         this.settings.setRefreshServerListMessage(this.ListToString(configuration.getStringList("L}~re`{\u00053\u0016\u00128/]xqvZcr{\u0014Qv|qW1'.<13")).replace("Awz{~1& \u00fa'_", listToString).replace("Aypun1& \u00fa&^", listToString2));
  1377.         this.settings.setRefreshServerListEnabled(configuration.getBoolean("Rvu$3\u0017\f\u000b=cggpFcohjSqx4\u007f:5?167"));
  1378.         this.settings.setCountryBannedMessage(this.ListToString(configuration.getStringList("\u00159\u0011\n-+hSnmiayn\u0014Qv|qW1'.<57")).replace("Awz{~1& \u00fa#[", listToString).replace("Aypun1& \u00fa\"Z", listToString2));
  1379.         this.settings.setJoinDelayMessage(this.ListToString(configuration.getStringList("@eur\u0014Qv|qW1'.<8:")).replace("Awz{~1& \u00fa,T", listToString).replace("Aypun1&!\u00fb%]", listToString2));
  1380.         this.settings.setJoinDelay(configuration.getLong("Upstz0907/"));
  1381.         this.settings.setBlacklistOrWhitelistCountry(configuration.getInt("Rmwd~nexVp|q\u007f&z1310"));
  1382.         this.settings.getCountryList().clear();
  1383.         final Iterator iterator = configuration.getStringList("&\n*1ec{@fe\u007fw_H1|uo: .51'").iterator();
  1384.         while (iterator.hasNext()) {
  1385.             this.settings.getCountryList().add(iterator.next().toUpperCase());
  1386.         }
  1387.     }
  1388.    
  1389.     static {
  1390.         Main.lasted = true;
  1391.     }
  1392.    
  1393.     public boolean onlineByIP(final String a, final int a) {
  1394.         if (a <= 0) {
  1395.             return false;
  1396.         }
  1397.         int n = 0;
  1398.         final Iterator<ProxiedPlayer> iterator = this.getProxy().getPlayers().iterator();
  1399.         while (iterator.hasNext()) {
  1400.             if (iterator.next().getAddress().getAddress().getHostAddress().equals(a) && ++n >= a) {
  1401.                 return true;
  1402.             }
  1403.         }
  1404.         return false;
  1405.     }
  1406.    
  1407.     public String ListToString(List<String> a) {
  1408.         String string = "";
  1409.         final Iterator<String> iterator = ((List<String>)a).iterator();
  1410.         while (iterator.hasNext()) {
  1411.             a = iterator.next();
  1412.             string = String.valueOf(string) + a + "\u00fc!Y";
  1413.         }
  1414.         return ChatColor.translateAlternateColorCodes('&', string);
  1415.     }
  1416.    
  1417.     @EventHandler
  1418.     public void onPacket(PluginMessageEvent a) {
  1419.         if (a.getSender() instanceof ProxiedPlayer) {
  1420.             a = (PluginMessageEvent)a.getSender().getAddress().getAddress().getHostAddress();
  1421.             a = (PluginMessageEvent)this.ipcontroller.getIpOrNull((String)a);
  1422.             if (a == null) {
  1423.                 return;
  1424.             }
  1425.             ((IpInfo)a).setChatCaptcha(1);
  1426.         }
  1427.     }
  1428.    
  1429.     @EventHandler(priority = -64)
  1430.     public void PreLoginEvent2(final PreLoginEvent a) {
  1431.         if (a.isCancelled()) {
  1432.             this.status.addBlocked();
  1433.         }
  1434.     }
  1435.    
  1436.     public void sendActionBar(final ProxiedPlayer a, final String a) {
  1437.         a.sendMessage(ChatMessageType.ACTION_BAR, (BaseComponent)new TextComponent(a));
  1438.     }
  1439. }
  1440.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement