Skip to content

Commit

Permalink
Make use of new Reversion Library
Browse files Browse the repository at this point in the history
Squashed commit of the following:

commit fd8415198a1786ab7c8ed370c7295536ac30f2bb
Author: bundabrg <bundabrg@grieve.com.au>
Date:   Fri Aug 28 11:07:28 2020 +0800

    Update Documents

commit 24f6f33
Author: bundabrg <brendan@grieve.com.au>
Date:   Fri Aug 28 10:11:07 2020 +0800

    Bump to 1.0.6

commit 37c6579
Author: bundabrg <brendan@grieve.com.au>
Date:   Thu Aug 27 18:39:04 2020 +0800

    Bump to 1.0.5

commit f959724
Author: bundabrg <bundabrg@grieve.com.au>
Date:   Thu Aug 27 17:41:25 2020 +0800

    Initial v412

commit 05210fe
Author: bundabrg <brendan@grieve.com.au>
Date:   Thu Aug 27 10:38:09 2020 +0800

    Add back education support

commit 2060169
Author: bundabrg <bundabrg@grieve.com.au>
Date:   Wed Aug 26 19:29:03 2020 +0800

    Use new Reversion
  • Loading branch information
bundabrg committed Aug 28, 2020
1 parent 34c6bc2 commit f490719
Show file tree
Hide file tree
Showing 10 changed files with 107 additions and 50 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ allow any supported version to connect to any supported Geyser.
* Minecraft Bedrock v1.16.2
* Minecraft Bedrock v1.16.100.50 (beta)
* Minecraft Bedrock v1.16.100.52 (beta)
* Minecraft Bedrock v1.16.100.53 (beta)

### Minecraft Education
* Minecraft Education v1.14.31
Expand Down
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ allow any supported version to connect to any supported Geyser.
* Minecraft Bedrock v1.16.2
* Minecraft Bedrock v1.16.100.50 (beta)
* Minecraft Bedrock v1.16.100.52 (beta)
* Minecraft Bedrock v1.16.100.53 (beta)

### Minecraft Education
* Minecraft Education v1.14.31
Expand Down
76 changes: 65 additions & 11 deletions geyser-reversion/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@
<version>${reversion.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>au.com.grieve.reversion</groupId>
<artifactId>translator-v412be_to_v411be</artifactId>
<version>${reversion.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>au.com.grieve.reversion</groupId>
<artifactId>common</artifactId>
Expand All @@ -74,6 +80,32 @@
<version>${reversion.version}</version>
<scope>compile</scope>
</dependency>

<!-- Protocol Stuff -->
<dependency>
<groupId>com.nukkitx.protocol</groupId>
<artifactId>education-v390</artifactId>
<version>3.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.nukkitx.protocol</groupId>
<artifactId>bedrock-v409</artifactId>
<version>3.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.nukkitx.protocol</groupId>
<artifactId>bedrock-v411</artifactId>
<version>3.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.nukkitx.protocol</groupId>
<artifactId>bedrock-v412</artifactId>
<version>3.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>

<build>
Expand All @@ -90,20 +122,42 @@
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<includes>
<include>au.com.grieve.reversion:*</include>
<include>com.nukkitx.protocol:education-v390</include>
<include>com.nukkitx.protocol:bedrock-v409</include>
<include>com.nukkitx.protocol:bedrock-v411</include>
<include>com.nukkitx.protocol:bedrock-v412</include>
</includes>
</artifactSet>
</configuration>
</execution>
</executions>
<configuration>
<!-- <relocations>-->
<!-- <relocation>-->
<!-- <pattern>com.nukkitx.protocol.bedrock.v363</pattern>-->
<!-- <shadedPattern>${project.groupId}.${project.artifactId}.v363</shadedPattern>-->
<!-- </relocation>-->
<!-- </relocations>-->
<artifactSet>
<excludes>
<exclude>it.unimi.dsi.fastutil:*</exclude>
</excludes>
</artifactSet>
<relocations>
<relocation>
<pattern>com.nukkitx.protocol.education.v390</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.nukkitx.protocol.education.v390
</shadedPattern>
</relocation>
<relocation>
<pattern>com.nukkitx.protocol.bedrock.v409</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.nukkitx.protocol.bedrock.v409
</shadedPattern>
</relocation>
<relocation>
<pattern>com.nukkitx.protocol.bedrock.v411</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.nukkitx.protocol.bedrock.v411
</shadedPattern>
</relocation>
<relocation>
<pattern>com.nukkitx.protocol.bedrock.v412</pattern>
<shadedPattern>${project.groupId}.${project.artifactId}.nukkitx.protocol.bedrock.v412
</shadedPattern>
</relocation>
</relocations>
</configuration>
</plugin>
</plugins>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@
import au.com.grieve.geyser.reversion.config.Configuration;
import au.com.grieve.geyser.reversion.editions.bedrock.BedrockEdition;
import au.com.grieve.geyser.reversion.editions.education.EducationEdition;
import au.com.grieve.reversion.ReversionServer;
import au.com.grieve.reversion.api.BaseTranslator;
import au.com.grieve.reversion.api.TranslatorException;
import au.com.grieve.reversion.translators.v390ee_to_v408be.Translator_v390ee_to_v408be;
import au.com.grieve.reversion.translators.v409be_to_v408be.Translator_v409be_to_v408be;
import au.com.grieve.reversion.translators.v411be_to_v409be.Translator_v411be_to_v409be;
import au.com.grieve.reversion.api.RegisteredTranslator;
import au.com.grieve.reversion.api.ReversionServer;
import au.com.grieve.reversion.translators.v390ee_to_v408be.Register_v390ee_to_v408be;
import au.com.grieve.reversion.translators.v409be_to_v408be.Register_v409be_to_v408be;
import au.com.grieve.reversion.translators.v411be_to_v409be.Register_v411be_to_v409be;
import au.com.grieve.reversion.translators.v412be_to_v411be.Register_v412be_to_v411be;
import lombok.Getter;
import org.geysermc.connector.GeyserConnector;
import org.geysermc.connector.event.annotations.GeyserEventHandler;
Expand All @@ -50,6 +50,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

@Plugin(
name = "GeyserReversion",
Expand All @@ -63,7 +64,7 @@ public class GeyserReversionPlugin extends GeyserPlugin {
private static GeyserReversionPlugin instance;

private final Map<String, Edition> registeredEditions = new HashMap<>();
private final List<Class<? extends BaseTranslator>> registeredTranslators = new ArrayList<>();
private final List<RegisteredTranslator> registeredTranslators = new ArrayList<>();

private Configuration config;

Expand All @@ -88,9 +89,10 @@ private void registerEditions() {
* Register built-in translators
*/
private void registerTranslators() {
registerTranslator(Translator_v390ee_to_v408be.class);
registerTranslator(Translator_v409be_to_v408be.class);
registerTranslator(Translator_v411be_to_v409be.class);
registerTranslator(Register_v409be_to_v408be.TRANSLATOR);
registerTranslator(Register_v411be_to_v409be.TRANSLATOR);
registerTranslator(Register_v390ee_to_v408be.TRANSLATOR);
registerTranslator(Register_v412be_to_v411be.TRANSLATOR);
}


Expand All @@ -99,15 +101,13 @@ private void registerTranslators() {
*/
public void registerEdition(String name, Edition edition) {
registeredEditions.put(name, edition);
getLogger().debug("Registered Edition: " + name);
}

/**
* Register a Translator
*/
public void registerTranslator(Class<? extends BaseTranslator> translatorClass) {
registeredTranslators.add(translatorClass);
getLogger().debug("Registered Translator: " + translatorClass.getSimpleName());
public void registerTranslator(RegisteredTranslator translator) {
registeredTranslators.add(translator);
}

/**
Expand Down Expand Up @@ -151,13 +151,9 @@ public void onGeyserStart(GeyserStartEvent event) {
bedrockServer.setAccessible(true);

ReversionServer server = edition.createReversionServer(GeyserConnector.getInstance().getBedrockServer().getBindAddress());
for (Class<? extends BaseTranslator> translatorClass : getRegisteredTranslators()) {
try {
server.registerTranslator(translatorClass);
getLogger().debug("Registered Translator: " + translatorClass.getSimpleName());
} catch (TranslatorException e) {
getLogger().error(String.format("Unable to register Translator: %s", translatorClass.getName()), e);
}
for (RegisteredTranslator translator : getRegisteredTranslators()) {
server.registerTranslator(translator);
getLogger().debug("Registered Translator: " + translator.getName());
}

GeyserConnector.getInstance().getBedrockServer().close();
Expand All @@ -167,11 +163,14 @@ public void onGeyserStart(GeyserStartEvent event) {
getLogger().error(String.format("Unable to set Edition '%s'. Plugin disabled.", config.getEdition()), e);
}

GeyserConnector.getInstance().getBedrockServer().bind().whenComplete((avoid, throwable) -> {
if (throwable != null) {
getLogger().severe(LanguageUtils.getLocaleStringLog("geyser.core.fail", address.getAddress().toString(), address.getPort()));
throwable.printStackTrace();
}
}).join();
// Give the old BedrockServer time to close down
GeyserConnector.getInstance().getGeneralThreadPool().schedule(() -> {
GeyserConnector.getInstance().getBedrockServer().bind().whenComplete((avoid, throwable) -> {
if (throwable != null) {
getLogger().severe(LanguageUtils.getLocaleStringLog("geyser.core.fail", address.getAddress().toString(), address.getPort()));
throwable.printStackTrace();
}
}).join();
}, 1, TimeUnit.SECONDS);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@

package au.com.grieve.geyser.reversion.api;

import au.com.grieve.reversion.ReversionServer;

import au.com.grieve.reversion.api.ReversionServer;

import java.net.InetSocketAddress;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

import au.com.grieve.geyser.reversion.api.Edition;
import au.com.grieve.geyser.reversion.editions.bedrock.handlers.BedrockServerEventHandler;
import au.com.grieve.reversion.ReversionServer;
import au.com.grieve.reversion.api.ReversionServer;
import au.com.grieve.reversion.editions.bedrock.BedrockReversionServer;
import lombok.RequiredArgsConstructor;
import org.geysermc.connector.GeyserConnector;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

package au.com.grieve.geyser.reversion.editions.bedrock.handlers;

import au.com.grieve.reversion.ReversionServerSession;
import au.com.grieve.reversion.api.ReversionSession;
import com.nukkitx.protocol.bedrock.BedrockServerSession;
import lombok.Getter;
import org.geysermc.connector.GeyserConnector;
Expand All @@ -37,6 +37,6 @@ public BedrockServerEventHandler(GeyserConnector connector) {
@Override
public void onSessionCreation(BedrockServerSession bedrockServerSession) {
bedrockServerSession.setLogging(true);
bedrockServerSession.setPacketHandler(new BedrockUpstreamPacketHandler((ReversionServerSession) bedrockServerSession, this.connector, new GeyserSession(this.connector, bedrockServerSession)));
bedrockServerSession.setPacketHandler(new BedrockUpstreamPacketHandler((ReversionSession) bedrockServerSession, this.connector, new GeyserSession(this.connector, bedrockServerSession)));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@

package au.com.grieve.geyser.reversion.editions.bedrock.handlers;

import au.com.grieve.reversion.LoginData;
import au.com.grieve.reversion.ReversionServerSession;
import au.com.grieve.reversion.api.LoginData;
import au.com.grieve.reversion.api.ReversionSession;
import au.com.grieve.reversion.exceptions.LoginException;
import com.fasterxml.jackson.databind.JsonNode;
import com.nukkitx.protocol.bedrock.BedrockPacketCodec;
import com.nukkitx.protocol.bedrock.packet.LoginPacket;
Expand All @@ -40,10 +41,10 @@

@Getter
public class BedrockUpstreamPacketHandler extends UpstreamPacketHandler {
private final ReversionServerSession serverSession;
private final ReversionSession serverSession;
private final GeyserSession geyserSession;

public BedrockUpstreamPacketHandler(ReversionServerSession serverSession, GeyserConnector connector, GeyserSession session) {
public BedrockUpstreamPacketHandler(ReversionSession serverSession, GeyserConnector connector, GeyserSession session) {
super(connector, session);
this.serverSession = serverSession;
this.geyserSession = session;
Expand Down Expand Up @@ -72,7 +73,7 @@ public boolean handle(LoginPacket loginPacket) {
ServerToClientHandshakePacket packet = new ServerToClientHandshakePacket();
packet.setJwt(serverSession.getLoginData().getHandshakeJwt().serialize());
session.sendUpstreamPacketImmediately(packet);
} catch (LoginData.LoginException e) {
} catch (LoginException e) {
session.disconnect("disconnectionScreen.internalError.cantConnect");
session.getConnector().getLogger().error("Failed to encrypt connection", e);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import au.com.grieve.geyser.reversion.api.Edition;
import au.com.grieve.geyser.reversion.editions.bedrock.handlers.BedrockServerEventHandler;
import au.com.grieve.geyser.reversion.editions.education.commands.EducationCommand;
import au.com.grieve.reversion.ReversionServer;
import au.com.grieve.reversion.api.ReversionServer;
import au.com.grieve.reversion.editions.education.EducationReversionServer;
import au.com.grieve.reversion.editions.education.utils.TokenManager;
import lombok.Getter;
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<reversion.version>1.0.4</reversion.version>
<reversion.version>1.0.6</reversion.version>
</properties>

<build>
Expand All @@ -50,7 +50,7 @@
<version>3.7.0</version>

<configuration>
<!-- <forceJavacCompilerUse>true</forceJavacCompilerUse>-->
<!-- <forceJavacCompilerUse>true</forceJavacCompilerUse>-->
<source>1.8</source>
<target>1.8</target>
</configuration>
Expand Down

0 comments on commit f490719

Please sign in to comment.