From 7cd2907ac158e9bec12e5087322214c90c0536c8 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sat, 30 Jan 2021 17:40:32 +0800 Subject: [PATCH] Do not send packet to player not logged in --- .../mixin/forge/PacketDistributorMixin.java | 24 +++++++++++++++++++ .../main/resources/mixins.arclight.forge.json | 3 ++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 arclight-common/src/main/java/io/izzel/arclight/common/mixin/forge/PacketDistributorMixin.java diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/forge/PacketDistributorMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/forge/PacketDistributorMixin.java new file mode 100644 index 00000000..01c34a12 --- /dev/null +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/forge/PacketDistributorMixin.java @@ -0,0 +1,24 @@ +package io.izzel.arclight.common.mixin.forge; + +import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.network.IPacket; +import net.minecraftforge.fml.network.PacketDistributor; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; + +import java.util.function.Consumer; +import java.util.function.Supplier; + +@Mixin(PacketDistributor.class) +public class PacketDistributorMixin { + + @Overwrite + private Consumer> playerConsumer(Supplier entityPlayerMPSupplier) { + return p -> { + ServerPlayerEntity entity = entityPlayerMPSupplier.get(); + if (entity.connection != null && entity.connection.netManager != null) { + entity.connection.netManager.sendPacket(p); + } + }; + } +} diff --git a/arclight-common/src/main/resources/mixins.arclight.forge.json b/arclight-common/src/main/resources/mixins.arclight.forge.json index 799ed00f..70f29b50 100644 --- a/arclight-common/src/main/resources/mixins.arclight.forge.json +++ b/arclight-common/src/main/resources/mixins.arclight.forge.json @@ -9,6 +9,7 @@ "ForgeEventFactoryMixin", "ForgeHooksMixin", "ForgeInternalHandlerMixin", - "NetworkHooksMixin" + "NetworkHooksMixin", + "PacketDistributorMixin" ] } \ No newline at end of file