mirror of
https://github.com/GeyserMC/GeyserConnect.git
synced 2025-06-26 06:15:21 +02:00
Update Geyser and fix builds
This commit is contained in:
parent
ae078db451
commit
8c386a7200
6 changed files with 27 additions and 7 deletions
2
pom.xml
2
pom.xml
|
@ -68,7 +68,7 @@
|
|||
<dependency>
|
||||
<groupId>org.geysermc</groupId>
|
||||
<artifactId>connector</artifactId>
|
||||
<version>1.4.1-SNAPSHOT</version>
|
||||
<version>1.4.2-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.nukkitx.network</groupId>
|
||||
|
|
|
@ -25,11 +25,9 @@
|
|||
|
||||
package org.geysermc.connect;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Getter;
|
||||
import org.geysermc.connect.utils.WebUtils;
|
||||
import org.geysermc.connect.storage.AbstractStorageManager;
|
||||
import org.geysermc.connect.utils.Server;
|
||||
|
||||
|
|
|
@ -28,6 +28,8 @@ package org.geysermc.connect;
|
|||
import com.google.common.cache.Cache;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.nukkitx.protocol.bedrock.*;
|
||||
import io.netty.channel.DefaultEventLoopGroup;
|
||||
import io.netty.util.concurrent.DefaultThreadFactory;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.geysermc.connect.storage.DisabledStorageManager;
|
||||
|
@ -90,6 +92,9 @@ public class MasterServer {
|
|||
@Getter
|
||||
private long lastDisconnectTime = 0L;
|
||||
|
||||
@Getter
|
||||
private final DefaultEventLoopGroup eventLoopGroup = new DefaultEventLoopGroup(new DefaultThreadFactory("Geyser player thread"));
|
||||
|
||||
public MasterServer() {
|
||||
instance = this;
|
||||
|
||||
|
|
|
@ -25,12 +25,15 @@
|
|||
|
||||
package org.geysermc.connect;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.ObjectReader;
|
||||
import com.fasterxml.jackson.databind.node.JsonNodeType;
|
||||
import com.nimbusds.jose.JWSObject;
|
||||
import com.nimbusds.jose.crypto.factories.DefaultJWSVerifierFactory;
|
||||
import com.nimbusds.jose.shaded.json.JSONArray;
|
||||
import com.nukkitx.network.util.DisconnectReason;
|
||||
import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
|
||||
import com.nukkitx.protocol.bedrock.BedrockServerSession;
|
||||
|
@ -131,6 +134,18 @@ public class PacketHandler implements BedrockPacketHandler {
|
|||
}
|
||||
|
||||
try {
|
||||
// Convert the chainData to a JSONArray
|
||||
ObjectReader reader = OBJECT_MAPPER.readerFor(new TypeReference<List<String>>() { });
|
||||
JSONArray array = new JSONArray();
|
||||
array.addAll(reader.readValue(chainData));
|
||||
|
||||
// Verify the chain data
|
||||
if (!EncryptionUtils.verifyChain(array)) {
|
||||
// Disconnect the client
|
||||
session.disconnect("disconnectionScreen.internalError.cantConnect");
|
||||
throw new AssertionError("Failed to login, due to invalid chain data!");
|
||||
}
|
||||
|
||||
// Parse the signed jws object
|
||||
JWSObject jwsObject;
|
||||
jwsObject = JWSObject.parse(chainData.get(chainData.size() - 1).asText());
|
||||
|
|
|
@ -26,12 +26,13 @@
|
|||
package org.geysermc.connect.proxy;
|
||||
|
||||
import com.nukkitx.protocol.bedrock.BedrockServerSession;
|
||||
import io.netty.channel.EventLoop;
|
||||
import org.geysermc.connector.GeyserConnector;
|
||||
import org.geysermc.connector.network.session.GeyserSession;
|
||||
|
||||
public class GeyserProxySession extends GeyserSession {
|
||||
public GeyserProxySession(GeyserConnector connector, BedrockServerSession bedrockServerSession) {
|
||||
super(connector, bedrockServerSession);
|
||||
public GeyserProxySession(GeyserConnector connector, BedrockServerSession bedrockServerSession, EventLoop eventLoop) {
|
||||
super(connector, bedrockServerSession, eventLoop);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -35,6 +35,7 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
|
|||
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.geysermc.connect.GeyserConnect;
|
||||
import org.geysermc.connect.MasterServer;
|
||||
import org.geysermc.connect.proxy.GeyserProxySession;
|
||||
import org.geysermc.connect.ui.FormID;
|
||||
|
@ -166,7 +167,7 @@ public class Player {
|
|||
|
||||
// Send the biomes
|
||||
BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket();
|
||||
biomeDefinitionListPacket.setDefinitions(Registries.BIOMES.get());
|
||||
biomeDefinitionListPacket.setDefinitions(Registries.BIOMES_NBT.get());
|
||||
session.sendPacket(biomeDefinitionListPacket);
|
||||
|
||||
AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket();
|
||||
|
@ -227,7 +228,7 @@ public class Player {
|
|||
transferPacket.setPort(currentServer.getPort());
|
||||
session.sendPacket(transferPacket);
|
||||
} else {
|
||||
GeyserProxySession geyserSession = new GeyserProxySession(GeyserConnector.getInstance(), session);
|
||||
GeyserProxySession geyserSession = new GeyserProxySession(GeyserConnector.getInstance(), session, MasterServer.getInstance().getEventLoopGroup().next());
|
||||
session.setPacketHandler(new UpstreamPacketHandler(GeyserConnector.getInstance(), geyserSession));
|
||||
|
||||
geyserSession.getUpstream().getSession().setPacketCodec(session.getPacketCodec());
|
||||
|
|
Loading…
Add table
Reference in a new issue