Skip to content

Commit

Permalink
Checkpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
bundabrg committed Sep 17, 2020
1 parent 0df2fde commit db5e03e
Show file tree
Hide file tree
Showing 6 changed files with 90 additions and 141 deletions.
18 changes: 18 additions & 0 deletions geyser-reversion/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,26 @@
<artifactSet>
<includes>
<include>au.com.grieve.reversion:*</include>
<include>com.nukkitx.protocol:*</include>
</includes>
</artifactSet>
<relocations>
<relocation>
<pattern>com.nukkitx.protocol.bedrock</pattern>
<shadedPattern>au.com.grieve.geyser.reversion.shaded.nukkitx.protocol.bedrock
</shadedPattern>
<excludes>
<!-- <exclude>com.nukkitx.protocol.bedrock.BedrockServer</exclude>-->
<!-- <exclude>com.nukkitx.protocol.bedrock.BedrockServerSession</exclude>-->
<!-- <exclude>com.nukkitx.protocol.bedrock.BedrockServerEventHandler</exclude>-->
<!-- <exclude>com.nukkitx.protocol.bedrock.BedrockPong</exclude>-->
<!-- <exclude>com.nukkitx.protocol.bedrock.BedrockWrapperSerializer</exclude>-->
<!-- <exclude>com.nukkitx.protocol.bedrock.BedrockPacketCodec$1</exclude>-->
<!-- <exclude>com.nukkitx.protocol.bedrock.BedrockPacketCodec$Builder</exclude>-->
<!-- <exclude>com.nukkitx.protocol.bedrock.BedrockPacketHelper</exclude>-->
</excludes>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
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.geyser.reversion.translators.geyser.v408.Register_Geyser_v408;
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;
Expand Down Expand Up @@ -96,9 +95,6 @@ private void registerTranslators() {
registerTranslator(Register_v390ee_to_v408be.TRANSLATOR);
registerTranslator(Register_v412be_to_v411be.TRANSLATOR);
registerTranslator(Register_v414be_to_v412be.TRANSLATOR);

// Add Geyser Translators
registerTranslator(Register_Geyser_v408.TRANSLATOR);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@
import au.com.grieve.reversion.api.RegisteredTranslator;
import au.com.grieve.reversion.api.ReversionServer;
import au.com.grieve.reversion.editions.bedrock.BedrockRegisteredTranslator;
import au.com.grieve.reversion.editions.bedrock.BedrockReversionServer;
import lombok.RequiredArgsConstructor;
import org.geysermc.connector.GeyserConnector;
import org.geysermc.connector.network.BedrockProtocol;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.InetSocketAddress;

@RequiredArgsConstructor
Expand All @@ -38,7 +39,17 @@ public class BedrockEdition implements Edition {
@Override
public ReversionServer createReversionServer(InetSocketAddress address) {
extension.getLogger().info("BedrockServer listening on " + address.toString());
BedrockReversionServer server = new BedrockReversionServer("geyser-bedrock", BedrockProtocol.DEFAULT_BEDROCK_CODEC, address);

int version = 0;
try {
Object toCodec = BedrockProtocol.SUPPORTED_BEDROCK_CODECS.get(BedrockProtocol.SUPPORTED_BEDROCK_CODECS.size() - 1);
Method getProtocolVersion = toCodec.getClass().getMethod("getProtocolVersion");
version = (int) getProtocolVersion.invoke(toCodec);
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
e.printStackTrace();
}

GeyserReversionServer server = new GeyserReversionServer("bedrock", version, address);
server.setHandler(new BedrockServerEventHandler(GeyserConnector.getInstance()));

for (RegisteredTranslator translator : extension.getRegisteredTranslators()) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* EduSupport - Minecraft Protocol Support for MultiVersion in Geyser
* Copyright (C) 2020 GeyserReversion Developers
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

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

import au.com.grieve.reversion.editions.bedrock.BedrockReversionServer;
import au.com.grieve.reversion.editions.bedrock.BedrockReversionSession;
import com.nukkitx.network.raknet.RakNetSession;
import com.nukkitx.protocol.bedrock.BedrockPacket;
import com.nukkitx.protocol.bedrock.wrapper.BedrockWrapperSerializer;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;
import io.netty.channel.EventLoop;
import org.geysermc.connector.network.BedrockProtocol;

public class GeyserReversionSession extends BedrockReversionSession {
public GeyserReversionSession(BedrockReversionServer server, RakNetSession connection, EventLoop eventLoop, BedrockWrapperSerializer serializer) {
super(server, connection, eventLoop, serializer);
}

@Override
public boolean toServer(BedrockPacket packet) {
// Isolate Reversion protocol from Geyser Protocol in case there are overlapping differences
ByteBuf buffer = ByteBufAllocator.DEFAULT.ioBuffer();

getPacketCodec().tryEncode(buffer, packet);
BedrockPacket convertedPacket = BedrockProtocol.DEFAULT_BEDROCK_CODEC.tryDecode(buffer, packet.getPacketId());

return super.toServer(convertedPacket);
}

@Override
public void sendPacket(BedrockPacket packet) {
// Isolate Reversion protocol from Geyser Protocol in case there are overlapping differences
ByteBuf buffer = ByteBufAllocator.DEFAULT.ioBuffer();

BedrockProtocol.DEFAULT_BEDROCK_CODEC.tryEncode(buffer, packet);
BedrockPacket convertedPacket = getPacketCodec().tryDecode(buffer, packet.getPacketId());

super.sendPacket(convertedPacket);
}


}

This file was deleted.

This file was deleted.

0 comments on commit db5e03e

Please sign in to comment.