diff --git a/build.gradle b/build.gradle index 7ded63e..f9ea0a9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,9 +1,7 @@ plugins { - id 'fabric-loom' version '1.6-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'com.oroarmor.general-gradle-plugin' version '1.2.2' id 'com.oroarmor.minecraft-gradle-plugin' version '1.2.2' - -// id 'org.barfuin.gradle.taskinfo' version '1.0.5' } sourceCompatibility = JavaVersion.VERSION_17 @@ -93,4 +91,4 @@ task github(type: PublishProjectToGithubTask) { import com.oroarmor.orogradleplugin.minecraft.* task curseforge(type: CurseforgePublishTask) -task modrinth(type: ModrinthPublishTask) \ No newline at end of file +task modrinth(type: ModrinthPublishTask) diff --git a/gradle.properties b/gradle.properties index 70568b2..0c7d469 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,4 +9,4 @@ loader_version=0.15.11 mod_version=1.6.3 maven_group=com.oroarmor archives_base_name=multi-item-lib -discord_hook_image_url = https://raw.githubusercontent.com/OroArmor/Multi-Item-Lib/9027fbe02c73d3a2f2c480a26c0a3c049d49f36d/src/main/resources/assets/multi-item-lib/icon.png +discord_hook_image_url = https://raw.githubusercontent.com/OroArmor/Multi-Item-Lib/9027fbe02c73d3a2f2c480a26c0a3c049d49f36d/src/main/resources/assets/multi-item-lib/icon.png \ No newline at end of file diff --git a/src/main/java/com/oroarmor/multiitemlib/api/ShieldCooldownSettings.java b/src/main/java/com/oroarmor/multiitemlib/api/ShieldCooldownSettings.java index 1193874..56d40aa 100644 --- a/src/main/java/com/oroarmor/multiitemlib/api/ShieldCooldownSettings.java +++ b/src/main/java/com/oroarmor/multiitemlib/api/ShieldCooldownSettings.java @@ -1,7 +1,7 @@ /* * MIT License * - * Copyright (c) 2021 OroArmor (Eli Orona) + * Copyright (c) 2024 OroArmor (Eli Orona) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -24,18 +24,27 @@ package com.oroarmor.multiitemlib.api; +import net.minecraft.item.ItemStack; + public interface ShieldCooldownSettings { /** - * If the shield is disabled by an axe, how long should the cooldown last for? - * Set to 0 to make the shield never suffer from being disabled by an axe. (Other shields in your inventory still get disabled) - * Default value is 100. + * Returns the shield disable cooldown, such as when attacked by an axe. + * + * @param shieldStack the stack for the shield + * @return the number of ticks to disable the shield */ - int getDisableCooldown(); + default int getDisableCooldown(ItemStack shieldStack) { + return 100; + } /** - * How many ticks should it take between right clicking the shield, and its protection being effective? - * Default value is 5. + * Returns how long it takes for the shield to be raised. + * + * @param shield the stack for the shield + * @return the number of ticks before the shield is raised */ - int getRaiseCooldown(); -} \ No newline at end of file + default int getRaiseCooldown(ItemStack shield) { + return 5; + } +} diff --git a/src/main/java/com/oroarmor/multiitemlib/api/UniqueItemRegistry.java b/src/main/java/com/oroarmor/multiitemlib/api/UniqueItemRegistry.java index f330494..36ff322 100644 --- a/src/main/java/com/oroarmor/multiitemlib/api/UniqueItemRegistry.java +++ b/src/main/java/com/oroarmor/multiitemlib/api/UniqueItemRegistry.java @@ -61,7 +61,7 @@ public final class UniqueItemRegistry { */ public static final UniqueItemRegistry TRIDENT = new UniqueItemRegistry(Items.TRIDENT); /** - * The {@link UniqueItemRegistry} for tridents. Allows for some correct rendering. Mixins will be needed for full correct rendering. + * The {@link UniqueItemRegistry} for elytras. Allows for some correct rendering. Mixins will be needed for full correct rendering. */ public static final UniqueItemRegistry ELYTRA = new UniqueItemRegistry(Items.ELYTRA); @@ -90,7 +90,7 @@ public boolean isItemInRegistry(Item item) { return itemList.contains(item); } - public Set getValues() { + public Collection getValues() { return Collections.unmodifiableSet(itemList); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/impl/ShieldUtil.java b/src/main/java/com/oroarmor/multiitemlib/impl/ShieldUtil.java new file mode 100644 index 0000000..d34e5d8 --- /dev/null +++ b/src/main/java/com/oroarmor/multiitemlib/impl/ShieldUtil.java @@ -0,0 +1,54 @@ +/* + * MIT License + * + * Copyright (c) 2024 OroArmor (Eli Orona) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.oroarmor.multiitemlib.impl; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.oroarmor.multiitemlib.api.ShieldCooldownSettings; +import com.oroarmor.multiitemlib.api.UniqueItemRegistry; + +import net.minecraft.entity.player.ItemCooldownManager; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public final class ShieldUtil { + /** + * Sets the shield cooldown for all shields. + * + * @param cooldownManager the item cooldown manager + * @param duration the original duration (100 ticks) + * @param original the original method for the cooldown + * @param shield the shield stack + */ + public static void addShieldCooldown(ItemCooldownManager cooldownManager, int duration, Operation original, ItemStack shield) { + for (Item registryEntry : UniqueItemRegistry.SHIELD.getValues()) { + int disableTime = duration; + if (registryEntry instanceof ShieldCooldownSettings) { + disableTime = ((ShieldCooldownSettings) registryEntry).getDisableCooldown(shield); + } + + original.call(cooldownManager, registryEntry, disableTime); + } + } +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/BeehiveBlockMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/BeehiveBlockMixin.java index db1d778..cb54126 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/BeehiveBlockMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/BeehiveBlockMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.block.BeehiveBlock; import net.minecraft.item.Item; @@ -41,4 +40,4 @@ public class BeehiveBlockMixin { private boolean onUse(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.SHEARS.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/ClientPlayerEntityMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/ClientPlayerEntityMixin.java index 3fdf72f..3354bc7 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/ClientPlayerEntityMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/ClientPlayerEntityMixin.java @@ -1,7 +1,7 @@ /* * MIT License * - * Copyright (c) 2021 OroArmor (Eli Orona) + * Copyright (c) 2024 OroArmor (Eli Orona) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -27,11 +27,12 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.oroarmor.multiitemlib.api.UniqueItemRegistry; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; @Mixin(ClientPlayerEntity.class) public class ClientPlayerEntityMixin { @@ -39,4 +40,4 @@ public class ClientPlayerEntityMixin { private boolean handleDisableShield(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.ELYTRA.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/EfficiencyEnchantmentMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/EfficiencyEnchantmentMixin.java index 9e636a5..bb1e569 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/EfficiencyEnchantmentMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/EfficiencyEnchantmentMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.enchantment.EfficiencyEnchantment; import net.minecraft.item.Item; @@ -41,4 +40,4 @@ public class EfficiencyEnchantmentMixin { private boolean isAcceptableItem(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.SHEARS.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/EntityInteractShearsMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/EntityInteractShearsMixin.java index 2380e9c..b12cca8 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/EntityInteractShearsMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/EntityInteractShearsMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.entity.passive.SheepEntity; import net.minecraft.entity.passive.SnowGolemEntity; @@ -42,4 +41,4 @@ public class EntityInteractShearsMixin { private boolean interactMob(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.SHEARS.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/FishBobberEntityMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/FishBobberEntityMixin.java index c7a7a1d..835f1c0 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/FishBobberEntityMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/FishBobberEntityMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.entity.projectile.FishingBobberEntity; import net.minecraft.item.Item; @@ -41,4 +40,4 @@ public class FishBobberEntityMixin { private boolean removeIfInvalid(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.FISHING_ROD.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/LivingEntityMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/LivingEntityMixin.java index 9f318f0..da33b74 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/LivingEntityMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/LivingEntityMixin.java @@ -1,7 +1,7 @@ /* * MIT License * - * Copyright (c) 2021 OroArmor (Eli Orona) + * Copyright (c) 2024 OroArmor (Eli Orona) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -28,18 +28,20 @@ import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.oroarmor.multiitemlib.api.ShieldCooldownSettings; import com.oroarmor.multiitemlib.api.UniqueItemRegistry; -import net.minecraft.entity.LivingEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; 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.Constant; import org.spongepowered.asm.mixin.injection.ModifyConstant; +import net.minecraft.entity.LivingEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + @Mixin(LivingEntity.class) public class LivingEntityMixin { - @Shadow protected ItemStack activeItemStack; + @Shadow + protected ItemStack activeItemStack; @WrapOperation(method = "tickFallFlying", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z")) private boolean handleElytra(ItemStack instance, Item item, Operation original) { @@ -48,9 +50,9 @@ private boolean handleElytra(ItemStack instance, Item item, Operation o @ModifyConstant(method = "isBlocking", constant = @Constant(intValue = 5)) private int getShieldHoldDelay(int constant) { - if(activeItemStack.getItem() instanceof ShieldCooldownSettings) { - return ((ShieldCooldownSettings) activeItemStack.getItem()).getRaiseCooldown(); + if (activeItemStack.getItem() instanceof ShieldCooldownSettings shield) { + return shield.getRaiseCooldown(activeItemStack); } return constant; } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/MobEntityMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/MobEntityMixin.java index e71ae73..0a717f3 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/MobEntityMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/MobEntityMixin.java @@ -1,7 +1,7 @@ /* * MIT License * - * Copyright (c) 2021 OroArmor (Eli Orona) + * Copyright (c) 2024 OroArmor (Eli Orona) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -26,26 +26,41 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import com.oroarmor.multiitemlib.api.ShieldCooldownSettings; import com.oroarmor.multiitemlib.api.UniqueItemRegistry; +import com.oroarmor.multiitemlib.impl.ShieldUtil; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + import net.minecraft.entity.mob.MobEntity; import net.minecraft.entity.player.ItemCooldownManager; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; +import net.minecraft.item.ItemStack; @Mixin(MobEntity.class) public class MobEntityMixin { + @Unique + ThreadLocal shieldStack = new ThreadLocal<>(); + + @Unique + ThreadLocal attackingStack = new ThreadLocal<>(); + + @Inject(method = "disablePlayerShield", at = @At("HEAD")) + public void captureItemStacks(PlayerEntity player, ItemStack mobStack, ItemStack playerStack, CallbackInfo ci) { + shieldStack.set(playerStack); + attackingStack.set(mobStack); + } + + @WrapOperation(method = "disablePlayerShield", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z")) + public boolean allowMoreShields(ItemStack instance, Item item, Operation original) { + return UniqueItemRegistry.SHIELD.isItemInRegistry(instance.getItem()); + } + @WrapOperation(method = "disablePlayerShield", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/ItemCooldownManager;set(Lnet/minecraft/item/Item;I)V")) private void handleDisableShield(ItemCooldownManager instance, Item item, int duration, Operation original) { - for(Item registryEntry : UniqueItemRegistry.SHIELD.getValues()) { - int disableTime; - if(registryEntry instanceof ShieldCooldownSettings) { - disableTime = ((ShieldCooldownSettings) registryEntry).getDisableCooldown(); - } else { - disableTime = duration; - } - original.call(instance, registryEntry, disableTime); - } + ShieldUtil.addShieldCooldown(instance, duration, original, this.shieldStack.get()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/MooshroomEntityInteractShearsMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/MooshroomEntityInteractShearsMixin.java index b69b917..3974d59 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/MooshroomEntityInteractShearsMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/MooshroomEntityInteractShearsMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.entity.passive.MooshroomEntity; import net.minecraft.item.Item; @@ -41,4 +40,4 @@ public class MooshroomEntityInteractShearsMixin { private boolean interactMob(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.SHEARS.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/PlayerEntityMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/PlayerEntityMixin.java index 80b57fe..93f84ef 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/PlayerEntityMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/PlayerEntityMixin.java @@ -26,21 +26,24 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import com.oroarmor.multiitemlib.api.ShieldCooldownSettings; import com.oroarmor.multiitemlib.api.UniqueItemRegistry; -import net.minecraft.entity.player.ItemCooldownManager; -import org.spongepowered.asm.mixin.Final; +import com.oroarmor.multiitemlib.impl.ShieldUtil; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.ItemCooldownManager; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.world.World; @Mixin(PlayerEntity.class) -public class PlayerEntityMixin { - @Shadow @Final private ItemCooldownManager itemCooldownManager; +public abstract class PlayerEntityMixin extends LivingEntity { + protected PlayerEntityMixin(EntityType entityType, World world) { + super(entityType, world); + } @WrapOperation(method = "damageShield(F)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z")) private boolean handleShieldDamage(ItemStack instance, Item item, Operation original) { @@ -49,19 +52,11 @@ private boolean handleShieldDamage(ItemStack instance, Item item, Operation original) { - for(Item registryEntry : UniqueItemRegistry.SHIELD.getValues()) { - int disableTime; - if(registryEntry instanceof ShieldCooldownSettings) { - disableTime = ((ShieldCooldownSettings) registryEntry).getDisableCooldown(); - } else { - disableTime = duration; - } - original.call(instance, registryEntry, disableTime); - } + ShieldUtil.addShieldCooldown(instance, duration, original, this.activeItemStack); } @WrapOperation(method = "checkFallFlying", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isOf(Lnet/minecraft/item/Item;)Z")) private boolean handleDisableShield(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.ELYTRA.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/PumpkinBlockMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/PumpkinBlockMixin.java index fa21f53..e98d391 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/PumpkinBlockMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/PumpkinBlockMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.block.PumpkinBlock; import net.minecraft.item.Item; @@ -41,4 +40,4 @@ public class PumpkinBlockMixin { private boolean onUse(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.SHEARS.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/TripwireBlockMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/TripwireBlockMixin.java index 6c5a760..3c963f6 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/TripwireBlockMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/TripwireBlockMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.block.TripwireBlock; import net.minecraft.item.Item; @@ -41,4 +40,4 @@ public class TripwireBlockMixin { private boolean onBreak(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.SHEARS.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/CapeFeatureRendererMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/render/CapeFeatureRendererMixin.java similarity index 95% rename from src/main/java/com/oroarmor/multiitemlib/mixin/CapeFeatureRendererMixin.java rename to src/main/java/com/oroarmor/multiitemlib/mixin/render/CapeFeatureRendererMixin.java index eab4a19..df74325 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/CapeFeatureRendererMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/render/CapeFeatureRendererMixin.java @@ -1,7 +1,7 @@ /* * MIT License * - * Copyright (c) 2021 OroArmor (Eli Orona) + * Copyright (c) 2024 OroArmor (Eli Orona) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -22,16 +22,17 @@ * SOFTWARE. */ -package com.oroarmor.multiitemlib.mixin; +package com.oroarmor.multiitemlib.mixin.render; import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.oroarmor.multiitemlib.api.UniqueItemRegistry; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + import net.minecraft.client.render.entity.feature.CapeFeatureRenderer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; @Mixin(CapeFeatureRenderer.class) public class CapeFeatureRendererMixin { @@ -40,4 +41,4 @@ public class CapeFeatureRendererMixin { private boolean isAcceptableItem(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.ELYTRA.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/render/FishingBobberEntityRendererMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/render/FishingBobberEntityRendererMixin.java index 6669d0b..6c19b42 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/render/FishingBobberEntityRendererMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/render/FishingBobberEntityRendererMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.client.render.entity.FishingBobberEntityRenderer; import net.minecraft.item.Item; @@ -41,4 +40,4 @@ public class FishingBobberEntityRendererMixin { private boolean render(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.FISHING_ROD.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/render/HeldItemRendererMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/render/HeldItemRendererMixin.java index 9d5cb91..e91726e 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/render/HeldItemRendererMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/render/HeldItemRendererMixin.java @@ -29,7 +29,6 @@ import com.oroarmor.multiitemlib.api.UniqueItemRegistry; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import net.minecraft.client.render.item.HeldItemRenderer; import net.minecraft.item.Item; @@ -45,6 +44,6 @@ private boolean renderFirstPersonItem(ItemStack instance, Item item, Operation original) { return UniqueItemRegistry.BOW.isItemInRegistry(instance.getItem()) - || UniqueItemRegistry.CROSSBOW.isItemInRegistry(instance.getItem()); + || UniqueItemRegistry.CROSSBOW.isItemInRegistry(instance.getItem()); } -} \ No newline at end of file +} diff --git a/src/main/java/com/oroarmor/multiitemlib/mixin/render/ItemRendererMixin.java b/src/main/java/com/oroarmor/multiitemlib/mixin/render/ItemRendererMixin.java index fecf224..a634863 100644 --- a/src/main/java/com/oroarmor/multiitemlib/mixin/render/ItemRendererMixin.java +++ b/src/main/java/com/oroarmor/multiitemlib/mixin/render/ItemRendererMixin.java @@ -71,4 +71,4 @@ private boolean getModelTrident(ItemStack instance, Item item, Operation