This annotation is marked with {@link ApiStatus.Internal}, indicating that it is for internal use only
* and should not be relied upon by external code.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @see Transformer
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/BooleanTransformer.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/BooleanTransformer.java
index 8d98bc28..b90fd2af 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/BooleanTransformer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/BooleanTransformer.java
@@ -2,7 +2,6 @@
import de.craftsblock.craftsnet.api.transformers.Transformable;
import de.craftsblock.craftsnet.api.transformers.exceptions.NotTransformableException;
-import org.jetbrains.annotations.Nullable;
/**
* A transformer class for converting a string representation of a boolean value to a Boolean object.
@@ -10,7 +9,6 @@
*
* @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
* @see Transformable
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/ByteTransformer.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/ByteTransformer.java
index 837c106f..132b7912 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/ByteTransformer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/ByteTransformer.java
@@ -7,9 +7,8 @@
* A transformer class for converting a string representation of a byte value to a Byte object.
* Implements the {@link Transformable} interface.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
+ * @author CraftsBlock
* @see Transformable
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/DoubleTransformer.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/DoubleTransformer.java
index e26b02fe..b4fab266 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/DoubleTransformer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/DoubleTransformer.java
@@ -7,9 +7,8 @@
* A transformer class for converting a string representation of a double value to a Double object.
* Implements the {@link Transformable} interface.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
+ * @author CraftsBlock
* @see Transformable
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/FloatTransformer.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/FloatTransformer.java
index f142eaa5..bbac8195 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/FloatTransformer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/FloatTransformer.java
@@ -7,9 +7,8 @@
* A transformer class for converting a string representation of a float value to a Float object.
* Implements the {@link Transformable} interface.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
+ * @author CraftsBlock
* @see Transformable
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/IntTransformer.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/IntTransformer.java
index de450895..cc4425ea 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/IntTransformer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/IntTransformer.java
@@ -7,9 +7,8 @@
* A transformer class for converting a string representation of an integer value to an Integer object.
* Implements the {@link Transformable} interface.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
+ * @author CraftsBlock
* @see Transformable
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/LongTransformer.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/LongTransformer.java
index 6188b5f5..c670d438 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/LongTransformer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/LongTransformer.java
@@ -7,9 +7,8 @@
* A transformer class for converting a string representation of a long value to a Long object.
* Implements the {@link Transformable} interface.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
+ * @author CraftsBlock
* @see Transformable
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/ShortTransformer.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/ShortTransformer.java
index 97019ab5..cdc9e06c 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/ShortTransformer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/ShortTransformer.java
@@ -7,9 +7,8 @@
* A transformer class for converting a string representation of a short value to a Short object.
* Implements the {@link Transformable} interface.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
+ * @author CraftsBlock
* @see Transformable
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/UUIDTransformer.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/UUIDTransformer.java
index 389666fc..5c6a0cc2 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/UUIDTransformer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/builtin/UUIDTransformer.java
@@ -9,9 +9,8 @@
* A transformer class for converting a string representation of an uuid value to an {@link UUID} object.
* Implements the {@link Transformable} interface.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @see Transformable
* @since 3.5.5
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/exceptions/NotTransformableException.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/exceptions/NotTransformableException.java
index 347231ce..72b58cff 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/exceptions/NotTransformableException.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/exceptions/NotTransformableException.java
@@ -4,9 +4,8 @@
* This exception is thrown when a parameter cannot be transformed to a specified target type.
* It extends the TransformerException class, indicating a specific type of transformation failure.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @see TransformerException
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/transformers/exceptions/TransformerException.java b/src/main/java/de/craftsblock/craftsnet/api/transformers/exceptions/TransformerException.java
index 18a16266..c4362ed4 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/transformers/exceptions/TransformerException.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/transformers/exceptions/TransformerException.java
@@ -4,9 +4,8 @@
* This class represents an exception that occurs during data transformation operations.
* It extends the RuntimeException class, making it an unchecked exception.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @since 3.0.2-SNAPSHOT
*/
public class TransformerException extends RuntimeException {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/utils/Context.java b/src/main/java/de/craftsblock/craftsnet/api/utils/Context.java
index 8e1392f1..a70774e3 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/utils/Context.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/utils/Context.java
@@ -12,9 +12,8 @@
* A specialized {@link ConcurrentHashMap} implementation that serves as a type-safe context
* for storing and retrieving objects associated with their respective {@link Class} types.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @since 3.6.0
*/
public class Context extends ConcurrentHashMap, Object> {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/utils/ProtocolVersion.java b/src/main/java/de/craftsblock/craftsnet/api/utils/ProtocolVersion.java
index b911f112..08fb00f3 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/utils/ProtocolVersion.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/utils/ProtocolVersion.java
@@ -14,7 +14,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.3.2-SNAPSHOT
*/
public record ProtocolVersion(@NotNull Scheme scheme, @Range(from = 0, to = Integer.MAX_VALUE) int major,
diff --git a/src/main/java/de/craftsblock/craftsnet/api/utils/Scheme.java b/src/main/java/de/craftsblock/craftsnet/api/utils/Scheme.java
index 8fbfb3d6..dc049d82 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/utils/Scheme.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/utils/Scheme.java
@@ -17,7 +17,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.1
* @since 3.3.2-SNAPSHOT
*/
public enum Scheme {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/ClosureCode.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/ClosureCode.java
index f3bb1f55..120ad63c 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/ClosureCode.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/ClosureCode.java
@@ -7,9 +7,8 @@
* Enumeration representing WebSocket closure codes along with their integer values and internal status.
* These codes are defined in RFC 6455 (https://datatracker.ietf.org/doc/html/rfc6455#section-7.4.1).
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.2.0
+ * @author CraftsBlock
* @since 3.0.5-SNAPSHOT
*/
public enum ClosureCode {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/DefaultPingResponder.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/DefaultPingResponder.java
index d03c4fc6..3d322b87 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/DefaultPingResponder.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/DefaultPingResponder.java
@@ -9,9 +9,8 @@
* A default implementation of a ping responder for handling incoming ping messages.
* This responder sends a pong message back to the client when a ping message is received.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.2
+ * @author CraftsBlock
* @see ReceivedPingMessageEvent
* @see WebSocketClient
* @since 3.0.5-SNAPSHOT
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/Frame.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/Frame.java
index 334d737a..c3dc0546 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/Frame.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/Frame.java
@@ -37,9 +37,8 @@
* and decoding the payload data. It also provides methods to access frame attributes
* and manipulate the payload data.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @since 3.0.6-SNAPSHOT
*/
public class Frame implements RequireAble {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/Opcode.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/Opcode.java
index 40dc8854..d00cfe26 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/Opcode.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/Opcode.java
@@ -8,9 +8,8 @@
* Enumeration representing WebSocket opcodes along with their integer values.
* These opcodes are defined in the WebSocket protocol.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @since 3.0.5-SNAPSHOT
*/
public enum Opcode {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/SocketExchange.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/SocketExchange.java
index fc9bc924..e5eb9c0a 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/SocketExchange.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/SocketExchange.java
@@ -12,9 +12,8 @@
* with the WebSocket server and client within the context of a WebSocket connection.
* It allows sending broadcast messages to all clients connected to the same WebSocket path.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.3.1
+ * @author CraftsBlock
* @see BaseExchange
* @see Socket
* @see SocketHandler
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/SocketHandler.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/SocketHandler.java
index deea84c6..9201319f 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/SocketHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/SocketHandler.java
@@ -7,9 +7,8 @@
* Represents a contract for classes that handle WebSocket connections in a server application.
* WebSocket server handlers must implement this interface to define their behavior.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0
+ * @author CraftsBlock
* @see Socket
* @since 2.1.1-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/WebSocketClient.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/WebSocketClient.java
index 9bfc2a2a..22704340 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/WebSocketClient.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/WebSocketClient.java
@@ -61,9 +61,8 @@
*
* The class also handles the disconnection of the client, sending messages, and reading headers and messages from the socket.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 3.8.1
+ * @author CraftsBlock
* @see WebSocketServer
* @since 2.1.1-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/WebSocketServer.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/WebSocketServer.java
index c9afd280..9c20f51f 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/WebSocketServer.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/WebSocketServer.java
@@ -31,9 +31,8 @@
* The server can be configured to use SSL encryption by providing the necessary SSL key file.
* It uses a ServerSocket to listen for incoming connections on the specified port.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.2.5
+ * @author CraftsBlock
* @see WebSocketClient
* @since 2.1.1-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/ApplyDecoder.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/ApplyDecoder.java
index 70c421b5..3edaea51 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/ApplyDecoder.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/ApplyDecoder.java
@@ -17,7 +17,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @see WebSocketSafeTypeDecoder
* @since 3.5.0
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/RequireMessageType.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/RequireMessageType.java
index 46e26991..4edb8420 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/RequireMessageType.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/RequireMessageType.java
@@ -12,9 +12,8 @@
* Specifies the message type that should be received.
* This annotation can be applied to methods or classes.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @see WebServer
* @since 3.0.5-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/Socket.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/Socket.java
index ef1324c2..ba851608 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/Socket.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/annotations/Socket.java
@@ -10,9 +10,8 @@
/**
* Custom annotation used to mark classes as WebSocket handlers.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @see SocketHandler
* @since 2.1.1-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/codec/WebSocketSafeTypeDecoder.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/codec/WebSocketSafeTypeDecoder.java
index 55f60adc..53892723 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/codec/WebSocketSafeTypeDecoder.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/codec/WebSocketSafeTypeDecoder.java
@@ -12,7 +12,6 @@
* @param The result type produced after decoding the WebSocket {@link Frame}.
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.5.0
*/
public interface WebSocketSafeTypeDecoder extends Decoder {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/codec/WebSocketSafeTypeEncoder.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/codec/WebSocketSafeTypeEncoder.java
index eb2b09ff..67d9e3d0 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/codec/WebSocketSafeTypeEncoder.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/codec/WebSocketSafeTypeEncoder.java
@@ -20,7 +20,6 @@
* @param The input type to be encoded.
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.1.0
* @see TypeToBufferUtilEncoder
* @see TypeToByteArrayEncoder
* @see TypeToByteBufferEncoder
@@ -41,7 +40,6 @@ public sealed interface WebSocketSafeTypeEncoder extends Encoder
* @param The type of the object to encode.
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.5.0
*/
non-sealed interface TypeToByteArrayEncoder extends WebSocketSafeTypeEncoder {
@@ -53,7 +51,6 @@ non-sealed interface TypeToByteArrayEncoder extends WebSocketSafeTypeEncoder<
* @param The type of the object to encode.
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.7.0
*/
non-sealed interface TypeToBufferUtilEncoder extends WebSocketSafeTypeEncoder {
@@ -65,7 +62,6 @@ non-sealed interface TypeToBufferUtilEncoder extends WebSocketSafeTypeEncoder
* @param The type of the object to encode.
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.7.0
*/
non-sealed interface TypeToByteBufferEncoder extends WebSocketSafeTypeEncoder {
@@ -77,7 +73,6 @@ non-sealed interface TypeToByteBufferEncoder extends WebSocketSafeTypeEncoder
* @param The type of the object to encode.
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.5.0
* @deprecated in favor of {@link TypeToBufferUtilEncoder}
*/
@@ -94,7 +89,6 @@ non-sealed interface TypeToCraftsByteBufferEncoder extends WebSocketSafeTypeE
* @param The type of the object to encode.
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.5.0
*/
non-sealed interface TypeToJsonEncoder extends WebSocketSafeTypeEncoder {
@@ -107,7 +101,6 @@ non-sealed interface TypeToJsonEncoder extends WebSocketSafeTypeEncoder The type of the object to encode.
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.5.0
*/
non-sealed interface TypeToStringEncoder extends WebSocketSafeTypeEncoder {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/WebSocketExtension.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/WebSocketExtension.java
index 8aa263eb..8aab0624 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/WebSocketExtension.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/WebSocketExtension.java
@@ -12,9 +12,8 @@
* the {@link #encode(Frame)} and {@link #decode(Frame)} methods to define how frames
* are transformed by the extension.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @since 3.0.6-SNAPSHOT
*/
public abstract class WebSocketExtension {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/WebSocketExtensionRegistry.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/WebSocketExtensionRegistry.java
index 129945dd..fab0a624 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/WebSocketExtensionRegistry.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/WebSocketExtensionRegistry.java
@@ -8,9 +8,8 @@
* unregistration, and lookup of WebSocket extensions by their protocol names. It is designed
* to be thread-safe, using a concurrent hash map to store the extensions.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
+ * @author CraftsBlock
* @since 3.0.6-SNAPSHOT
*/
public class WebSocketExtensionRegistry {
diff --git a/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/builtin/PerMessageDeflateExtension.java b/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/builtin/PerMessageDeflateExtension.java
index 67f0ab63..914943e0 100644
--- a/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/builtin/PerMessageDeflateExtension.java
+++ b/src/main/java/de/craftsblock/craftsnet/api/websocket/extensions/builtin/PerMessageDeflateExtension.java
@@ -16,9 +16,8 @@
* RFC 7692. This extension allows for
* compressing and decompressing WebSocket frames.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @since 3.0.6-SNAPSHOT
*/
public class PerMessageDeflateExtension extends WebSocketExtension {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/AutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/AutoRegisterHandler.java
index f22d0833..a974467d 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/AutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/AutoRegisterHandler.java
@@ -14,7 +14,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.1.0
* @since 3.2.0-SNAPSHOT
*/
public abstract class AutoRegisterHandler {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/AutoRegisterRegistry.java b/src/main/java/de/craftsblock/craftsnet/autoregister/AutoRegisterRegistry.java
index d2687e50..5740cfb3 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/AutoRegisterRegistry.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/AutoRegisterRegistry.java
@@ -36,7 +36,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.2.5
* @see AutoRegisterInfo
* @see AutoRegisterHandler
* @since 3.2.0-SNAPSHOT
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/MiddlewareAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/MiddlewareAutoRegisterHandler.java
index 847442d5..bed49d29 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/MiddlewareAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/MiddlewareAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.1
* @since 3.4.0-SNAPSHOT
*/
public class MiddlewareAutoRegisterHandler extends AutoRegisterHandler {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/addons/ServiceLoaderAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/addons/ServiceLoaderAutoRegisterHandler.java
index b17f87a7..702bce5f 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/addons/ServiceLoaderAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/addons/ServiceLoaderAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.4
* @since 3.2.0-SNAPSHOT
*/
public class ServiceLoaderAutoRegisterHandler extends AutoRegisterHandler> {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/cli/LogStreamMutatorAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/cli/LogStreamMutatorAutoRegisterHandler.java
index 13f069e5..8a2deec9 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/cli/LogStreamMutatorAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/cli/LogStreamMutatorAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.5.2
*/
public class LogStreamMutatorAutoRegisterHandler extends AutoRegisterHandler {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/events/ListenerAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/events/ListenerAutoRegisterHandler.java
index 2eec2e49..3caa1bbf 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/events/ListenerAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/events/ListenerAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.4
* @since 3.2.0-SNAPSHOT
*/
public class ListenerAutoRegisterHandler extends AutoRegisterHandler {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/BodyAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/BodyAutoRegisterHandler.java
index 827eb094..46fe3f0a 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/BodyAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/BodyAutoRegisterHandler.java
@@ -14,7 +14,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.4
* @since 3.2.0-SNAPSHOT
*/
public class BodyAutoRegisterHandler extends AutoRegisterHandler> {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/HandlerAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/HandlerAutoRegisterHandler.java
index 50351a17..15cecf38 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/HandlerAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/HandlerAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.4
* @since 3.2.0-SNAPSHOT
*/
public class HandlerAutoRegisterHandler extends AutoRegisterHandler {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/StreamEncoderAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/StreamEncoderAutoRegisterHandler.java
index f1e6b38f..224d45ee 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/StreamEncoderAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/StreamEncoderAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.4
* @since 3.3.3-SNAPSHOT
*/
public class StreamEncoderAutoRegisterHandler extends AutoRegisterHandler {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/WebRequirementAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/WebRequirementAutoRegisterHandler.java
index 58d438b6..fec229f0 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/WebRequirementAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/http/WebRequirementAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.4
* @since 3.2.0-SNAPSHOT
*/
public class WebRequirementAutoRegisterHandler extends AutoRegisterHandler {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/WebSocketExtensionAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/WebSocketExtensionAutoRegisterHandler.java
index f1501dbc..e6c03b3f 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/WebSocketExtensionAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/WebSocketExtensionAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.4
* @since 3.2.0-SNAPSHOT
*/
public class WebSocketExtensionAutoRegisterHandler extends AutoRegisterHandler {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/WebSocketRequirementAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/WebSocketRequirementAutoRegisterHandler.java
index 77684a2a..d86bc3b7 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/WebSocketRequirementAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/WebSocketRequirementAutoRegisterHandler.java
@@ -14,7 +14,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.4
* @since 3.2.0-SNAPSHOT
*/
public class WebSocketRequirementAutoRegisterHandler extends AutoRegisterHandler> {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/codec/WebSocketTypeDecoderAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/codec/WebSocketTypeDecoderAutoRegisterHandler.java
index f928a855..03bb4a9b 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/codec/WebSocketTypeDecoderAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/codec/WebSocketTypeDecoderAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.1
* @since 3.5.0
*/
public class WebSocketTypeDecoderAutoRegisterHandler extends AutoRegisterHandler> {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/codec/WebSocketTypeEncoderAutoRegisterHandler.java b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/codec/WebSocketTypeEncoderAutoRegisterHandler.java
index 0b2a4f83..f8c430d1 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/codec/WebSocketTypeEncoderAutoRegisterHandler.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/builtin/sockets/codec/WebSocketTypeEncoderAutoRegisterHandler.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.5.0
*/
public class WebSocketTypeEncoderAutoRegisterHandler extends AutoRegisterHandler> {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/loaders/AutoRegisterLoader.java b/src/main/java/de/craftsblock/craftsnet/autoregister/loaders/AutoRegisterLoader.java
index 89f7a741..df2ec154 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/loaders/AutoRegisterLoader.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/loaders/AutoRegisterLoader.java
@@ -25,7 +25,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.2.2
* @see AutoRegisterInfo
* @since 3.2.0-SNAPSHOT
*/
@@ -84,22 +83,21 @@ protected List loadFrom(@Nullable ClassLoader loader, @Nullabl
Set infos = Collections.newSetFromMap(new ConcurrentHashMap<>());
ClassLoader classLoader = (loader != null ? loader : ClassLoader.getSystemClassLoader());
- ConcurrentLinkedQueue> futures = new ConcurrentLinkedQueue<>();
-
- // Process each entry in the JAR file
+ Collection> futures = new ArrayList<>();
StreamSupport.stream(file.stream().spliterator(), true)
.filter(this::isValidClassEntry)
.map(JarEntry::getName)
.map(this::convertToJvmName)
- .map(jvmName -> executor.submit(() -> processEntry(jvmName, bounding, classLoader, type, infos)))
- .forEach(futures::add);
-
- // Wait for all futures to complete
- for (Future> future : futures)
- try {
- future.get();
- } catch (InterruptedException | ExecutionException ignored) {
- }
+ .map(jvmName -> CompletableFuture.runAsync(
+ () -> processEntry(jvmName, bounding, classLoader, type, infos),
+ executor
+ )).forEach(futures::add);
+
+ try {
+ CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new)).get();
+ } catch (InterruptedException | ExecutionException e) {
+ throw new RuntimeException("Failed to await auto registration", e);
+ }
futures.clear();
return infos.stream().distinct().collect(Collectors.toCollection(ArrayList::new));
@@ -112,14 +110,17 @@ protected List loadFrom(@Nullable ClassLoader loader, @Nullabl
* @return True if the entry is a valid class file, false otherwise.
*/
private boolean isValidClassEntry(JarEntry entry) {
- if (entry.isDirectory()) return false;
+ if (entry.isDirectory()) {
+ return false;
+ }
String name = entry.getName();
- // Skip classes that belong to certain packages
- for (String skip : SKIP_PACKAGES)
- if (name.startsWith(skip)) return false;
+ for (String skip : SKIP_PACKAGES) {
+ if (name.startsWith(skip)) {
+ return false;
+ }
+ }
- // Only process .class files and exclude module-info.class
return name.endsWith(".class") && !entry.getName().endsWith("module-info.class");
}
@@ -146,8 +147,11 @@ private void processEntry(@NotNull String jvmName, @Nullable Collection b
@NotNull Class extends Annotation> type, @NotNull Set infos) {
try {
Class> clazz = Class.forName(jvmName, false, classLoader);
- if (clazz.isInterface() || clazz.isEnum() || Modifier.isAbstract(clazz.getModifiers())) return;
- if (!clazz.isAnnotationPresent(type)) return;
+ if (clazz.isInterface() || clazz.isEnum()
+ || Modifier.isAbstract(clazz.getModifiers())
+ || !clazz.isAnnotationPresent(type)) {
+ return;
+ }
Annotation annotation = clazz.getDeclaredAnnotation(type);
List parentTypes = new ArrayList<>();
@@ -170,8 +174,9 @@ private List loadSuperclasses(Class> clazz) {
while (clazz != null && !clazz.equals(Object.class)) {
clazz = clazz.getSuperclass();
- if (clazz != null)
+ if (clazz != null) {
superclasses.add(clazz.getName());
+ }
}
return superclasses;
@@ -196,7 +201,9 @@ private List loadInterfaces(Class> clazz) {
* @param interfaces A set to collect interface names.
*/
private void collectInterfaces(Class> clazz, Set interfaces) {
- if (clazz == null || clazz.equals(Object.class)) return;
+ if (clazz == null || clazz.equals(Object.class)) {
+ return;
+ }
for (Class> iface : clazz.getInterfaces()) {
if (interfaces.add(iface.getName())) {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/AutoRegister.java b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/AutoRegister.java
index 4cf530ea..0e54ab4c 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/AutoRegister.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/AutoRegister.java
@@ -12,9 +12,8 @@
* The default value of the annotation is {@link Startup#ENABLE}, meaning auto registration
* is performed after the addon has been enabled.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.2
+ * @author CraftsBlock
* @since 3.2.0-SNAPSHOT
*/
@Documented
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/Instantiate.java b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/Instantiate.java
index 5f612d28..caa42a3c 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/Instantiate.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/Instantiate.java
@@ -10,7 +10,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.2
* @since 3.3.2-SNAPSHOT
*/
public enum Instantiate {
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/ConstructorType.java b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/ConstructorType.java
index 07108163..e255b6b5 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/ConstructorType.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/ConstructorType.java
@@ -13,7 +13,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @see FallbackConstructor
* @see IgnoreConstructor
* @see PreferConstructor
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/FallbackConstructor.java b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/FallbackConstructor.java
index ff7a3f99..6eb0e601 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/FallbackConstructor.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/FallbackConstructor.java
@@ -8,7 +8,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.3.5-SNAPSHOT
*/
@Documented
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/IgnoreConstructor.java b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/IgnoreConstructor.java
index 83b67c21..6e7cb27c 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/IgnoreConstructor.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/IgnoreConstructor.java
@@ -9,7 +9,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.3.5-SNAPSHOT
*/
@Documented
diff --git a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/PreferConstructor.java b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/PreferConstructor.java
index 6d55c91b..9e040893 100644
--- a/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/PreferConstructor.java
+++ b/src/main/java/de/craftsblock/craftsnet/autoregister/meta/constructors/PreferConstructor.java
@@ -10,7 +10,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.3.5-SNAPSHOT
*/
@Documented
diff --git a/src/main/java/de/craftsblock/craftsnet/builder/ActivateType.java b/src/main/java/de/craftsblock/craftsnet/builder/ActivateType.java
index f85f3726..4366b0a9 100644
--- a/src/main/java/de/craftsblock/craftsnet/builder/ActivateType.java
+++ b/src/main/java/de/craftsblock/craftsnet/builder/ActivateType.java
@@ -3,9 +3,8 @@
/**
* Enum representing activation types for various components in the CraftsNet framework.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @since 3.0.3
*/
public enum ActivateType {
diff --git a/src/main/java/de/craftsblock/craftsnet/builder/AddonContainingBuilder.java b/src/main/java/de/craftsblock/craftsnet/builder/AddonContainingBuilder.java
index 389ef434..b50dfd8a 100644
--- a/src/main/java/de/craftsblock/craftsnet/builder/AddonContainingBuilder.java
+++ b/src/main/java/de/craftsblock/craftsnet/builder/AddonContainingBuilder.java
@@ -19,9 +19,8 @@
/**
* Builder class for configuring the CraftsNet with a set of addons.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.3.2
+ * @author CraftsBlock
* @see CraftsNetBuilder
* @since 3.1.0-SNAPSHOT
*/
@@ -45,7 +44,13 @@ public AddonContainingBuilder(Collection> addons) {
* @param type The addon class.
* @param name The name to associate with the addon class.
* @return The {@link AddonContainingBuilder} instance.
+ * @deprecated Addon classes will use the class name as it's mapped name
+ * if no {@link de.craftsblock.craftsnet.addon.meta.annotations.Meta} annotation is present.
+ * There will be no replacement as custom mapped names are no longer supported.
*/
+ @SuppressWarnings("removal")
+ @Deprecated(since = "3.7.2", forRemoval = true)
+ @ApiStatus.ScheduledForRemoval(inVersion = "3.8.0")
public AddonContainingBuilder map(Class extends Addon> type, String name) {
AddonConfiguration.map(type, name);
return this;
diff --git a/src/main/java/de/craftsblock/craftsnet/builder/CraftsNetBuilder.java b/src/main/java/de/craftsblock/craftsnet/builder/CraftsNetBuilder.java
index 88c097c0..04f901b5 100644
--- a/src/main/java/de/craftsblock/craftsnet/builder/CraftsNetBuilder.java
+++ b/src/main/java/de/craftsblock/craftsnet/builder/CraftsNetBuilder.java
@@ -16,9 +16,8 @@
/**
* Builder class for configuring the CraftsNet.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.2.3
+ * @author CraftsBlock
* @see ActivateType
* @since 3.0.3-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/events/EventWithCancelReason.java b/src/main/java/de/craftsblock/craftsnet/events/EventWithCancelReason.java
index f0b55cf9..d167047a 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/EventWithCancelReason.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/EventWithCancelReason.java
@@ -6,9 +6,8 @@
* An abstract class extending {@link CancellableEvent}, providing the ability to set and retrieve
* a custom cancellation reason. It can be used by listeners to communicate why an event was canceled.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @see CancellableEvent
* @since 3.1.0-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/events/addons/AllAddonsDisabledEvent.java b/src/main/java/de/craftsblock/craftsnet/events/addons/AllAddonsDisabledEvent.java
index c3c45c41..957dd8a8 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/addons/AllAddonsDisabledEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/addons/AllAddonsDisabledEvent.java
@@ -6,10 +6,20 @@
* The {@link AllAddonsDisabledEvent} class represents an event triggered when all addons are disabled within CraftsNet.
* This event serves as a notification mechanism to inform listeners that all addons have been successfully disabled.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @since 3.4.2-SNAPSHOT
*/
public class AllAddonsDisabledEvent extends Event {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
}
diff --git a/src/main/java/de/craftsblock/craftsnet/events/addons/AllAddonsLoadedEvent.java b/src/main/java/de/craftsblock/craftsnet/events/addons/AllAddonsLoadedEvent.java
index 1a98060b..5e1bde17 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/addons/AllAddonsLoadedEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/addons/AllAddonsLoadedEvent.java
@@ -9,11 +9,20 @@
* By listening for this event, developers can perform additional actions or initialization steps
* that depend on the availability of addons within the application environment.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.0
+ * @author CraftsBlock
* @since 3.0.3-SNAPSHOT
*/
public class AllAddonsLoadedEvent extends Event {
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
}
diff --git a/src/main/java/de/craftsblock/craftsnet/events/requests/GenericRequestEventBase.java b/src/main/java/de/craftsblock/craftsnet/events/requests/GenericRequestEventBase.java
index 791cdcaf..32937d12 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/requests/GenericRequestEventBase.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/requests/GenericRequestEventBase.java
@@ -10,7 +10,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.1
* @see Exchange
* @see Request
* @see Response
diff --git a/src/main/java/de/craftsblock/craftsnet/events/requests/PostRequestEvent.java b/src/main/java/de/craftsblock/craftsnet/events/requests/PostRequestEvent.java
index 02932ca1..7adc28a8 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/requests/PostRequestEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/requests/PostRequestEvent.java
@@ -11,7 +11,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.1.1
* @see GenericRequestEventBase
* @since 3.1.0-SNAPSHOT
*/
@@ -33,6 +32,16 @@ public PostRequestEvent(Exchange exchange, boolean found, boolean shared) {
this.shared = shared;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/requests/PreRequestEvent.java b/src/main/java/de/craftsblock/craftsnet/events/requests/PreRequestEvent.java
index 17db2112..537f5e3d 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/requests/PreRequestEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/requests/PreRequestEvent.java
@@ -12,7 +12,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.1.1
* @see GenericRequestEventBase
* @since 3.1.0-SNAPSHOT
*/
@@ -29,6 +28,16 @@ public PreRequestEvent(Exchange exchange) {
this.exchange = exchange;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/requests/routes/RouteRequestEvent.java b/src/main/java/de/craftsblock/craftsnet/events/requests/routes/RouteRequestEvent.java
index 43b16c47..1474de1a 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/requests/routes/RouteRequestEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/requests/routes/RouteRequestEvent.java
@@ -13,9 +13,8 @@
* This class provides information about the {@link Exchange} and the {@link RouteRegistry.EndpointMapping}
* involved in the request event.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.2.1
+ * @author CraftsBlock
* @see EventWithCancelReason
* @see GenericRequestEventBase
* @since 1.0.0-SNAPSHOT
@@ -33,6 +32,16 @@ public RouteRequestEvent(Exchange exchange) {
this.exchange = exchange;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/requests/shares/ShareFileLoadedEvent.java b/src/main/java/de/craftsblock/craftsnet/events/requests/shares/ShareFileLoadedEvent.java
index 457c8349..10af2e5d 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/requests/shares/ShareFileLoadedEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/requests/shares/ShareFileLoadedEvent.java
@@ -16,9 +16,8 @@
* Represents an event that is triggered when a share file has been loaded.
* This event provides information about the loaded file.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.2.1
+ * @author CraftsBlock
* @see CancellableEvent
* @see GenericRequestEventBase
* @since 2.3.2-SNAPSHOT
@@ -42,6 +41,16 @@ public ShareFileLoadedEvent(@NotNull Exchange exchange, @NotNull Path path) {
this.path = path;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/requests/shares/ShareRequestEvent.java b/src/main/java/de/craftsblock/craftsnet/events/requests/shares/ShareRequestEvent.java
index 88b16ae7..42603f59 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/requests/shares/ShareRequestEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/requests/shares/ShareRequestEvent.java
@@ -15,9 +15,8 @@
* Represents an event that is triggered when a share request is made.
* This event can be canceled to prevent the share request from being processed.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.1
+ * @author CraftsBlock
* @see EventWithCancelReason
* @see GenericRequestEventBase
* @since 2.3.2-SNAPSHOT
@@ -45,6 +44,16 @@ public ShareRequestEvent(@NotNull String httpPath, @NotNull String filePath, @No
this.mapping = mapping;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/sockets/ClientConnectEvent.java b/src/main/java/de/craftsblock/craftsnet/events/sockets/ClientConnectEvent.java
index c1dd49f4..e3b2f894 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/sockets/ClientConnectEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/sockets/ClientConnectEvent.java
@@ -13,9 +13,8 @@
* The ClientConnectEvent class represents an event related to a client connection to a socket.
* It extends the base {@link EventWithCancelReason} to support event cancellation.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.2.0
+ * @author CraftsBlock
* @see EventWithCancelReason
* @see GenericSocketEventBase
* @since 2.1.1-SNAPSHOT
@@ -37,6 +36,16 @@ public ClientConnectEvent(SocketExchange exchange) {
this.mappings = exchange.client().getEndpoint();
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/sockets/ClientDisconnectEvent.java b/src/main/java/de/craftsblock/craftsnet/events/sockets/ClientDisconnectEvent.java
index 4cbca245..06e4744e 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/sockets/ClientDisconnectEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/sockets/ClientDisconnectEvent.java
@@ -14,9 +14,8 @@
* The ClientDisconnectEvent class represents an event related to a client disconnection from a websocket connection.
* It extends the base Event class and provides information about the SocketExchange and the SocketMapping associated with the disconnection event.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @see GenericSocketEventBase
* @since 2.1.1-SNAPSHOT
*/
@@ -48,6 +47,16 @@ public ClientDisconnectEvent(SocketExchange exchange, int closeCode, String clos
this.closeByServer = closeByServer;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/sockets/GenericSocketEventBase.java b/src/main/java/de/craftsblock/craftsnet/events/sockets/GenericSocketEventBase.java
index 43269de9..d942ae6c 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/sockets/GenericSocketEventBase.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/sockets/GenericSocketEventBase.java
@@ -10,7 +10,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @see SocketExchange
* @see WebSocketClient
* @see WebSocketServer
diff --git a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/GenericSocketMessageEventBase.java b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/GenericSocketMessageEventBase.java
index 49866f5d..0d116a84 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/GenericSocketMessageEventBase.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/GenericSocketMessageEventBase.java
@@ -14,7 +14,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.1.0
* @see Frame
* @see ByteBuffer
* @see Opcode
diff --git a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/IncomingSocketMessageEvent.java b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/IncomingSocketMessageEvent.java
index 08cf09f4..035352d1 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/IncomingSocketMessageEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/IncomingSocketMessageEvent.java
@@ -9,9 +9,8 @@
* The IncomingSocketMessageEvent class represents an event related to an incoming message on a websocket connection.
* It extends the base {@link CancellableEvent} to support event cancellation.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.2.0
+ * @author CraftsBlock
* @see GenericSocketMessageEventBase
* @since 2.1.1-SNAPSHOT
*/
@@ -31,6 +30,16 @@ public IncomingSocketMessageEvent(SocketExchange exchange, @NotNull Frame frame)
this.frame = frame;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/OutgoingSocketMessageEvent.java b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/OutgoingSocketMessageEvent.java
index 3c145c14..7dc119e9 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/OutgoingSocketMessageEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/OutgoingSocketMessageEvent.java
@@ -10,9 +10,8 @@
* The OutgoingSocketMessageEvent class represents an event related to an outgoing message on a websocket connection.
* It extends the base {@link CancellableEvent} to support event cancellation.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @see GenericSocketMessageEventBase
* @since 2.1.1-SNAPSHOT
*/
@@ -32,6 +31,16 @@ public OutgoingSocketMessageEvent(@NotNull SocketExchange exchange, @NotNull Fra
this.frame = frame;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/ReceivedPingMessageEvent.java b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/ReceivedPingMessageEvent.java
index e9e08004..95dd86fb 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/ReceivedPingMessageEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/ReceivedPingMessageEvent.java
@@ -11,9 +11,8 @@
/**
* An event indicating that a Ping message has been received.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @see GenericSocketMessageEventBase
* @since 3.0.5-SNAPSHOT
*/
@@ -33,6 +32,16 @@ public ReceivedPingMessageEvent(SocketExchange exchange, @NotNull Frame frame) {
this.frame = frame;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/ReceivedPongMessageEvent.java b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/ReceivedPongMessageEvent.java
index fe79c90e..c9afb1bc 100644
--- a/src/main/java/de/craftsblock/craftsnet/events/sockets/message/ReceivedPongMessageEvent.java
+++ b/src/main/java/de/craftsblock/craftsnet/events/sockets/message/ReceivedPongMessageEvent.java
@@ -11,9 +11,8 @@
/**
* An event indicating that a Pong message has been received.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @see GenericSocketMessageEventBase
* @since 3.0.5-SNAPSHOT
*/
@@ -33,6 +32,16 @@ public ReceivedPongMessageEvent(SocketExchange exchange, @NotNull Frame frame) {
this.frame = frame;
}
+ /**
+ * {@inheritDoc}
+ *
+ * @return {@inheritDoc}
+ */
+ @Override
+ protected boolean isAsyncAllowed() {
+ return false;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/LogLevel.java b/src/main/java/de/craftsblock/craftsnet/logging/LogLevel.java
index 8d7e2851..af71800f 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/LogLevel.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/LogLevel.java
@@ -4,9 +4,8 @@
* An enumeration of log levels used for categorizing log messages.
* Each log level has an associated color-coded prefix for formatting purposes.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.0.1
+ * @author CraftsBlock
* @since 3.1.0-SNAPSHOT
*/
public enum LogLevel {
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/Logger.java b/src/main/java/de/craftsblock/craftsnet/logging/Logger.java
index 58d81b58..e8ca9406 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/Logger.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/Logger.java
@@ -9,9 +9,8 @@
* Implementations of this interface can be used for logging messages to various destinations
* such as console, files, databases, etc.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 2.1.0
+ * @author CraftsBlock
* @since 1.0.0-SNAPSHOT
*/
public interface Logger {
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/impl/LoggerImpl.java b/src/main/java/de/craftsblock/craftsnet/logging/impl/LoggerImpl.java
index cd827374..c4bbdd2c 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/impl/LoggerImpl.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/impl/LoggerImpl.java
@@ -17,9 +17,8 @@
* to log error messages along with exception stack traces. The log messages include timestamps, log levels, thread names, and the
* actual log text to help with debugging and tracking application behavior.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @since 3.0.5-SNAPSHOT
*/
public class LoggerImpl implements Logger {
@@ -122,7 +121,7 @@ public void debug(@Nullable String text) {
* @return {@inheritDoc}
*/
@Override
- public Logger cloneWithName(String name) {
+ public Logger cloneWithName(@Nullable String name) {
return new LoggerImpl(this.debug, name);
}
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/impl/NoOpLogger.java b/src/main/java/de/craftsblock/craftsnet/logging/impl/NoOpLogger.java
index 06676554..fbd90dc8 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/impl/NoOpLogger.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/impl/NoOpLogger.java
@@ -9,9 +9,8 @@
* The {@link NoOpLogger} simply accepts log messages and errors but does not process
* them in any way.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.1
+ * @author CraftsBlock
* @since 3.4.0-SNAPSHOT
*/
public record NoOpLogger(Logger previous) implements Logger {
@@ -92,7 +91,7 @@ public void debug(@Nullable String text) {
* @return {@inheritDoc}
*/
@Override
- public Logger cloneWithName(String name) {
+ public Logger cloneWithName(@Nullable String name) {
return this;
}
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/impl/PlainLogger.java b/src/main/java/de/craftsblock/craftsnet/logging/impl/PlainLogger.java
index 41b603a7..cabbb5fc 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/impl/PlainLogger.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/impl/PlainLogger.java
@@ -9,9 +9,8 @@
* in the {@link System#out} or the {@link System#err} stream, without any
* further formating.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.1.0
+ * @author CraftsBlock
* @since 3.1.0-SNAPSHOT
*/
public record PlainLogger(Logger previous) implements Logger {
@@ -104,7 +103,7 @@ public void debug(@Nullable String text) {
* @return {@inheritDoc}
*/
@Override
- public Logger cloneWithName(String name) {
+ public Logger cloneWithName(@Nullable String name) {
return this;
}
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/mutate/LogStream.java b/src/main/java/de/craftsblock/craftsnet/logging/mutate/LogStream.java
index 4bbfb592..ddd3180c 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/mutate/LogStream.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/mutate/LogStream.java
@@ -31,9 +31,8 @@
* A utility class for logging to files.
* This class provides methods to log messages to files, handle error logs, and redirect standard output and error streams to log files.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.2.6
+ * @author CraftsBlock
* @see MutatedPrintStream
* @since 3.0.2-SNAPSHOT
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/mutate/LogStreamMutator.java b/src/main/java/de/craftsblock/craftsnet/logging/mutate/LogStreamMutator.java
index f359f805..d8862967 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/mutate/LogStreamMutator.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/mutate/LogStreamMutator.java
@@ -11,7 +11,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.1
* @see LogStream
* @since 3.5.0
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/mutate/builtin/BlurIPsMutator.java b/src/main/java/de/craftsblock/craftsnet/logging/mutate/builtin/BlurIPsMutator.java
index db2563ac..2ac9f265 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/mutate/builtin/BlurIPsMutator.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/mutate/builtin/BlurIPsMutator.java
@@ -17,7 +17,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @see Utils#blurIPs(String)
* @since 3.5.0
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/mutate/stream/LogOutputStream.java b/src/main/java/de/craftsblock/craftsnet/logging/mutate/stream/LogOutputStream.java
index 881e9685..a8fedebd 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/mutate/stream/LogOutputStream.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/mutate/stream/LogOutputStream.java
@@ -16,7 +16,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.0
* @since 3.5.4
*/
public class LogOutputStream extends FilterOutputStream {
diff --git a/src/main/java/de/craftsblock/craftsnet/logging/mutate/stream/MutatedPrintStream.java b/src/main/java/de/craftsblock/craftsnet/logging/mutate/stream/MutatedPrintStream.java
index b0d71b9a..7fed072b 100644
--- a/src/main/java/de/craftsblock/craftsnet/logging/mutate/stream/MutatedPrintStream.java
+++ b/src/main/java/de/craftsblock/craftsnet/logging/mutate/stream/MutatedPrintStream.java
@@ -12,9 +12,8 @@
* A subclass of {@link PrintStream} used for logging.
* This class intercepts the output written to the stream and writes it to the provided output stream while removing any ASCII colors.
*
- * @author CraftsBlock
* @author Philipp Maywald
- * @version 1.3.0
+ * @author CraftsBlock
* @since 3.0.2-SNAPSHOT
*/
public class MutatedPrintStream extends PrintStream {
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/ByteBuffer.java b/src/main/java/de/craftsblock/craftsnet/utils/ByteBuffer.java
index 370dc203..942695ee 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/ByteBuffer.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/ByteBuffer.java
@@ -20,7 +20,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.1
* @since 3.1.0-SNAPSHOT
* @deprecated in favor of {@link java.nio.ByteBuffer} and {@link de.craftsblock.craftscore.buffer.BufferUtil}
*/
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/FileHelper.java b/src/main/java/de/craftsblock/craftsnet/utils/FileHelper.java
index bbd7d609..ab5237bc 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/FileHelper.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/FileHelper.java
@@ -27,7 +27,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.2
* @since 3.1.0-SNAPSHOT
*/
public class FileHelper {
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/PassphraseUtils.java b/src/main/java/de/craftsblock/craftsnet/utils/PassphraseUtils.java
index 25eedc96..7ac8a771 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/PassphraseUtils.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/PassphraseUtils.java
@@ -14,7 +14,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 2.1.0
* @since 3.3.5-SNAPSHOT
*/
public class PassphraseUtils {
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/SecureEncodingUtils.java b/src/main/java/de/craftsblock/craftsnet/utils/SecureEncodingUtils.java
index 185365ab..a2711430 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/SecureEncodingUtils.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/SecureEncodingUtils.java
@@ -18,7 +18,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.1.1
* @since 3.4.1-SNAPSHOT
*/
public class SecureEncodingUtils {
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/Utils.java b/src/main/java/de/craftsblock/craftsnet/utils/Utils.java
index 8782ae67..5585f80e 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/Utils.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/Utils.java
@@ -12,7 +12,6 @@
*
* @author CraftsBlock
* @author Philipp Maywald
- * @version 2.2.1
* @since 2.1.1-SNAPSHOT
*/
public class Utils {
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/reflection/ReflectionUtils.java b/src/main/java/de/craftsblock/craftsnet/utils/reflection/ReflectionUtils.java
index d865b3e2..43e9fe28 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/reflection/ReflectionUtils.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/reflection/ReflectionUtils.java
@@ -16,13 +16,12 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.4.4
* @since 3.2.0-SNAPSHOT
*/
public class ReflectionUtils {
private static final MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
- private static final StackWalker STACK_WALKER = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);
+ public static final StackWalker STACK_WALKER = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);
/**
* Private constructor to prevent direct instantiation
@@ -76,8 +75,7 @@ public static Class> getCallerClass(@Range(from = 1, to = Integer.MAX_VALUE) i
* @since 3.5.0
*/
public static void restrictToCallers(Class>... allowed) {
- Class> caller = ReflectionUtils.getCallerClass();
- Class> callersCaller = ReflectionUtils.getCallerClass(4);
+ Class> callersCaller = ReflectionUtils.getCallerClass(3);
for (Class> allow : allowed) {
if (allow.isAssignableFrom(callersCaller)) {
@@ -85,7 +83,7 @@ public static void restrictToCallers(Class>... allowed) {
}
}
- throw new IllegalStateException(callersCaller.getName() + " is not permitted to call a " + caller.getSimpleName());
+ throw new IllegalStateException(callersCaller.getName() + " is not permitted to call this");
}
/**
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/reflection/TypeUtils.java b/src/main/java/de/craftsblock/craftsnet/utils/reflection/TypeUtils.java
index 10838d1c..a1deb074 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/reflection/TypeUtils.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/reflection/TypeUtils.java
@@ -18,7 +18,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0.3
* @since 3.5.0
*/
public class TypeUtils {
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/versions/Comparison.java b/src/main/java/de/craftsblock/craftsnet/utils/versions/Comparison.java
index 7c334833..6d2d54c4 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/versions/Comparison.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/versions/Comparison.java
@@ -1,5 +1,8 @@
package de.craftsblock.craftsnet.utils.versions;
+import org.jetbrains.annotations.Range;
+
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -13,7 +16,6 @@
*
* @author Philipp Maywald
* @author CraftsBlock
- * @version 1.0
* @since 3.1.0-SNAPSHOT
*/
enum Comparison {
@@ -24,11 +26,15 @@ enum Comparison {
GREATER_OR_EQUAL(">="),
EQUAL("=");
- private static final Map SYMBOLS = new HashMap<>();
+ private static final Map SYMBOLS;
static {
- for (Comparison comparison : Comparison.values())
- SYMBOLS.put(comparison.symbol, comparison);
+ HashMap symbols = new HashMap<>();
+ for (Comparison comparison : Comparison.values()) {
+ symbols.put(comparison.symbol, comparison);
+ }
+
+ SYMBOLS = Collections.unmodifiableMap(symbols);
}
private final String symbol;
@@ -61,10 +67,17 @@ public boolean suitable(String current, String expected) {
int c = parsePart(cs, i);
int e = parsePart(es, i);
- if (e == Integer.MIN_VALUE) continue;
+ if (e == Integer.MIN_VALUE) {
+ continue;
+ }
+
+ if (c < e) {
+ return apply(-1);
+ }
- if (c < e) return apply(-1);
- else if (c > e) return apply(1);
+ if (c > e) {
+ return apply(1);
+ }
}
return apply(0);
@@ -79,10 +92,16 @@ public boolean suitable(String current, String expected) {
* @return the parsed integer value of the version part, or 0 if not valid
*/
private int parsePart(String[] parts, int index) {
- if (index >= parts.length) return 0;
+ if (index >= parts.length) {
+ return 0;
+ }
+
try {
String part = parts[index];
- if (part.equals("*")) return Integer.MIN_VALUE;
+ if (part.equals("*")) {
+ return Integer.MIN_VALUE;
+ }
+
return Integer.parseInt(part);
} catch (NumberFormatException e) {
return 0;
@@ -105,7 +124,7 @@ private String sanitize(String version) {
* @param result the result of the comparison: -1 (less than), 0 (equal), or 1 (greater than)
* @return true if the comparison satisfies the operation, false otherwise
*/
- public boolean apply(int result) {
+ public boolean apply(@Range(from = -1, to = 1) int result) {
return switch (this) {
case LESS -> result < 0;
case GREATER -> result > 0;
diff --git a/src/main/java/de/craftsblock/craftsnet/utils/versions/Versions.java b/src/main/java/de/craftsblock/craftsnet/utils/versions/Versions.java
index ca06e4fd..c457fc34 100644
--- a/src/main/java/de/craftsblock/craftsnet/utils/versions/Versions.java
+++ b/src/main/java/de/craftsblock/craftsnet/utils/versions/Versions.java
@@ -52,7 +52,8 @@ public static boolean suitable(String current, String expected) {
* @return the cleaned version string containing only digits and dots
*/
private static String cleanVersion(String version) {
- return version.replaceAll("[^\\d.]", "");
+ return version.replace("-", ".")
+ .replaceAll("[^\\d.]", "");
}
/**
@@ -66,8 +67,11 @@ private static Comparison extractOperator(String version) {
Matcher matcher = pattern.matcher(version.substring(0, Math.min(version.length(), 2)));
String operator;
- if (matcher.find()) operator = matcher.group();
- else operator = "=";
+ if (matcher.find()) {
+ operator = matcher.group();
+ } else {
+ operator = "=";
+ }
return Comparison.from(operator);
}
@@ -77,7 +81,7 @@ private static Comparison extractOperator(String version) {
*
* @param craftsNet The current {@link CraftsNet} instance.
*/
- public static void verbalCheck(CraftsNet craftsNet) {
+ public static void verbalCheckCraftsNet(CraftsNet craftsNet) {
Logger logger = craftsNet.getLogger();
logger.info("Checking for new version...");
try {
@@ -90,12 +94,13 @@ public static void verbalCheck(CraftsNet craftsNet) {
return;
}
- if (Versions.suitable(CraftsNet.version, ">=" + json.getString("version"))) {
+ String latest = json.getString("version");
+ if (Versions.suitable(CraftsNet.version, ">=" + latest)) {
logger.info("You are using the newest version");
return;
}
- logger.warning("There is a newer version (%s) of CraftsNet available", json.getString("version"));
+ logger.warning("There is a newer version (%s) of CraftsNet available", latest);
}
} catch (Exception e) {
logger.error("Failed to fetch the latest version of CraftsNet!", e);
diff --git a/src/test/java/de/craftsblock/craftsnet/utils/versions/ComparisonTest.java b/src/test/java/de/craftsblock/craftsnet/utils/versions/ComparisonTest.java
new file mode 100644
index 00000000..a544b7b2
--- /dev/null
+++ b/src/test/java/de/craftsblock/craftsnet/utils/versions/ComparisonTest.java
@@ -0,0 +1,96 @@
+package de.craftsblock.craftsnet.utils.versions;
+
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class ComparisonTest {
+
+ @Test
+ void shouldDetectEqualVersions() {
+ assertThat(Comparison.EQUAL.suitable("1.2.3", "1.2.3")).isTrue();
+ assertThat(Comparison.EQUAL.suitable("1.2.3", "1.2.4")).isFalse();
+ }
+
+ @Test
+ void shouldDetectGreaterVersions() {
+ assertThat(Comparison.GREATER.suitable("1.3.0", "1.2.0")).isTrue();
+ assertThat(Comparison.GREATER.suitable("1.2.0", "1.2.0")).isFalse();
+ }
+
+ @Test
+ void shouldDetectLessVersions() {
+ assertThat(Comparison.LESS.suitable("1.1.9", "1.2.0")).isTrue();
+ assertThat(Comparison.LESS.suitable("1.2.0", "1.2.0")).isFalse();
+ }
+
+ @Test
+ void shouldSupportGreaterOrEqual() {
+ assertThat(Comparison.GREATER_OR_EQUAL.suitable("1.2.0", "1.2.0")).isTrue();
+ assertThat(Comparison.GREATER_OR_EQUAL.suitable("1.3.0", "1.2.0")).isTrue();
+ assertThat(Comparison.GREATER_OR_EQUAL.suitable("1.1.9", "1.2.0")).isFalse();
+ }
+
+ @Test
+ void shouldSupportLessOrEqual() {
+ assertThat(Comparison.LESS_OR_EQUAL.suitable("1.2.0", "1.2.0")).isTrue();
+ assertThat(Comparison.LESS_OR_EQUAL.suitable("1.1.9", "1.2.0")).isTrue();
+ assertThat(Comparison.LESS_OR_EQUAL.suitable("1.3.0", "1.2.0")).isFalse();
+ }
+
+ @Test
+ void shouldHandleDifferentLengths() {
+ assertThat(Comparison.EQUAL.suitable("1.2", "1.2.0")).isTrue();
+ assertThat(Comparison.GREATER.suitable("1.2.1", "1.2")).isTrue();
+ assertThat(Comparison.LESS.suitable("1.2", "1.2.1")).isTrue();
+ }
+
+ @Test
+ void shouldHandleNullAndEmptyVersions() {
+ assertThat(Comparison.EQUAL.suitable(null, "0")).isTrue();
+ assertThat(Comparison.EQUAL.suitable("", "0")).isTrue();
+ }
+
+ @Test
+ void shouldTrimWhitespace() {
+ assertThat(Comparison.EQUAL.suitable(" 1.2.3 ", "1.2.3")).isTrue();
+ }
+
+ @Test
+ void shouldTreatInvalidPartsAsZero() {
+ assertThat(Comparison.EQUAL.suitable("1.a.3", "1.0.3")).isTrue();
+ }
+
+ @Test
+ void shouldIgnoreWildcardInExpected() {
+ assertThat(Comparison.EQUAL.suitable("1.2.3", "1.*.3")).isTrue();
+ assertThat(Comparison.GREATER_OR_EQUAL.suitable("1.2.3", "1.*.3")).isTrue();
+ }
+
+ @Test
+ void shouldApplyComparisonCorrectly() {
+ assertThat(Comparison.LESS.apply(-1)).isTrue();
+ assertThat(Comparison.LESS.apply(0)).isFalse();
+
+ assertThat(Comparison.GREATER.apply(1)).isTrue();
+ assertThat(Comparison.GREATER.apply(0)).isFalse();
+
+ assertThat(Comparison.EQUAL.apply(0)).isTrue();
+ }
+
+ @Test
+ void shouldResolveFromSymbol() {
+ assertThat(Comparison.from("<")).isEqualTo(Comparison.LESS);
+ assertThat(Comparison.from(">")).isEqualTo(Comparison.GREATER);
+ assertThat(Comparison.from("<=")).isEqualTo(Comparison.LESS_OR_EQUAL);
+ assertThat(Comparison.from(">=")).isEqualTo(Comparison.GREATER_OR_EQUAL);
+ assertThat(Comparison.from("=")).isEqualTo(Comparison.EQUAL);
+ }
+
+ @Test
+ void shouldDefaultToEqualForUnknownSymbol() {
+ assertThat(Comparison.from("??")).isEqualTo(Comparison.EQUAL);
+ assertThat(Comparison.from("")).isEqualTo(Comparison.EQUAL);
+ }
+
+}
\ No newline at end of file
diff --git a/src/test/java/de/craftsblock/craftsnet/utils/versions/VersionsTest.java b/src/test/java/de/craftsblock/craftsnet/utils/versions/VersionsTest.java
new file mode 100644
index 00000000..accabb08
--- /dev/null
+++ b/src/test/java/de/craftsblock/craftsnet/utils/versions/VersionsTest.java
@@ -0,0 +1,93 @@
+package de.craftsblock.craftsnet.utils.versions;
+
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class VersionsTest {
+
+ @Test
+ void shouldReturnTrueWhenVersionsAreEqualWithoutOperator() {
+ boolean result = Versions.suitable("1.2.3", "1.2.3");
+ assertThat(result).isTrue();
+ }
+
+ @Test
+ void shouldReturnTrueWhenCurrentIsGreaterThanExpected() {
+ boolean result = Versions.suitable("1.3.0", ">1.2.0");
+ assertThat(result).isTrue();
+ }
+
+ @Test
+ void shouldReturnFalseWhenCurrentIsLessThanExpected() {
+ boolean result = Versions.suitable("1.1.9", ">1.2.0");
+ assertThat(result).isFalse();
+ }
+
+ @Test
+ void shouldSupportGreaterOrEqualOperator() {
+ assertThat(Versions.suitable("1.2.0", ">=1.2.0")).isTrue();
+ assertThat(Versions.suitable("1.3.0", ">=1.2.0")).isTrue();
+ assertThat(Versions.suitable("1.1.9", ">=1.2.0")).isFalse();
+ }
+
+ @Test
+ void shouldSupportLessOrEqualOperator() {
+ assertThat(Versions.suitable("1.2.0", "<=1.2.0")).isTrue();
+ assertThat(Versions.suitable("1.1.9", "<=1.2.0")).isTrue();
+ assertThat(Versions.suitable("1.3.0", "<=1.2.0")).isFalse();
+ }
+
+ @Test
+ void shouldSupportLessThanOperator() {
+ assertThat(Versions.suitable("1.1.9", "<1.2.0")).isTrue();
+ assertThat(Versions.suitable("1.2.0", "<1.2.0")).isFalse();
+ }
+
+ @Test
+ void shouldCleanVersionStrings() {
+ boolean result = Versions.suitable("1.2.3-SNAPSHOT", "1.2.3");
+ assertThat(result).isTrue();
+ }
+
+ @Test
+ void shouldHandleWeirdCharactersInVersion() {
+ boolean result = Versions.suitable("v1.2.3", "=1.2.3");
+ assertThat(result).isTrue();
+ }
+
+ @Test
+ void shouldDefaultToEqualsWhenNoOperatorProvided() {
+ assertThat(Versions.suitable("1.2.3", "1.2.3")).isTrue();
+ assertThat(Versions.suitable("1.2.4", "1.2.3")).isFalse();
+ }
+
+ @Test
+ void shouldHandleDashAsDotReplacement() {
+ boolean result = Versions.suitable("1-2-3", "1.2.3");
+ assertThat(result).isTrue();
+ }
+
+ @Test
+ void shouldCompareMultiSegmentVersionsCorrectly() {
+ assertThat(Versions.suitable("1.10.0", ">1.2.0")).isTrue();
+ assertThat(Versions.suitable("1.2.0", ">1.10.0")).isFalse();
+ }
+
+ @Test
+ void shouldHandleShortVersions() {
+ assertThat(Versions.suitable("1.2", "1.2.0")).isTrue();
+ assertThat(Versions.suitable("1.2.0", "1.2")).isTrue();
+ }
+
+ @Test
+ void shouldHandleTrailingDotsOrEmptyParts() {
+ assertThat(Versions.suitable("1.2.", "1.2.0")).isTrue();
+ }
+
+ @Test
+ void shouldHandleOnlyOperatorAsExpected() {
+ assertThat(Versions.suitable("1.2.3", ">")).isTrue();
+ }
+
+}