[NO-ORBIT] Unified Porting Branch
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
--- a/Forge/src/main/java/com/hypherionmc/craterlib/CraterLib.java
|
||||
+++ b/Forge/src/main/java/com/hypherionmc/craterlib/CraterLib.java
|
||||
@@ -3,6 +3,7 @@
|
||||
import com.hypherionmc.craterlib.api.events.client.LateInitEvent;
|
||||
import com.hypherionmc.craterlib.common.ForgeServerEvents;
|
||||
import com.hypherionmc.craterlib.core.event.CraterEventBus;
|
||||
+import com.hypherionmc.craterlib.compat.Vanish;
|
||||
import com.hypherionmc.craterlib.core.networking.CraterPacketNetwork;
|
||||
import com.hypherionmc.craterlib.core.networking.data.PacketSide;
|
||||
import com.hypherionmc.craterlib.core.platform.ModloaderEnvironment;
|
||||
@@ -32,5 +33,9 @@
|
||||
LateInitEvent event = new LateInitEvent(new BridgedMinecraft(), BridgedOptions.of(Minecraft.getInstance().options));
|
||||
CraterEventBus.INSTANCE.postEvent(event);
|
||||
});
|
||||
+
|
||||
+ if (ModloaderEnvironment.INSTANCE.isModLoaded("vmod")) {
|
||||
+ MinecraftForge.EVENT_BUS.register(new Vanish());
|
||||
+ }
|
||||
}
|
||||
}
|
@@ -0,0 +1,28 @@
|
||||
--- /dev/null
|
||||
+++ b/Forge/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java
|
||||
@@ -1,0 +1,25 @@
|
||||
+package com.hypherionmc.craterlib.compat;
|
||||
+
|
||||
+import com.hypherionmc.craterlib.api.events.server.CraterPlayerEvent;
|
||||
+import com.hypherionmc.craterlib.core.event.CraterEventBus;
|
||||
+import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer;
|
||||
+import net.minecraft.world.entity.player.Player;
|
||||
+import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
+import redstonedubstep.mods.vanishmod.api.PlayerVanishEvent;
|
||||
+
|
||||
+public class Vanish {
|
||||
+
|
||||
+ public Vanish() {
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ @SubscribeEvent
|
||||
+ public void vanishevent(PlayerVanishEvent event) {
|
||||
+ if (event.isVanished()) {
|
||||
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity())));
|
||||
+ } else {
|
||||
+ CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity())));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+}
|
@@ -0,0 +1,25 @@
|
||||
--- a/Forge/src/main/java/com/hypherionmc/craterlib/mixin/ServerGamePacketListenerImplMixin.java
|
||||
+++ b/Forge/src/main/java/com/hypherionmc/craterlib/mixin/ServerGamePacketListenerImplMixin.java
|
||||
@@ -15,6 +15,8 @@
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
+import java.util.concurrent.CompletableFuture;
|
||||
+
|
||||
@Mixin(value = ServerGamePacketListenerImpl.class, priority = Integer.MIN_VALUE)
|
||||
public class ServerGamePacketListenerImplMixin {
|
||||
|
||||
@@ -22,11 +24,11 @@
|
||||
public ServerPlayer player;
|
||||
|
||||
@Inject(
|
||||
- method = "lambda$handleChat$5",
|
||||
+ method = "lambda$handleChat$9",
|
||||
at = @At("HEAD"),
|
||||
cancellable = true
|
||||
)
|
||||
- private void injectChatEvent(Component component, PlayerChatMessage arg, FilteredText p_296589_, CallbackInfo ci) {
|
||||
+ private void injectChatEvent(CompletableFuture completablefuture1, PlayerChatMessage arg, CompletableFuture completablefuture, Void p_248218_, CallbackInfo ci) {
|
||||
CraterServerChatEvent event = new CraterServerChatEvent(BridgedPlayer.of(this.player), arg.decoratedContent().getString(), ChatUtils.mojangToAdventure(arg.decoratedContent()));
|
||||
CraterEventBus.INSTANCE.postEvent(event);
|
||||
if (event.wasCancelled())
|
@@ -0,0 +1,94 @@
|
||||
--- a/Forge/src/main/java/com/hypherionmc/craterlib/network/CraterForgeNetworkHandler.java
|
||||
+++ b/Forge/src/main/java/com/hypherionmc/craterlib/network/CraterForgeNetworkHandler.java
|
||||
@@ -12,16 +12,17 @@
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.server.network.ServerGamePacketListenerImpl;
|
||||
-import net.minecraftforge.event.network.CustomPayloadEvent;
|
||||
-import net.minecraftforge.network.ChannelBuilder;
|
||||
-import net.minecraftforge.network.PacketDistributor;
|
||||
-import net.minecraftforge.network.SimpleChannel;
|
||||
+import net.minecraftforge.network.NetworkDirection;
|
||||
+import net.minecraftforge.network.NetworkEvent;
|
||||
+import net.minecraftforge.network.NetworkRegistry;
|
||||
+import net.minecraftforge.network.simple.SimpleChannel;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
+import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* Based on https://github.com/mysticdrew/common-networking/tree/1.20.4
|
||||
@@ -35,18 +36,19 @@
|
||||
|
||||
protected <T> void registerPacket(PacketHolder<T> holder) {
|
||||
if (CHANNELS.get(holder.messageType()) == null) {
|
||||
- SimpleChannel channel = ChannelBuilder
|
||||
- .named(holder.type().id())
|
||||
- .clientAcceptedVersions((a, b) -> true)
|
||||
- .serverAcceptedVersions((a, b) -> true)
|
||||
- .networkProtocolVersion(1)
|
||||
+ SimpleChannel channel = NetworkRegistry.ChannelBuilder
|
||||
+ .named(holder.type().toMojang())
|
||||
+ .clientAcceptedVersions((a) -> true)
|
||||
+ .serverAcceptedVersions((a) -> true)
|
||||
+ .networkProtocolVersion(() -> "1")
|
||||
.simpleChannel();
|
||||
|
||||
- channel.messageBuilder(holder.messageType())
|
||||
- .decoder(mojangDecoder(holder.decoder()))
|
||||
- .encoder(mojangEncoder(holder.encoder()))
|
||||
- .consumerNetworkThread(buildHandler(holder.handler()))
|
||||
- .add();
|
||||
+ channel.registerMessage(
|
||||
+ 0,
|
||||
+ holder.messageType(),
|
||||
+ mojangEncoder(holder.encoder()),
|
||||
+ mojangDecoder(holder.decoder()),
|
||||
+ buildHandler(holder.handler()));
|
||||
|
||||
CHANNELS.put(holder.messageType(), channel);
|
||||
} else {
|
||||
@@ -62,7 +64,7 @@
|
||||
SimpleChannel channel = CHANNELS.get(packet.getClass());
|
||||
Connection connection = Minecraft.getInstance().getConnection().getConnection();
|
||||
if (channel.isRemotePresent(connection) || ignoreCheck) {
|
||||
- channel.send(packet, PacketDistributor.SERVER.noArg());
|
||||
+ channel.sendToServer(packet);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,8 +74,8 @@
|
||||
if (connection == null)
|
||||
return;
|
||||
|
||||
- if (channel.isRemotePresent(connection.getConnection())) {
|
||||
- channel.send(packet, PacketDistributor.PLAYER.with(player.toMojangServerPlayer()));
|
||||
+ if (channel.isRemotePresent(connection.connection)) {
|
||||
+ channel.sendTo(packet, player.getConnection().connection, NetworkDirection.PLAY_TO_CLIENT);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,14 +87,14 @@
|
||||
return ((t, byteBuf) -> handler.accept(t, BridgedFriendlyByteBuf.of(byteBuf)));
|
||||
}
|
||||
|
||||
- private <T> BiConsumer<T, CustomPayloadEvent.Context> buildHandler(Consumer<PacketContext<T>> handler) {
|
||||
+ private <T> BiConsumer<T, Supplier<NetworkEvent.Context>> buildHandler(Consumer<PacketContext<T>> handler) {
|
||||
return (message, ctx) -> {
|
||||
- ctx.enqueueWork(() -> {
|
||||
- PacketSide side = ctx.getDirection().getReceptionSide().isServer() ? PacketSide.SERVER : PacketSide.CLIENT;
|
||||
- ServerPlayer player = ctx.getSender();
|
||||
+ ctx.get().enqueueWork(() -> {
|
||||
+ PacketSide side = ctx.get().getDirection().getReceptionSide().isServer() ? PacketSide.SERVER : PacketSide.CLIENT;
|
||||
+ ServerPlayer player = ctx.get().getSender();
|
||||
handler.accept(new PacketContext<>(BridgedPlayer.of(player), message, side));
|
||||
});
|
||||
- ctx.setPacketHandled(true);
|
||||
+ ctx.get().setPacketHandled(true);
|
||||
};
|
||||
}
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
--- a/Forge/src/main/resources/META-INF/mods.toml
|
||||
+++ b/Forge/src/main/resources/META-INF/mods.toml
|
||||
@@ -1,5 +1,5 @@
|
||||
modLoader = "javafml"
|
||||
-loaderVersion = "[50,)"
|
||||
+loaderVersion = "[44,)"
|
||||
license = "MIT"
|
||||
issueTrackerURL = "https://github.com/firstdarkdev/craterLib/issues"
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
[[dependencies.${ mod_id }]]
|
||||
modId = "forge"
|
||||
mandatory = true
|
||||
- versionRange = "[50,)"
|
||||
+ versionRange = "[44,)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${ mod_id }]]
|
||||
modId = "minecraft"
|
||||
mandatory = true
|
||||
- versionRange = "[1.20.6,1.21)"
|
||||
+ versionRange = "[1.19.3,1.20)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
Reference in New Issue
Block a user