forked from git-mirrors/GeyserConnect
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>
|
<dependency>
|
||||||
<groupId>org.geysermc</groupId>
|
<groupId>org.geysermc</groupId>
|
||||||
<artifactId>connector</artifactId>
|
<artifactId>connector</artifactId>
|
||||||
<version>1.4.1-SNAPSHOT</version>
|
<version>1.4.2-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.nukkitx.network</groupId>
|
<groupId>com.nukkitx.network</groupId>
|
||||||
|
|
|
@ -25,11 +25,9 @@
|
||||||
|
|
||||||
package org.geysermc.connect;
|
package org.geysermc.connect;
|
||||||
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.geysermc.connect.utils.WebUtils;
|
|
||||||
import org.geysermc.connect.storage.AbstractStorageManager;
|
import org.geysermc.connect.storage.AbstractStorageManager;
|
||||||
import org.geysermc.connect.utils.Server;
|
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.Cache;
|
||||||
import com.google.common.cache.CacheBuilder;
|
import com.google.common.cache.CacheBuilder;
|
||||||
import com.nukkitx.protocol.bedrock.*;
|
import com.nukkitx.protocol.bedrock.*;
|
||||||
|
import io.netty.channel.DefaultEventLoopGroup;
|
||||||
|
import io.netty.util.concurrent.DefaultThreadFactory;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.geysermc.connect.storage.DisabledStorageManager;
|
import org.geysermc.connect.storage.DisabledStorageManager;
|
||||||
|
@ -90,6 +92,9 @@ public class MasterServer {
|
||||||
@Getter
|
@Getter
|
||||||
private long lastDisconnectTime = 0L;
|
private long lastDisconnectTime = 0L;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private final DefaultEventLoopGroup eventLoopGroup = new DefaultEventLoopGroup(new DefaultThreadFactory("Geyser player thread"));
|
||||||
|
|
||||||
public MasterServer() {
|
public MasterServer() {
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
|
|
|
@ -25,12 +25,15 @@
|
||||||
|
|
||||||
package org.geysermc.connect;
|
package org.geysermc.connect;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectReader;
|
||||||
import com.fasterxml.jackson.databind.node.JsonNodeType;
|
import com.fasterxml.jackson.databind.node.JsonNodeType;
|
||||||
import com.nimbusds.jose.JWSObject;
|
import com.nimbusds.jose.JWSObject;
|
||||||
import com.nimbusds.jose.crypto.factories.DefaultJWSVerifierFactory;
|
import com.nimbusds.jose.crypto.factories.DefaultJWSVerifierFactory;
|
||||||
|
import com.nimbusds.jose.shaded.json.JSONArray;
|
||||||
import com.nukkitx.network.util.DisconnectReason;
|
import com.nukkitx.network.util.DisconnectReason;
|
||||||
import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
|
import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
|
||||||
import com.nukkitx.protocol.bedrock.BedrockServerSession;
|
import com.nukkitx.protocol.bedrock.BedrockServerSession;
|
||||||
|
@ -131,6 +134,18 @@ public class PacketHandler implements BedrockPacketHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
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
|
// Parse the signed jws object
|
||||||
JWSObject jwsObject;
|
JWSObject jwsObject;
|
||||||
jwsObject = JWSObject.parse(chainData.get(chainData.size() - 1).asText());
|
jwsObject = JWSObject.parse(chainData.get(chainData.size() - 1).asText());
|
||||||
|
|
|
@ -26,12 +26,13 @@
|
||||||
package org.geysermc.connect.proxy;
|
package org.geysermc.connect.proxy;
|
||||||
|
|
||||||
import com.nukkitx.protocol.bedrock.BedrockServerSession;
|
import com.nukkitx.protocol.bedrock.BedrockServerSession;
|
||||||
|
import io.netty.channel.EventLoop;
|
||||||
import org.geysermc.connector.GeyserConnector;
|
import org.geysermc.connector.GeyserConnector;
|
||||||
import org.geysermc.connector.network.session.GeyserSession;
|
import org.geysermc.connector.network.session.GeyserSession;
|
||||||
|
|
||||||
public class GeyserProxySession extends GeyserSession {
|
public class GeyserProxySession extends GeyserSession {
|
||||||
public GeyserProxySession(GeyserConnector connector, BedrockServerSession bedrockServerSession) {
|
public GeyserProxySession(GeyserConnector connector, BedrockServerSession bedrockServerSession, EventLoop eventLoop) {
|
||||||
super(connector, bedrockServerSession);
|
super(connector, bedrockServerSession, eventLoop);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -35,6 +35,7 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
|
||||||
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.geysermc.connect.GeyserConnect;
|
||||||
import org.geysermc.connect.MasterServer;
|
import org.geysermc.connect.MasterServer;
|
||||||
import org.geysermc.connect.proxy.GeyserProxySession;
|
import org.geysermc.connect.proxy.GeyserProxySession;
|
||||||
import org.geysermc.connect.ui.FormID;
|
import org.geysermc.connect.ui.FormID;
|
||||||
|
@ -166,7 +167,7 @@ public class Player {
|
||||||
|
|
||||||
// Send the biomes
|
// Send the biomes
|
||||||
BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket();
|
BiomeDefinitionListPacket biomeDefinitionListPacket = new BiomeDefinitionListPacket();
|
||||||
biomeDefinitionListPacket.setDefinitions(Registries.BIOMES.get());
|
biomeDefinitionListPacket.setDefinitions(Registries.BIOMES_NBT.get());
|
||||||
session.sendPacket(biomeDefinitionListPacket);
|
session.sendPacket(biomeDefinitionListPacket);
|
||||||
|
|
||||||
AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket();
|
AvailableEntityIdentifiersPacket entityPacket = new AvailableEntityIdentifiersPacket();
|
||||||
|
@ -227,7 +228,7 @@ public class Player {
|
||||||
transferPacket.setPort(currentServer.getPort());
|
transferPacket.setPort(currentServer.getPort());
|
||||||
session.sendPacket(transferPacket);
|
session.sendPacket(transferPacket);
|
||||||
} else {
|
} 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));
|
session.setPacketHandler(new UpstreamPacketHandler(GeyserConnector.getInstance(), geyserSession));
|
||||||
|
|
||||||
geyserSession.getUpstream().getSession().setPacketCodec(session.getPacketCodec());
|
geyserSession.getUpstream().getSession().setPacketCodec(session.getPacketCodec());
|
||||||
|
|
Loading…
Add table
Reference in a new issue