From f44cdd069944d9c68ba5c0ad9a6500074aec0ac8 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Fri, 20 Mar 2020 20:37:39 -0400 Subject: [PATCH] 1.0.7 Allow Leashing Villagers --- CHANGELOG.md | 3 +++ README.md | 1 + gradle.properties | 2 +- .../slightlyvanilla/ModConfig.java | 1 + .../mixin/MixinAbstractTraderEntity.java | 27 +++++++++++++++++++ .../assets/slightlyvanilla/lang/en_us.json | 1 + .../resources/slightlyvanilla.mixins.json | 3 ++- 7 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/thebrokenrail/slightlyvanilla/mixin/MixinAbstractTraderEntity.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cf8c67..58e0971 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +**1.0.7** +* Allow Leashing Villagers + **1.0.6** * Improve Instant Kill diff --git a/README.md b/README.md index 25350a6..628549a 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ Suggest more tweaks in the issue tracker! * Throwable Spawn Eggs * Open Loot Chests In Spectator Mode * Crying Obsidian Nether Portal +* Allow Leashing Villagers ## Changelog [View Changelog](CHANGELOG.md) diff --git a/gradle.properties b/gradle.properties index 8f2c43f..a363b62 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.jvmargs = -Xmx1G fabric_loader_version = 0.7.8+build.189 # Mod Properties - mod_version = 1.0.6 + mod_version = 1.0.7 maven_group = com.thebrokenrail archives_base_name = slightlyvanilla diff --git a/src/main/java/com/thebrokenrail/slightlyvanilla/ModConfig.java b/src/main/java/com/thebrokenrail/slightlyvanilla/ModConfig.java index 733edd5..fd4f00c 100644 --- a/src/main/java/com/thebrokenrail/slightlyvanilla/ModConfig.java +++ b/src/main/java/com/thebrokenrail/slightlyvanilla/ModConfig.java @@ -14,6 +14,7 @@ public class ModConfig implements ConfigData { public ThrowableOption throwableSpawnEggs = new ThrowableOption(true, false); public boolean openLootChestsInSpectatorMode = true; public boolean cryingObsidianNetherPortal = true; + public boolean allowLeashingVillagers = true; public static class ThrowableOption { public boolean player; diff --git a/src/main/java/com/thebrokenrail/slightlyvanilla/mixin/MixinAbstractTraderEntity.java b/src/main/java/com/thebrokenrail/slightlyvanilla/mixin/MixinAbstractTraderEntity.java new file mode 100644 index 0000000..a2eaa47 --- /dev/null +++ b/src/main/java/com/thebrokenrail/slightlyvanilla/mixin/MixinAbstractTraderEntity.java @@ -0,0 +1,27 @@ +package com.thebrokenrail.slightlyvanilla.mixin; + +import com.thebrokenrail.slightlyvanilla.SlightlyVanilla; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.passive.AbstractTraderEntity; +import net.minecraft.entity.passive.PassiveEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.world.World; +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.callback.CallbackInfoReturnable; + +@SuppressWarnings("unused") +@Mixin(AbstractTraderEntity.class) +public abstract class MixinAbstractTraderEntity extends PassiveEntity { + protected MixinAbstractTraderEntity(EntityType entityType, World world) { + super(entityType, world); + } + + @Inject(at = @At("HEAD"), method = "canBeLeashedBy", cancellable = true) + public void canBeLeashedBy(PlayerEntity player, CallbackInfoReturnable info) { + if (SlightlyVanilla.getConfig().allowLeashingVillagers) { + info.setReturnValue(super.canBeLeashedBy(player)); + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/slightlyvanilla/lang/en_us.json b/src/main/resources/assets/slightlyvanilla/lang/en_us.json index 7179069..cbc6302 100644 --- a/src/main/resources/assets/slightlyvanilla/lang/en_us.json +++ b/src/main/resources/assets/slightlyvanilla/lang/en_us.json @@ -10,6 +10,7 @@ "text.autoconfig.slightlyvanilla.option.throwableSpawnEggs.dispenser": "Dispenser", "text.autoconfig.slightlyvanilla.option.openLootChestsInSpectatorMode": "Open Loot Chests In Spectator Mode", "text.autoconfig.slightlyvanilla.option.cryingObsidianNetherPortal": "Crying Obsidian Nether Portal", + "text.autoconfig.slightlyvanilla.option.allowLeashingVillagers": "Allow Leashing Villagers", "entity.slightlyvanilla.slimeball": "Slimeball", "entity.slightlyvanilla.spawn_egg": "Spawn Egg" } \ No newline at end of file diff --git a/src/main/resources/slightlyvanilla.mixins.json b/src/main/resources/slightlyvanilla.mixins.json index b0f1fce..9d8a8a5 100644 --- a/src/main/resources/slightlyvanilla.mixins.json +++ b/src/main/resources/slightlyvanilla.mixins.json @@ -11,7 +11,8 @@ "MixinItem", "MixinSpawnEggItem", "MixinLootableContainerBlockEntity", - "MixinNetherPortalBlockAreaHelper" + "MixinNetherPortalBlockAreaHelper", + "MixinAbstractTraderEntity" ], "injectors": { "defaultRequire": 1