package com.tiedup.remake.items; import java.util.List; import javax.annotation.Nullable; import net.minecraft.ChatFormatting; import net.minecraft.network.chat.Component; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Rarity; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; /** * ItemToken - Access pass for kidnapper camps. * * Slave Trader & Maid System * * Behavior: * - Reusable (no durability, permanent) * - Drop: 5% chance from killed kidnappers * - Effect: Kidnappers won't target the holder * - Effect: Allows peaceful interaction with SlaveTrader * * When a player has a token in their inventory: * - EntityKidnapper.canTarget() returns false * - EntitySlaveTrader opens trade menu instead of attacking */ public class ItemToken extends Item { public ItemToken() { super(new Item.Properties().stacksTo(1).rarity(Rarity.RARE)); } @Override public void appendHoverText( ItemStack stack, @Nullable Level level, List tooltip, TooltipFlag flag ) { tooltip.add( Component.translatable("item.tiedup.token.title").withStyle( ChatFormatting.GOLD, ChatFormatting.BOLD ) ); tooltip.add(Component.literal("")); tooltip.add( Component.translatable("item.tiedup.token.effect_no_target").withStyle( ChatFormatting.GREEN ) ); tooltip.add( Component.translatable("item.tiedup.token.effect_trading").withStyle( ChatFormatting.GREEN ) ); tooltip.add(Component.literal("")); tooltip.add( Component.translatable("item.tiedup.token.hint").withStyle( ChatFormatting.GRAY, ChatFormatting.ITALIC ) ); } @Override public boolean isFoil(ItemStack stack) { return true; // Always glowing to indicate special item } }