53 lines
2.2 KiB
Java
53 lines
2.2 KiB
Java
package io.github.skippyall.minions.clipboard;
|
|
|
|
import eu.pb4.polymer.core.api.item.PolymerItem;
|
|
import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer;
|
|
import io.github.skippyall.minions.registration.MinionComponentTypes;
|
|
import io.github.skippyall.minions.registration.MinionItems;
|
|
import net.fabricmc.fabric.api.networking.v1.context.PacketContext;
|
|
import net.minecraft.core.BlockPos;
|
|
import net.minecraft.core.HolderLookup;
|
|
import net.minecraft.core.component.DataComponents;
|
|
import net.minecraft.resources.Identifier;
|
|
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.level.Level;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
public class ClipboardItem extends Item implements PolymerItem {
|
|
public ClipboardItem(Properties settings) {
|
|
super(settings);
|
|
}
|
|
|
|
@Override
|
|
public Item getPolymerItem(ItemStack itemStack, PacketContext context) {
|
|
return /*VersionSync.isOnClient(context) ? this : */Items.PAPER;
|
|
}
|
|
|
|
@Override
|
|
public @Nullable Identifier getPolymerItemModel(ItemStack stack, PacketContext context, HolderLookup.Provider lookup) {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public ItemStack getPolymerItemStack(ItemStack itemStack, TooltipFlag tooltipType, PacketContext context, HolderLookup.Provider lookup) {
|
|
ItemStack stack = PolymerItem.super.getPolymerItemStack(itemStack, tooltipType, context, lookup);
|
|
stack.set(DataComponents.ENCHANTMENT_GLINT_OVERRIDE, true);
|
|
return stack;
|
|
}
|
|
|
|
public static ItemStack createInstructionReference(MinionFakePlayer minion, String instructionName) {
|
|
ItemStack stack = new ItemStack(MinionItems.REFERENCE_ITEM);
|
|
stack.set(MinionComponentTypes.REFERENCE, new InstructionClipboard(minion.getUUID(), instructionName, minion.getGameProfile().name()));
|
|
return stack;
|
|
}
|
|
|
|
public static ItemStack createBlockPosReference(Level world, BlockPos pos) {
|
|
ItemStack stack = new ItemStack(MinionItems.REFERENCE_ITEM);
|
|
stack.set(MinionComponentTypes.REFERENCE, new BlockPosClipboard(world.dimension(), pos));
|
|
return stack;
|
|
}
|
|
}
|