Skip to content

Commit

Permalink
Merge pull request #80 from MrNavaStar/fury
Browse files Browse the repository at this point in the history
Fury
  • Loading branch information
MrNavaStar authored Aug 17, 2024
2 parents 22d4a71 + 8dfb846 commit bcd5d45
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 5 deletions.
1 change: 0 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ subprojects {
publishing {
repositories {
maven {
name "MrNavaStar"
url "https://maven.mrnavastar.rocks/releases"
credentials {
username = System.getenv("MAVEN_NAME")
Expand Down
4 changes: 2 additions & 2 deletions client/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ shadowJar {
}

relocate "org.apache.fury", "me.mrnavastar.protoweaver.libs.org.apache.fury"
relocate 'io.netty', 'me.mrnavastar.protoweaver.libs.netty'
relocate 'io.netty', 'me.mrnavastar.protoweaver.libs.io.netty'

exclude "META-INF/maven/**"
minimize()
//minimize()
}

jar.finalizedBy(shadowJar)
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@
import me.mrnavastar.protoweaver.api.netty.ProtoConnection;
import org.apache.fury.Fury;
import org.apache.fury.ThreadSafeFury;
import org.apache.fury.logging.LoggerFactory;

import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
Expand All @@ -19,6 +22,11 @@ public class Protocol {

private final ThreadSafeFury fury = Fury.builder().withJdkClassSerializableCheck(false).buildThreadSafeFury();

static {
// Make fury be quiet
LoggerFactory.disableLogging();
}

@Getter private final String namespace;
@Getter private final String name;
@Getter private CompressionType compression = CompressionType.NONE;
Expand Down Expand Up @@ -176,12 +184,21 @@ public Builder setClientAuthHandler(Class<? extends ClientAuthHandler> handler)
return this;
}

private void recursiveRegister(Class<?> packet, List<Class<?>> registered) {
if (packet == null || registered.contains(packet)) return;
protocol.fury.register(packet);
registered.add(packet);

List.of(packet.getDeclaredFields()).forEach(field -> recursiveRegister(field.getType(), registered));
recursiveRegister(packet.getSuperclass(), registered);
}

/**
* Register a class to the {@link Protocol}. Does nothing if the class has already been registered.
* @param packet The packet to register.
*/
public Builder addPacket(@NonNull Class<?> packet) {
protocol.fury.register(packet);
recursiveRegister(packet, new ArrayList<>());
protocol.packetHash = 31 * protocol.packetHash + packet.getName().hashCode();
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public void handlePacket(ProtoConnection connection, Object packet) {
return;
}

if (nextProtocol.getConnections() >= nextProtocol.getMaxConnections()) {
if (nextProtocol.getMaxConnections() != -1 && nextProtocol.getConnections() >= nextProtocol.getMaxConnections()) {
status.setStatus(ProtocolStatus.Status.FULL);
disconnectIfNeverUpgraded(connection, connection.send(status));
return;
Expand Down

0 comments on commit bcd5d45

Please sign in to comment.