From 44f0f7a759fd1f4e417bb4471083cad27b85f9f6 Mon Sep 17 00:00:00 2001 From: TheUnnamedDude Date: Tue, 3 Dec 2013 11:54:08 +0100 Subject: [PATCH] Experimental chat fix(thanks to @xxyy for the original patch) and and organizing of imports --- .../java/net/md_5/bungee/api/ChatColor.java | 1 + .../net/md_5/bungee/api/NewServerPing.java | 1 - .../java/net/md_5/bungee/api/ProxyServer.java | 13 +- .../md_5/bungee/api/config/ListenerInfo.java | 5 +- .../md_5/bungee/api/config/ServerInfo.java | 5 +- .../bungee/api/connection/Connection.java | 3 +- .../api/connection/PendingConnection.java | 3 +- .../net/md_5/bungee/api/event/AsyncEvent.java | 11 +- .../api/event/PermissionCheckEvent.java | 7 +- .../api/event/PlayerHandshakeEvent.java | 2 +- .../api/event/ServerDisconnectEvent.java | 6 +- .../net/md_5/bungee/api/plugin/Plugin.java | 7 +- .../bungee/api/plugin/PluginDescription.java | 7 +- .../md_5/bungee/api/plugin/PluginLogger.java | 3 +- .../md_5/bungee/api/plugin/PluginManager.java | 24 +- .../bungee/api/scheduler/TaskScheduler.java | 3 +- .../net/md_5/bungee/api/score/Scoreboard.java | 5 +- .../java/net/md_5/bungee/api/score/Team.java | 5 +- .../main/java/net/md_5/bungee/Bootstrap.java | 11 +- .../net/md_5/bungee/config/Configuration.java | 7 +- .../md_5/bungee/config/YamlConfiguration.java | 10 +- .../bungee/config/YamlConfigurationTest.java | 5 +- .../java/net/md_5/bungee/event/EventBus.java | 7 +- .../md_5/bungee/event/EventHandlerMethod.java | 5 +- .../net/md_5/bungee/event/EventBusTest.java | 3 +- .../md_5/bungee/event/EventPriorityTest.java | 3 +- .../md_5/bungee/protocol/MinecraftOutput.java | 1 + .../net/md_5/bungee/protocol/Protocol.java | 3 +- .../net/md_5/bungee/protocol/Vanilla.java | 27 +- .../bungee/protocol/packet/DefinedPacket.java | 2 - .../protocol/packet/Packet2Handshake.java | 5 +- .../packet/PacketFAPluginMessage.java | 8 +- .../protocol/packet/forge/Forge1Login.java | 3 +- .../protocolhack/PacketEncryptionRequest.java | 1 - .../protocolhack/PacketLoginSuccess.java | 1 - .../bungee/protocol/skip/PacketReader.java | 5 +- .../net/md_5/bungee/protocol/PacketTest.java | 5 +- .../main/java/net/md_5/bungee/BungeeCord.java | 49 ++-- .../net/md_5/bungee/BungeeServerInfo.java | 10 +- .../net/md_5/bungee/ConnectionThrottle.java | 3 +- .../java/net/md_5/bungee/EncryptionUtil.java | 24 +- .../main/java/net/md_5/bungee/Metrics.java | 9 +- .../net/md_5/bungee/ServerConnection.java | 5 +- .../java/net/md_5/bungee/ServerConnector.java | 31 +- .../java/net/md_5/bungee/UserConnection.java | 26 +- proxy/src/main/java/net/md_5/bungee/Util.java | 1 - .../net/md_5/bungee/command/CommandAlert.java | 1 - .../net/md_5/bungee/command/CommandFind.java | 3 +- .../net/md_5/bungee/command/CommandList.java | 7 +- .../net/md_5/bungee/command/CommandPerms.java | 5 +- .../md_5/bungee/command/CommandServer.java | 5 +- .../bungee/command/ConsoleCommandSender.java | 5 +- .../net/md_5/bungee/config/Configuration.java | 15 +- .../net/md_5/bungee/config/YamlConfig.java | 19 +- .../bungee/connection/DownstreamBridge.java | 39 +-- .../bungee/connection/InitialHandler.java | 56 ++-- .../md_5/bungee/connection/PingHandler.java | 1 - .../bungee/connection/UpstreamBridge.java | 7 +- .../java/net/md_5/bungee/http/HttpClient.java | 10 +- .../net/md_5/bungee/http/HttpHandler.java | 4 +- .../net/md_5/bungee/http/HttpInitializer.java | 7 +- .../md_5/bungee/http/TrustingX509Manager.java | 7 +- .../net/md_5/bungee/log/BungeeLogger.java | 3 +- .../net/md_5/bungee/log/ColouredWriter.java | 7 +- .../md_5/bungee/log/LoggingOutputStream.java | 3 +- .../net/md_5/bungee/netty/CipherBase.java | 5 +- .../net/md_5/bungee/netty/HandlerBoss.java | 5 +- .../net/md_5/bungee/netty/PipelineUtils.java | 7 +- .../bungee/netty/decoders/CipherDecoder.java | 2 +- .../bungee/netty/decoders/PacketDecoder.java | 9 +- .../decoders/PacketTranslatorDecoder.java | 2 - .../Varint21LengthFieldPrepender.java | 3 +- .../packetrewriter/ChatMessageRewriter.java | 12 +- .../packetrewriter/PluginMessageRewriter.java | 2 - .../packetrewriter/SpawnPlayerRewriter.java | 2 - .../reconnect/YamlReconnectHandler.java | 11 +- .../bungee/scheduler/BungeeScheduler.java | 7 +- .../net/md_5/bungee/scheduler/BungeeTask.java | 7 +- .../main/java/net/md_5/bungee/tab/Custom.java | 5 +- .../java/net/md_5/bungee/tab/GlobalPing.java | 1 - .../net/md_5/bungee/tab/ServerUnique.java | 5 +- .../md_5/bungee/util/CaseInsensitiveMap.java | 1 + .../md_5/bungee/util/CaseInsensitiveSet.java | 1 + .../net/md_5/bungee/util/ChatConverter.java | 264 ++++++++++++++++++ .../java/net/md_5/bungee/ThrottleTest.java | 5 +- .../md_5/bungee/util/CaseInsensitiveTest.java | 2 +- .../net/md_5/bungee/query/QueryHandler.java | 9 +- .../net/md_5/bungee/query/RemoteQuery.java | 3 +- 88 files changed, 564 insertions(+), 391 deletions(-) create mode 100644 proxy/src/main/java/net/md_5/bungee/util/ChatConverter.java diff --git a/api/src/main/java/net/md_5/bungee/api/ChatColor.java b/api/src/main/java/net/md_5/bungee/api/ChatColor.java index 0df1cd5e26..2b53b2308b 100644 --- a/api/src/main/java/net/md_5/bungee/api/ChatColor.java +++ b/api/src/main/java/net/md_5/bungee/api/ChatColor.java @@ -103,6 +103,7 @@ public enum ChatColor * you need to dynamically convert colour codes from your custom format. */ public static final char COLOR_CHAR = '\u00A7'; + public static final String COLOR_CHAR_STRING = "\u00A7"; /** * Pattern to remove all colour codes. */ diff --git a/api/src/main/java/net/md_5/bungee/api/NewServerPing.java b/api/src/main/java/net/md_5/bungee/api/NewServerPing.java index 771f424fa7..c44d1b08db 100644 --- a/api/src/main/java/net/md_5/bungee/api/NewServerPing.java +++ b/api/src/main/java/net/md_5/bungee/api/NewServerPing.java @@ -5,7 +5,6 @@ import com.google.gson.JsonPrimitive; import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; /** * Represents the standard list data returned by opening a server in the diff --git a/api/src/main/java/net/md_5/bungee/api/ProxyServer.java b/api/src/main/java/net/md_5/bungee/api/ProxyServer.java index 3542f4fe3d..e7458bc40e 100644 --- a/api/src/main/java/net/md_5/bungee/api/ProxyServer.java +++ b/api/src/main/java/net/md_5/bungee/api/ProxyServer.java @@ -1,20 +1,21 @@ package net.md_5.bungee.api; -import net.md_5.bungee.api.plugin.PluginManager; import com.google.common.base.Preconditions; -import java.io.File; -import java.net.InetSocketAddress; -import java.util.Collection; -import java.util.Map; -import java.util.logging.Logger; import lombok.Getter; import net.md_5.bungee.api.config.ConfigurationAdapter; import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Plugin; +import net.md_5.bungee.api.plugin.PluginManager; import net.md_5.bungee.api.scheduler.TaskScheduler; import net.md_5.bungee.api.tab.CustomTabList; +import java.io.File; +import java.net.InetSocketAddress; +import java.util.Collection; +import java.util.Map; +import java.util.logging.Logger; + public abstract class ProxyServer { diff --git a/api/src/main/java/net/md_5/bungee/api/config/ListenerInfo.java b/api/src/main/java/net/md_5/bungee/api/config/ListenerInfo.java index 15d6062e53..9ae87ff8b3 100644 --- a/api/src/main/java/net/md_5/bungee/api/config/ListenerInfo.java +++ b/api/src/main/java/net/md_5/bungee/api/config/ListenerInfo.java @@ -1,10 +1,11 @@ package net.md_5.bungee.api.config; -import java.net.InetSocketAddress; -import java.util.Map; import lombok.Data; import net.md_5.bungee.api.tab.TabListHandler; +import java.net.InetSocketAddress; +import java.util.Map; + /** * Class representing the configuration of a server listener. Used for allowing * multiple listeners on different ports. diff --git a/api/src/main/java/net/md_5/bungee/api/config/ServerInfo.java b/api/src/main/java/net/md_5/bungee/api/config/ServerInfo.java index ca983a05b1..f18f8da191 100644 --- a/api/src/main/java/net/md_5/bungee/api/config/ServerInfo.java +++ b/api/src/main/java/net/md_5/bungee/api/config/ServerInfo.java @@ -1,12 +1,13 @@ package net.md_5.bungee.api.config; -import java.net.InetSocketAddress; -import java.util.Collection; import net.md_5.bungee.api.Callback; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ServerPing; import net.md_5.bungee.api.connection.ProxiedPlayer; +import java.net.InetSocketAddress; +import java.util.Collection; + /** * Class used to represent a server to connect to. */ diff --git a/api/src/main/java/net/md_5/bungee/api/connection/Connection.java b/api/src/main/java/net/md_5/bungee/api/connection/Connection.java index f0a3f50408..55227d7bd2 100644 --- a/api/src/main/java/net/md_5/bungee/api/connection/Connection.java +++ b/api/src/main/java/net/md_5/bungee/api/connection/Connection.java @@ -1,8 +1,9 @@ package net.md_5.bungee.api.connection; -import java.net.InetSocketAddress; import net.md_5.bungee.protocol.packet.DefinedPacket; +import java.net.InetSocketAddress; + /** * A proxy connection is defined as a connection directly connected to a socket. * It should expose information about the remote peer, however not be specific diff --git a/api/src/main/java/net/md_5/bungee/api/connection/PendingConnection.java b/api/src/main/java/net/md_5/bungee/api/connection/PendingConnection.java index fba6e4f71f..46f3ec2bd8 100644 --- a/api/src/main/java/net/md_5/bungee/api/connection/PendingConnection.java +++ b/api/src/main/java/net/md_5/bungee/api/connection/PendingConnection.java @@ -1,8 +1,9 @@ package net.md_5.bungee.api.connection; -import java.net.InetSocketAddress; import net.md_5.bungee.api.config.ListenerInfo; +import java.net.InetSocketAddress; + /** * Represents a user attempting to log into the proxy. */ diff --git a/api/src/main/java/net/md_5/bungee/api/event/AsyncEvent.java b/api/src/main/java/net/md_5/bungee/api/event/AsyncEvent.java index e85c4cd2c1..48f5ec2451 100644 --- a/api/src/main/java/net/md_5/bungee/api/event/AsyncEvent.java +++ b/api/src/main/java/net/md_5/bungee/api/event/AsyncEvent.java @@ -1,11 +1,6 @@ package net.md_5.bungee.api.event; import com.google.common.base.Preconditions; -import java.util.Collections; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -13,6 +8,12 @@ import net.md_5.bungee.api.plugin.Event; import net.md_5.bungee.api.plugin.Plugin; +import java.util.Collections; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + /** * Represents an event which depends on the result of asynchronous operations. * diff --git a/api/src/main/java/net/md_5/bungee/api/event/PermissionCheckEvent.java b/api/src/main/java/net/md_5/bungee/api/event/PermissionCheckEvent.java index d997a9dd26..8b8ce11de3 100644 --- a/api/src/main/java/net/md_5/bungee/api/event/PermissionCheckEvent.java +++ b/api/src/main/java/net/md_5/bungee/api/event/PermissionCheckEvent.java @@ -1,11 +1,6 @@ package net.md_5.bungee.api.event; -import lombok.AccessLevel; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.ToString; +import lombok.*; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.plugin.Event; diff --git a/api/src/main/java/net/md_5/bungee/api/event/PlayerHandshakeEvent.java b/api/src/main/java/net/md_5/bungee/api/event/PlayerHandshakeEvent.java index de927325c0..a1345af2f2 100644 --- a/api/src/main/java/net/md_5/bungee/api/event/PlayerHandshakeEvent.java +++ b/api/src/main/java/net/md_5/bungee/api/event/PlayerHandshakeEvent.java @@ -4,8 +4,8 @@ import lombok.EqualsAndHashCode; import lombok.ToString; import net.md_5.bungee.api.connection.PendingConnection; -import net.md_5.bungee.protocol.packet.Packet2Handshake; import net.md_5.bungee.api.plugin.Event; +import net.md_5.bungee.protocol.packet.Packet2Handshake; /** * Event called to represent a player first making their presence and username diff --git a/api/src/main/java/net/md_5/bungee/api/event/ServerDisconnectEvent.java b/api/src/main/java/net/md_5/bungee/api/event/ServerDisconnectEvent.java index 2823b71617..b38cd021cc 100644 --- a/api/src/main/java/net/md_5/bungee/api/event/ServerDisconnectEvent.java +++ b/api/src/main/java/net/md_5/bungee/api/event/ServerDisconnectEvent.java @@ -1,10 +1,6 @@ package net.md_5.bungee.api.event; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NonNull; -import lombok.ToString; +import lombok.*; import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Event; diff --git a/api/src/main/java/net/md_5/bungee/api/plugin/Plugin.java b/api/src/main/java/net/md_5/bungee/api/plugin/Plugin.java index caa7f5e72c..d647731f03 100644 --- a/api/src/main/java/net/md_5/bungee/api/plugin/Plugin.java +++ b/api/src/main/java/net/md_5/bungee/api/plugin/Plugin.java @@ -1,12 +1,13 @@ package net.md_5.bungee.api.plugin; -import java.io.File; -import java.io.InputStream; -import java.util.logging.Logger; import lombok.Getter; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.config.ConfigurationAdapter; +import java.io.File; +import java.io.InputStream; +import java.util.logging.Logger; + /** * Represents any Plugin that may be loaded at runtime to enhance existing * functionality. diff --git a/api/src/main/java/net/md_5/bungee/api/plugin/PluginDescription.java b/api/src/main/java/net/md_5/bungee/api/plugin/PluginDescription.java index 4a7135aa08..d1ebd7ce48 100644 --- a/api/src/main/java/net/md_5/bungee/api/plugin/PluginDescription.java +++ b/api/src/main/java/net/md_5/bungee/api/plugin/PluginDescription.java @@ -1,12 +1,13 @@ package net.md_5.bungee.api.plugin; -import java.io.File; -import java.util.HashSet; -import java.util.Set; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.File; +import java.util.HashSet; +import java.util.Set; + /** * POJO representing the plugin.yml file. */ diff --git a/api/src/main/java/net/md_5/bungee/api/plugin/PluginLogger.java b/api/src/main/java/net/md_5/bungee/api/plugin/PluginLogger.java index 118fb711cf..fed3a60def 100644 --- a/api/src/main/java/net/md_5/bungee/api/plugin/PluginLogger.java +++ b/api/src/main/java/net/md_5/bungee/api/plugin/PluginLogger.java @@ -1,8 +1,9 @@ package net.md_5.bungee.api.plugin; +import net.md_5.bungee.api.ProxyServer; + import java.util.logging.LogRecord; import java.util.logging.Logger; -import net.md_5.bungee.api.ProxyServer; public class PluginLogger extends Logger { diff --git a/api/src/main/java/net/md_5/bungee/api/plugin/PluginManager.java b/api/src/main/java/net/md_5/bungee/api/plugin/PluginManager.java index e5ec1ce8e1..782d7b3b42 100644 --- a/api/src/main/java/net/md_5/bungee/api/plugin/PluginManager.java +++ b/api/src/main/java/net/md_5/bungee/api/plugin/PluginManager.java @@ -4,30 +4,24 @@ import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; import com.google.common.eventbus.Subscribe; +import lombok.RequiredArgsConstructor; +import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.CommandSender; +import net.md_5.bungee.api.ProxyServer; +import net.md_5.bungee.event.EventBus; +import net.md_5.bungee.event.EventHandler; +import org.yaml.snakeyaml.Yaml; + import java.io.File; import java.io.InputStream; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Stack; +import java.util.*; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.logging.Level; import java.util.regex.Pattern; -import lombok.RequiredArgsConstructor; -import net.md_5.bungee.api.ChatColor; -import net.md_5.bungee.api.CommandSender; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.event.EventBus; -import net.md_5.bungee.event.EventHandler; -import org.yaml.snakeyaml.Yaml; /** * Class to manage bridging between plugin duties and implementation duties, for diff --git a/api/src/main/java/net/md_5/bungee/api/scheduler/TaskScheduler.java b/api/src/main/java/net/md_5/bungee/api/scheduler/TaskScheduler.java index a5062ebdc6..0fc79e6486 100644 --- a/api/src/main/java/net/md_5/bungee/api/scheduler/TaskScheduler.java +++ b/api/src/main/java/net/md_5/bungee/api/scheduler/TaskScheduler.java @@ -1,8 +1,9 @@ package net.md_5.bungee.api.scheduler; -import java.util.concurrent.TimeUnit; import net.md_5.bungee.api.plugin.Plugin; +import java.util.concurrent.TimeUnit; + /** * This interface represents a scheduler which may be used to queue, delay and * execute tasks in an asynchronous fashion. diff --git a/api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java b/api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java index de82b24756..71305ae4a3 100644 --- a/api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java +++ b/api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java @@ -1,12 +1,13 @@ package net.md_5.bungee.api.score; import com.google.common.base.Preconditions; +import lombok.Data; +import lombok.NoArgsConstructor; + import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import lombok.Data; -import lombok.NoArgsConstructor; @Data @NoArgsConstructor diff --git a/api/src/main/java/net/md_5/bungee/api/score/Team.java b/api/src/main/java/net/md_5/bungee/api/score/Team.java index 3b9b0c892a..a738f0dd90 100644 --- a/api/src/main/java/net/md_5/bungee/api/score/Team.java +++ b/api/src/main/java/net/md_5/bungee/api/score/Team.java @@ -1,11 +1,12 @@ package net.md_5.bungee.api.score; +import lombok.Data; +import lombok.NonNull; + import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import lombok.Data; -import lombok.NonNull; @Data public class Team diff --git a/bootstrap/src/main/java/net/md_5/bungee/Bootstrap.java b/bootstrap/src/main/java/net/md_5/bungee/Bootstrap.java index 94eade5904..e7eba4f6b5 100644 --- a/bootstrap/src/main/java/net/md_5/bungee/Bootstrap.java +++ b/bootstrap/src/main/java/net/md_5/bungee/Bootstrap.java @@ -1,16 +1,17 @@ package net.md_5.bungee; -import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Calendar; -import java.util.List; -import java.util.concurrent.TimeUnit; import joptsimple.OptionParser; import joptsimple.OptionSet; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.command.ConsoleCommandSender; +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.Calendar; +import java.util.List; +import java.util.concurrent.TimeUnit; + public class Bootstrap { diff --git a/config/src/main/java/net/md_5/bungee/config/Configuration.java b/config/src/main/java/net/md_5/bungee/config/Configuration.java index 8565178692..aae5c22f33 100644 --- a/config/src/main/java/net/md_5/bungee/config/Configuration.java +++ b/config/src/main/java/net/md_5/bungee/config/Configuration.java @@ -1,13 +1,10 @@ package net.md_5.bungee.config; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; +import java.util.*; + @RequiredArgsConstructor(access = AccessLevel.PACKAGE) public final class Configuration { diff --git a/config/src/main/java/net/md_5/bungee/config/YamlConfiguration.java b/config/src/main/java/net/md_5/bungee/config/YamlConfiguration.java index c903016b16..5af2d925a9 100644 --- a/config/src/main/java/net/md_5/bungee/config/YamlConfiguration.java +++ b/config/src/main/java/net/md_5/bungee/config/YamlConfiguration.java @@ -1,17 +1,13 @@ package net.md_5.bungee.config; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; -import java.util.Map; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; +import java.io.*; +import java.util.Map; + @NoArgsConstructor(access = AccessLevel.PACKAGE) public class YamlConfiguration extends ConfigurationProvider { diff --git a/config/src/test/java/net/md_5/bungee/config/YamlConfigurationTest.java b/config/src/test/java/net/md_5/bungee/config/YamlConfigurationTest.java index 7a9de2be11..9ebada6f26 100644 --- a/config/src/test/java/net/md_5/bungee/config/YamlConfigurationTest.java +++ b/config/src/test/java/net/md_5/bungee/config/YamlConfigurationTest.java @@ -1,10 +1,11 @@ package net.md_5.bungee.config; -import java.util.List; -import java.util.Map; import org.junit.Assert; import org.junit.Test; +import java.util.List; +import java.util.Map; + public class YamlConfigurationTest { diff --git a/event/src/main/java/net/md_5/bungee/event/EventBus.java b/event/src/main/java/net/md_5/bungee/event/EventBus.java index 2afbbbd7b8..d40942c9c5 100644 --- a/event/src/main/java/net/md_5/bungee/event/EventBus.java +++ b/event/src/main/java/net/md_5/bungee/event/EventBus.java @@ -3,12 +3,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.logging.Level; diff --git a/event/src/main/java/net/md_5/bungee/event/EventHandlerMethod.java b/event/src/main/java/net/md_5/bungee/event/EventHandlerMethod.java index ad19c020c7..1e92acf56d 100644 --- a/event/src/main/java/net/md_5/bungee/event/EventHandlerMethod.java +++ b/event/src/main/java/net/md_5/bungee/event/EventHandlerMethod.java @@ -1,10 +1,11 @@ package net.md_5.bungee.event; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import lombok.AllArgsConstructor; import lombok.Getter; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + @AllArgsConstructor public class EventHandlerMethod { diff --git a/event/src/test/java/net/md_5/bungee/event/EventBusTest.java b/event/src/test/java/net/md_5/bungee/event/EventBusTest.java index 2c73767515..52ac31fd57 100644 --- a/event/src/test/java/net/md_5/bungee/event/EventBusTest.java +++ b/event/src/test/java/net/md_5/bungee/event/EventBusTest.java @@ -1,9 +1,10 @@ package net.md_5.bungee.event; -import java.util.concurrent.CountDownLatch; import org.junit.Assert; import org.junit.Test; +import java.util.concurrent.CountDownLatch; + public class EventBusTest { diff --git a/event/src/test/java/net/md_5/bungee/event/EventPriorityTest.java b/event/src/test/java/net/md_5/bungee/event/EventPriorityTest.java index 6235688627..d5849e14fc 100644 --- a/event/src/test/java/net/md_5/bungee/event/EventPriorityTest.java +++ b/event/src/test/java/net/md_5/bungee/event/EventPriorityTest.java @@ -1,9 +1,10 @@ package net.md_5.bungee.event; -import java.util.concurrent.CountDownLatch; import org.junit.Assert; import org.junit.Test; +import java.util.concurrent.CountDownLatch; + public class EventPriorityTest { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftOutput.java b/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftOutput.java index 94f6613d5d..0a458c0ccf 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftOutput.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/MinecraftOutput.java @@ -2,6 +2,7 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; + import java.nio.charset.Charset; import java.util.Arrays; diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/Protocol.java b/protocol/src/main/java/net/md_5/bungee/protocol/Protocol.java index 66fcca2a05..efdb6b7b56 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/Protocol.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/Protocol.java @@ -1,10 +1,11 @@ package net.md_5.bungee.protocol; import io.netty.buffer.ByteBuf; -import java.lang.reflect.Constructor; import net.md_5.bungee.protocol.packet.DefinedPacket; import net.md_5.bungee.protocol.skip.PacketReader; +import java.lang.reflect.Constructor; + public interface Protocol { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java b/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java index 055cfc2ee3..548e2de96e 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/Vanilla.java @@ -1,31 +1,14 @@ package net.md_5.bungee.protocol; import io.netty.buffer.ByteBuf; +import lombok.Getter; +import net.md_5.bungee.protocol.packet.*; +import net.md_5.bungee.protocol.skip.PacketReader; + import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; -import lombok.Getter; + import static net.md_5.bungee.protocol.OpCode.*; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.Packet0KeepAlive; -import net.md_5.bungee.protocol.packet.Packet1Login; -import net.md_5.bungee.protocol.packet.Packet2CEntityProperties; -import net.md_5.bungee.protocol.packet.Packet2Handshake; -import net.md_5.bungee.protocol.packet.Packet3Chat; -import net.md_5.bungee.protocol.packet.Packet9Respawn; -import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; -import net.md_5.bungee.protocol.packet.PacketCBTabComplete; -import net.md_5.bungee.protocol.packet.PacketCCSettings; -import net.md_5.bungee.protocol.packet.PacketCDClientStatus; -import net.md_5.bungee.protocol.packet.PacketCEScoreboardObjective; -import net.md_5.bungee.protocol.packet.PacketCFScoreboardScore; -import net.md_5.bungee.protocol.packet.PacketD0DisplayScoreboard; -import net.md_5.bungee.protocol.packet.PacketD1Team; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFCEncryptionResponse; -import net.md_5.bungee.protocol.packet.PacketFDEncryptionRequest; -import net.md_5.bungee.protocol.packet.PacketFEPing; -import net.md_5.bungee.protocol.packet.PacketFFKick; -import net.md_5.bungee.protocol.skip.PacketReader; public class Vanilla implements Protocol { diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java index 3903c23052..cf81095a23 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/DefinedPacket.java @@ -1,9 +1,7 @@ package net.md_5.bungee.protocol.packet; import io.netty.buffer.ByteBuf; -import lombok.Getter; import lombok.RequiredArgsConstructor; -import lombok.Setter; @RequiredArgsConstructor public abstract class DefinedPacket diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2Handshake.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2Handshake.java index adae0f1f54..d736f6aa93 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2Handshake.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/Packet2Handshake.java @@ -1,7 +1,10 @@ package net.md_5.bungee.protocol.packet; import io.netty.buffer.ByteBuf; -import lombok.*; +import lombok.EqualsAndHashCode; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; @Getter @Setter diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFAPluginMessage.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFAPluginMessage.java index d2eef89b3e..f02251b408 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFAPluginMessage.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/PacketFAPluginMessage.java @@ -2,14 +2,14 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; -import java.io.ByteArrayInputStream; -import java.io.DataInput; -import java.io.DataInputStream; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.ToString; import net.md_5.bungee.protocol.MinecraftInput; -import net.md_5.bungee.protocol.MinecraftOutput; + +import java.io.ByteArrayInputStream; +import java.io.DataInput; +import java.io.DataInputStream; @Getter @ToString diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/forge/Forge1Login.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/forge/Forge1Login.java index 96e12d2de0..2e7546f999 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/forge/Forge1Login.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/forge/Forge1Login.java @@ -1,9 +1,10 @@ package net.md_5.bungee.protocol.packet.forge; -import net.md_5.bungee.protocol.packet.*; import io.netty.buffer.ByteBuf; import lombok.EqualsAndHashCode; import lombok.ToString; +import net.md_5.bungee.protocol.packet.AbstractPacketHandler; +import net.md_5.bungee.protocol.packet.Packet1Login; @ToString @EqualsAndHashCode(callSuper = false) diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/protocolhack/PacketEncryptionRequest.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/protocolhack/PacketEncryptionRequest.java index 1fd91e11c8..8ee037fadc 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/protocolhack/PacketEncryptionRequest.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/protocolhack/PacketEncryptionRequest.java @@ -5,7 +5,6 @@ import lombok.Getter; import lombok.ToString; import net.md_5.bungee.protocol.packet.AbstractPacketHandler; -import net.md_5.bungee.protocol.packet.DefinedPacket; @Getter @ToString diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/packet/protocolhack/PacketLoginSuccess.java b/protocol/src/main/java/net/md_5/bungee/protocol/packet/protocolhack/PacketLoginSuccess.java index 42d9066241..a6aa775ca1 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/packet/protocolhack/PacketLoginSuccess.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/packet/protocolhack/PacketLoginSuccess.java @@ -2,7 +2,6 @@ import io.netty.buffer.ByteBuf; import net.md_5.bungee.protocol.packet.AbstractPacketHandler; -import net.md_5.bungee.protocol.packet.DefinedPacket; import java.util.UUID; diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/skip/PacketReader.java b/protocol/src/main/java/net/md_5/bungee/protocol/skip/PacketReader.java index a33de5aa5b..9f4d32ccd6 100644 --- a/protocol/src/main/java/net/md_5/bungee/protocol/skip/PacketReader.java +++ b/protocol/src/main/java/net/md_5/bungee/protocol/skip/PacketReader.java @@ -1,11 +1,12 @@ package net.md_5.bungee.protocol.skip; import io.netty.buffer.ByteBuf; -import java.util.ArrayList; -import java.util.List; import net.md_5.bungee.protocol.OpCode; import net.md_5.bungee.protocol.Protocol; +import java.util.ArrayList; +import java.util.List; + public class PacketReader { diff --git a/protocol/src/test/java/net/md_5/bungee/protocol/PacketTest.java b/protocol/src/test/java/net/md_5/bungee/protocol/PacketTest.java index f1596308cf..48961b18c7 100644 --- a/protocol/src/test/java/net/md_5/bungee/protocol/PacketTest.java +++ b/protocol/src/test/java/net/md_5/bungee/protocol/PacketTest.java @@ -1,12 +1,13 @@ package net.md_5.bungee.protocol; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; import net.md_5.bungee.protocol.packet.AbstractPacketHandler; import net.md_5.bungee.protocol.packet.DefinedPacket; import org.junit.Assert; import org.junit.Test; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; + public class PacketTest { diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java index d41a0947f1..4b178c60ee 100644 --- a/proxy/src/main/java/net/md_5/bungee/BungeeCord.java +++ b/proxy/src/main/java/net/md_5/bungee/BungeeCord.java @@ -1,48 +1,19 @@ package net.md_5.bungee; import com.google.common.io.ByteStreams; -import net.md_5.bungee.log.BungeeLogger; -import net.md_5.bungee.reconnect.YamlReconnectHandler; -import net.md_5.bungee.scheduler.BungeeScheduler; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.gson.Gson; import io.netty.bootstrap.ServerBootstrap; -import io.netty.channel.Channel; -import io.netty.channel.ChannelException; -import io.netty.channel.ChannelFuture; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.MultithreadEventLoopGroup; +import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.util.ResourceLeakDetector; -import net.md_5.bungee.config.Configuration; -import java.io.File; -import java.io.IOException; -import java.io.PrintStream; -import java.net.InetSocketAddress; -import java.text.MessageFormat; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Map; -import java.util.MissingResourceException; -import java.util.ResourceBundle; -import java.util.Timer; -import java.util.TimerTask; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; -import java.util.logging.Level; -import java.util.logging.Logger; import jline.UnsupportedTerminal; import jline.console.ConsoleReader; import jline.internal.Log; import lombok.Getter; import lombok.Setter; import lombok.Synchronized; -import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.ReconnectHandler; @@ -54,18 +25,34 @@ import net.md_5.bungee.api.plugin.PluginManager; import net.md_5.bungee.api.tab.CustomTabList; import net.md_5.bungee.command.*; +import net.md_5.bungee.config.Configuration; import net.md_5.bungee.config.YamlConfig; +import net.md_5.bungee.log.BungeeLogger; import net.md_5.bungee.log.LoggingOutputStream; import net.md_5.bungee.netty.PipelineUtils; +import net.md_5.bungee.protocol.Vanilla; import net.md_5.bungee.protocol.packet.DefinedPacket; import net.md_5.bungee.protocol.packet.Packet3Chat; import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.Vanilla; import net.md_5.bungee.query.RemoteQuery; +import net.md_5.bungee.reconnect.YamlReconnectHandler; +import net.md_5.bungee.scheduler.BungeeScheduler; import net.md_5.bungee.tab.Custom; import net.md_5.bungee.util.CaseInsensitiveMap; import org.fusesource.jansi.AnsiConsole; +import java.io.File; +import java.io.IOException; +import java.io.PrintStream; +import java.net.InetSocketAddress; +import java.text.MessageFormat; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.logging.Level; +import java.util.logging.Logger; + /** * Main BungeeCord proxy class. */ diff --git a/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java b/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java index 08346c9363..a601823bcb 100644 --- a/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java +++ b/proxy/src/main/java/net/md_5/bungee/BungeeServerInfo.java @@ -6,13 +6,6 @@ import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelOption; import io.netty.channel.socket.nio.NioSocketChannel; -import java.net.InetSocketAddress; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.Objects; -import java.util.Queue; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Synchronized; @@ -28,6 +21,9 @@ import net.md_5.bungee.protocol.packet.DefinedPacket; import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; +import java.net.InetSocketAddress; +import java.util.*; + @RequiredArgsConstructor public class BungeeServerInfo implements ServerInfo { diff --git a/proxy/src/main/java/net/md_5/bungee/ConnectionThrottle.java b/proxy/src/main/java/net/md_5/bungee/ConnectionThrottle.java index ae9a7ebe81..59080adab4 100644 --- a/proxy/src/main/java/net/md_5/bungee/ConnectionThrottle.java +++ b/proxy/src/main/java/net/md_5/bungee/ConnectionThrottle.java @@ -1,9 +1,10 @@ package net.md_5.bungee; +import lombok.RequiredArgsConstructor; + import java.net.InetAddress; import java.util.HashMap; import java.util.Map; -import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class ConnectionThrottle diff --git a/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java b/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java index 1bd27c0384..7d5200291e 100644 --- a/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java +++ b/proxy/src/main/java/net/md_5/bungee/EncryptionUtil.java @@ -1,26 +1,20 @@ package net.md_5.bungee; -import java.security.GeneralSecurityException; -import java.security.Key; -import java.security.KeyFactory; -import java.security.KeyPair; -import java.security.KeyPairGenerator; -import java.security.NoSuchAlgorithmException; -import java.security.PublicKey; -import java.security.spec.X509EncodedKeySpec; -import java.util.Arrays; -import java.util.Random; -import javax.crypto.Cipher; -import javax.crypto.SecretKey; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; import lombok.Getter; -import net.md_5.bungee.netty.encoders.CipherEncoder; import net.md_5.bungee.protocol.packet.PacketFCEncryptionResponse; import net.md_5.bungee.protocol.packet.PacketFDEncryptionRequest; import net.md_5.bungee.protocol.packet.protocolhack.PacketEncryptionRequest; import net.md_5.bungee.protocol.packet.protocolhack.PacketEncryptionResponse; +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; +import java.security.*; +import java.security.spec.X509EncodedKeySpec; +import java.util.Arrays; +import java.util.Random; + /** * Class containing all encryption related methods for the proxy. */ diff --git a/proxy/src/main/java/net/md_5/bungee/Metrics.java b/proxy/src/main/java/net/md_5/bungee/Metrics.java index 77c8828b64..55dfc2fc7f 100644 --- a/proxy/src/main/java/net/md_5/bungee/Metrics.java +++ b/proxy/src/main/java/net/md_5/bungee/Metrics.java @@ -1,15 +1,12 @@ package net.md_5.bungee; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; +import net.md_5.bungee.api.ProxyServer; + +import java.io.*; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.TimerTask; -import net.md_5.bungee.api.ProxyServer; public class Metrics extends TimerTask { diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnection.java b/proxy/src/main/java/net/md_5/bungee/ServerConnection.java index 555b0ff4de..0146efd9d0 100644 --- a/proxy/src/main/java/net/md_5/bungee/ServerConnection.java +++ b/proxy/src/main/java/net/md_5/bungee/ServerConnection.java @@ -1,7 +1,5 @@ package net.md_5.bungee; -import java.net.InetSocketAddress; -import java.util.concurrent.TimeUnit; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; @@ -11,6 +9,9 @@ import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; import net.md_5.bungee.protocol.packet.PacketFFKick; +import java.net.InetSocketAddress; +import java.util.concurrent.TimeUnit; + @RequiredArgsConstructor public class ServerConnection implements Server { diff --git a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java index b27bb24bd1..f3b367f9fa 100644 --- a/proxy/src/main/java/net/md_5/bungee/ServerConnector.java +++ b/proxy/src/main/java/net/md_5/bungee/ServerConnector.java @@ -3,12 +3,6 @@ import com.google.common.base.Preconditions; import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; -import java.io.DataInput; -import java.security.PublicKey; -import java.util.Objects; -import java.util.Queue; -import javax.crypto.Cipher; -import javax.crypto.SecretKey; import lombok.RequiredArgsConstructor; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ProxyServer; @@ -21,26 +15,25 @@ import net.md_5.bungee.api.score.Team; import net.md_5.bungee.connection.CancelSendSignal; import net.md_5.bungee.connection.DownstreamBridge; -import net.md_5.bungee.netty.HandlerBoss; import net.md_5.bungee.netty.ChannelWrapper; -import net.md_5.bungee.netty.decoders.CipherDecoder; -import net.md_5.bungee.netty.encoders.CipherEncoder; -import net.md_5.bungee.netty.decoders.PacketDecoder; +import net.md_5.bungee.netty.HandlerBoss; import net.md_5.bungee.netty.PacketHandler; import net.md_5.bungee.netty.PipelineUtils; +import net.md_5.bungee.netty.decoders.CipherDecoder; +import net.md_5.bungee.netty.decoders.PacketDecoder; +import net.md_5.bungee.netty.encoders.CipherEncoder; import net.md_5.bungee.protocol.Forge; import net.md_5.bungee.protocol.MinecraftOutput; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.Packet1Login; -import net.md_5.bungee.protocol.packet.Packet9Respawn; -import net.md_5.bungee.protocol.packet.PacketCEScoreboardObjective; -import net.md_5.bungee.protocol.packet.PacketD1Team; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFCEncryptionResponse; -import net.md_5.bungee.protocol.packet.PacketFDEncryptionRequest; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.packet.*; import net.md_5.bungee.protocol.packet.forge.Forge1Login; +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import java.io.DataInput; +import java.security.PublicKey; +import java.util.Objects; +import java.util.Queue; + @RequiredArgsConstructor public class ServerConnector extends PacketHandler { diff --git a/proxy/src/main/java/net/md_5/bungee/UserConnection.java b/proxy/src/main/java/net/md_5/bungee/UserConnection.java index 8ac38a86af..7f040ec7c5 100644 --- a/proxy/src/main/java/net/md_5/bungee/UserConnection.java +++ b/proxy/src/main/java/net/md_5/bungee/UserConnection.java @@ -2,24 +2,13 @@ import com.google.common.base.Preconditions; import io.netty.bootstrap.Bootstrap; -import io.netty.channel.Channel; -import io.netty.channel.ChannelFuture; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelInitializer; -import io.netty.channel.ChannelOption; +import io.netty.channel.*; import io.netty.channel.socket.nio.NioSocketChannel; import io.netty.util.internal.PlatformDependent; -import java.net.InetSocketAddress; -import java.util.Collection; -import java.util.Collections; -import java.util.HashSet; -import java.util.Objects; -import java.util.logging.Level; import lombok.Getter; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.Setter; -import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; @@ -32,13 +21,16 @@ import net.md_5.bungee.netty.HandlerBoss; import net.md_5.bungee.netty.PacketWrapper; import net.md_5.bungee.netty.PipelineUtils; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.Packet3Chat; -import net.md_5.bungee.protocol.packet.PacketCCSettings; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.packet.*; import net.md_5.bungee.util.CaseInsensitiveSet; +import java.net.InetSocketAddress; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.Objects; +import java.util.logging.Level; + @RequiredArgsConstructor public final class UserConnection implements ProxiedPlayer { diff --git a/proxy/src/main/java/net/md_5/bungee/Util.java b/proxy/src/main/java/net/md_5/bungee/Util.java index b42808f825..4ee12740b0 100644 --- a/proxy/src/main/java/net/md_5/bungee/Util.java +++ b/proxy/src/main/java/net/md_5/bungee/Util.java @@ -1,7 +1,6 @@ package net.md_5.bungee; import java.net.InetSocketAddress; -import java.util.Collection; /** * Series of utility classes to perform various operations. diff --git a/proxy/src/main/java/net/md_5/bungee/command/CommandAlert.java b/proxy/src/main/java/net/md_5/bungee/command/CommandAlert.java index 1ccae73b2c..37860db1b5 100644 --- a/proxy/src/main/java/net/md_5/bungee/command/CommandAlert.java +++ b/proxy/src/main/java/net/md_5/bungee/command/CommandAlert.java @@ -3,7 +3,6 @@ import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Command; public class CommandAlert extends Command diff --git a/proxy/src/main/java/net/md_5/bungee/command/CommandFind.java b/proxy/src/main/java/net/md_5/bungee/command/CommandFind.java index e6bd2b2f2c..66dbc6ca5c 100644 --- a/proxy/src/main/java/net/md_5/bungee/command/CommandFind.java +++ b/proxy/src/main/java/net/md_5/bungee/command/CommandFind.java @@ -1,11 +1,12 @@ package net.md_5.bungee.command; -import java.util.Collections; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.connection.ProxiedPlayer; +import java.util.Collections; + public class CommandFind extends PlayerCommand { diff --git a/proxy/src/main/java/net/md_5/bungee/command/CommandList.java b/proxy/src/main/java/net/md_5/bungee/command/CommandList.java index ae65f9dffc..d5bb93e9b9 100644 --- a/proxy/src/main/java/net/md_5/bungee/command/CommandList.java +++ b/proxy/src/main/java/net/md_5/bungee/command/CommandList.java @@ -1,8 +1,5 @@ package net.md_5.bungee.command; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; import net.md_5.bungee.Util; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; @@ -11,6 +8,10 @@ import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.plugin.Command; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + /** * Command to list all players connected to the proxy. */ diff --git a/proxy/src/main/java/net/md_5/bungee/command/CommandPerms.java b/proxy/src/main/java/net/md_5/bungee/command/CommandPerms.java index 610825ca8c..d0353d4d98 100644 --- a/proxy/src/main/java/net/md_5/bungee/command/CommandPerms.java +++ b/proxy/src/main/java/net/md_5/bungee/command/CommandPerms.java @@ -1,13 +1,14 @@ package net.md_5.bungee.command; -import java.util.HashSet; -import java.util.Set; import net.md_5.bungee.Util; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.plugin.Command; +import java.util.HashSet; +import java.util.Set; + public class CommandPerms extends Command { diff --git a/proxy/src/main/java/net/md_5/bungee/command/CommandServer.java b/proxy/src/main/java/net/md_5/bungee/command/CommandServer.java index 5ee09a3703..840f642deb 100644 --- a/proxy/src/main/java/net/md_5/bungee/command/CommandServer.java +++ b/proxy/src/main/java/net/md_5/bungee/command/CommandServer.java @@ -3,8 +3,6 @@ import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; -import java.util.Collections; -import java.util.Map; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.config.ServerInfo; @@ -12,6 +10,9 @@ import net.md_5.bungee.api.plugin.Command; import net.md_5.bungee.api.plugin.TabExecutor; +import java.util.Collections; +import java.util.Map; + /** * Command to list and switch a player between available servers. */ diff --git a/proxy/src/main/java/net/md_5/bungee/command/ConsoleCommandSender.java b/proxy/src/main/java/net/md_5/bungee/command/ConsoleCommandSender.java index 65a2505a1b..7d464de5e1 100644 --- a/proxy/src/main/java/net/md_5/bungee/command/ConsoleCommandSender.java +++ b/proxy/src/main/java/net/md_5/bungee/command/ConsoleCommandSender.java @@ -1,11 +1,12 @@ package net.md_5.bungee.command; -import java.util.Collection; -import java.util.Collections; import lombok.Getter; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; +import java.util.Collection; +import java.util.Collections; + /** * Command sender representing the proxy console. */ diff --git a/proxy/src/main/java/net/md_5/bungee/config/Configuration.java b/proxy/src/main/java/net/md_5/bungee/config/Configuration.java index 002865d4ec..532b96a7e9 100644 --- a/proxy/src/main/java/net/md_5/bungee/config/Configuration.java +++ b/proxy/src/main/java/net/md_5/bungee/config/Configuration.java @@ -4,6 +4,13 @@ import com.google.common.io.BaseEncoding; import com.google.common.io.Files; import gnu.trove.map.TMap; +import lombok.Getter; +import net.md_5.bungee.api.ProxyServer; +import net.md_5.bungee.api.config.ConfigurationAdapter; +import net.md_5.bungee.api.config.ListenerInfo; +import net.md_5.bungee.api.config.ServerInfo; +import net.md_5.bungee.util.CaseInsensitiveMap; +import net.md_5.bungee.util.CaseInsensitiveSet; import java.io.File; import java.io.IOException; @@ -13,14 +20,6 @@ import java.util.UUID; import java.util.logging.Level; -import lombok.Getter; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.config.ConfigurationAdapter; -import net.md_5.bungee.api.config.ListenerInfo; -import net.md_5.bungee.api.config.ServerInfo; -import net.md_5.bungee.util.CaseInsensitiveMap; -import net.md_5.bungee.util.CaseInsensitiveSet; - /** * Core configuration for the proxy. */ diff --git a/proxy/src/main/java/net/md_5/bungee/config/YamlConfig.java b/proxy/src/main/java/net/md_5/bungee/config/YamlConfig.java index 846ad01fdf..cc14324e22 100644 --- a/proxy/src/main/java/net/md_5/bungee/config/YamlConfig.java +++ b/proxy/src/main/java/net/md_5/bungee/config/YamlConfig.java @@ -1,19 +1,5 @@ package net.md_5.bungee.config; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; -import java.net.InetSocketAddress; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.logging.Level; import lombok.RequiredArgsConstructor; import net.md_5.bungee.Util; import net.md_5.bungee.api.ChatColor; @@ -29,6 +15,11 @@ import org.yaml.snakeyaml.DumperOptions; import org.yaml.snakeyaml.Yaml; +import java.io.*; +import java.net.InetSocketAddress; +import java.util.*; +import java.util.logging.Level; + public class YamlConfig implements ConfigurationAdapter { diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java index 2cd8f4302b..085c90051b 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java @@ -2,35 +2,28 @@ import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteStreams; -import java.io.DataInput; -import java.util.Objects; +import com.google.gson.JsonParser; import lombok.RequiredArgsConstructor; import net.md_5.bungee.EntityMap; import net.md_5.bungee.ServerConnection; -import net.md_5.bungee.api.event.ServerDisconnectEvent; import net.md_5.bungee.UserConnection; import net.md_5.bungee.Util; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.event.PluginMessageEvent; +import net.md_5.bungee.api.event.ServerDisconnectEvent; import net.md_5.bungee.api.event.ServerKickEvent; -import net.md_5.bungee.api.score.Objective; -import net.md_5.bungee.api.score.Position; -import net.md_5.bungee.api.score.Score; -import net.md_5.bungee.api.score.Scoreboard; -import net.md_5.bungee.api.score.Team; +import net.md_5.bungee.api.score.*; import net.md_5.bungee.netty.ChannelWrapper; import net.md_5.bungee.netty.PacketHandler; +import net.md_5.bungee.netty.PacketMapping; import net.md_5.bungee.netty.PacketWrapper; -import net.md_5.bungee.protocol.packet.Packet0KeepAlive; -import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; -import net.md_5.bungee.protocol.packet.PacketCEScoreboardObjective; -import net.md_5.bungee.protocol.packet.PacketCFScoreboardScore; -import net.md_5.bungee.protocol.packet.PacketD0DisplayScoreboard; -import net.md_5.bungee.protocol.packet.PacketD1Team; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFFKick; +import net.md_5.bungee.protocol.packet.*; +import net.md_5.bungee.util.ChatConverter; + +import java.io.DataInput; +import java.util.Objects; @RequiredArgsConstructor public class DownstreamBridge extends PacketHandler @@ -39,6 +32,7 @@ public class DownstreamBridge extends PacketHandler private final ProxyServer bungee; private final UserConnection con; private final ServerConnection server; + private final JsonParser JSON_PARSER = new JsonParser(); @Override public void exception(Throwable t) throws Exception @@ -74,6 +68,19 @@ public void disconnected(ChannelWrapper channel) throws Exception bungee.getPluginManager().callEvent( serverDisconnectEvent ); } + @Override + public void handle(Packet3Chat chat) throws Exception { + if ( con.getProtocolVersion() >= PacketMapping.supported17Start ) + { + for ( Packet3Chat c : ChatConverter.fixJSONChat( JSON_PARSER.parse( chat.getMessage() ).getAsJsonObject() ) ) + { + con.unsafe().sendPacket( c ); + } + } + + throw new CancelSendSignal(); + } + @Override public void handle(PacketWrapper packet) throws Exception { diff --git a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java index 84e7c6943a..788d3c2a5b 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/InitialHandler.java @@ -2,30 +2,10 @@ import com.google.common.base.Preconditions; import io.netty.util.concurrent.ScheduledFuture; -import java.math.BigInteger; -import java.net.InetSocketAddress; -import java.net.URLEncoder; -import java.security.GeneralSecurityException; -import java.security.MessageDigest; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; -import java.util.logging.Level; -import javax.crypto.Cipher; -import javax.crypto.SecretKey; import lombok.Getter; import lombok.RequiredArgsConstructor; -import net.md_5.bungee.BungeeCord; -import net.md_5.bungee.EncryptionUtil; -import net.md_5.bungee.PacketConstants; -import net.md_5.bungee.UserConnection; -import net.md_5.bungee.Util; -import net.md_5.bungee.api.AbstractReconnectHandler; -import net.md_5.bungee.api.Callback; -import net.md_5.bungee.api.ChatColor; -import net.md_5.bungee.api.NewServerPing; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.ServerPing; +import net.md_5.bungee.*; +import net.md_5.bungee.api.*; import net.md_5.bungee.api.config.ListenerInfo; import net.md_5.bungee.api.config.ServerInfo; import net.md_5.bungee.api.connection.PendingConnection; @@ -41,24 +21,20 @@ import net.md_5.bungee.netty.encoders.CipherEncoder; import net.md_5.bungee.protocol.Forge; import net.md_5.bungee.protocol.MinecraftInput; -import net.md_5.bungee.protocol.Vanilla; -import net.md_5.bungee.protocol.packet.DefinedPacket; -import net.md_5.bungee.protocol.packet.Packet1Login; -import net.md_5.bungee.protocol.packet.Packet2Handshake; -import net.md_5.bungee.protocol.packet.PacketCDClientStatus; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; -import net.md_5.bungee.protocol.packet.PacketFCEncryptionResponse; -import net.md_5.bungee.protocol.packet.PacketFDEncryptionRequest; -import net.md_5.bungee.protocol.packet.PacketFEPing; -import net.md_5.bungee.protocol.packet.PacketFFKick; -import net.md_5.bungee.protocol.packet.protocolhack.PacketEncryptionRequest; -import net.md_5.bungee.protocol.packet.protocolhack.PacketEncryptionResponse; -import net.md_5.bungee.protocol.packet.protocolhack.PacketHandshake; -import net.md_5.bungee.protocol.packet.protocolhack.PacketLoginStart; -import net.md_5.bungee.protocol.packet.protocolhack.PacketLoginSuccess; -import net.md_5.bungee.protocol.packet.protocolhack.PacketPing; -import net.md_5.bungee.protocol.packet.protocolhack.PacketPingRequest; -import net.md_5.bungee.protocol.packet.protocolhack.PacketPingResponse; +import net.md_5.bungee.protocol.packet.*; +import net.md_5.bungee.protocol.packet.protocolhack.*; + +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import java.math.BigInteger; +import java.net.InetSocketAddress; +import java.net.URLEncoder; +import java.security.GeneralSecurityException; +import java.security.MessageDigest; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; @RequiredArgsConstructor public class InitialHandler extends PacketHandler implements PendingConnection diff --git a/proxy/src/main/java/net/md_5/bungee/connection/PingHandler.java b/proxy/src/main/java/net/md_5/bungee/connection/PingHandler.java index 20b5abef57..58798ea753 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/PingHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/PingHandler.java @@ -1,6 +1,5 @@ package net.md_5.bungee.connection; -import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import lombok.RequiredArgsConstructor; import net.md_5.bungee.api.Callback; diff --git a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java index 69a3b14a15..4a886516bb 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/UpstreamBridge.java @@ -11,11 +11,8 @@ import net.md_5.bungee.netty.ChannelWrapper; import net.md_5.bungee.netty.PacketHandler; import net.md_5.bungee.netty.PacketWrapper; -import net.md_5.bungee.protocol.packet.Packet0KeepAlive; -import net.md_5.bungee.protocol.packet.Packet3Chat; -import net.md_5.bungee.protocol.packet.PacketCBTabComplete; -import net.md_5.bungee.protocol.packet.PacketCCSettings; -import net.md_5.bungee.protocol.packet.PacketFAPluginMessage; +import net.md_5.bungee.protocol.packet.*; + import java.util.ArrayList; import java.util.List; diff --git a/proxy/src/main/java/net/md_5/bungee/http/HttpClient.java b/proxy/src/main/java/net/md_5/bungee/http/HttpClient.java index 740e671635..436c4d0f59 100644 --- a/proxy/src/main/java/net/md_5/bungee/http/HttpClient.java +++ b/proxy/src/main/java/net/md_5/bungee/http/HttpClient.java @@ -6,18 +6,14 @@ import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoop; -import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioSocketChannel; -import io.netty.handler.codec.http.DefaultHttpRequest; -import io.netty.handler.codec.http.HttpHeaders; -import io.netty.handler.codec.http.HttpMethod; -import io.netty.handler.codec.http.HttpRequest; -import io.netty.handler.codec.http.HttpVersion; -import java.net.URI; +import io.netty.handler.codec.http.*; import lombok.AccessLevel; import lombok.NoArgsConstructor; import net.md_5.bungee.api.Callback; +import java.net.URI; + @NoArgsConstructor(access = AccessLevel.PRIVATE) public class HttpClient { diff --git a/proxy/src/main/java/net/md_5/bungee/http/HttpHandler.java b/proxy/src/main/java/net/md_5/bungee/http/HttpHandler.java index fd486e04a8..1502b4e09a 100644 --- a/proxy/src/main/java/net/md_5/bungee/http/HttpHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/http/HttpHandler.java @@ -5,12 +5,12 @@ import io.netty.handler.codec.http.HttpContent; import io.netty.handler.codec.http.HttpObject; import io.netty.handler.codec.http.HttpResponse; -import io.netty.handler.codec.http.HttpResponseStatus; import io.netty.handler.codec.http.LastHttpContent; -import java.nio.charset.Charset; import lombok.RequiredArgsConstructor; import net.md_5.bungee.api.Callback; +import java.nio.charset.Charset; + @RequiredArgsConstructor public class HttpHandler extends SimpleChannelInboundHandler { diff --git a/proxy/src/main/java/net/md_5/bungee/http/HttpInitializer.java b/proxy/src/main/java/net/md_5/bungee/http/HttpInitializer.java index 327bf89d32..a30cbc2623 100644 --- a/proxy/src/main/java/net/md_5/bungee/http/HttpInitializer.java +++ b/proxy/src/main/java/net/md_5/bungee/http/HttpInitializer.java @@ -5,12 +5,13 @@ import io.netty.handler.codec.http.HttpClientCodec; import io.netty.handler.ssl.SslHandler; import io.netty.handler.timeout.ReadTimeoutHandler; -import java.util.concurrent.TimeUnit; +import lombok.RequiredArgsConstructor; +import net.md_5.bungee.api.Callback; + import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; import javax.net.ssl.TrustManager; -import lombok.RequiredArgsConstructor; -import net.md_5.bungee.api.Callback; +import java.util.concurrent.TimeUnit; @RequiredArgsConstructor public class HttpInitializer extends ChannelInitializer diff --git a/proxy/src/main/java/net/md_5/bungee/http/TrustingX509Manager.java b/proxy/src/main/java/net/md_5/bungee/http/TrustingX509Manager.java index d0dfa65493..32e8d32aa6 100644 --- a/proxy/src/main/java/net/md_5/bungee/http/TrustingX509Manager.java +++ b/proxy/src/main/java/net/md_5/bungee/http/TrustingX509Manager.java @@ -1,12 +1,13 @@ package net.md_5.bungee.http; -import java.security.cert.CertificateException; -import java.security.cert.X509Certificate; -import javax.net.ssl.X509TrustManager; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; +import javax.net.ssl.X509TrustManager; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; + @NoArgsConstructor(access = AccessLevel.PRIVATE) public class TrustingX509Manager implements X509TrustManager { diff --git a/proxy/src/main/java/net/md_5/bungee/log/BungeeLogger.java b/proxy/src/main/java/net/md_5/bungee/log/BungeeLogger.java index fa8c508cb1..b421387a88 100644 --- a/proxy/src/main/java/net/md_5/bungee/log/BungeeLogger.java +++ b/proxy/src/main/java/net/md_5/bungee/log/BungeeLogger.java @@ -1,11 +1,12 @@ package net.md_5.bungee.log; +import net.md_5.bungee.BungeeCord; + import java.io.IOException; import java.util.logging.FileHandler; import java.util.logging.Formatter; import java.util.logging.LogRecord; import java.util.logging.Logger; -import net.md_5.bungee.BungeeCord; public class BungeeLogger extends Logger { diff --git a/proxy/src/main/java/net/md_5/bungee/log/ColouredWriter.java b/proxy/src/main/java/net/md_5/bungee/log/ColouredWriter.java index 9d2ead4da8..2d71ffe6f7 100644 --- a/proxy/src/main/java/net/md_5/bungee/log/ColouredWriter.java +++ b/proxy/src/main/java/net/md_5/bungee/log/ColouredWriter.java @@ -1,12 +1,13 @@ package net.md_5.bungee.log; -import java.io.IOException; -import java.util.EnumMap; -import java.util.Map; import jline.console.ConsoleReader; import net.md_5.bungee.api.ChatColor; import org.fusesource.jansi.Ansi; +import java.io.IOException; +import java.util.EnumMap; +import java.util.Map; + public class ColouredWriter { diff --git a/proxy/src/main/java/net/md_5/bungee/log/LoggingOutputStream.java b/proxy/src/main/java/net/md_5/bungee/log/LoggingOutputStream.java index f78298cdde..afed33328e 100644 --- a/proxy/src/main/java/net/md_5/bungee/log/LoggingOutputStream.java +++ b/proxy/src/main/java/net/md_5/bungee/log/LoggingOutputStream.java @@ -1,10 +1,11 @@ package net.md_5.bungee.log; +import lombok.RequiredArgsConstructor; + import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; -import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class LoggingOutputStream extends ByteArrayOutputStream diff --git a/proxy/src/main/java/net/md_5/bungee/netty/CipherBase.java b/proxy/src/main/java/net/md_5/bungee/netty/CipherBase.java index 32d6dc1a32..0e29c4ee3d 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/CipherBase.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/CipherBase.java @@ -2,12 +2,13 @@ import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; -import javax.crypto.Cipher; -import javax.crypto.ShortBufferException; import lombok.AccessLevel; import lombok.NonNull; import lombok.RequiredArgsConstructor; +import javax.crypto.Cipher; +import javax.crypto.ShortBufferException; + /** * Class to expose an * {@link #cipher(io.netty.buffer.ByteBuf, io.netty.buffer.ByteBuf)} method to diff --git a/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java b/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java index d3a59eef70..bf3efb7bbf 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/HandlerBoss.java @@ -4,14 +4,15 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.handler.timeout.ReadTimeoutException; -import java.io.IOException; -import java.util.logging.Level; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.connection.CancelSendSignal; import net.md_5.bungee.connection.InitialHandler; import net.md_5.bungee.connection.PingHandler; import net.md_5.bungee.protocol.BadPacketException; +import java.io.IOException; +import java.util.logging.Level; + /** * This class is a primitive wrapper for {@link PacketHandler} instances tied to * channels to maintain simple states, and only call the required, adapted diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java index 33c8fef673..0ec0310e27 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java @@ -6,19 +6,20 @@ import io.netty.channel.ChannelOption; import io.netty.handler.timeout.ReadTimeoutHandler; import io.netty.util.AttributeKey; -import java.net.InetSocketAddress; -import java.util.concurrent.TimeUnit; import net.md_5.bungee.BungeeCord; import net.md_5.bungee.BungeeServerInfo; import net.md_5.bungee.UserConnection; -import net.md_5.bungee.connection.InitialHandler; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.config.ListenerInfo; +import net.md_5.bungee.connection.InitialHandler; import net.md_5.bungee.netty.decoders.DetectingDecoder; import net.md_5.bungee.netty.decoders.PacketDecoder; import net.md_5.bungee.netty.encoders.DefinedPacketEncoder; import net.md_5.bungee.protocol.Vanilla; +import java.net.InetSocketAddress; +import java.util.concurrent.TimeUnit; + public class PipelineUtils { diff --git a/proxy/src/main/java/net/md_5/bungee/netty/decoders/CipherDecoder.java b/proxy/src/main/java/net/md_5/bungee/netty/decoders/CipherDecoder.java index 6aa43d6e2e..314bc35824 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/decoders/CipherDecoder.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/decoders/CipherDecoder.java @@ -5,8 +5,8 @@ import io.netty.handler.codec.MessageToMessageDecoder; import net.md_5.bungee.netty.CipherBase; -import java.util.List; import javax.crypto.Cipher; +import java.util.List; public class CipherDecoder extends MessageToMessageDecoder { diff --git a/proxy/src/main/java/net/md_5/bungee/netty/decoders/PacketDecoder.java b/proxy/src/main/java/net/md_5/bungee/netty/decoders/PacketDecoder.java index c0b7b91114..a2fbd96a55 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/decoders/PacketDecoder.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/decoders/PacketDecoder.java @@ -3,14 +3,17 @@ import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ReplayingDecoder; -import java.util.List; - -import lombok.*; +import lombok.Getter; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import lombok.Setter; import net.md_5.bungee.netty.PacketWrapper; import net.md_5.bungee.protocol.Protocol; import net.md_5.bungee.protocol.packet.DefinedPacket; import net.md_5.bungee.protocol.skip.PacketReader; +import java.util.List; + /** * This class will attempt to read a packet from {@link PacketReader}, with the * specified {@link #protocol} before returning a new {@link ByteBuf} with the diff --git a/proxy/src/main/java/net/md_5/bungee/netty/decoders/PacketTranslatorDecoder.java b/proxy/src/main/java/net/md_5/bungee/netty/decoders/PacketTranslatorDecoder.java index a43411e6d4..c7f9acb6ae 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/decoders/PacketTranslatorDecoder.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/decoders/PacketTranslatorDecoder.java @@ -4,10 +4,8 @@ import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageDecoder; -import io.netty.handler.codec.MessageToByteEncoder; import lombok.Getter; import lombok.Setter; -import net.md_5.bungee.connection.CancelSendSignal; import net.md_5.bungee.netty.PacketMapping; import net.md_5.bungee.netty.PacketWrapper; import net.md_5.bungee.netty.Var; diff --git a/proxy/src/main/java/net/md_5/bungee/netty/encoders/Varint21LengthFieldPrepender.java b/proxy/src/main/java/net/md_5/bungee/netty/encoders/Varint21LengthFieldPrepender.java index ec659b2f23..0e248cbe60 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/encoders/Varint21LengthFieldPrepender.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/encoders/Varint21LengthFieldPrepender.java @@ -1,11 +1,10 @@ package net.md_5.bungee.netty.encoders; import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; -import io.netty.channel.ChannelHandler; import net.md_5.bungee.netty.Var; -import net.md_5.bungee.protocol.packet.DefinedPacket; @ChannelHandler.Sharable public class Varint21LengthFieldPrepender extends MessageToByteEncoder diff --git a/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/ChatMessageRewriter.java b/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/ChatMessageRewriter.java index 439fc740f4..27b2602afc 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/ChatMessageRewriter.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/ChatMessageRewriter.java @@ -1,14 +1,10 @@ package net.md_5.bungee.netty.packetrewriter; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; import io.netty.buffer.ByteBuf; import net.md_5.bungee.netty.Var; public class ChatMessageRewriter extends PacketRewriter { - JsonParser jsonParser = new JsonParser(); @Override public void rewriteClientToServer(ByteBuf in, ByteBuf out) { @@ -20,12 +16,6 @@ public void rewriteClientToServer(ByteBuf in, ByteBuf out) public void rewriteServerToClient(ByteBuf in, ByteBuf out) { String message = Var.readString( in, false ); - JsonObject jObj = jsonParser.parse(message).getAsJsonObject(); - if ( jObj.has( "using" ) ) { - JsonElement element = jObj.get( "using" ); - jObj.remove( "using" ); - jObj.add( "with", element ); - } - Var.writeString( jObj.toString(), out, true ); + Var.writeString( message, out, true ); } } diff --git a/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/PluginMessageRewriter.java b/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/PluginMessageRewriter.java index 8190782183..4f3163e5ee 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/PluginMessageRewriter.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/PluginMessageRewriter.java @@ -3,8 +3,6 @@ import io.netty.buffer.ByteBuf; import net.md_5.bungee.netty.Var; -import java.nio.charset.Charset; - public class PluginMessageRewriter extends PacketRewriter { diff --git a/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/SpawnPlayerRewriter.java b/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/SpawnPlayerRewriter.java index b70fb5a2cd..11a0aa0486 100644 --- a/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/SpawnPlayerRewriter.java +++ b/proxy/src/main/java/net/md_5/bungee/netty/packetrewriter/SpawnPlayerRewriter.java @@ -3,8 +3,6 @@ import io.netty.buffer.ByteBuf; import net.md_5.bungee.netty.Var; -import java.util.UUID; - public class SpawnPlayerRewriter extends PacketRewriter { diff --git a/proxy/src/main/java/net/md_5/bungee/reconnect/YamlReconnectHandler.java b/proxy/src/main/java/net/md_5/bungee/reconnect/YamlReconnectHandler.java index 6f036b73f2..27b65e0736 100644 --- a/proxy/src/main/java/net/md_5/bungee/reconnect/YamlReconnectHandler.java +++ b/proxy/src/main/java/net/md_5/bungee/reconnect/YamlReconnectHandler.java @@ -1,6 +1,12 @@ package net.md_5.bungee.reconnect; import net.md_5.bungee.api.AbstractReconnectHandler; +import net.md_5.bungee.api.ProxyServer; +import net.md_5.bungee.api.config.ServerInfo; +import net.md_5.bungee.api.connection.ProxiedPlayer; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.error.YAMLException; + import java.io.File; import java.io.FileReader; import java.io.FileWriter; @@ -11,11 +17,6 @@ import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.logging.Level; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.config.ServerInfo; -import net.md_5.bungee.api.connection.ProxiedPlayer; -import org.yaml.snakeyaml.Yaml; -import org.yaml.snakeyaml.error.YAMLException; public class YamlReconnectHandler extends AbstractReconnectHandler { diff --git a/proxy/src/main/java/net/md_5/bungee/scheduler/BungeeScheduler.java b/proxy/src/main/java/net/md_5/bungee/scheduler/BungeeScheduler.java index 53048d2d43..7863031a31 100644 --- a/proxy/src/main/java/net/md_5/bungee/scheduler/BungeeScheduler.java +++ b/proxy/src/main/java/net/md_5/bungee/scheduler/BungeeScheduler.java @@ -8,15 +8,16 @@ import gnu.trove.TCollections; import gnu.trove.map.TIntObjectMap; import gnu.trove.map.hash.TIntObjectHashMap; +import net.md_5.bungee.api.plugin.Plugin; +import net.md_5.bungee.api.scheduler.ScheduledTask; +import net.md_5.bungee.api.scheduler.TaskScheduler; + import java.util.HashSet; import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import net.md_5.bungee.api.plugin.Plugin; -import net.md_5.bungee.api.scheduler.ScheduledTask; -import net.md_5.bungee.api.scheduler.TaskScheduler; public class BungeeScheduler implements TaskScheduler { diff --git a/proxy/src/main/java/net/md_5/bungee/scheduler/BungeeTask.java b/proxy/src/main/java/net/md_5/bungee/scheduler/BungeeTask.java index 033096d266..c65eb84f46 100644 --- a/proxy/src/main/java/net/md_5/bungee/scheduler/BungeeTask.java +++ b/proxy/src/main/java/net/md_5/bungee/scheduler/BungeeTask.java @@ -1,13 +1,14 @@ package net.md_5.bungee.scheduler; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.logging.Level; import lombok.Data; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.plugin.Plugin; import net.md_5.bungee.api.scheduler.ScheduledTask; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.logging.Level; + @Data public class BungeeTask implements Runnable, ScheduledTask { diff --git a/proxy/src/main/java/net/md_5/bungee/tab/Custom.java b/proxy/src/main/java/net/md_5/bungee/tab/Custom.java index b38ae4b1e0..74c3a4059c 100644 --- a/proxy/src/main/java/net/md_5/bungee/tab/Custom.java +++ b/proxy/src/main/java/net/md_5/bungee/tab/Custom.java @@ -1,14 +1,15 @@ package net.md_5.bungee.tab; import com.google.common.base.Preconditions; -import java.util.Collection; -import java.util.HashSet; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.tab.CustomTabList; import net.md_5.bungee.api.tab.TabListAdapter; import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; +import java.util.Collection; +import java.util.HashSet; + public class Custom extends TabListAdapter implements CustomTabList { diff --git a/proxy/src/main/java/net/md_5/bungee/tab/GlobalPing.java b/proxy/src/main/java/net/md_5/bungee/tab/GlobalPing.java index c7233a2a8b..d4c1244d8e 100644 --- a/proxy/src/main/java/net/md_5/bungee/tab/GlobalPing.java +++ b/proxy/src/main/java/net/md_5/bungee/tab/GlobalPing.java @@ -1,7 +1,6 @@ package net.md_5.bungee.tab; import net.md_5.bungee.BungeeCord; -import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; public class GlobalPing extends Global diff --git a/proxy/src/main/java/net/md_5/bungee/tab/ServerUnique.java b/proxy/src/main/java/net/md_5/bungee/tab/ServerUnique.java index 722987b109..1610205a28 100644 --- a/proxy/src/main/java/net/md_5/bungee/tab/ServerUnique.java +++ b/proxy/src/main/java/net/md_5/bungee/tab/ServerUnique.java @@ -1,10 +1,11 @@ package net.md_5.bungee.tab; -import java.util.Collection; -import java.util.HashSet; import net.md_5.bungee.api.tab.TabListAdapter; import net.md_5.bungee.protocol.packet.PacketC9PlayerListItem; +import java.util.Collection; +import java.util.HashSet; + public class ServerUnique extends TabListAdapter { diff --git a/proxy/src/main/java/net/md_5/bungee/util/CaseInsensitiveMap.java b/proxy/src/main/java/net/md_5/bungee/util/CaseInsensitiveMap.java index ddfa7f52a7..86dd6d490a 100644 --- a/proxy/src/main/java/net/md_5/bungee/util/CaseInsensitiveMap.java +++ b/proxy/src/main/java/net/md_5/bungee/util/CaseInsensitiveMap.java @@ -1,6 +1,7 @@ package net.md_5.bungee.util; import gnu.trove.map.hash.TCustomHashMap; + import java.util.Map; public class CaseInsensitiveMap extends TCustomHashMap diff --git a/proxy/src/main/java/net/md_5/bungee/util/CaseInsensitiveSet.java b/proxy/src/main/java/net/md_5/bungee/util/CaseInsensitiveSet.java index 579c6fd9eb..83b502386f 100644 --- a/proxy/src/main/java/net/md_5/bungee/util/CaseInsensitiveSet.java +++ b/proxy/src/main/java/net/md_5/bungee/util/CaseInsensitiveSet.java @@ -1,6 +1,7 @@ package net.md_5.bungee.util; import gnu.trove.set.hash.TCustomHashSet; + import java.util.Collection; public class CaseInsensitiveSet extends TCustomHashSet diff --git a/proxy/src/main/java/net/md_5/bungee/util/ChatConverter.java b/proxy/src/main/java/net/md_5/bungee/util/ChatConverter.java new file mode 100644 index 0000000000..4cf697341d --- /dev/null +++ b/proxy/src/main/java/net/md_5/bungee/util/ChatConverter.java @@ -0,0 +1,264 @@ +package net.md_5.bungee.util; + +import com.google.gson.*; +import com.google.gson.annotations.SerializedName; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; +import net.md_5.bungee.protocol.packet.Packet3Chat; + +import java.lang.reflect.Field; +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ChatConverter +{ + //NOTE: Inspired by craftspigot: org.spigotmc.ChatConverter + public static final GsonBuilder GSON_BUILDER = new GsonBuilder().registerTypeAdapter( Message.class, new MessageSerializer() ); + private static final char COLOR_CHAR = '\u00A7'; + private static final Pattern URL_PATTERN = Pattern.compile( "^(?:(https?)://)?([-\\w_\\.]{2,}\\.[a-z]{2,4})(/\\S*)?$" ); + + public static Packet3Chat[] fixJSONChat(final JsonObject inputObject) + { + if ( inputObject.has( "using" ) ) + { + JsonElement element = inputObject.remove( "using" ); + inputObject.add( "with", element ); + } + + String[] textToTranslate; + if ( inputObject.has( "text" ) && inputObject.entrySet().size() == 1 ) + { + textToTranslate = inputObject.get( "text" ).getAsString().split( "\n" ); + } else if ( inputObject.isJsonPrimitive() ) + { + textToTranslate = inputObject.getAsString().split( "\n" ); + } else + { + return new Packet3Chat[] { new Packet3Chat( GSON_BUILDER.create().toJson( inputObject ) ) }; + } + + Packet3Chat[] result = new Packet3Chat[ textToTranslate.length ]; + for ( int i = 0; i < result.length; i++ ) + { + result[ i ] = new Packet3Chat( GSON_BUILDER.create().toJson( jsonifyMessage( textToTranslate[ i ] ) ) ); + } + return result; + } + + private static List jsonifyMessage(final String inputText) + { + Message msg = new Message(); + List parts = new ArrayList<>(); + StringBuilder buf = new StringBuilder(); + Matcher matcher = URL_PATTERN.matcher( inputText ); + for ( int i = 0; i < inputText.length(); i++ ) + { + char c = inputText.charAt( i ); + if ( c != COLOR_CHAR ) + { + int pos = inputText.indexOf( ' ', i ); + if ( pos == -1 ) + { + pos = inputText.length(); + } + if ( matcher.region( i, pos ).find() ) + { //Web link handling + msg.text = buf.toString(); + buf = new StringBuilder(); + parts.add( msg ); + Message old = msg; + msg = new Message( old ); + msg.clickEvent = new ClickEvent(); + msg.clickEvent.action = "open_url"; + String urlString = inputText.substring( i, pos ); + if ( urlString.startsWith( "http" ) ) + { + msg.text = msg.clickEvent.value = urlString; + } else + { + msg.text = urlString; + msg.clickEvent.value = "http://" + urlString; + } + parts.add( msg ); + i += pos - i - 1; + msg = new Message( old ); + continue; + } + buf.append( c ); + continue; + } + i++; + c = inputText.charAt( i ); + if ( c >= 'A' && c <= 'Z' ) + { + c += 32; + } + msg.text = buf.toString(); + buf = new StringBuilder(); + parts.add( msg ); + msg = new Message( msg ); + switch ( c ) + { + case 'k': + msg.obfuscated = Boolean.TRUE; + break; + case 'l': + msg.bold = Boolean.TRUE; + break; + case 'm': + msg.strikethrough = Boolean.TRUE; + break; + case 'n': + msg.underlined = Boolean.TRUE; + break; + case 'o': + msg.italic = Boolean.TRUE; + break; + default: + msg.obfuscated = false; + msg.bold = false; + msg.strikethrough = false; + msg.underlined = false; + msg.italic = false; + if ( c != 'r' ) + { + msg.color = Color.fromCode( Character.toString( c ) ); + } else + { + msg.color = Color.WHITE; + } + break; + } + } + msg.text = buf.toString(); + parts.add( msg ); + return parts; + } +} + +@Data +@NoArgsConstructor +class Message +{ + public String text; + + public Boolean bold; + public Boolean italic; + public Boolean underlined; + public Boolean strikethrough; + public Boolean obfuscated; + + public Color color; + + public ClickEvent clickEvent; + + public Message(Message old) + { + this.bold = old.bold; + this.italic = old.italic; + this.underlined = old.underlined; + this.strikethrough = old.strikethrough; + this.color = old.color; + } +} + +class MessageSerializer implements JsonSerializer +{ + + @Override + public JsonElement serialize(Message src, Type typeOfSrc, JsonSerializationContext context) + { + JsonObject object = new JsonObject(); + + for ( Field field : Message.class.getDeclaredFields() ) + { + try + { + if ( field.getType().equals( boolean.class ) && !field.getBoolean( src ) ) //Don't write formating stuff - Defaults to false -> bandwidth :) + { + continue; + } + + object.add( field.getName(), context.serialize( field.get( src ) ) ); + } catch ( IllegalArgumentException | IllegalAccessException ex ) + { + throw new AssertionError( ex ); + } + } + + return object; + } + +} + +class ClickEvent +{ + + public String action; + public String value; +} + +@RequiredArgsConstructor +enum Color +{ + + @SerializedName("black") + BLACK( "0" ), + @SerializedName("dark_blue") + DARK_BLUE( "1" ), + @SerializedName("dark_green") + DARK_GREEN( "2" ), + @SerializedName("dark_aqua") + DARK_AQUA( "3" ), + @SerializedName("dark_red") + DARK_RED( "4" ), + @SerializedName("dark_purple") + DARK_PURPLE( "5" ), + @SerializedName("gold") + GOLD( "6" ), + @SerializedName("gray") + GRAY( "7" ), + @SerializedName("dark_gray") + DARK_GRAY( "8" ), + @SerializedName("blue") + BLUE( "9" ), + @SerializedName("green") + GREEN( "a" ), + @SerializedName("aqua") + AQUA( "b" ), + @SerializedName("red") + RED( "c" ), + @SerializedName("light_purple") + LIGHT_PURPLE( "d" ), + @SerializedName("yellow") + YELLOW( "e" ), + @SerializedName("white") + WHITE( "f" ); + + public String code; + + Color(String code) + { + this.code = code; + } + + private static final HashMap codeMap = new HashMap<>(); + + public static Color fromCode(String code) + { + return codeMap.get( code ); + } + + static + { + for ( Color color : values() ) + { + codeMap.put( color.code, color ); + } + } +} \ No newline at end of file diff --git a/proxy/src/test/java/net/md_5/bungee/ThrottleTest.java b/proxy/src/test/java/net/md_5/bungee/ThrottleTest.java index e16a087828..e185016535 100644 --- a/proxy/src/test/java/net/md_5/bungee/ThrottleTest.java +++ b/proxy/src/test/java/net/md_5/bungee/ThrottleTest.java @@ -1,10 +1,11 @@ package net.md_5.bungee; -import java.net.InetAddress; -import java.net.UnknownHostException; import org.junit.Assert; import org.junit.Test; +import java.net.InetAddress; +import java.net.UnknownHostException; + public class ThrottleTest { diff --git a/proxy/src/test/java/net/md_5/bungee/util/CaseInsensitiveTest.java b/proxy/src/test/java/net/md_5/bungee/util/CaseInsensitiveTest.java index 88b378e4fd..c25912af80 100644 --- a/proxy/src/test/java/net/md_5/bungee/util/CaseInsensitiveTest.java +++ b/proxy/src/test/java/net/md_5/bungee/util/CaseInsensitiveTest.java @@ -1,7 +1,7 @@ package net.md_5.bungee.util; -import org.junit.Test; import org.junit.Assert; +import org.junit.Test; public class CaseInsensitiveTest { diff --git a/query/src/main/java/net/md_5/bungee/query/QueryHandler.java b/query/src/main/java/net/md_5/bungee/query/QueryHandler.java index bf6e3d2e76..4eb8aae713 100644 --- a/query/src/main/java/net/md_5/bungee/query/QueryHandler.java +++ b/query/src/main/java/net/md_5/bungee/query/QueryHandler.java @@ -5,15 +5,16 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import io.netty.channel.socket.DatagramPacket; +import lombok.RequiredArgsConstructor; +import net.md_5.bungee.api.ProxyServer; +import net.md_5.bungee.api.config.ListenerInfo; +import net.md_5.bungee.api.connection.ProxiedPlayer; + import java.nio.ByteOrder; import java.util.HashMap; import java.util.Map; import java.util.Random; import java.util.concurrent.TimeUnit; -import lombok.RequiredArgsConstructor; -import net.md_5.bungee.api.ProxyServer; -import net.md_5.bungee.api.config.ListenerInfo; -import net.md_5.bungee.api.connection.ProxiedPlayer; @RequiredArgsConstructor public class QueryHandler extends SimpleChannelInboundHandler diff --git a/query/src/main/java/net/md_5/bungee/query/RemoteQuery.java b/query/src/main/java/net/md_5/bungee/query/RemoteQuery.java index 43b0275332..3e67664d2f 100644 --- a/query/src/main/java/net/md_5/bungee/query/RemoteQuery.java +++ b/query/src/main/java/net/md_5/bungee/query/RemoteQuery.java @@ -4,11 +4,12 @@ import io.netty.channel.ChannelFutureListener; import io.netty.channel.EventLoopGroup; import io.netty.channel.socket.nio.NioDatagramChannel; -import java.net.InetSocketAddress; import lombok.RequiredArgsConstructor; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.config.ListenerInfo; +import java.net.InetSocketAddress; + @RequiredArgsConstructor public class RemoteQuery {