diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a20fdcd..b025f6c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -version = "1.1.6" +version = "1.1.9" group = "com.voinearadu" [plugins] diff --git a/src/main/java/com.voinearadu/event_manager/EventManager.java b/src/main/java/com/voinearadu/event_manager/EventManager.java similarity index 100% rename from src/main/java/com.voinearadu/event_manager/EventManager.java rename to src/main/java/com/voinearadu/event_manager/EventManager.java diff --git a/src/main/java/com.voinearadu/event_manager/annotation/EventHandler.java b/src/main/java/com/voinearadu/event_manager/annotation/EventHandler.java similarity index 100% rename from src/main/java/com.voinearadu/event_manager/annotation/EventHandler.java rename to src/main/java/com/voinearadu/event_manager/annotation/EventHandler.java diff --git a/src/main/java/com.voinearadu/event_manager/dto/IEvent.java b/src/main/java/com/voinearadu/event_manager/dto/IEvent.java similarity index 100% rename from src/main/java/com.voinearadu/event_manager/dto/IEvent.java rename to src/main/java/com/voinearadu/event_manager/dto/IEvent.java diff --git a/src/main/java/com.voinearadu/file_manager/FileManager.java b/src/main/java/com/voinearadu/file_manager/FileManager.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/FileManager.java rename to src/main/java/com/voinearadu/file_manager/FileManager.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/GsonSerializer.java b/src/main/java/com/voinearadu/file_manager/dto/GsonSerializer.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/GsonSerializer.java rename to src/main/java/com/voinearadu/file_manager/dto/GsonSerializer.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/gson/InterfaceGsonTypeAdapter.java b/src/main/java/com/voinearadu/file_manager/dto/gson/InterfaceGsonTypeAdapter.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/gson/InterfaceGsonTypeAdapter.java rename to src/main/java/com/voinearadu/file_manager/dto/gson/InterfaceGsonTypeAdapter.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/gson/SerializableListGsonTypeAdapter.java b/src/main/java/com/voinearadu/file_manager/dto/gson/SerializableListGsonTypeAdapter.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/gson/SerializableListGsonTypeAdapter.java rename to src/main/java/com/voinearadu/file_manager/dto/gson/SerializableListGsonTypeAdapter.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/gson/SerializableMapGsonTypeAdapter.java b/src/main/java/com/voinearadu/file_manager/dto/gson/SerializableMapGsonTypeAdapter.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/gson/SerializableMapGsonTypeAdapter.java rename to src/main/java/com/voinearadu/file_manager/dto/gson/SerializableMapGsonTypeAdapter.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/gson/SerializableObjectTypeAdapter.java b/src/main/java/com/voinearadu/file_manager/dto/gson/SerializableObjectTypeAdapter.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/gson/SerializableObjectTypeAdapter.java rename to src/main/java/com/voinearadu/file_manager/dto/gson/SerializableObjectTypeAdapter.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/serializable/ISerializable.java b/src/main/java/com/voinearadu/file_manager/dto/serializable/ISerializable.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/serializable/ISerializable.java rename to src/main/java/com/voinearadu/file_manager/dto/serializable/ISerializable.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/serializable/SerializableList.java b/src/main/java/com/voinearadu/file_manager/dto/serializable/SerializableList.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/serializable/SerializableList.java rename to src/main/java/com/voinearadu/file_manager/dto/serializable/SerializableList.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/serializable/SerializableMap.java b/src/main/java/com/voinearadu/file_manager/dto/serializable/SerializableMap.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/serializable/SerializableMap.java rename to src/main/java/com/voinearadu/file_manager/dto/serializable/SerializableMap.java diff --git a/src/main/java/com.voinearadu/file_manager/dto/serializable/SerializableObject.java b/src/main/java/com/voinearadu/file_manager/dto/serializable/SerializableObject.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/dto/serializable/SerializableObject.java rename to src/main/java/com/voinearadu/file_manager/dto/serializable/SerializableObject.java diff --git a/src/main/java/com.voinearadu/file_manager/utils/DateUtils.java b/src/main/java/com/voinearadu/file_manager/utils/DateUtils.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/utils/DateUtils.java rename to src/main/java/com/voinearadu/file_manager/utils/DateUtils.java diff --git a/src/main/java/com.voinearadu/file_manager/utils/PathUtils.java b/src/main/java/com/voinearadu/file_manager/utils/PathUtils.java similarity index 100% rename from src/main/java/com.voinearadu/file_manager/utils/PathUtils.java rename to src/main/java/com/voinearadu/file_manager/utils/PathUtils.java diff --git a/src/main/java/com/voinearadu/generic/Location.java b/src/main/java/com/voinearadu/generic/Location.java new file mode 100644 index 0000000..12402e2 --- /dev/null +++ b/src/main/java/com/voinearadu/generic/Location.java @@ -0,0 +1,174 @@ +package com.voinearadu.generic; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.jetbrains.annotations.Nullable; + +@NoArgsConstructor +@Getter +@Setter +public class Location { + + private double x; + private double y; + private double z; + private float pitch; + private float yaw; + private @Nullable String world; + + public Location(double x, double y, double z, float pitch, float yaw, @Nullable String world) { + this.x = x; + this.y = y; + this.z = z; + this.pitch = pitch; + this.yaw = yaw; + this.world = world; + } + + public Location(double x, double y, double z, @Nullable String world) { + this(x, y, z, 0, 0, world); + } + + public Location(double x, double y, double z, float pitch, float yaw) { + this(x, y, z, pitch, yaw, null); + } + + public Location(double x, double y, double z) { + this(x, y, z, null); + } + + + public Location offset(double x, double y, double z) { + this.x += x; + this.y += y; + this.z += z; + return this; + } + + public Location negativeOffset(double x, double y, double z) { + return offset(-x, -y, -z); + } + + public Location offsetNew(double x, double y, double z, float pitch, float yaw) { + Location output = clone(); + + output.x += x; + output.y += y; + output.z += z; + output.pitch += pitch; + output.yaw += yaw; + + return output; + } + + public Location offsetNew(double x, double y, double z) { + return offsetNew(x, y, z, 0, 0); + } + + public Location negativeOffsetNew(double x, double y, double z) { + return offsetNew(-x, -y, -z); + } + + public Location negativeOffsetNew(Location offset) { + return negativeOffsetNew( + offset.x, + offset.y, + offset.z + ); + } + + public Location offset(Location offset) { + return offset(offset.x, offset.y, offset.z); + } + + @SuppressWarnings("unused") + public Location negativeOffset(Location offset) { + return negativeOffset(offset.x, offset.y, offset.z); + } + + public Location offsetNew(Location offset) { + return offsetNew( + offset.x, + offset.y, + offset.z, + offset.pitch, + offset.yaw + ); + } + + @SuppressWarnings("UnusedReturnValue") + public Location multiply(double factor) { + this.x *= factor; + this.y *= factor; + this.z *= factor; + + return this; + } + + @SuppressWarnings("MethodDoesntCallSuperMethod") + public Location clone() { + return new Location(x, y, z, pitch, yaw, world); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Location location)) return false; + + if (getX() != location.getX()) return false; + if (getY() != location.getY()) return false; + if (getZ() != location.getZ()) return false; + return getWorld() != null ? getWorld().equals(location.getWorld()) : location.getWorld() == null; + } + + public boolean equalsCoords(Object o) { + if (this == o) return true; + if (!(o instanceof Location location)) return false; + + return x == location.x && y == location.y && z == location.z; + } + + @Override + public int hashCode() { + double result = getX(); + result = 31 * result + getY(); + result = 31 * result + getZ(); + result = 31 * result + getPitch(); + result = 31 * result + getYaw(); + result = 31 * result + (getWorld() != null ? getWorld().hashCode() : 0); + return (int) result; + } + + public static Location min(Location... locations) { + double minX = 1000000000; + double minY = 1000000000; + double minZ = 1000000000; + + for (Location location : locations) { + minX = Double.min(minX, location.getX()); + minY = Double.min(minY, location.getY()); + minZ = Double.min(minZ, location.getZ()); + } + + return new Location(minX, minY, minZ); + } + + public static Location max(Location... locations) { + double maxX = -1000000000; + double maxY = -1000000000; + double maxZ = -1000000000; + + for (Location location : locations) { + maxX = Double.max(maxX, location.getX()); + maxY = Double.max(maxY, location.getY()); + maxZ = Double.max(maxZ, location.getZ()); + } + + return new Location(maxX, maxY, maxZ); + } + + public String toCompactString() { + return "(" + x + ", " + y + ", " + z + ")"; + } +} diff --git a/src/main/java/com/voinearadu/generic/Pair.java b/src/main/java/com/voinearadu/generic/Pair.java new file mode 100644 index 0000000..9e62060 --- /dev/null +++ b/src/main/java/com/voinearadu/generic/Pair.java @@ -0,0 +1,5 @@ +package com.voinearadu.generic; + +public record Pair(Value1 value1, Value2 value2) { + +} diff --git a/src/main/java/com/voinearadu/generic/Range.java b/src/main/java/com/voinearadu/generic/Range.java new file mode 100644 index 0000000..53936a0 --- /dev/null +++ b/src/main/java/com/voinearadu/generic/Range.java @@ -0,0 +1,20 @@ +package com.voinearadu.generic; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Getter +public class Range { + + private int min; + private int max; + + @SuppressWarnings("unused") + public static Range exact(int n) { + return new Range(n, n); + } + +} \ No newline at end of file diff --git a/src/main/java/com.voinearadu/lambda/CancelableTimeTask.java b/src/main/java/com/voinearadu/lambda/CancelableTimeTask.java similarity index 100% rename from src/main/java/com.voinearadu/lambda/CancelableTimeTask.java rename to src/main/java/com/voinearadu/lambda/CancelableTimeTask.java diff --git a/src/main/java/com.voinearadu/lambda/ScheduleUtils.java b/src/main/java/com/voinearadu/lambda/ScheduleUtils.java similarity index 100% rename from src/main/java/com.voinearadu/lambda/ScheduleUtils.java rename to src/main/java/com/voinearadu/lambda/ScheduleUtils.java diff --git a/src/main/java/com.voinearadu/lambda/lambda/ArgLambdaExecutor.java b/src/main/java/com/voinearadu/lambda/lambda/ArgLambdaExecutor.java similarity index 100% rename from src/main/java/com.voinearadu/lambda/lambda/ArgLambdaExecutor.java rename to src/main/java/com/voinearadu/lambda/lambda/ArgLambdaExecutor.java diff --git a/src/main/java/com.voinearadu/lambda/lambda/ArgsLambdaExecutor.java b/src/main/java/com/voinearadu/lambda/lambda/ArgsLambdaExecutor.java similarity index 100% rename from src/main/java/com.voinearadu/lambda/lambda/ArgsLambdaExecutor.java rename to src/main/java/com/voinearadu/lambda/lambda/ArgsLambdaExecutor.java diff --git a/src/main/java/com.voinearadu/lambda/lambda/LambdaExecutor.java b/src/main/java/com/voinearadu/lambda/lambda/LambdaExecutor.java similarity index 100% rename from src/main/java/com.voinearadu/lambda/lambda/LambdaExecutor.java rename to src/main/java/com/voinearadu/lambda/lambda/LambdaExecutor.java diff --git a/src/main/java/com.voinearadu/lambda/lambda/ReturnArgLambdaExecutor.java b/src/main/java/com/voinearadu/lambda/lambda/ReturnArgLambdaExecutor.java similarity index 100% rename from src/main/java/com.voinearadu/lambda/lambda/ReturnArgLambdaExecutor.java rename to src/main/java/com/voinearadu/lambda/lambda/ReturnArgLambdaExecutor.java diff --git a/src/main/java/com.voinearadu/lambda/lambda/ReturnArgsLambdaExecutor.java b/src/main/java/com/voinearadu/lambda/lambda/ReturnArgsLambdaExecutor.java similarity index 100% rename from src/main/java/com.voinearadu/lambda/lambda/ReturnArgsLambdaExecutor.java rename to src/main/java/com/voinearadu/lambda/lambda/ReturnArgsLambdaExecutor.java diff --git a/src/main/java/com.voinearadu/lambda/lambda/ReturnLambdaExecutor.java b/src/main/java/com/voinearadu/lambda/lambda/ReturnLambdaExecutor.java similarity index 100% rename from src/main/java/com.voinearadu/lambda/lambda/ReturnLambdaExecutor.java rename to src/main/java/com/voinearadu/lambda/lambda/ReturnLambdaExecutor.java diff --git a/src/main/java/com.voinearadu/logger/Logger.java b/src/main/java/com/voinearadu/logger/Logger.java similarity index 100% rename from src/main/java/com.voinearadu/logger/Logger.java rename to src/main/java/com/voinearadu/logger/Logger.java diff --git a/src/main/java/com.voinearadu/logger/dto/ConsoleColor.java b/src/main/java/com/voinearadu/logger/dto/ConsoleColor.java similarity index 100% rename from src/main/java/com.voinearadu/logger/dto/ConsoleColor.java rename to src/main/java/com/voinearadu/logger/dto/ConsoleColor.java diff --git a/src/main/java/com.voinearadu/logger/utils/StackTraceUtils.java b/src/main/java/com/voinearadu/logger/utils/StackTraceUtils.java similarity index 100% rename from src/main/java/com.voinearadu/logger/utils/StackTraceUtils.java rename to src/main/java/com/voinearadu/logger/utils/StackTraceUtils.java diff --git a/src/main/java/com.voinearadu/message_builder/GenericMessageBuilder.java b/src/main/java/com/voinearadu/message_builder/GenericMessageBuilder.java similarity index 100% rename from src/main/java/com.voinearadu/message_builder/GenericMessageBuilder.java rename to src/main/java/com/voinearadu/message_builder/GenericMessageBuilder.java diff --git a/src/main/java/com.voinearadu/message_builder/MessageBuilder.java b/src/main/java/com/voinearadu/message_builder/MessageBuilder.java similarity index 100% rename from src/main/java/com.voinearadu/message_builder/MessageBuilder.java rename to src/main/java/com/voinearadu/message_builder/MessageBuilder.java diff --git a/src/main/java/com.voinearadu/message_builder/MessageBuilderList.java b/src/main/java/com/voinearadu/message_builder/MessageBuilderList.java similarity index 100% rename from src/main/java/com.voinearadu/message_builder/MessageBuilderList.java rename to src/main/java/com/voinearadu/message_builder/MessageBuilderList.java diff --git a/src/main/java/com.voinearadu/message_builder/MessageBuilderManager.java b/src/main/java/com/voinearadu/message_builder/MessageBuilderManager.java similarity index 100% rename from src/main/java/com.voinearadu/message_builder/MessageBuilderManager.java rename to src/main/java/com/voinearadu/message_builder/MessageBuilderManager.java diff --git a/src/main/java/com.voinearadu/message_builder/data/MessageBuilderListTypeAdapter.java b/src/main/java/com/voinearadu/message_builder/data/MessageBuilderListTypeAdapter.java similarity index 100% rename from src/main/java/com.voinearadu/message_builder/data/MessageBuilderListTypeAdapter.java rename to src/main/java/com/voinearadu/message_builder/data/MessageBuilderListTypeAdapter.java diff --git a/src/main/java/com.voinearadu/message_builder/data/MessageBuilderTypeAdapter.java b/src/main/java/com/voinearadu/message_builder/data/MessageBuilderTypeAdapter.java similarity index 100% rename from src/main/java/com.voinearadu/message_builder/data/MessageBuilderTypeAdapter.java rename to src/main/java/com/voinearadu/message_builder/data/MessageBuilderTypeAdapter.java diff --git a/src/main/java/com.voinearadu/redis_manager/Executor.java b/src/main/java/com/voinearadu/redis_manager/Executor.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/Executor.java rename to src/main/java/com/voinearadu/redis_manager/Executor.java diff --git a/src/main/java/com.voinearadu/redis_manager/Main.java b/src/main/java/com/voinearadu/redis_manager/Main.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/Main.java rename to src/main/java/com/voinearadu/redis_manager/Main.java diff --git a/src/main/java/com.voinearadu/redis_manager/dto/RedisConfig.java b/src/main/java/com/voinearadu/redis_manager/dto/RedisConfig.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/dto/RedisConfig.java rename to src/main/java/com/voinearadu/redis_manager/dto/RedisConfig.java diff --git a/src/main/java/com.voinearadu/redis_manager/dto/RedisResponse.java b/src/main/java/com/voinearadu/redis_manager/dto/RedisResponse.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/dto/RedisResponse.java rename to src/main/java/com/voinearadu/redis_manager/dto/RedisResponse.java diff --git a/src/main/java/com.voinearadu/redis_manager/dto/gson/RedisRequestGsonTypeAdapter.java b/src/main/java/com/voinearadu/redis_manager/dto/gson/RedisRequestGsonTypeAdapter.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/dto/gson/RedisRequestGsonTypeAdapter.java rename to src/main/java/com/voinearadu/redis_manager/dto/gson/RedisRequestGsonTypeAdapter.java diff --git a/src/main/java/com.voinearadu/redis_manager/event/RedisBroadcast.java b/src/main/java/com/voinearadu/redis_manager/event/RedisBroadcast.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/event/RedisBroadcast.java rename to src/main/java/com/voinearadu/redis_manager/event/RedisBroadcast.java diff --git a/src/main/java/com.voinearadu/redis_manager/event/RedisEvent.java b/src/main/java/com/voinearadu/redis_manager/event/RedisEvent.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/event/RedisEvent.java rename to src/main/java/com/voinearadu/redis_manager/event/RedisEvent.java diff --git a/src/main/java/com.voinearadu/redis_manager/event/RedisRequest.java b/src/main/java/com/voinearadu/redis_manager/event/RedisRequest.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/event/RedisRequest.java rename to src/main/java/com/voinearadu/redis_manager/event/RedisRequest.java diff --git a/src/main/java/com.voinearadu/redis_manager/event/impl/PingEvent.java b/src/main/java/com/voinearadu/redis_manager/event/impl/PingEvent.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/event/impl/PingEvent.java rename to src/main/java/com/voinearadu/redis_manager/event/impl/PingEvent.java diff --git a/src/main/java/com.voinearadu/redis_manager/event/impl/ResponseEvent.java b/src/main/java/com/voinearadu/redis_manager/event/impl/ResponseEvent.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/event/impl/ResponseEvent.java rename to src/main/java/com/voinearadu/redis_manager/event/impl/ResponseEvent.java diff --git a/src/main/java/com.voinearadu/redis_manager/manager/DebugRedisManager.java b/src/main/java/com/voinearadu/redis_manager/manager/DebugRedisManager.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/manager/DebugRedisManager.java rename to src/main/java/com/voinearadu/redis_manager/manager/DebugRedisManager.java diff --git a/src/main/java/com.voinearadu/redis_manager/manager/RedisDebugger.java b/src/main/java/com/voinearadu/redis_manager/manager/RedisDebugger.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/manager/RedisDebugger.java rename to src/main/java/com/voinearadu/redis_manager/manager/RedisDebugger.java diff --git a/src/main/java/com.voinearadu/redis_manager/manager/RedisManager.java b/src/main/java/com/voinearadu/redis_manager/manager/RedisManager.java similarity index 100% rename from src/main/java/com.voinearadu/redis_manager/manager/RedisManager.java rename to src/main/java/com/voinearadu/redis_manager/manager/RedisManager.java diff --git a/src/main/java/com.voinearadu/reflections/Reflections.java b/src/main/java/com/voinearadu/reflections/Reflections.java similarity index 100% rename from src/main/java/com.voinearadu/reflections/Reflections.java rename to src/main/java/com/voinearadu/reflections/Reflections.java diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 4e7836a..b94eaa9 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -2,10 +2,13 @@ exports com.voinearadu.event_manager; exports com.voinearadu.file_manager; exports com.voinearadu.lambda; + exports com.voinearadu.lambda.lambda; exports com.voinearadu.logger; + exports com.voinearadu.logger.dto; exports com.voinearadu.message_builder; exports com.voinearadu.redis_manager; exports com.voinearadu.reflections; + exports com.voinearadu.generic; requires static lombok; requires static org.jetbrains.annotations; diff --git a/src/test/java/com/voinearadu/generic/LocationTests.java b/src/test/java/com/voinearadu/generic/LocationTests.java new file mode 100644 index 0000000..6642eef --- /dev/null +++ b/src/test/java/com/voinearadu/generic/LocationTests.java @@ -0,0 +1,34 @@ +package com.voinearadu.generic; + +import com.voinearadu.file_manager.dto.files.FileObject; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class LocationTests { + + @Test + public void testOffsets() { + Location location = new Location(1, 2, 3); + assertEquals(new Location(2, 4, 6), location.offsetNew(1, 2, 3)); + assertEquals(new Location(0, 0, 0), location.negativeOffsetNew(1, 2, 3)); + location.offset(1, 2, 3); + assertEquals(new Location(2, 4, 6), location); + location.negativeOffset(2, 4, 6); + assertEquals(new Location(0, 0, 0), location); + location.offset(1, 2, 3); + location.multiply(2); + assertEquals(new Location(2, 4, 6), location); + assertEquals(new Location(1,1,1), Location.min( + new Location(1,100, 100), + new Location(100,1, 100), + new Location(100,100, 1) + )); + assertEquals(new Location(100,100,100), Location.max( + new Location(100,1, 1), + new Location(1,100, 1), + new Location(1,1, 100) + )); + } + +}