From 8d97b5bf019acc3e4e899a615c152046650753fa Mon Sep 17 00:00:00 2001 From: gnembon Date: Sun, 15 Sep 2019 09:28:03 -0300 Subject: [PATCH] leash fixes --- .../EntityTrackerEntry_leashFixMixin.java | 34 +++++++++++++++++++ src/main/java/carpet/utils/BlockInfo.java | 2 +- src/main/java/carpet/utils/EntityInfo.java | 2 +- src/main/resources/carpet.mixins.json | 1 + 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 src/main/java/carpet/mixins/EntityTrackerEntry_leashFixMixin.java diff --git a/src/main/java/carpet/mixins/EntityTrackerEntry_leashFixMixin.java b/src/main/java/carpet/mixins/EntityTrackerEntry_leashFixMixin.java new file mode 100644 index 00000000..d1afb12e --- /dev/null +++ b/src/main/java/carpet/mixins/EntityTrackerEntry_leashFixMixin.java @@ -0,0 +1,34 @@ +package carpet.mixins; + +import carpet.settings.CarpetSettings; +import net.minecraft.client.network.packet.EntityAttachS2CPacket; +import net.minecraft.entity.Entity; +import net.minecraft.entity.mob.MobEntity; +import net.minecraft.network.Packet; +import net.minecraft.server.network.EntityTrackerEntry; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.function.Consumer; + +@Mixin(EntityTrackerEntry.class) +public class EntityTrackerEntry_leashFixMixin +{ + @Shadow @Final private Entity entity; + + @Inject(method = "sendPackets", at = @At("RETURN")) + private void sendLeashPackets(Consumer> consumer_1, CallbackInfo ci) + { + if (CarpetSettings.leadFix) + { + if (entity instanceof MobEntity) + { + consumer_1.accept( new EntityAttachS2CPacket(entity, ((MobEntity) entity).getHoldingEntity())); + } + } + } +} diff --git a/src/main/java/carpet/utils/BlockInfo.java b/src/main/java/carpet/utils/BlockInfo.java index 6632ee43..8084a9f3 100644 --- a/src/main/java/carpet/utils/BlockInfo.java +++ b/src/main/java/carpet/utils/BlockInfo.java @@ -230,7 +230,7 @@ public class BlockInfo } creature.remove(); long total_time = (total_ticks)/1000/20; - return Messenger.s(String.format(" - Wander chance above: %.1f%%%%\n - Average standby above: %s", + return Messenger.s(String.format(" - Wander chance above: %.1f%%\n - Average standby above: %s", (100.0F*success)/1000, ((total_time>5000)?"INFINITY":(Long.toString(total_time)+" s")) )); diff --git a/src/main/java/carpet/utils/EntityInfo.java b/src/main/java/carpet/utils/EntityInfo.java index e98a5268..b209df88 100644 --- a/src/main/java/carpet/utils/EntityInfo.java +++ b/src/main/java/carpet/utils/EntityInfo.java @@ -95,7 +95,7 @@ public class EntityInfo public static List entityInfo(Entity e, World source_world) { List lst = new ArrayList<>(); - lst.add(Messenger.s("w Use /data get entity command")); + lst.add(Messenger.c("r Use /data get entity command")); return lst; } } diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 4cd22f74..680cf64e 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -26,6 +26,7 @@ "MobEntityMixin", "ServerWorld_unloadedEntityMixin", "MobEntity_leashMixin", + "EntityTrackerEntry_leashFixMixin", "VillagerEntity_aiMixin",