All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.magistuarmory.item.MedievalBagItem Maven / Gradle / Ivy

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;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy