[NO-ORBIT] Unified Porting Branch

This commit is contained in:
2024-05-19 19:08:42 +02:00
parent f64efbd228
commit be3fc20246
277 changed files with 8174 additions and 128 deletions

View File

@@ -0,0 +1,22 @@
--- a/Forge/build.gradle
+++ b/Forge/build.gradle
@@ -3,7 +3,7 @@
dependencies {
// Compat
- // NOT AVAILABLE ON FORGE modImplementation("maven.modrinth:vanishmod:${vanishmod}")
+ modImplementation("maven.modrinth:vanishmod:${vanishmod}")
// Do not edit or remove
implementation project(":Common")
@@ -104,8 +104,8 @@
setVersionType("release")
setChangelog("https://raw.githubusercontent.com/hypherionmc/changelogs/main/craterlib/changelog-forge.md")
setProjectVersion("${minecraft_version}-${project.version}")
- setDisplayName("[Forge 1.20.6] CraterLib - ${project.version}")
- setGameVersions("1.20.6")
+ setDisplayName("[Forge 1.19.3/1.19.4] CraterLib - ${project.version}")
+ setGameVersions("1.19.3", "1.19.4")
setLoaders("forge")
setArtifact(remapJar)
setCurseEnvironment("both")

View File

@@ -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());
+ }
}
}

View File

@@ -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())));
+ }
+ }
+
+}

View File

@@ -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())

View File

@@ -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);
};
}
}

View File

@@ -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"