From a99a2483eaa023b2fbfa75473cf6c81b7e12a1a0 Mon Sep 17 00:00:00 2001 From: Wouter Gritter Date: Wed, 24 Jun 2026 13:22:25 +0200 Subject: [PATCH 1/2] Implement logic to enforce newlines after class/record/etc. definitions --- .../main/kotlin/TypeDeclarationBlankLine.kt | 188 ++++++++++++++++++ .../main/kotlin/velocity-spotless.gradle.kts | 1 + 2 files changed, 189 insertions(+) create mode 100644 build-logic/src/main/kotlin/TypeDeclarationBlankLine.kt diff --git a/build-logic/src/main/kotlin/TypeDeclarationBlankLine.kt b/build-logic/src/main/kotlin/TypeDeclarationBlankLine.kt new file mode 100644 index 0000000000..b145d6134b --- /dev/null +++ b/build-logic/src/main/kotlin/TypeDeclarationBlankLine.kt @@ -0,0 +1,188 @@ +import com.diffplug.spotless.FormatterFunc +import java.io.Serializable + +/** + * A [FormatterFunc] applying [ensureBlankLineAfterTypeDeclarations]. It is a named, [Serializable] + * class (rather than a lambda) so Gradle can fingerprint the Spotless step for up-to-date checks and + * the configuration cache. + */ +class BlankLineAfterTypeDeclaration : FormatterFunc, Serializable { + override fun apply(input: String): String = ensureBlankLineAfterTypeDeclarations(input) + + companion object { + private const val serialVersionUID = 1L + } +} + +/** + * Spotless transform that guarantees a single blank line between a type declaration's opening brace + * and its first member, e.g. + * + * ``` + * public final class Foo { + * + * private int bar; + * } + * ``` + * + * Unlike a regular expression (which struggles with multi-line `extends`/`implements`/`permits` + * clauses, generics, and record components carrying annotations or comments), this walks the source + * with a tiny lexer that skips comments and string/char literals and locates the `{` that opens each + * type body. The input is assumed to use unix newlines, which is what Spotless `custom` steps receive. + */ +internal fun ensureBlankLineAfterTypeDeclarations(source: String): String { + val braces = findTypeBodyBraces(source) + if (braces.isEmpty()) { + return source + } + + val out = StringBuilder(source.length + braces.size) + var i = 0 + var next = 0 + while (i < source.length) { + out.append(source[i]) + if (next < braces.size && i == braces[next]) { + next++ + i = appendBlankLineIfNeeded(source, i, out) + } else { + i++ + } + } + return out.toString() +} + +/** + * Having just appended the `{` at [bracePos], copy the remainder of that line and, if the brace ends + * the line and is immediately followed by a non-empty member line (not a blank line and not the + * closing `}`), insert a single blank line. Returns the index to resume copying from. + */ +private fun appendBlankLineIfNeeded(source: String, bracePos: Int, out: StringBuilder): Int { + var j = bracePos + 1 + while (j < source.length && (source[j] == ' ' || source[j] == '\t')) { + j++ + } + val newline = newlineLengthAt(source, j) + if (newline == 0) { + // Brace is not at the end of the line (e.g. `class Foo { }`); leave it untouched. + return bracePos + 1 + } + val lineEnd = j + newline + out.append(source, bracePos + 1, lineEnd) + + var p = lineEnd + while (p < source.length && (source[p] == ' ' || source[p] == '\t')) { + p++ + } + val nextLineIsBlank = p >= source.length || newlineLengthAt(source, p) != 0 + val nextLineIsClose = p < source.length && source[p] == '}' + if (!nextLineIsBlank && !nextLineIsClose) { + out.append(source, j, lineEnd) // re-emit the same newline to create the blank line + } + return lineEnd +} + +/** Returns the length of the newline sequence at [index] (2 for "\r\n", 1 for "\n"/"\r", 0 otherwise). */ +private fun newlineLengthAt(source: String, index: Int): Int { + if (index >= source.length) { + return 0 + } + return when (source[index]) { + '\n' -> 1 + '\r' -> if (index + 1 < source.length && source[index + 1] == '\n') 2 else 1 + else -> 0 + } +} + +/** Indices of every `{` that opens a class/interface/enum/record (incl. `@interface`) body. */ +private fun findTypeBodyBraces(source: String): List { + val result = ArrayList() + val n = source.length + var i = 0 + var pendingType = false + var parenDepth = 0 + var angleDepth = 0 + + while (i < n) { + val c = source[i] + when { + c == '/' && i + 1 < n && source[i + 1] == '/' -> { + i += 2 + while (i < n && source[i] != '\n') i++ + } + + c == '/' && i + 1 < n && source[i + 1] == '*' -> { + i += 2 + while (i + 1 < n && !(source[i] == '*' && source[i + 1] == '/')) i++ + i += 2 + } + + c == '"' && i + 2 < n && source[i + 1] == '"' && source[i + 2] == '"' -> { + i += 3 + while (i + 2 < n && !(source[i] == '"' && source[i + 1] == '"' && source[i + 2] == '"')) { + if (source[i] == '\\') i++ + i++ + } + i += 3 + } + + c == '"' -> { + i++ + while (i < n && source[i] != '"') { + if (source[i] == '\\') i++ + i++ + } + i++ + } + + c == '\'' -> { + i++ + while (i < n && source[i] != '\'') { + if (source[i] == '\\') i++ + i++ + } + i++ + } + + Character.isJavaIdentifierStart(c) -> { + val start = i + i++ + while (i < n && Character.isJavaIdentifierPart(source[i])) i++ + if (!pendingType && isTypeKeyword(source.substring(start, i)) && prevSignificant(source, start) != '.') { + pendingType = true + parenDepth = 0 + angleDepth = 0 + } + } + + else -> { + if (pendingType) { + when (c) { + '(' -> parenDepth++ + ')' -> if (parenDepth > 0) parenDepth-- + '<' -> angleDepth++ + '>' -> if (angleDepth > 0) angleDepth-- + '{' -> if (parenDepth == 0 && angleDepth == 0) { + result.add(i) + pendingType = false + } + // A top-level `;` or `=` before any `{` means this wasn't a type declaration + // (e.g. the contextual `record` keyword used as an identifier). + ';', '=' -> if (parenDepth == 0 && angleDepth == 0) pendingType = false + } + } + i++ + } + } + } + return result +} + +private fun isTypeKeyword(word: String): Boolean = + word == "class" || word == "interface" || word == "enum" || word == "record" + +/** The nearest non-whitespace character before [index], or a space if there is none. */ +private fun prevSignificant(source: String, index: Int): Char { + var k = index - 1 + while (k >= 0 && source[k].isWhitespace()) k-- + return if (k >= 0) source[k] else ' ' +} diff --git a/build-logic/src/main/kotlin/velocity-spotless.gradle.kts b/build-logic/src/main/kotlin/velocity-spotless.gradle.kts index 59422591c3..0918440369 100644 --- a/build-logic/src/main/kotlin/velocity-spotless.gradle.kts +++ b/build-logic/src/main/kotlin/velocity-spotless.gradle.kts @@ -12,5 +12,6 @@ extensions.configure { licenseHeaderFile(rootProject.file("HEADER.txt")) } removeUnusedImports() + custom("blankLineAfterTypeDeclaration", BlankLineAfterTypeDeclaration()) } } From 476523faf72aa205d609607ac6167e658dc7da89 Mon Sep 17 00:00:00 2001 From: Wouter Gritter Date: Wed, 24 Jun 2026 13:24:05 +0200 Subject: [PATCH 2/2] Run `./gradlew spotlessApply` to fix newline-after-type-declaration violations --- .../java/com/velocitypowered/api/command/CommandResult.java | 1 + .../velocitypowered/api/event/command/CommandExecuteEvent.java | 2 ++ .../velocitypowered/api/event/connection/PreLoginEvent.java | 1 + .../velocitypowered/api/event/connection/PreTransferEvent.java | 2 ++ .../api/event/player/PlayerClientBrandEvent.java | 1 + .../api/event/player/PlayerResourcePackStatusEvent.java | 1 + .../api/event/player/ServerLoginPluginMessageEvent.java | 1 + .../api/event/player/ServerPostConnectEvent.java | 1 + .../api/event/player/ServerResourcePackSendEvent.java | 1 + .../com/velocitypowered/api/event/player/TabCompleteEvent.java | 1 + .../api/event/proxy/server/ServerRegisteredEvent.java | 1 + .../api/event/proxy/server/ServerUnregisteredEvent.java | 1 + .../com/velocitypowered/api/event/query/ProxyQueryEvent.java | 1 + .../java/com/velocitypowered/api/network/HandshakeIntent.java | 1 + .../java/com/velocitypowered/api/network/ListenerType.java | 1 + .../java/com/velocitypowered/api/network/ProtocolState.java | 1 + .../java/com/velocitypowered/api/network/ProtocolVersion.java | 1 + .../velocitypowered/api/proxy/ConnectionRequestBuilder.java | 1 + .../com/velocitypowered/api/proxy/crypto/IdentifiedKey.java | 1 + .../java/com/velocitypowered/api/proxy/player/ChatSession.java | 1 + .../com/velocitypowered/api/proxy/player/PlayerSettings.java | 3 +++ .../com/velocitypowered/api/proxy/player/ResourcePackInfo.java | 1 + .../com/velocitypowered/api/proxy/player/TabListEntry.java | 1 + .../java/com/velocitypowered/api/proxy/server/PingOptions.java | 2 ++ .../com/velocitypowered/api/proxy/server/QueryResponse.java | 1 + .../java/com/velocitypowered/api/scheduler/TaskStatus.java | 1 + .../java/com/velocitypowered/api/util/MessagePosition.java | 1 + api/src/main/java/com/velocitypowered/api/util/ServerLink.java | 1 + native/src/main/java/com/velocitypowered/natives/Native.java | 1 + .../velocitypowered/natives/compression/CompressorUtils.java | 1 + .../natives/compression/VelocityCompressor.java | 1 + .../com/velocitypowered/natives/util/BufferPreference.java | 1 + .../com/velocitypowered/natives/util/MoreByteBufUtils.java | 1 + .../com/velocitypowered/natives/util/NativeCodeLoader.java | 1 + .../com/velocitypowered/natives/util/NativeConstraints.java | 1 + .../proxy/adventure/BossBarImplementationProvider.java | 1 + .../velocitypowered/proxy/adventure/ClickCallbackManager.java | 1 + .../proxy/adventure/ClickCallbackProviderImpl.java | 1 + .../proxy/adventure/ComponentLoggerProviderImpl.java | 1 + .../velocitypowered/proxy/adventure/RegisteredCallback.java | 1 + .../proxy/adventure/VelocityBossBarImplementation.java | 1 + .../com/velocitypowered/proxy/command/builtin/SendCommand.java | 1 + .../velocitypowered/proxy/command/builtin/ServerCommand.java | 1 + .../velocitypowered/proxy/command/builtin/VelocityCommand.java | 3 +++ .../com/velocitypowered/proxy/config/PingPassthroughMode.java | 1 + .../com/velocitypowered/proxy/config/PlayerInfoForwarding.java | 1 + .../velocitypowered/proxy/config/VelocityConfiguration.java | 1 + .../proxy/config/migration/ConfigurationMigration.java | 1 + .../proxy/config/migration/ForwardingMigration.java | 1 + .../proxy/config/migration/KeyAuthenticationMigration.java | 1 + .../config/migration/MiniMessageTranslationsMigration.java | 1 + .../velocitypowered/proxy/config/migration/MotdMigration.java | 1 + .../proxy/config/migration/TransferIntegrationMigration.java | 1 + .../velocitypowered/proxy/connection/PlayerDataForwarding.java | 1 + .../proxy/connection/backend/ConfigSessionHandler.java | 2 ++ .../proxy/connection/client/AuthSessionHandler.java | 1 + .../proxy/connection/client/ClientConfigSessionHandler.java | 1 + .../proxy/connection/client/ClientPlaySessionHandler.java | 1 + .../proxy/connection/client/InitialLoginSessionHandler.java | 1 + .../proxy/connection/client/StatusSessionHandler.java | 1 + .../proxy/connection/forge/modern/ModernForgeConstants.java | 1 + .../proxy/connection/player/bundle/BundleDelimiterHandler.java | 1 + .../resourcepack/handler/Legacy117ResourcePackHandler.java | 1 + .../player/resourcepack/handler/LegacyResourcePackHandler.java | 1 + .../player/resourcepack/handler/ModernResourcePackHandler.java | 1 + .../player/resourcepack/handler/ResourcePackHandler.java | 1 + .../java/com/velocitypowered/proxy/crypto/EncryptionUtils.java | 1 + .../com/velocitypowered/proxy/event/VelocityEventManager.java | 1 + .../java/com/velocitypowered/proxy/network/TransportType.java | 2 ++ .../velocitypowered/proxy/network/limiter/PacketLimiter.java | 1 + .../proxy/network/limiter/SimpleBytesPerSecondLimiter.java | 1 + .../proxy/plugin/util/PluginDependencyUtils.java | 1 + .../proxy/plugin/virtual/VelocityVirtualPlugin.java | 1 + .../java/com/velocitypowered/proxy/protocol/ProtocolUtils.java | 2 ++ .../proxy/protocol/VelocityConnectionEvent.java | 1 + .../proxy/protocol/packet/BundleDelimiterPacket.java | 1 + .../proxy/protocol/packet/ClientSettingsPacket.java | 1 + .../velocitypowered/proxy/protocol/packet/TransferPacket.java | 1 + .../proxy/protocol/packet/UpsertPlayerInfoPacket.java | 1 + .../proxy/protocol/packet/chat/ChatAcknowledgementPacket.java | 1 + .../velocitypowered/proxy/protocol/packet/chat/ChatQueue.java | 2 ++ .../velocitypowered/proxy/protocol/packet/chat/ChatType.java | 1 + .../proxy/protocol/packet/chat/ComponentHolder.java | 1 + .../proxy/protocol/packet/chat/PlayerChatCompletionPacket.java | 1 + .../proxy/protocol/packet/config/FinishedUpdatePacket.java | 1 + .../proxy/protocol/packet/config/KnownPacksPacket.java | 1 + .../proxy/protocol/packet/config/StartUpdatePacket.java | 1 + .../protocol/packet/legacyping/LegacyMinecraftPingVersion.java | 1 + .../proxy/protocol/packet/title/GenericTitlePacket.java | 1 + .../java/com/velocitypowered/proxy/util/InformationUtils.java | 1 + .../com/velocitypowered/proxy/util/StripAnsiConverter.java | 1 + .../com/velocitypowered/proxy/util/TranslatableMapper.java | 1 + .../com/velocitypowered/proxy/util/VelocityProperties.java | 1 + .../proxy/util/ratelimit/NoopCacheRatelimiter.java | 1 + 94 files changed, 105 insertions(+) diff --git a/api/src/main/java/com/velocitypowered/api/command/CommandResult.java b/api/src/main/java/com/velocitypowered/api/command/CommandResult.java index 88a409eb44..454daf2405 100644 --- a/api/src/main/java/com/velocitypowered/api/command/CommandResult.java +++ b/api/src/main/java/com/velocitypowered/api/command/CommandResult.java @@ -11,6 +11,7 @@ * The result of a command invocation attempt. */ public enum CommandResult { + /** * The command was successfully executed by the proxy. */ diff --git a/api/src/main/java/com/velocitypowered/api/event/command/CommandExecuteEvent.java b/api/src/main/java/com/velocitypowered/api/event/command/CommandExecuteEvent.java index 7ed704fc0a..f409b520fa 100644 --- a/api/src/main/java/com/velocitypowered/api/event/command/CommandExecuteEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/command/CommandExecuteEvent.java @@ -117,6 +117,7 @@ public record InvocationInfo(SignedState signedState, Source source) { * @since 3.4.0 */ public enum SignedState { + /** * Indicates that the command was executed from a signed source with signed message arguments, * This is currently only possible by typing a command in chat with signed arguments. @@ -158,6 +159,7 @@ public enum SignedState { * @since 3.4.0 */ public enum Source { + /** * Indicates that the command was invoked by a player. * diff --git a/api/src/main/java/com/velocitypowered/api/event/connection/PreLoginEvent.java b/api/src/main/java/com/velocitypowered/api/event/connection/PreLoginEvent.java index 952cb091b7..e238b60b56 100644 --- a/api/src/main/java/com/velocitypowered/api/event/connection/PreLoginEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/connection/PreLoginEvent.java @@ -193,6 +193,7 @@ public static PreLoginComponentResult denied(net.kyori.adventure.text.Component } private enum Result { + ALLOWED, FORCE_ONLINE, FORCE_OFFLINE, diff --git a/api/src/main/java/com/velocitypowered/api/event/connection/PreTransferEvent.java b/api/src/main/java/com/velocitypowered/api/event/connection/PreTransferEvent.java index 584ab0052d..d6496ff566 100644 --- a/api/src/main/java/com/velocitypowered/api/event/connection/PreTransferEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/connection/PreTransferEvent.java @@ -24,6 +24,7 @@ @AwaitingEvent @ApiStatus.Experimental public final class PreTransferEvent implements ResultedEvent { + private final InetSocketAddress originalAddress; private final Player player; private TransferResult result = TransferResult.ALLOWED; @@ -56,6 +57,7 @@ public void setResult(final TransferResult result) { * Transfer Result of a player to another host. */ public static class TransferResult implements ResultedEvent.Result { + private static final TransferResult ALLOWED = new TransferResult(true, null); private static final TransferResult DENIED = new TransferResult(false, null); diff --git a/api/src/main/java/com/velocitypowered/api/event/player/PlayerClientBrandEvent.java b/api/src/main/java/com/velocitypowered/api/event/player/PlayerClientBrandEvent.java index 268d5b6a19..59d4d2b033 100644 --- a/api/src/main/java/com/velocitypowered/api/event/player/PlayerClientBrandEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/player/PlayerClientBrandEvent.java @@ -15,6 +15,7 @@ * not wait on the result of this event. */ public final class PlayerClientBrandEvent { + private final Player player; private final String brand; diff --git a/api/src/main/java/com/velocitypowered/api/event/player/PlayerResourcePackStatusEvent.java b/api/src/main/java/com/velocitypowered/api/event/player/PlayerResourcePackStatusEvent.java index d212666b71..401c212c67 100644 --- a/api/src/main/java/com/velocitypowered/api/event/player/PlayerResourcePackStatusEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/player/PlayerResourcePackStatusEvent.java @@ -141,6 +141,7 @@ public String toString() { * Represents the possible statuses for the resource pack. */ public enum Status { + /** * The resource pack was applied successfully. */ diff --git a/api/src/main/java/com/velocitypowered/api/event/player/ServerLoginPluginMessageEvent.java b/api/src/main/java/com/velocitypowered/api/event/player/ServerLoginPluginMessageEvent.java index 9597e02afa..c65ef32d22 100644 --- a/api/src/main/java/com/velocitypowered/api/event/player/ServerLoginPluginMessageEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/player/ServerLoginPluginMessageEvent.java @@ -29,6 +29,7 @@ */ @AwaitingEvent public class ServerLoginPluginMessageEvent implements ResultedEvent { + private final ServerConnection connection; private final ChannelIdentifier identifier; private final byte[] contents; diff --git a/api/src/main/java/com/velocitypowered/api/event/player/ServerPostConnectEvent.java b/api/src/main/java/com/velocitypowered/api/event/player/ServerPostConnectEvent.java index 95e70a49f3..cf92486628 100644 --- a/api/src/main/java/com/velocitypowered/api/event/player/ServerPostConnectEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/player/ServerPostConnectEvent.java @@ -18,6 +18,7 @@ * firing. */ public class ServerPostConnectEvent { + private final Player player; private final RegisteredServer previousServer; diff --git a/api/src/main/java/com/velocitypowered/api/event/player/ServerResourcePackSendEvent.java b/api/src/main/java/com/velocitypowered/api/event/player/ServerResourcePackSendEvent.java index 5c1e925c08..0ebb154cf1 100644 --- a/api/src/main/java/com/velocitypowered/api/event/player/ServerResourcePackSendEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/player/ServerResourcePackSendEvent.java @@ -21,6 +21,7 @@ */ @AwaitingEvent public class ServerResourcePackSendEvent implements ResultedEvent { + private GenericResult result; private final ResourcePackInfo receivedResourcePack; private ResourcePackInfo providedResourcePack; diff --git a/api/src/main/java/com/velocitypowered/api/event/player/TabCompleteEvent.java b/api/src/main/java/com/velocitypowered/api/event/player/TabCompleteEvent.java index 7a8e3f76dd..3a357aeb64 100644 --- a/api/src/main/java/com/velocitypowered/api/event/player/TabCompleteEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/player/TabCompleteEvent.java @@ -23,6 +23,7 @@ */ @AwaitingEvent public class TabCompleteEvent { + private final Player player; private final String partialMessage; private final List suggestions; diff --git a/api/src/main/java/com/velocitypowered/api/event/proxy/server/ServerRegisteredEvent.java b/api/src/main/java/com/velocitypowered/api/event/proxy/server/ServerRegisteredEvent.java index 1ffb58bc15..b958bef43d 100644 --- a/api/src/main/java/com/velocitypowered/api/event/proxy/server/ServerRegisteredEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/proxy/server/ServerRegisteredEvent.java @@ -23,6 +23,7 @@ * @since 3.3.0 */ public record ServerRegisteredEvent(@NotNull RegisteredServer registeredServer) { + public ServerRegisteredEvent { Preconditions.checkNotNull(registeredServer, "registeredServer"); } diff --git a/api/src/main/java/com/velocitypowered/api/event/proxy/server/ServerUnregisteredEvent.java b/api/src/main/java/com/velocitypowered/api/event/proxy/server/ServerUnregisteredEvent.java index 1d9548b7e8..7ac7ffe6aa 100644 --- a/api/src/main/java/com/velocitypowered/api/event/proxy/server/ServerUnregisteredEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/proxy/server/ServerUnregisteredEvent.java @@ -23,6 +23,7 @@ * @since 3.3.0 */ public record ServerUnregisteredEvent(@NotNull RegisteredServer unregisteredServer) { + public ServerUnregisteredEvent { Preconditions.checkNotNull(unregisteredServer, "unregisteredServer"); } diff --git a/api/src/main/java/com/velocitypowered/api/event/query/ProxyQueryEvent.java b/api/src/main/java/com/velocitypowered/api/event/query/ProxyQueryEvent.java index a7145db8b4..2fb646226d 100644 --- a/api/src/main/java/com/velocitypowered/api/event/query/ProxyQueryEvent.java +++ b/api/src/main/java/com/velocitypowered/api/event/query/ProxyQueryEvent.java @@ -85,6 +85,7 @@ public String toString() { * Represents the type of query the client is asking for. */ public enum QueryType { + /** * Basic query asks only a subset of information, such as hostname, game type (hardcoded to *
MINECRAFT
), map, current players, max players, proxy port and proxy hostname. diff --git a/api/src/main/java/com/velocitypowered/api/network/HandshakeIntent.java b/api/src/main/java/com/velocitypowered/api/network/HandshakeIntent.java index 44aa4e689a..0ce4a03486 100644 --- a/api/src/main/java/com/velocitypowered/api/network/HandshakeIntent.java +++ b/api/src/main/java/com/velocitypowered/api/network/HandshakeIntent.java @@ -11,6 +11,7 @@ * Represents the ClientIntent of a client in the Handshake state. */ public enum HandshakeIntent { + STATUS(1), LOGIN(2), TRANSFER(3); diff --git a/api/src/main/java/com/velocitypowered/api/network/ListenerType.java b/api/src/main/java/com/velocitypowered/api/network/ListenerType.java index 43ff329cba..cace245018 100644 --- a/api/src/main/java/com/velocitypowered/api/network/ListenerType.java +++ b/api/src/main/java/com/velocitypowered/api/network/ListenerType.java @@ -11,6 +11,7 @@ * Represents each listener type. */ public enum ListenerType { + MINECRAFT("Minecraft"), QUERY("Query"); diff --git a/api/src/main/java/com/velocitypowered/api/network/ProtocolState.java b/api/src/main/java/com/velocitypowered/api/network/ProtocolState.java index 0ecc8287a6..3129e245f9 100644 --- a/api/src/main/java/com/velocitypowered/api/network/ProtocolState.java +++ b/api/src/main/java/com/velocitypowered/api/network/ProtocolState.java @@ -14,6 +14,7 @@ * @since 3.3.0 */ public enum ProtocolState { + /** * Initial connection State. *

This status can be caused by a {@link HandshakeIntent#STATUS}, diff --git a/api/src/main/java/com/velocitypowered/api/network/ProtocolVersion.java b/api/src/main/java/com/velocitypowered/api/network/ProtocolVersion.java index 7f6912a697..33f4c98ad0 100644 --- a/api/src/main/java/com/velocitypowered/api/network/ProtocolVersion.java +++ b/api/src/main/java/com/velocitypowered/api/network/ProtocolVersion.java @@ -21,6 +21,7 @@ * Represents each Minecraft protocol version. */ public enum ProtocolVersion implements Ordered { + UNKNOWN(-1, "Unknown") { @Override public boolean isUnknown() { diff --git a/api/src/main/java/com/velocitypowered/api/proxy/ConnectionRequestBuilder.java b/api/src/main/java/com/velocitypowered/api/proxy/ConnectionRequestBuilder.java index 18e3198103..58ec4ca669 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/ConnectionRequestBuilder.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/ConnectionRequestBuilder.java @@ -88,6 +88,7 @@ default boolean isSuccessful() { * Represents the status of a connection request initiated by a {@link ConnectionRequestBuilder}. */ enum Status { + /** * The player was successfully connected to the server. */ diff --git a/api/src/main/java/com/velocitypowered/api/proxy/crypto/IdentifiedKey.java b/api/src/main/java/com/velocitypowered/api/proxy/crypto/IdentifiedKey.java index d2a6cc94e3..8986341a0c 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/crypto/IdentifiedKey.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/crypto/IdentifiedKey.java @@ -59,6 +59,7 @@ public interface IdentifiedKey extends KeySigned { * The different versions of player keys, per Minecraft version. */ enum Revision implements Ordered { + GENERIC_V1(ImmutableSet.of(), ImmutableSet.of(ProtocolVersion.MINECRAFT_1_19)), LINKED_V2(ImmutableSet.of(), ImmutableSet.of(ProtocolVersion.MINECRAFT_1_19_1)); diff --git a/api/src/main/java/com/velocitypowered/api/proxy/player/ChatSession.java b/api/src/main/java/com/velocitypowered/api/proxy/player/ChatSession.java index 9c090b78e3..6d8293f9e9 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/player/ChatSession.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/player/ChatSession.java @@ -14,6 +14,7 @@ * Represents a chat session held by a player. */ public interface ChatSession extends KeyIdentifiable { + /** * Returns the {@link UUID} of the session. * diff --git a/api/src/main/java/com/velocitypowered/api/proxy/player/PlayerSettings.java b/api/src/main/java/com/velocitypowered/api/proxy/player/PlayerSettings.java index 416cbf154e..79a42f1f4f 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/player/PlayerSettings.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/player/PlayerSettings.java @@ -86,6 +86,7 @@ public interface PlayerSettings { * The client's current chat display mode. */ enum ChatMode { + SHOWN, COMMANDS_ONLY, HIDDEN @@ -95,6 +96,7 @@ enum ChatMode { * The player's selected dominant hand. */ enum MainHand { + LEFT, RIGHT } @@ -103,6 +105,7 @@ enum MainHand { * The client's current "Particles" option state. */ enum ParticleStatus { + ALL, DECREASED, MINIMAL diff --git a/api/src/main/java/com/velocitypowered/api/proxy/player/ResourcePackInfo.java b/api/src/main/java/com/velocitypowered/api/proxy/player/ResourcePackInfo.java index 82937685ab..8ed205e10a 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/player/ResourcePackInfo.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/player/ResourcePackInfo.java @@ -165,6 +165,7 @@ interface Builder { * Represents the origin of the resource-pack. */ enum Origin { + /** * Resource-pack originated from the downstream server. */ diff --git a/api/src/main/java/com/velocitypowered/api/proxy/player/TabListEntry.java b/api/src/main/java/com/velocitypowered/api/proxy/player/TabListEntry.java index aea45287fc..38a4805e60 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/player/TabListEntry.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/player/TabListEntry.java @@ -18,6 +18,7 @@ * Represents a single entry in a {@link TabList}. */ public interface TabListEntry extends KeyIdentifiable { + /** * Returns the {@link ChatSession} associated with this entry. * diff --git a/api/src/main/java/com/velocitypowered/api/proxy/server/PingOptions.java b/api/src/main/java/com/velocitypowered/api/proxy/server/PingOptions.java index a3cd0ac173..ec5a8d60a4 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/server/PingOptions.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/server/PingOptions.java @@ -25,6 +25,7 @@ * @see RegisteredServer#ping(PingOptions) */ public final class PingOptions { + /** * Default PingOptions. */ @@ -107,6 +108,7 @@ public String toString() { * @since 3.2.0 */ public static final class Builder implements AbstractBuilder { + private ProtocolVersion protocolVersion = ProtocolVersion.UNKNOWN; private long timeout = 0; private String virtualHost = null; diff --git a/api/src/main/java/com/velocitypowered/api/proxy/server/QueryResponse.java b/api/src/main/java/com/velocitypowered/api/proxy/server/QueryResponse.java index 6c794bf4c4..4bd84c170c 100644 --- a/api/src/main/java/com/velocitypowered/api/proxy/server/QueryResponse.java +++ b/api/src/main/java/com/velocitypowered/api/proxy/server/QueryResponse.java @@ -227,6 +227,7 @@ public String toString() { * A builder for {@link QueryResponse} objects. */ public static final class Builder { + private @MonotonicNonNull String hostname; private @MonotonicNonNull String gameVersion; private @MonotonicNonNull String map; diff --git a/api/src/main/java/com/velocitypowered/api/scheduler/TaskStatus.java b/api/src/main/java/com/velocitypowered/api/scheduler/TaskStatus.java index 2688987169..fd9a325608 100644 --- a/api/src/main/java/com/velocitypowered/api/scheduler/TaskStatus.java +++ b/api/src/main/java/com/velocitypowered/api/scheduler/TaskStatus.java @@ -11,6 +11,7 @@ * Enumerates all possible task statuses. */ public enum TaskStatus { + /** * The task is scheduled and is currently running. */ diff --git a/api/src/main/java/com/velocitypowered/api/util/MessagePosition.java b/api/src/main/java/com/velocitypowered/api/util/MessagePosition.java index 415894b75d..a8cc659e88 100644 --- a/api/src/main/java/com/velocitypowered/api/util/MessagePosition.java +++ b/api/src/main/java/com/velocitypowered/api/util/MessagePosition.java @@ -11,6 +11,7 @@ * Represents where a chat message is going to be sent. */ public enum MessagePosition { + /** * The chat message will appear in the client's HUD. These messages can be filtered out by the * client. diff --git a/api/src/main/java/com/velocitypowered/api/util/ServerLink.java b/api/src/main/java/com/velocitypowered/api/util/ServerLink.java index 9eb04a9801..657096ab3a 100644 --- a/api/src/main/java/com/velocitypowered/api/util/ServerLink.java +++ b/api/src/main/java/com/velocitypowered/api/util/ServerLink.java @@ -86,6 +86,7 @@ public URI getUrl() { * @apiNote {@link Type#BUG_REPORT} links are shown on the connection error screen */ public enum Type { + BUG_REPORT, COMMUNITY_GUIDELINES, SUPPORT, diff --git a/native/src/main/java/com/velocitypowered/natives/Native.java b/native/src/main/java/com/velocitypowered/natives/Native.java index c2478dabfd..b7c47b6f61 100644 --- a/native/src/main/java/com/velocitypowered/natives/Native.java +++ b/native/src/main/java/com/velocitypowered/natives/Native.java @@ -23,5 +23,6 @@ * Generic interface for any Velocity native. */ public interface Native { + BufferPreference preferredBufferType(); } diff --git a/native/src/main/java/com/velocitypowered/natives/compression/CompressorUtils.java b/native/src/main/java/com/velocitypowered/natives/compression/CompressorUtils.java index 3cfe0e6716..ce4f0a0993 100644 --- a/native/src/main/java/com/velocitypowered/natives/compression/CompressorUtils.java +++ b/native/src/main/java/com/velocitypowered/natives/compression/CompressorUtils.java @@ -18,6 +18,7 @@ package com.velocitypowered.natives.compression; class CompressorUtils { + /** * The default preferred output buffer size for zlib. */ diff --git a/native/src/main/java/com/velocitypowered/natives/compression/VelocityCompressor.java b/native/src/main/java/com/velocitypowered/natives/compression/VelocityCompressor.java index 393104983f..c33d1b6650 100644 --- a/native/src/main/java/com/velocitypowered/natives/compression/VelocityCompressor.java +++ b/native/src/main/java/com/velocitypowered/natives/compression/VelocityCompressor.java @@ -27,6 +27,7 @@ * implementation. */ public interface VelocityCompressor extends Disposable, Native { + void inflate(ByteBuf source, ByteBuf destination, int uncompressedSize) throws DataFormatException; diff --git a/native/src/main/java/com/velocitypowered/natives/util/BufferPreference.java b/native/src/main/java/com/velocitypowered/natives/util/BufferPreference.java index 96393013d5..dd8eaf2d32 100644 --- a/native/src/main/java/com/velocitypowered/natives/util/BufferPreference.java +++ b/native/src/main/java/com/velocitypowered/natives/util/BufferPreference.java @@ -21,6 +21,7 @@ * Emumerates Netty buffer preferences and requirements for use with Netty. */ public enum BufferPreference { + /** * A heap buffer is required. */ diff --git a/native/src/main/java/com/velocitypowered/natives/util/MoreByteBufUtils.java b/native/src/main/java/com/velocitypowered/natives/util/MoreByteBufUtils.java index 13f4f0c570..ce569b87a1 100644 --- a/native/src/main/java/com/velocitypowered/natives/util/MoreByteBufUtils.java +++ b/native/src/main/java/com/velocitypowered/natives/util/MoreByteBufUtils.java @@ -25,6 +25,7 @@ * Additional utilities for {@link ByteBuf}. */ public class MoreByteBufUtils { + private MoreByteBufUtils() { throw new AssertionError(); } diff --git a/native/src/main/java/com/velocitypowered/natives/util/NativeCodeLoader.java b/native/src/main/java/com/velocitypowered/natives/util/NativeCodeLoader.java index 04e2b2cf82..66556d47bb 100644 --- a/native/src/main/java/com/velocitypowered/natives/util/NativeCodeLoader.java +++ b/native/src/main/java/com/velocitypowered/natives/util/NativeCodeLoader.java @@ -97,6 +97,7 @@ static class Variant { } private enum Status { + NOT_AVAILABLE, POSSIBLY_AVAILABLE, SETUP, diff --git a/native/src/main/java/com/velocitypowered/natives/util/NativeConstraints.java b/native/src/main/java/com/velocitypowered/natives/util/NativeConstraints.java index 852a1f0629..1a4851c278 100644 --- a/native/src/main/java/com/velocitypowered/natives/util/NativeConstraints.java +++ b/native/src/main/java/com/velocitypowered/natives/util/NativeConstraints.java @@ -26,6 +26,7 @@ * Statically-computed constraints for native code. */ public class NativeConstraints { + private static final boolean NATIVES_ENABLED = !Boolean.getBoolean("velocity.natives-disabled"); private static final boolean IS_AMD64; private static final boolean IS_AARCH64; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/adventure/BossBarImplementationProvider.java b/proxy/src/main/java/com/velocitypowered/proxy/adventure/BossBarImplementationProvider.java index 559d8661cd..b362b037d6 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/adventure/BossBarImplementationProvider.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/adventure/BossBarImplementationProvider.java @@ -24,6 +24,7 @@ @AutoService(BossBarImplementation.Provider.class) @SuppressWarnings("MissingJavadocType") public class BossBarImplementationProvider implements BossBarImplementation.Provider { + @Override public BossBarImplementation create(final BossBar bar) { final VelocityBossBarImplementation impl = new VelocityBossBarImplementation(bar); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/adventure/ClickCallbackManager.java b/proxy/src/main/java/com/velocitypowered/proxy/adventure/ClickCallbackManager.java index de63b3553c..876a790d39 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/adventure/ClickCallbackManager.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/adventure/ClickCallbackManager.java @@ -31,6 +31,7 @@ * Click callback manager. */ public class ClickCallbackManager { + public static final ClickCallbackManager INSTANCE = new ClickCallbackManager(); static final String COMMAND = "/velocity:callback "; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/adventure/ClickCallbackProviderImpl.java b/proxy/src/main/java/com/velocitypowered/proxy/adventure/ClickCallbackProviderImpl.java index 4632d53aec..17f449b52a 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/adventure/ClickCallbackProviderImpl.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/adventure/ClickCallbackProviderImpl.java @@ -29,6 +29,7 @@ @AutoService(ClickCallback.Provider.class) @SuppressWarnings("UnstableApiUsage") // permitted provider public class ClickCallbackProviderImpl implements ClickCallback.Provider { + @Override public ClickEvent create( final ClickCallback callback, diff --git a/proxy/src/main/java/com/velocitypowered/proxy/adventure/ComponentLoggerProviderImpl.java b/proxy/src/main/java/com/velocitypowered/proxy/adventure/ComponentLoggerProviderImpl.java index 12b4aaf50e..5a2e8f0ac4 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/adventure/ComponentLoggerProviderImpl.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/adventure/ComponentLoggerProviderImpl.java @@ -31,6 +31,7 @@ @AutoService(ComponentLoggerProvider.class) @SuppressWarnings("UnstableApiUsage") public final class ComponentLoggerProviderImpl implements ComponentLoggerProvider { + private static final ANSIComponentSerializer SERIALIZER = ANSIComponentSerializer.builder() .flattener(TranslatableMapper.FLATTENER) .build(); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/adventure/RegisteredCallback.java b/proxy/src/main/java/com/velocitypowered/proxy/adventure/RegisteredCallback.java index 508dd306be..c314f40269 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/adventure/RegisteredCallback.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/adventure/RegisteredCallback.java @@ -30,6 +30,7 @@ record RegisteredCallback( @Nullable AtomicInteger remainingUses, ClickCallback callback ) { + RegisteredCallback( final Duration duration, final int maxUses, diff --git a/proxy/src/main/java/com/velocitypowered/proxy/adventure/VelocityBossBarImplementation.java b/proxy/src/main/java/com/velocitypowered/proxy/adventure/VelocityBossBarImplementation.java index e2451188ad..23974a9c06 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/adventure/VelocityBossBarImplementation.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/adventure/VelocityBossBarImplementation.java @@ -34,6 +34,7 @@ @SuppressWarnings("MissingJavadocMethod") public final class VelocityBossBarImplementation implements BossBar.Listener, BossBarImplementation { + private final Set viewers = Collections.newSetFromMap( new MapMaker().weakKeys().makeMap()); private final UUID id = UUID.randomUUID(); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/SendCommand.java b/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/SendCommand.java index aeeca1189b..da3ec33982 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/SendCommand.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/SendCommand.java @@ -41,6 +41,7 @@ * Implements the Velocity default {@code /send} command. */ public class SendCommand { + private final ProxyServer server; private static final String SERVER_ARG = "server"; private static final String PLAYER_ARG = "player"; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/ServerCommand.java b/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/ServerCommand.java index 99fd348df7..832de9e8f0 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/ServerCommand.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/ServerCommand.java @@ -43,6 +43,7 @@ * Implements Velocity's {@code /server} command. */ public final class ServerCommand { + private static final String SERVER_ARG = "server"; public static final int MAX_SERVERS_TO_LIST = 50; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/VelocityCommand.java b/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/VelocityCommand.java index 562efee42b..2b5812a200 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/VelocityCommand.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/command/builtin/VelocityCommand.java @@ -70,6 +70,7 @@ * Implements the {@code /velocity} command and friends. */ public final class VelocityCommand { + private static final String USAGE = "/velocity <%s>"; @SuppressWarnings("checkstyle:MissingJavadocMethod") @@ -267,6 +268,7 @@ private TextComponent componentForPlugin(PluginDescription description) { } private record Dump(ProxyServer server) implements Command { + private static final Logger logger = LogManager.getLogger(Dump.class); @@ -326,6 +328,7 @@ public int run(final CommandContext context) { * Heap SubCommand. */ public static final class Heap implements Command { + private static final Logger logger = LogManager.getLogger(Heap.class); private MethodHandle heapGenerator; private Consumer heapConsumer; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/PingPassthroughMode.java b/proxy/src/main/java/com/velocitypowered/proxy/config/PingPassthroughMode.java index 718e57f187..3b60158ce8 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/PingPassthroughMode.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/PingPassthroughMode.java @@ -21,6 +21,7 @@ * Supported passthrough modes for ping passthrough. */ public enum PingPassthroughMode { + DISABLED, MODS, DESCRIPTION, diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/PlayerInfoForwarding.java b/proxy/src/main/java/com/velocitypowered/proxy/config/PlayerInfoForwarding.java index 58ee44a78b..7a9af50423 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/PlayerInfoForwarding.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/PlayerInfoForwarding.java @@ -21,6 +21,7 @@ * Supported player info forwarding methods. */ public enum PlayerInfoForwarding { + NONE, LEGACY, BUNGEEGUARD, diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/VelocityConfiguration.java b/proxy/src/main/java/com/velocitypowered/proxy/config/VelocityConfiguration.java index 2c7826e019..6f8c159514 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/VelocityConfiguration.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/VelocityConfiguration.java @@ -1012,6 +1012,7 @@ public boolean isEnabled() { * @param bytesAfterDecompression the maximum number of decompressed bytes per second allowed */ public record PacketLimiterConfig(int interval, int pps, int bytes, int bytesAfterDecompression) { + public static PacketLimiterConfig DEFAULT = new PacketLimiterConfig(7, -1, -1, 5242880); /** diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/ConfigurationMigration.java b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/ConfigurationMigration.java index 7c00b7bbb6..d628dc8fb3 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/ConfigurationMigration.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/ConfigurationMigration.java @@ -31,6 +31,7 @@ public sealed interface ConfigurationMigration MiniMessageTranslationsMigration, TransferIntegrationMigration, PacketLimiterMigration { + boolean shouldMigrate(CommentedFileConfig config); void migrate(CommentedFileConfig config, Logger logger) throws IOException; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/ForwardingMigration.java b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/ForwardingMigration.java index c127920d5d..9af9c3db45 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/ForwardingMigration.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/ForwardingMigration.java @@ -29,6 +29,7 @@ * Migrate old forwarding secret settings to modern version using an external file. */ public final class ForwardingMigration implements ConfigurationMigration { + @Override public boolean shouldMigrate(final CommentedFileConfig config) { return configVersion(config) < 2.0; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/KeyAuthenticationMigration.java b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/KeyAuthenticationMigration.java index 9c9ce08368..e63539919c 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/KeyAuthenticationMigration.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/KeyAuthenticationMigration.java @@ -24,6 +24,7 @@ * Creation of the configuration option "force-key-authentication". */ public final class KeyAuthenticationMigration implements ConfigurationMigration { + @Override public boolean shouldMigrate(final CommentedFileConfig config) { final double version = configVersion(config); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/MiniMessageTranslationsMigration.java b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/MiniMessageTranslationsMigration.java index aff5424a01..a36aa0ed24 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/MiniMessageTranslationsMigration.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/MiniMessageTranslationsMigration.java @@ -33,6 +33,7 @@ * Also migrates possible use of legacy colors to MiniMessage format. */ public final class MiniMessageTranslationsMigration implements ConfigurationMigration { + @Override public boolean shouldMigrate(final CommentedFileConfig config) { // Checking whether translations should be migrated would be just as costly as attempting to migrate them directly. diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/MotdMigration.java b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/MotdMigration.java index a058357e35..cd433582ab 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/MotdMigration.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/MotdMigration.java @@ -27,6 +27,7 @@ * Migrates MOTD builtin configuration from legacy or json format to MiniMessage. */ public final class MotdMigration implements ConfigurationMigration { + @Override public boolean shouldMigrate(final CommentedFileConfig config) { return configVersion(config) < 2.6; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/TransferIntegrationMigration.java b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/TransferIntegrationMigration.java index 26d89855ad..123efecfa4 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/config/migration/TransferIntegrationMigration.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/config/migration/TransferIntegrationMigration.java @@ -24,6 +24,7 @@ * Creation of the configuration option "accepts-transfers". */ public final class TransferIntegrationMigration implements ConfigurationMigration { + @Override public boolean shouldMigrate(final CommentedFileConfig config) { return configVersion(config) < 2.7; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/PlayerDataForwarding.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/PlayerDataForwarding.java index 3badab15fb..fabad17c96 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/PlayerDataForwarding.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/PlayerDataForwarding.java @@ -37,6 +37,7 @@ @SuppressWarnings({"MissingJavadocMethod", "MissingJavadocType"}) public final class PlayerDataForwarding { + private static final String ALGORITHM = "HmacSHA256"; public static final String CHANNEL = "velocity:player_info"; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/backend/ConfigSessionHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/backend/ConfigSessionHandler.java index 8cc1bf8cc8..5351a0b377 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/backend/ConfigSessionHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/backend/ConfigSessionHandler.java @@ -72,6 +72,7 @@ * 1.20.2+ switching. Yes, some of this is exceptionally stupid. */ public class ConfigSessionHandler implements MinecraftSessionHandler { + private static final boolean BACKPRESSURE_LOG = Boolean.getBoolean("velocity.log-server-backpressure"); @@ -412,6 +413,7 @@ private void switchFailure(Throwable cause) { * Represents the state of the configuration stage. */ public enum State { + START, NEGOTIATING, PLUGIN_MESSAGE_INTERRUPT, RESOURCE_PACK_INTERRUPT, COMPLETE } } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/AuthSessionHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/AuthSessionHandler.java index fee642b495..8552221e4d 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/AuthSessionHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/AuthSessionHandler.java @@ -290,6 +290,7 @@ public void disconnected() { } enum State { + START, SUCCESS_SENT, ACKNOWLEDGED } } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientConfigSessionHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientConfigSessionHandler.java index e4c754f9a2..a53706fdf7 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientConfigSessionHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientConfigSessionHandler.java @@ -61,6 +61,7 @@ * Handles the client config stage. */ public class ClientConfigSessionHandler implements MinecraftSessionHandler { + private static final boolean BACKPRESSURE_LOG = Boolean.getBoolean("velocity.log-server-backpressure"); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java index 8880233bb3..1fbaad4cf1 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/ClientPlaySessionHandler.java @@ -101,6 +101,7 @@ * center that joins backend servers with players. */ public class ClientPlaySessionHandler implements MinecraftSessionHandler { + private static final boolean BACKPRESSURE_LOG = Boolean.getBoolean("velocity.log-server-backpressure"); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/InitialLoginSessionHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/InitialLoginSessionHandler.java index f6e1cd6e1d..854b9ac2cf 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/InitialLoginSessionHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/InitialLoginSessionHandler.java @@ -310,6 +310,7 @@ private void assertState(LoginState expectedState) { } private enum LoginState { + LOGIN_PACKET_EXPECTED, LOGIN_PACKET_RECEIVED, ENCRYPTION_REQUEST_SENT, diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/StatusSessionHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/StatusSessionHandler.java index 2c2d7984f0..40f5fd78ed 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/client/StatusSessionHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/client/StatusSessionHandler.java @@ -123,6 +123,7 @@ public void handleUnknown(ByteBuf buf) { } private enum State { + AWAITING_REQUEST, RECEIVED_REQUEST } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/forge/modern/ModernForgeConstants.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/forge/modern/ModernForgeConstants.java index 15add83bcc..77b2914a69 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/forge/modern/ModernForgeConstants.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/forge/modern/ModernForgeConstants.java @@ -21,5 +21,6 @@ * Constants for use with Modern Forge systems. */ public class ModernForgeConstants { + public static final String MODERN_FORGE_TOKEN = "FORGE"; } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/bundle/BundleDelimiterHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/bundle/BundleDelimiterHandler.java index d5d52ef032..f09fbcc926 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/bundle/BundleDelimiterHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/bundle/BundleDelimiterHandler.java @@ -28,6 +28,7 @@ * BundleDelimiterHandler. */ public final class BundleDelimiterHandler { + private final ConnectedPlayer player; private boolean inBundleSession = false; private CompletableFuture finishedBundleSessionFuture; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/Legacy117ResourcePackHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/Legacy117ResourcePackHandler.java index a1af567dd4..290d6324a3 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/Legacy117ResourcePackHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/Legacy117ResourcePackHandler.java @@ -25,6 +25,7 @@ * Legacy (Minecraft 1.17-1.20.2) ResourcePackHandler. */ public final class Legacy117ResourcePackHandler extends LegacyResourcePackHandler { + Legacy117ResourcePackHandler(final ConnectedPlayer player, final VelocityServer server) { super(player, server); } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/LegacyResourcePackHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/LegacyResourcePackHandler.java index 53fa2421c7..4f1e4bac20 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/LegacyResourcePackHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/LegacyResourcePackHandler.java @@ -39,6 +39,7 @@ */ public sealed class LegacyResourcePackHandler extends ResourcePackHandler permits Legacy117ResourcePackHandler { + protected @MonotonicNonNull Boolean previousResourceResponse; protected final Queue outstandingResourcePacks = new ArrayDeque<>(); private @Nullable ResourcePackInfo pendingResourcePack; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/ModernResourcePackHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/ModernResourcePackHandler.java index f0fd5e084c..bd02f65750 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/ModernResourcePackHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/ModernResourcePackHandler.java @@ -40,6 +40,7 @@ * Modern (Minecraft 1.20.3+) ResourcePackHandler */ public final class ModernResourcePackHandler extends ResourcePackHandler { + private final ListMultimap outstandingResourcePacks = Multimaps.newListMultimap(new ConcurrentHashMap<>(), LinkedList::new); private final Map pendingResourcePacks = new ConcurrentHashMap<>(); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/ResourcePackHandler.java b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/ResourcePackHandler.java index b384388534..b29a4ccd92 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/ResourcePackHandler.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/connection/player/resourcepack/handler/ResourcePackHandler.java @@ -39,6 +39,7 @@ */ public abstract sealed class ResourcePackHandler permits LegacyResourcePackHandler, ModernResourcePackHandler { + protected final ConnectedPlayer player; protected final VelocityServer server; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/crypto/EncryptionUtils.java b/proxy/src/main/java/com/velocitypowered/proxy/crypto/EncryptionUtils.java index 04107b3964..af3db6d89a 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/crypto/EncryptionUtils.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/crypto/EncryptionUtils.java @@ -43,6 +43,7 @@ * Generic utilities for dealing with encryption operations in Minecraft. */ public enum EncryptionUtils { + ; public static final Pair PEM_RSA_PUBLIC_KEY_DESCRIPTOR = diff --git a/proxy/src/main/java/com/velocitypowered/proxy/event/VelocityEventManager.java b/proxy/src/main/java/com/velocitypowered/proxy/event/VelocityEventManager.java index 9d54b2d073..3437648faa 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/event/VelocityEventManager.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/event/VelocityEventManager.java @@ -161,6 +161,7 @@ public HandlerRegistration(final PluginContainer plugin, final short order, } enum AsyncType { + /** * The event will never run async, everything is handled on the netty thread. */ diff --git a/proxy/src/main/java/com/velocitypowered/proxy/network/TransportType.java b/proxy/src/main/java/com/velocitypowered/proxy/network/TransportType.java index e154e5d541..56166eb95e 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/network/TransportType.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/network/TransportType.java @@ -51,6 +51,7 @@ * Enumerates the supported transports for Velocity. */ public enum TransportType { + NIO("NIO", NioServerSocketChannel::new, NioSocketChannel::new, NioDatagramChannel::new, @@ -135,6 +136,7 @@ public static TransportType bestType() { * Event loop group types. */ public enum Type { + /** * Accepts connections and distributes them to workers. */ diff --git a/proxy/src/main/java/com/velocitypowered/proxy/network/limiter/PacketLimiter.java b/proxy/src/main/java/com/velocitypowered/proxy/network/limiter/PacketLimiter.java index e63a0c8bf8..18093e2b7a 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/network/limiter/PacketLimiter.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/network/limiter/PacketLimiter.java @@ -22,6 +22,7 @@ * Implementations should be thread-safe. */ public interface PacketLimiter { + /** * Attempts to record the specified number of bytes within the current window. * diff --git a/proxy/src/main/java/com/velocitypowered/proxy/network/limiter/SimpleBytesPerSecondLimiter.java b/proxy/src/main/java/com/velocitypowered/proxy/network/limiter/SimpleBytesPerSecondLimiter.java index 1c6701be82..78828611a1 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/network/limiter/SimpleBytesPerSecondLimiter.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/network/limiter/SimpleBytesPerSecondLimiter.java @@ -26,6 +26,7 @@ * The effective cap over the full window equals limitPerSecond * windowSeconds. */ public final class SimpleBytesPerSecondLimiter implements PacketLimiter { + @Nullable private final IntervalledCounter bytesCounter; @Nullable diff --git a/proxy/src/main/java/com/velocitypowered/proxy/plugin/util/PluginDependencyUtils.java b/proxy/src/main/java/com/velocitypowered/proxy/plugin/util/PluginDependencyUtils.java index ed2395faa8..0823a9452f 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/plugin/util/PluginDependencyUtils.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/plugin/util/PluginDependencyUtils.java @@ -122,6 +122,7 @@ private static void visitNode(Graph dependencyGraph, PluginDe } private enum Mark { + NOT_VISITED, VISITING, VISITED diff --git a/proxy/src/main/java/com/velocitypowered/proxy/plugin/virtual/VelocityVirtualPlugin.java b/proxy/src/main/java/com/velocitypowered/proxy/plugin/virtual/VelocityVirtualPlugin.java index 08e4f57c35..d87ee0a247 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/plugin/virtual/VelocityVirtualPlugin.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/plugin/virtual/VelocityVirtualPlugin.java @@ -21,6 +21,7 @@ * A singleton plugin object that represents the Velocity proxy itself. */ public class VelocityVirtualPlugin { + @SuppressWarnings("InstantiationOfUtilityClass") public static final VelocityVirtualPlugin INSTANCE = new VelocityVirtualPlugin(); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/ProtocolUtils.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/ProtocolUtils.java index 826df5b3c7..8c3dd143ff 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/ProtocolUtils.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/ProtocolUtils.java @@ -56,6 +56,7 @@ * Utilities for writing and reading data in the Minecraft protocol. */ public enum ProtocolUtils { + ; private static final GsonComponentSerializer PRE_1_16_SERIALIZER = @@ -886,6 +887,7 @@ public static Map newMap(int initialCapacity) { * Represents the direction in which a packet flows. */ public enum Direction { + SERVERBOUND, CLIENTBOUND } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/VelocityConnectionEvent.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/VelocityConnectionEvent.java index 423f41dc41..fcbab1eb31 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/VelocityConnectionEvent.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/VelocityConnectionEvent.java @@ -21,6 +21,7 @@ * Describes various events fired during the course of a connection. */ public enum VelocityConnectionEvent { + COMPRESSION_ENABLED, COMPRESSION_DISABLED, ENCRYPTION_ENABLED, diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/BundleDelimiterPacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/BundleDelimiterPacket.java index 4da691c763..d7835c5eeb 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/BundleDelimiterPacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/BundleDelimiterPacket.java @@ -24,6 +24,7 @@ import io.netty.buffer.ByteBuf; public final class BundleDelimiterPacket implements MinecraftPacket { + public static final BundleDelimiterPacket INSTANCE = new BundleDelimiterPacket(); private BundleDelimiterPacket() { diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ClientSettingsPacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ClientSettingsPacket.java index b8b60a9f93..6acf4cbb96 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ClientSettingsPacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/ClientSettingsPacket.java @@ -27,6 +27,7 @@ import org.checkerframework.checker.nullness.qual.Nullable; public class ClientSettingsPacket implements MinecraftPacket { + private @Nullable String locale; private byte viewDistance; private int chatVisibility; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/TransferPacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/TransferPacket.java index b5a74e49f2..73646e6d37 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/TransferPacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/TransferPacket.java @@ -26,6 +26,7 @@ import org.jetbrains.annotations.Nullable; public class TransferPacket implements MinecraftPacket { + private String host; private int port; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/UpsertPlayerInfoPacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/UpsertPlayerInfoPacket.java index 9ef40ef092..8cbdd7e882 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/UpsertPlayerInfoPacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/UpsertPlayerInfoPacket.java @@ -134,6 +134,7 @@ public boolean handle(MinecraftSessionHandler handler) { } public enum Action { + ADD_PLAYER((ignored, buf, info) -> { // read info.profile = new GameProfile( info.profileId, diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatAcknowledgementPacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatAcknowledgementPacket.java index b0718090e9..c05f349777 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatAcknowledgementPacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatAcknowledgementPacket.java @@ -24,6 +24,7 @@ import io.netty.buffer.ByteBuf; public class ChatAcknowledgementPacket implements MinecraftPacket { + int offset; public ChatAcknowledgementPacket(int offset) { diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatQueue.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatQueue.java index 14a563368f..6ef7af1ce9 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatQueue.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatQueue.java @@ -127,6 +127,7 @@ public void close() { } private interface Task { + CompletableFuture update(ChatState chatState, MinecraftConnection smc); } @@ -150,6 +151,7 @@ private interface Task { * updates. */ public static class ChatState { + private static final int MINIMUM_DELAYED_ACK_COUNT = LastSeenMessages.WINDOW_SIZE; private static final BitSet DUMMY_LAST_SEEN_MESSAGES = new BitSet(); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatType.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatType.java index 66e4e98841..87e361d7da 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatType.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ChatType.java @@ -18,6 +18,7 @@ package com.velocitypowered.proxy.protocol.packet.chat; public enum ChatType { + CHAT((byte) 0), SYSTEM((byte) 1), GAME_INFO((byte) 2); diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ComponentHolder.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ComponentHolder.java index 0b00332607..f75180c90a 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ComponentHolder.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/ComponentHolder.java @@ -52,6 +52,7 @@ import java.util.Map; public class ComponentHolder { + private static final Logger logger = LogManager.getLogger(ComponentHolder.class); public static final int DEFAULT_MAX_STRING_SIZE = 262143; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/PlayerChatCompletionPacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/PlayerChatCompletionPacket.java index d07b798a52..17b8892262 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/PlayerChatCompletionPacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/chat/PlayerChatCompletionPacket.java @@ -72,6 +72,7 @@ public boolean handle(MinecraftSessionHandler handler) { } public enum Action { + ADD, REMOVE, SET diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/FinishedUpdatePacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/FinishedUpdatePacket.java index 20d40fd4be..5306f5c423 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/FinishedUpdatePacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/FinishedUpdatePacket.java @@ -24,6 +24,7 @@ import io.netty.buffer.ByteBuf; public class FinishedUpdatePacket implements MinecraftPacket { + public static final FinishedUpdatePacket INSTANCE = new FinishedUpdatePacket(); private FinishedUpdatePacket() { diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/KnownPacksPacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/KnownPacksPacket.java index 196e876787..ca9dee3070 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/KnownPacksPacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/KnownPacksPacket.java @@ -66,6 +66,7 @@ public boolean handle(MinecraftSessionHandler handler) { } public record KnownPack(String namespace, String id, String version) { + private static KnownPack read(ByteBuf buf) { return new KnownPack(ProtocolUtils.readString(buf), ProtocolUtils.readString(buf), ProtocolUtils.readString(buf)); } diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/StartUpdatePacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/StartUpdatePacket.java index d41265ce56..6c2ffd663a 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/StartUpdatePacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/config/StartUpdatePacket.java @@ -24,6 +24,7 @@ import io.netty.buffer.ByteBuf; public class StartUpdatePacket implements MinecraftPacket { + public static final StartUpdatePacket INSTANCE = new StartUpdatePacket(); private StartUpdatePacket() { diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/legacyping/LegacyMinecraftPingVersion.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/legacyping/LegacyMinecraftPingVersion.java index d5ef296a41..42a9ba5b9c 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/legacyping/LegacyMinecraftPingVersion.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/legacyping/LegacyMinecraftPingVersion.java @@ -18,6 +18,7 @@ package com.velocitypowered.proxy.protocol.packet.legacyping; public enum LegacyMinecraftPingVersion { + MINECRAFT_1_3, MINECRAFT_1_4, MINECRAFT_1_6 diff --git a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/title/GenericTitlePacket.java b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/title/GenericTitlePacket.java index 8641173e74..a44ed4f61f 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/title/GenericTitlePacket.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/protocol/packet/title/GenericTitlePacket.java @@ -26,6 +26,7 @@ public abstract class GenericTitlePacket implements MinecraftPacket { public enum ActionType { + SET_TITLE(0), SET_SUBTITLE(1), SET_ACTION_BAR(2), diff --git a/proxy/src/main/java/com/velocitypowered/proxy/util/InformationUtils.java b/proxy/src/main/java/com/velocitypowered/proxy/util/InformationUtils.java index 59aae3e43e..270ac06302 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/util/InformationUtils.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/util/InformationUtils.java @@ -45,6 +45,7 @@ * Helper class for {@code /velocity dump}. */ public enum InformationUtils { + ; /** diff --git a/proxy/src/main/java/com/velocitypowered/proxy/util/StripAnsiConverter.java b/proxy/src/main/java/com/velocitypowered/proxy/util/StripAnsiConverter.java index f3722ffaab..5daf13018d 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/util/StripAnsiConverter.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/util/StripAnsiConverter.java @@ -36,6 +36,7 @@ @Plugin(name = "stripAnsi", category = PatternConverter.CATEGORY) @ConverterKeys("stripAnsi") public class StripAnsiConverter extends LogEventPatternConverter { + private static final Pattern ANSI_PATTERN = Pattern.compile("\u001B\\[[;\\d]*m"); private final List formatters; diff --git a/proxy/src/main/java/com/velocitypowered/proxy/util/TranslatableMapper.java b/proxy/src/main/java/com/velocitypowered/proxy/util/TranslatableMapper.java index 20ab432938..7c60cfa344 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/util/TranslatableMapper.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/util/TranslatableMapper.java @@ -29,6 +29,7 @@ * Velocity Translation Mapper. */ public enum TranslatableMapper implements BiConsumer> { + INSTANCE; public static final ComponentFlattener FLATTENER = ComponentFlattener.basic().toBuilder() diff --git a/proxy/src/main/java/com/velocitypowered/proxy/util/VelocityProperties.java b/proxy/src/main/java/com/velocitypowered/proxy/util/VelocityProperties.java index d2b304a869..32454015ca 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/util/VelocityProperties.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/util/VelocityProperties.java @@ -25,6 +25,7 @@ * @since 3.3.0 */ public final class VelocityProperties { + /** * Attempts to read a system property as boolean. * diff --git a/proxy/src/main/java/com/velocitypowered/proxy/util/ratelimit/NoopCacheRatelimiter.java b/proxy/src/main/java/com/velocitypowered/proxy/util/ratelimit/NoopCacheRatelimiter.java index 9f77072ac3..55485449b3 100644 --- a/proxy/src/main/java/com/velocitypowered/proxy/util/ratelimit/NoopCacheRatelimiter.java +++ b/proxy/src/main/java/com/velocitypowered/proxy/util/ratelimit/NoopCacheRatelimiter.java @@ -23,6 +23,7 @@ * A {@link Ratelimiter} that does no rate-limiting. */ enum NoopCacheRatelimiter implements Ratelimiter { + INSTANCE; @Override