com.magistuarmory.item.MedievalBagItem Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of 1.18.2-epic-knights-forge Show documentation
Show all versions of 1.18.2-epic-knights-forge Show documentation
mod that adds medieval stuff to the game
The newest version!
package com.magistuarmory.item;
import net.minecraft.ChatFormatting;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.TranslatableComponent;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.level.Level;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
public class MedievalBagItem extends Item
{
public MedievalBagItem()
{
super(new Properties().m_41487_(1));
}
@Override
public InteractionResultHolder m_7203_(Level level, Player player, InteractionHand hand)
{
InteractionResultHolder result = super.m_7203_(level, player, hand);
if (level.m_5776_() || result.m_19089_().m_19077_())
return result;
ItemStack bagstack = player.m_21120_(hand);
player.m_150109_().m_6836_(player.m_150109_().m_36030_(bagstack), ItemStack.f_41583_);
for (ItemStack stack : getContents(bagstack))
{
if (!player.m_36356_(stack))
level.m_7967_(new ItemEntity(level, player.m_20185_(), player.m_20186_(), player.m_20189_(), stack));
}
return new InteractionResultHolder<>(InteractionResult.SUCCESS, bagstack);
}
@Override
public void m_7373_(ItemStack stack, @Nullable Level level, List list, TooltipFlag tooltipflag)
{
list.add(new TranslatableComponent("medieval_bag.rightclick").m_130940_(ChatFormatting.BLUE));
}
public static void setContents(ItemStack bagstack, List stacks)
{
ListTag listtag = new ListTag();
for (ItemStack stack : stacks)
listtag.add(stack.m_41739_(new CompoundTag()));
bagstack.m_41700_("Contents", listtag);
}
public static List getContents(ItemStack bagstack)
{
List stacks = new ArrayList<>();
CompoundTag compound = bagstack.m_41783_();
ListTag listtag = compound != null ? bagstack.m_41783_().m_128437_("Contents", 10) : new ListTag();
for (int i = 0; i < listtag.size(); ++i)
stacks.add(ItemStack.m_41712_(listtag.m_128728_(i)));
return stacks;
}
}