From 368e76fbd769e67fa2250e21f9428c978a34b968 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sun, 15 Sep 2019 17:42:31 -0300 Subject: [PATCH 1/2] fake players use items properlier --- .../helpers/EntityPlayerActionPack.java | 6 ++++ ...rownEnderpearlEntity_fakePlayersMixin.java | 29 +++++++++++++++++++ .../carpet/patches/EntityPlayerMPFake.java | 2 ++ src/main/resources/carpet.mixins.json | 1 + 4 files changed, 38 insertions(+) create mode 100644 src/main/java/carpet/mixins/ThrownEnderpearlEntity_fakePlayersMixin.java diff --git a/src/main/java/carpet/helpers/EntityPlayerActionPack.java b/src/main/java/carpet/helpers/EntityPlayerActionPack.java index 114bb3e7..03bfa80d 100644 --- a/src/main/java/carpet/helpers/EntityPlayerActionPack.java +++ b/src/main/java/carpet/helpers/EntityPlayerActionPack.java @@ -247,6 +247,12 @@ public class EntityPlayerActionPack break; } } + ItemStack handItem = player.getStackInHand(hand); + ActionResult result =player.interactionManager.interactItem(player, player.getServerWorld(), handItem, hand); + if (result == ActionResult.SUCCESS) + { + return true; + } } return false; } diff --git a/src/main/java/carpet/mixins/ThrownEnderpearlEntity_fakePlayersMixin.java b/src/main/java/carpet/mixins/ThrownEnderpearlEntity_fakePlayersMixin.java new file mode 100644 index 00000000..fe88571d --- /dev/null +++ b/src/main/java/carpet/mixins/ThrownEnderpearlEntity_fakePlayersMixin.java @@ -0,0 +1,29 @@ +package carpet.mixins; + +import carpet.patches.EntityPlayerMPFake; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.thrown.ThrownEnderpearlEntity; +import net.minecraft.entity.thrown.ThrownItemEntity; +import net.minecraft.network.ClientConnection; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(ThrownEnderpearlEntity.class) +public abstract class ThrownEnderpearlEntity_fakePlayersMixin extends ThrownItemEntity +{ + public ThrownEnderpearlEntity_fakePlayersMixin(EntityType entityType_1, World world_1) + { + super(entityType_1, world_1); + } + + @Redirect(method = "onCollision", at = @At( + value = "INVOKE", + target = "Lnet/minecraft/network/ClientConnection;isOpen()Z" + )) + private boolean isConnectionGood(ClientConnection clientConnection) + { + return clientConnection.isOpen() || getOwner() instanceof EntityPlayerMPFake; + } +} diff --git a/src/main/java/carpet/patches/EntityPlayerMPFake.java b/src/main/java/carpet/patches/EntityPlayerMPFake.java index 68df9885..1ad6cf0d 100644 --- a/src/main/java/carpet/patches/EntityPlayerMPFake.java +++ b/src/main/java/carpet/patches/EntityPlayerMPFake.java @@ -6,6 +6,7 @@ import net.minecraft.client.network.packet.EntityPositionS2CPacket; import net.minecraft.client.network.packet.EntitySetHeadYawS2CPacket; import net.minecraft.client.network.packet.PlayerListS2CPacket; import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.player.HungerManager; import net.minecraft.network.NetworkSide; import net.minecraft.text.TranslatableText; import net.minecraft.server.MinecraftServer; @@ -117,6 +118,7 @@ public class EntityPlayerMPFake extends ServerPlayerEntity { super.onDeath(cause); setHealth(20); + this.hungerManager = new HungerManager(); kill(); } } diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 71c2a233..9e64e131 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -31,6 +31,7 @@ "VillagerEntity_aiMixin", "ServerWorld_fakePlayersMixin", + "ThrownEnderpearlEntity_fakePlayersMixin", "ServerPlayNetworkHandler_coreMixin", From fb3afa3b590c229844d4a809f7d8c011062d598d Mon Sep 17 00:00:00 2001 From: gnembon Date: Sun, 15 Sep 2019 23:11:47 -0300 Subject: [PATCH 2/2] black carpet finally shows mobcaps --- src/main/java/carpet/utils/SpawnReporter.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/carpet/utils/SpawnReporter.java b/src/main/java/carpet/utils/SpawnReporter.java index 64c7f5b1..440085bd 100644 --- a/src/main/java/carpet/utils/SpawnReporter.java +++ b/src/main/java/carpet/utils/SpawnReporter.java @@ -174,7 +174,7 @@ public class SpawnReporter } else { - return new ArrayList<>(); + return printMobcapsForDimension(worldIn.dimension.getType(), true ); } } EntityCategory creature_type = get_type_code_from_wool_code(under); @@ -197,9 +197,7 @@ public class SpawnReporter } else { - return tracking_report(worldIn); - //// TODO - //return print_general_mobcaps(worldIn); + return printMobcapsForDimension(worldIn.dimension.getType(), true ); } }