From 66feec6cf256bd1ebb054ddc0535c4e1bd46bed1 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Mon, 25 Jan 2021 18:06:05 +0800 Subject: [PATCH] Provide a default connection for (fake) player --- .../player/ServerPlayerEntityMixin.java | 2 + .../common/mod/util/BlackholeNetHandler.java | 41 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 arclight-common/src/main/java/io/izzel/arclight/common/mod/util/BlackholeNetHandler.java diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/player/ServerPlayerEntityMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/player/ServerPlayerEntityMixin.java index 5183b521..0f4e46d9 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/player/ServerPlayerEntityMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/player/ServerPlayerEntityMixin.java @@ -11,6 +11,7 @@ import io.izzel.arclight.common.bridge.util.FoodStatsBridge; import io.izzel.arclight.common.bridge.world.TeleporterBridge; import io.izzel.arclight.common.bridge.world.WorldBridge; import io.izzel.arclight.common.mod.util.ArclightCaptures; +import io.izzel.arclight.common.mod.util.BlackholeNetHandler; import io.izzel.arclight.common.mod.util.ChestBlockDoubleInventoryHacks; import net.minecraft.block.NetherPortalBlock; import net.minecraft.block.PortalInfo; @@ -192,6 +193,7 @@ public abstract class ServerPlayerEntityMixin extends PlayerEntityMixin implemen this.canPickUpLoot = true; this.maxHealthCache = this.getMaxHealth(); this.arclight$initialized = true; + this.connection = new BlackholeNetHandler(this.getServer(), (ServerPlayerEntity) (Object) this); } @Override diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/BlackholeNetHandler.java b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/BlackholeNetHandler.java new file mode 100644 index 00000000..0ef4f77d --- /dev/null +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mod/util/BlackholeNetHandler.java @@ -0,0 +1,41 @@ +package io.izzel.arclight.common.mod.util; + +import io.netty.util.concurrent.Future; +import io.netty.util.concurrent.GenericFutureListener; +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.network.IPacket; +import net.minecraft.network.NetworkManager; +import net.minecraft.network.PacketDirection; +import net.minecraft.network.play.ServerPlayNetHandler; +import net.minecraft.server.MinecraftServer; +import org.jetbrains.annotations.Nullable; + +public class BlackholeNetHandler extends ServerPlayNetHandler { + + public BlackholeNetHandler(MinecraftServer server, ServerPlayerEntity playerIn) { + super(server, new BlackholeNetworkManager(), playerIn); + } + + @Override + public void sendPacket(IPacket packetIn) { + } + + @Override + public void sendPacket(IPacket packetIn, @Nullable GenericFutureListener> futureListeners) { + } + + private static class BlackholeNetworkManager extends NetworkManager { + + public BlackholeNetworkManager() { + super(PacketDirection.SERVERBOUND); + } + + @Override + public void sendPacket(IPacket packetIn) { + } + + @Override + public void sendPacket(IPacket packetIn, @Nullable GenericFutureListener> p_201058_2_) { + } + } +}