From 4b0a072551b11c4c2fccc13c7598a39e1379ccdf Mon Sep 17 00:00:00 2001 From: Me <135455255+IcarussOne@users.noreply.github.com> Date: Thu, 11 Jan 2024 16:29:36 -0600 Subject: [PATCH 1/3] Portal Duplication Fixes --- README.md | 1 + .../UTPortalDuplicationFixes.java | 35 +++++++++++++++++++ .../config/UTConfigBugfixes.java | 5 +++ .../util/compat/UTObsoleteModsHandler.java | 1 + 4 files changed, 42 insertions(+) create mode 100644 src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFixes.java diff --git a/README.md b/README.md index b2402600..13820da2 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ All changes are toggleable via config files. * **Mount Desync:** Fixes mounts and boats sometimes disappearing after dismounting * **Packet Size:** Increases the packet size limit to account for large packets in modded environments * **Piston Progress:** Properly saves the last state of pistons to tags +* **Portal Duplication Fixes:** Fixes entity duplication issues on portals * **Shear Mooshroom Dupe:** Fixes a duplication exploit connected to shearing mooshrooms * **Skeleton Aim:** Fixes skeletons not looking at their targets when strafing * **Tile Entity Map:** Replaces the chunk position data table to prevent tile entity related issues diff --git a/src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFixes.java b/src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFixes.java new file mode 100644 index 00000000..eadfd313 --- /dev/null +++ b/src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFixes.java @@ -0,0 +1,35 @@ +package mod.acgaming.universaltweaks.bugfixes.world.portalduplicationfixes; + +import org.apache.logging.log4j.Level; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.event.entity.EntityTravelToDimensionEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import mod.acgaming.universaltweaks.UniversalTweaks; +import mod.acgaming.universaltweaks.config.UTConfigBugfixes; +import mod.acgaming.universaltweaks.config.UTConfigGeneral; +import mod.acgaming.universaltweaks.config.UTConfigTweaks; + +// Courtesy of fonnymunkey +@Mod.EventBusSubscriber(modid = UniversalTweaks.MODID) +public class UTPortalDuplicationFixes +{ + @SubscribeEvent + public static void dimensionChangeEvent(EntityTravelToDimensionEvent event) + { + if (event.getEntity().world.isRemote || !(UTConfigBugfixes.WORLD.utPortalDuplicationFixesToggle)) return; + if (event.getEntity() instanceof EntityLiving && !(event.getEntity() instanceof EntityPlayer)) + { + EntityLiving entity = (EntityLiving) event.getEntity(); + + if (entity.isDead || !entity.isEntityAlive() || entity.getHealth() <= 0) + { + event.setCanceled(true); + if (UTConfigGeneral.DEBUG.utDebugToggle) UniversalTweaks.LOGGER.log(Level.WARN, "Possible attempted dupe at X: " + entity.posX + " Y: " + entity.posY + " Z: " + entity.posZ + " Entity Name: " + entity.getName()); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java b/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java index 2e705b0a..67a47002 100644 --- a/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java +++ b/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java @@ -345,6 +345,11 @@ public static class WorldCategory @Config.Comment("Fixes invisible chunks in edge cases (small enclosed rooms at chunk borders)") public boolean utFrustumCullingToggle = true; + @Config.RequiresMcRestart + @Config.Name("Portal Duplication Fixes") + @Config.Comment("Fixes entity duplication issues on portals") + public boolean utPortalDuplicationFixesToggle = true; + @Config.RequiresMcRestart @Config.Name("Tile Entity Map") @Config.Comment diff --git a/src/main/java/mod/acgaming/universaltweaks/util/compat/UTObsoleteModsHandler.java b/src/main/java/mod/acgaming/universaltweaks/util/compat/UTObsoleteModsHandler.java index 86e539de..a194ed93 100644 --- a/src/main/java/mod/acgaming/universaltweaks/util/compat/UTObsoleteModsHandler.java +++ b/src/main/java/mod/acgaming/universaltweaks/util/compat/UTObsoleteModsHandler.java @@ -93,6 +93,7 @@ public static List obsoleteModsMessage() if (Loader.isModLoaded("parry") && UTConfigTweaks.ITEMS.PARRY.utParryToggle) messages.add("Shield Parry"); if (Loader.isModLoaded("pathundergates") && UTConfigTweaks.BLOCKS.utLenientPathsToggle) messages.add("Path Under Gates"); if (Loader.isModLoaded("pickupnotifier") && UTConfigTweaks.MISC.PICKUP_NOTIFICATION.utPickupNotificationToggle) messages.add("Pick Up Notifier"); + if (Loader.isModLoaded("portaldupebegone") && UTConfigBugfixes.WORLD.utPortalDuplicationFixesToggle) messages.add("PortalDupeBegone"); if (Loader.isModLoaded("preventghost") && UTConfigBugfixes.BLOCKS.utMiningGlitchToggle) messages.add("Prevent Ghost Blocks"); if (Loader.isModLoaded("quickleafdecay") && UTConfigTweaks.BLOCKS.utLeafDecayToggle) messages.add("Quick Leaf Decay"); if (Loader.isModLoaded("rallyhealth") && UTConfigTweaks.ENTITIES.RALLY_HEALTH.utRallyHealthToggle) messages.add("Rally Health"); From 02ff5d8057444efaf61f837036d7680d7f2e29b7 Mon Sep 17 00:00:00 2001 From: Me <135455255+IcarussOne@users.noreply.github.com> Date: Fri, 12 Jan 2024 00:03:15 -0600 Subject: [PATCH 2/3] Soulbound Vexes Tweak --- README.md | 3 +- .../config/UTConfigBugfixes.java | 4 +-- .../config/UTConfigTweaks.java | 5 +++ .../soulboundvexes/UTSoulboundVexes.java | 35 +++++++++++++++++++ 4 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 src/main/java/mod/acgaming/universaltweaks/tweaks/entities/soulboundvexes/UTSoulboundVexes.java diff --git a/README.md b/README.md index 13820da2..1451579b 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ All changes are toggleable via config files. * **Mount Desync:** Fixes mounts and boats sometimes disappearing after dismounting * **Packet Size:** Increases the packet size limit to account for large packets in modded environments * **Piston Progress:** Properly saves the last state of pistons to tags -* **Portal Duplication Fixes:** Fixes entity duplication issues on portals +* **Portal Duplication Fix:** Fixes duplication issues that can occur when entities travel through portals * **Shear Mooshroom Dupe:** Fixes a duplication exploit connected to shearing mooshrooms * **Skeleton Aim:** Fixes skeletons not looking at their targets when strafing * **Tile Entity Map:** Replaces the chunk position data table to prevent tile entity related issues @@ -168,6 +168,7 @@ All changes are toggleable via config files. * **Skip Missing Registry Entries Screen:** Automatically confirms the 'Missing Registry Entries' screen on world load * **Sleeping Time:** Determines at which time of day sleeping is allowed in ticks (0 - 24000) * **Smooth Scrolling:** Adds smooth scrolling to every in-game list +* **Soulbound Vexes:** Summoned vexes will also die when their summoner is killed * **Spawn Caps:** Sets maximum spawning limits for different entity types * **Super Hot Torch:** Enables one-time ignition of entities by hitting them with a torch * **Stronghold Replacement:** Replaces stronghold generation with a safer variant diff --git a/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java b/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java index 67a47002..35c06888 100644 --- a/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java +++ b/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java @@ -346,8 +346,8 @@ public static class WorldCategory public boolean utFrustumCullingToggle = true; @Config.RequiresMcRestart - @Config.Name("Portal Duplication Fixes") - @Config.Comment("Fixes entity duplication issues on portals") + @Config.Name("Portal Duplication Fix") + @Config.Comment("Fixes duplication issues that can occur when entities travel through portals") public boolean utPortalDuplicationFixesToggle = true; @Config.RequiresMcRestart diff --git a/src/main/java/mod/acgaming/universaltweaks/config/UTConfigTweaks.java b/src/main/java/mod/acgaming/universaltweaks/config/UTConfigTweaks.java index bfa89f02..a0355dc3 100644 --- a/src/main/java/mod/acgaming/universaltweaks/config/UTConfigTweaks.java +++ b/src/main/java/mod/acgaming/universaltweaks/config/UTConfigTweaks.java @@ -393,6 +393,11 @@ public static class EntitiesCategory @Config.RangeDouble(min = 0.0D, max = 1.0D) public double utRabbitToastChance = 0.0D; + @Config.RequiresMcRestart + @Config.Name("Soulbound Vexes") + @Config.Comment("Summoned vexes will also die when their summoner is killed") + public boolean utSoulboundVexesToggle = true; + public static class AttributesCategory { @Config.RequiresMcRestart diff --git a/src/main/java/mod/acgaming/universaltweaks/tweaks/entities/soulboundvexes/UTSoulboundVexes.java b/src/main/java/mod/acgaming/universaltweaks/tweaks/entities/soulboundvexes/UTSoulboundVexes.java new file mode 100644 index 00000000..4ba7340a --- /dev/null +++ b/src/main/java/mod/acgaming/universaltweaks/tweaks/entities/soulboundvexes/UTSoulboundVexes.java @@ -0,0 +1,35 @@ +package mod.acgaming.universaltweaks.tweaks.entities.soulboundvexes; + +import org.apache.logging.log4j.Level; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.monster.EntityVex; +import net.minecraft.util.DamageSource; +import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +import mod.acgaming.universaltweaks.UniversalTweaks; +import mod.acgaming.universaltweaks.config.UTConfigBugfixes; +import mod.acgaming.universaltweaks.config.UTConfigGeneral; +import mod.acgaming.universaltweaks.config.UTConfigTweaks; + +@Mod.EventBusSubscriber(modid = UniversalTweaks.MODID) +public class UTSoulboundVexes +{ + @SubscribeEvent + public static void soulboundVexesEvent(LivingUpdateEvent event) + { + if (!(UTConfigTweaks.ENTITIES.utSoulboundVexesToggle)) return; + + if (event.getEntity() instanceof EntityVex) + { + Entity summoner = ((EntityVex) event.getEntity()).getOwner(); + + if (summoner != null && summoner.isDead && !(event.getEntity().isDead)) + { + event.getEntity().attackEntityFrom(DamageSource.GENERIC.setDamageIsAbsolute().setDamageBypassesArmor(), event.getEntityLiving().getMaxHealth()); + } + } + } +} \ No newline at end of file From 6e522cf0c5871e3c915f697e1a1505161f10d3f9 Mon Sep 17 00:00:00 2001 From: Me <135455255+IcarussOne@users.noreply.github.com> Date: Fri, 12 Jan 2024 06:05:02 -0600 Subject: [PATCH 3/3] Entity Lists Bugfix -MC-108469 --- README.md | 1 + .../mixins/UTEntityTilePistonMixin.java | 38 +++++++++++++++++++ .../entitylists/mixins/UTWorldMixin.java | 37 ++++++++++++++++++ ...Fixes.java => UTPortalDuplicationFix.java} | 4 +- .../config/UTConfigBugfixes.java | 7 +++- .../universaltweaks/core/UTLoadingPlugin.java | 3 ++ .../util/compat/UTObsoleteModsHandler.java | 2 +- .../assets/universaltweaks/lang/en_us.lang | 1 + .../mixins.bugfixes.entities.entitylists.json | 7 ++++ 9 files changed, 96 insertions(+), 4 deletions(-) create mode 100644 src/main/java/mod/acgaming/universaltweaks/bugfixes/entities/entitylists/mixins/UTEntityTilePistonMixin.java create mode 100644 src/main/java/mod/acgaming/universaltweaks/bugfixes/entities/entitylists/mixins/UTWorldMixin.java rename src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/{UTPortalDuplicationFixes.java => UTPortalDuplicationFix.java} (94%) create mode 100644 src/main/resources/mixins.bugfixes.entities.entitylists.json diff --git a/README.md b/README.md index 12b1587d..b6736d69 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ All changes are toggleable via config files. * **Entity Bounding Boxes:** Saves entity bounding boxes to tags to prevent breakouts and suffocation * **Entity Desync:** Fixes entity motion desyncs most notable with arrows and thrown items * **Entity ID:** Fixes non-functional elytra firework boosting and guardian targeting if the entity ID is 0 +* **Entity Lists:** Fixes entity lists often not getting updated correctly * **Entity NaN:** Prevents corruption of entities caused by invalid health or damage values * **Entity Suffocation:** Pushes entities out of blocks when growing up to prevent suffocation * **Entity Tracker:** Fixes entity tracker to prevent client-sided desyncs when teleporting or changing dimensions diff --git a/src/main/java/mod/acgaming/universaltweaks/bugfixes/entities/entitylists/mixins/UTEntityTilePistonMixin.java b/src/main/java/mod/acgaming/universaltweaks/bugfixes/entities/entitylists/mixins/UTEntityTilePistonMixin.java new file mode 100644 index 00000000..f1875525 --- /dev/null +++ b/src/main/java/mod/acgaming/universaltweaks/bugfixes/entities/entitylists/mixins/UTEntityTilePistonMixin.java @@ -0,0 +1,38 @@ +package mod.acgaming.universaltweaks.bugfixes.entities.entitylists.mixin; + +import java.util.List; + +import net.minecraft.entity.Entity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityPiston; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.AxisAlignedBB; + +import mod.acgaming.universaltweaks.UniversalTweaks; +import mod.acgaming.universaltweaks.config.UTConfigBugfixes; +import mod.acgaming.universaltweaks.config.UTConfigGeneral; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Surrogate; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +// MC-108469 +// https://bugs.mojang.com/browse/MC-108469 +// Courtesy of mrgrim +@Mixin(TileEntityPiston.class) +public abstract class UTEntityTilePistonMixin extends TileEntity +{ + @Inject(method = "moveCollidedEntities", at = @At(value = "INVOKE", target = "Ljava/lang/ThreadLocal;set(Ljava/lang/Object;)V", ordinal = 1, shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD) + public void utUpdateEntity(float p_184322_1_, CallbackInfo ci, EnumFacing enumfacing, double d0, List list, AxisAlignedBB axisalignedbb, List list1, boolean flag, int i, Entity entity, double d1) + { + if (UTConfigBugfixes.ENTITIES.utEntityListsToggle) world.updateEntityWithOptionalForce(entity, false); + } + + @Surrogate + public void utUpdateEntity(float p_184322_1_, CallbackInfo ci, EnumFacing enumfacing, double d0, List list, AxisAlignedBB axisalignedbb, List list1, boolean flag, int i, Entity entity, double d1, int quark0) + { + if (UTConfigBugfixes.ENTITIES.utEntityListsToggle) world.updateEntityWithOptionalForce(entity, false); + } +} \ No newline at end of file diff --git a/src/main/java/mod/acgaming/universaltweaks/bugfixes/entities/entitylists/mixins/UTWorldMixin.java b/src/main/java/mod/acgaming/universaltweaks/bugfixes/entities/entitylists/mixins/UTWorldMixin.java new file mode 100644 index 00000000..8807aae6 --- /dev/null +++ b/src/main/java/mod/acgaming/universaltweaks/bugfixes/entities/entitylists/mixins/UTWorldMixin.java @@ -0,0 +1,37 @@ +package mod.acgaming.universaltweaks.bugfixes.entities.entitylists.mixin; + +import net.minecraft.entity.Entity; +import net.minecraft.world.World; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.AxisAlignedBB; + +import mod.acgaming.universaltweaks.UniversalTweaks; +import mod.acgaming.universaltweaks.config.UTConfigBugfixes; +import mod.acgaming.universaltweaks.config.UTConfigGeneral; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.Slice; + +// MC-108469 +// https://bugs.mojang.com/browse/MC-108469 +// Courtesy of mrgrim +@Mixin(World.class) +public abstract class UTWorldMixin +{ + @Redirect(method = "updateEntityWithOptionalForce", + slice = @Slice(from = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;getChunk(II)Lnet/minecraft/world/chunk/Chunk;", ordinal = 0), + to = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;getChunk(II)Lnet/minecraft/world/chunk/Chunk;", ordinal = 1)), + at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;setPositionNonDirty()Z", ordinal = 0)) + public boolean utAlwaysLoadChunk(Entity entityIn) + { + if (UTConfigBugfixes.ENTITIES.utEntityListsToggle) + { + return true; + } else + { + // Returns false + return entityIn.setPositionNonDirty(); + } + } +} \ No newline at end of file diff --git a/src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFixes.java b/src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFix.java similarity index 94% rename from src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFixes.java rename to src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFix.java index eadfd313..0acf2d76 100644 --- a/src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFixes.java +++ b/src/main/java/mod/acgaming/universaltweaks/bugfixes/world/portalduplicationfixes/UTPortalDuplicationFix.java @@ -15,12 +15,12 @@ // Courtesy of fonnymunkey @Mod.EventBusSubscriber(modid = UniversalTweaks.MODID) -public class UTPortalDuplicationFixes +public class UTPortalDuplicationFix { @SubscribeEvent public static void dimensionChangeEvent(EntityTravelToDimensionEvent event) { - if (event.getEntity().world.isRemote || !(UTConfigBugfixes.WORLD.utPortalDuplicationFixesToggle)) return; + if (event.getEntity().world.isRemote || !(UTConfigBugfixes.WORLD.utPortalDuplicationFixToggle)) return; if (event.getEntity() instanceof EntityLiving && !(event.getEntity() instanceof EntityPlayer)) { EntityLiving entity = (EntityLiving) event.getEntity(); diff --git a/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java b/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java index 35c06888..5046965c 100644 --- a/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java +++ b/src/main/java/mod/acgaming/universaltweaks/config/UTConfigBugfixes.java @@ -187,6 +187,11 @@ public static class EntitiesCategory @Config.Comment("Fixes non-functional elytra firework boosting and guardian targeting if the entity ID is 0") public boolean utEntityIDToggle = true; + @Config.RequiresMcRestart + @Config.Name("Entity Lists") + @Config.Comment("Fixes entity lists often not getting updated correctly") + public boolean utEntityListsToggle = true; + @Config.Name("Entity NaN Values") @Config.Comment("Prevents corruption of entities caused by invalid health or damage values") public boolean utEntityNaNToggle = true; @@ -348,7 +353,7 @@ public static class WorldCategory @Config.RequiresMcRestart @Config.Name("Portal Duplication Fix") @Config.Comment("Fixes duplication issues that can occur when entities travel through portals") - public boolean utPortalDuplicationFixesToggle = true; + public boolean utPortalDuplicationFixToggle = true; @Config.RequiresMcRestart @Config.Name("Tile Entity Map") diff --git a/src/main/java/mod/acgaming/universaltweaks/core/UTLoadingPlugin.java b/src/main/java/mod/acgaming/universaltweaks/core/UTLoadingPlugin.java index f2a82899..b421adca 100644 --- a/src/main/java/mod/acgaming/universaltweaks/core/UTLoadingPlugin.java +++ b/src/main/java/mod/acgaming/universaltweaks/core/UTLoadingPlugin.java @@ -165,6 +165,7 @@ public List getMixinConfigs() configs.add("mixins.bugfixes.entities.dimensionchange.json"); configs.add("mixins.bugfixes.entities.disconnectdupe.json"); configs.add("mixins.bugfixes.entities.entityid.json"); + configs.add("mixins.bugfixes.entities.entitylists.json"); configs.add("mixins.bugfixes.entities.horsefalling.json"); configs.add("mixins.bugfixes.entities.maxhealth.json"); configs.add("mixins.bugfixes.entities.mount.json"); @@ -345,6 +346,8 @@ public boolean shouldMixinConfigQueue(String mixinConfig) return UTConfigBugfixes.ENTITIES.utDisconnectDupeToggle; case "mixins.bugfixes.entities.entityid.json": return UTConfigBugfixes.ENTITIES.utEntityIDToggle; + case "mixins.bugfixes.entities.entitylists.json": + return UTConfigBugfixes.ENTITIES.utEntityListsToggle; case "mixins.bugfixes.entities.horsefalling.json": return UTConfigBugfixes.ENTITIES.utHorseFallingToggle; case "mixins.bugfixes.entities.maxhealth.json": diff --git a/src/main/java/mod/acgaming/universaltweaks/util/compat/UTObsoleteModsHandler.java b/src/main/java/mod/acgaming/universaltweaks/util/compat/UTObsoleteModsHandler.java index a194ed93..a4169997 100644 --- a/src/main/java/mod/acgaming/universaltweaks/util/compat/UTObsoleteModsHandler.java +++ b/src/main/java/mod/acgaming/universaltweaks/util/compat/UTObsoleteModsHandler.java @@ -93,7 +93,7 @@ public static List obsoleteModsMessage() if (Loader.isModLoaded("parry") && UTConfigTweaks.ITEMS.PARRY.utParryToggle) messages.add("Shield Parry"); if (Loader.isModLoaded("pathundergates") && UTConfigTweaks.BLOCKS.utLenientPathsToggle) messages.add("Path Under Gates"); if (Loader.isModLoaded("pickupnotifier") && UTConfigTweaks.MISC.PICKUP_NOTIFICATION.utPickupNotificationToggle) messages.add("Pick Up Notifier"); - if (Loader.isModLoaded("portaldupebegone") && UTConfigBugfixes.WORLD.utPortalDuplicationFixesToggle) messages.add("PortalDupeBegone"); + if (Loader.isModLoaded("portaldupebegone") && UTConfigBugfixes.WORLD.utPortalDuplicationFixToggle) messages.add("PortalDupeBegone"); if (Loader.isModLoaded("preventghost") && UTConfigBugfixes.BLOCKS.utMiningGlitchToggle) messages.add("Prevent Ghost Blocks"); if (Loader.isModLoaded("quickleafdecay") && UTConfigTweaks.BLOCKS.utLeafDecayToggle) messages.add("Quick Leaf Decay"); if (Loader.isModLoaded("rallyhealth") && UTConfigTweaks.ENTITIES.RALLY_HEALTH.utRallyHealthToggle) messages.add("Rally Health"); diff --git a/src/main/resources/assets/universaltweaks/lang/en_us.lang b/src/main/resources/assets/universaltweaks/lang/en_us.lang index b5766337..6805dfb9 100644 --- a/src/main/resources/assets/universaltweaks/lang/en_us.lang +++ b/src/main/resources/assets/universaltweaks/lang/en_us.lang @@ -88,6 +88,7 @@ cfg.universaltweaks.tweaks.blocks.overhaulbeacon=Overhaul Beacon cfg.universaltweaks.tweaks.blocks.sapling=Sapling Behavior cfg.universaltweaks.tweaks.entities.attributes=Attributes cfg.universaltweaks.tweaks.entities.betterburning=Better Burning +cfg.universaltweaks.tweaks.entities.chickenshedding=Chicken Shedding cfg.universaltweaks.tweaks.entities.collisiondamage=Collision Damage cfg.universaltweaks.tweaks.entities.creeperconfetti=Creeper Confetti cfg.universaltweaks.tweaks.entities.damagevelocity=Damage Velocity diff --git a/src/main/resources/mixins.bugfixes.entities.entitylists.json b/src/main/resources/mixins.bugfixes.entities.entitylists.json new file mode 100644 index 00000000..c7f840cd --- /dev/null +++ b/src/main/resources/mixins.bugfixes.entities.entitylists.json @@ -0,0 +1,7 @@ +{ + "package": "mod.acgaming.universaltweaks.bugfixes.entities.entitylists.mixin", + "refmap": "universaltweaks.refmap.json", + "minVersion": "0.8", + "compatibilityLevel": "JAVA_8", + "mixins": ["UTEntityTilePistonMixin", "UTWorldMixin"] +} \ No newline at end of file