diff --git a/libs.gradle b/libs.gradle index 6bac138..691322b 100644 --- a/libs.gradle +++ b/libs.gradle @@ -6,14 +6,15 @@ def slf4j_version = '1.7.30' def logback_version = '1.2.3' def dagger2_version = '2.33' def junit_version = '5.5.2' +def netty_version = '4.1.22.Final' ext { libs = [ lombok : 'org.projectlombok:lombok:1.18.12', annotations: 'com.google.code.findbugs:jsr305:3.0.2', - guava : 'com.google.guava:guava:30.1-jre', lang3 : 'org.apache.commons:commons-lang3:3.11', - netty : 'io.netty:netty-all:4.1.22.Final', + netty : ["io.netty:netty-transport:${netty_version}", + "io.netty:netty-handler:${netty_version}"], reactor : 'io.projectreactor:reactor-core:3.4.5', yaml : 'org.yaml:snakeyaml:1.28', json : 'com.eclipsesource.minimal-json:minimal-json:0.9.5', diff --git a/logic.gradle b/logic.gradle index eb5630f..68886aa 100644 --- a/logic.gradle +++ b/logic.gradle @@ -1,5 +1,6 @@ //file:noinspection GrUnresolvedAccess apply plugin: 'java' +apply plugin: 'java-library' apply from: rootDir.toPath().resolve('libs.gradle').toFile() String getProperty1(String propertyName1, String propertyName2) { diff --git a/protocol/build.gradle b/protocol/build.gradle index 1a4110a..03ac861 100644 --- a/protocol/build.gradle +++ b/protocol/build.gradle @@ -1,9 +1,8 @@ apply from: rootDir.toPath().resolve('logic.gradle').toFile() dependencies { - implementation libs.netty - implementation libs.reactor - implementation libs.guava + api libs.netty + api libs.reactor implementation libs.json testImplementation libs.lang3 diff --git a/protocol/src/main/java/mc/protocol/di/ProtocolModule.java b/protocol/src/main/java/mc/protocol/di/ProtocolModule.java index 479e6c9..167d27f 100644 --- a/protocol/src/main/java/mc/protocol/di/ProtocolModule.java +++ b/protocol/src/main/java/mc/protocol/di/ProtocolModule.java @@ -1,6 +1,5 @@ package mc.protocol.di; -import com.google.common.collect.ImmutableMap; import dagger.Module; import dagger.Provides; import io.netty.bootstrap.ServerBootstrap; @@ -22,9 +21,11 @@ import mc.protocol.io.codec.ProtocolSplitter; import mc.protocol.packets.Packet; import reactor.core.publisher.Sinks; +import javax.annotation.Nonnull; import javax.inject.Provider; import java.util.LinkedHashMap; import java.util.Map; +import java.util.stream.Collectors; import java.util.stream.Stream; @Module @@ -54,7 +55,7 @@ public class ProtocolModule { return new ChannelInitializer<>() { @Override - protected void initChannel(SocketChannel socketChannel) { + protected void initChannel(@Nonnull SocketChannel socketChannel) { ChannelPipeline pipeline = socketChannel.pipeline(); channelHandlerMapProvider.get().forEach(pipeline::addLast); } @@ -81,12 +82,8 @@ public class ProtocolModule { @Provides @ServerScope Map, Sinks.Many> provideObservedMap() { - ImmutableMap.Builder, Sinks.Many> builder = ImmutableMap.builder(); - - Stream.of(State.values()) + return Stream.of(State.values()) .flatMap(state -> state.getClientSidePackets().values().stream()) - .forEach(packetClass -> builder.put(packetClass, Sinks.many().multicast().directBestEffort())); - - return builder.build(); + .collect(Collectors.toMap(packetClass -> packetClass, v -> Sinks.many().multicast().directBestEffort())); } } diff --git a/protocol/src/main/java/mc/protocol/serializer/ServerInfoSerializer.java b/protocol/src/main/java/mc/protocol/serializer/ServerInfoSerializer.java index 3b98b3d..f215b55 100644 --- a/protocol/src/main/java/mc/protocol/serializer/ServerInfoSerializer.java +++ b/protocol/src/main/java/mc/protocol/serializer/ServerInfoSerializer.java @@ -3,11 +3,13 @@ package mc.protocol.serializer; import com.eclipsesource.json.Json; import com.eclipsesource.json.JsonArray; import com.eclipsesource.json.JsonObject; -import com.google.common.collect.Streams; import lombok.experimental.UtilityClass; import mc.protocol.model.ServerInfo; +import java.util.Spliterator; +import java.util.Spliterators; import java.util.stream.Collector; +import java.util.stream.StreamSupport; @UtilityClass public class ServerInfoSerializer { @@ -45,7 +47,9 @@ public class ServerInfoSerializer { } private static JsonArray jsonArrayAddAll(JsonArray jsonArrayTo, JsonArray jsonArrayFrom) { - Streams.stream(jsonArrayFrom).forEach(jsonArrayTo::add); + StreamSupport.stream( + Spliterators.spliteratorUnknownSize(jsonArrayFrom.iterator(), Spliterator.ORDERED), false) + .forEach(jsonArrayTo::add); return jsonArrayTo; } } diff --git a/server/build.gradle b/server/build.gradle index 91cb14c..b4c92f4 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -4,6 +4,10 @@ */ //file:noinspection GrUnresolvedAccess +plugins { + id 'com.github.johnrengelman.shadow' version '7.0.0' +} + apply from: rootDir.toPath().resolve('logic.gradle').toFile() apply plugin: 'application' @@ -16,10 +20,13 @@ dependencies { implementation libs.logger.logback - implementation libs.netty - implementation libs.reactor - implementation libs.guava implementation libs.yaml implementation libs.ioutils implementation libs.jopt } + +shadowJar { + archiveBaseName.set(jar.archiveBaseName.get()) + archiveVersion.set(project.version as String) + archiveClassifier.set('') +} \ No newline at end of file