Files
Minions/oldSrc/io/github/skippyall/minions/MinionItem.java
T
2024-04-13 22:04:49 +02:00

57 lines
2.2 KiB
Java

package io.github.skippyall.minions;
import eu.pb4.polymer.core.api.item.PolymerItem;
import eu.pb4.polymer.core.api.item.PolymerItemUtils;
import io.github.skippyall.minions.fakeplayer.MinionFakePlayer;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.network.chat.ComponentContents;
import net.minecraft.network.chat.contents.PlainTextContents;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.TooltipFlag;
import net.minecraft.world.item.context.UseOnContext;
import org.jetbrains.annotations.Nullable;
public class MinionItem extends Item implements PolymerItem {
public MinionItem() {
super(new FabricItemSettings());
}
@Override
public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayer player) {
return Items.PLAYER_HEAD;
}
@Override
public ItemStack getPolymerItemStack(ItemStack stack, TooltipFlag flag, ServerPlayer player) {
ItemStack out = PolymerItemUtils.createItemStack(stack, flag, player);
//CompoundTag tag = out.getOrCreateTag();
//PlayerHeadItem.TAG_SKULL_OWNER;
return out;
}
/*@Override
public int getPolymerCustomModelData(ItemStack itemStack, @Nullable ServerPlayer player) {
return 10;
}*/
public InteractionResult useOn(UseOnContext context) {
System.out.println("Minion spawned "+ context.getItemInHand().getDisplayName());
ComponentContents contents = context.getItemInHand().getHoverName().getContents();
String name;
if(contents instanceof PlainTextContents plainContents) {
name = plainContents.text();
} else {
name = "Minion";
}
if(!context.getLevel().isClientSide) {
MinionFakePlayer.createMinion(name, (ServerLevel) context.getLevel(), (ServerPlayer) context.getPlayer(), context.getClickedPos().getCenter().add(0,0.5,0), 0, 0);
}
return InteractionResult.SUCCESS;
}
}