package net.radsteve.islanders.mixin; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.screen.slot.CraftingResultSlot; import net.minecraft.server.network.ServerPlayerEntity; import net.radsteve.islanders.Islanders; import net.radsteve.islanders.SpecialItem; import net.radsteve.islanders.crown.CrownAnimation; 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; @Mixin(CraftingResultSlot.class) public class CraftingResultSlotMixin { @Shadow @Final private PlayerEntity player; @Inject(method = "onCrafted(Lnet/minecraft/item/ItemStack;)V", at = @At("HEAD")) private void islanders$onCrafted(ItemStack stack, CallbackInfo ci) { if (SpecialItem.Crown.check(stack)) { Islanders.getLogger().info("{} crafted the Islanders Crown!", player.getNameForScoreboard()); CrownAnimation.INSTANCE.craftingFinished((ServerPlayerEntity) player); } } }