| 
2 | 2 | 
 
  | 
3 | 3 | import eu.pb4.polymer.api.block.PolymerHeadBlock;  | 
4 | 4 | import eu.pb4.polymer.api.item.PolymerItemGroup;  | 
 | 5 | +import net.fabricmc.fabric.api.event.player.UseEntityCallback;  | 
5 | 6 | import net.fabricmc.fabric.api.networking.v1.PacketSender;  | 
6 | 7 | import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;  | 
7 | 8 | import net.minecraft.block.Block;  | 
 | 9 | +import net.minecraft.entity.Entity;  | 
 | 10 | +import net.minecraft.entity.player.PlayerEntity;  | 
8 | 11 | import net.minecraft.item.Item;  | 
9 | 12 | import net.minecraft.item.ItemStack;  | 
10 | 13 | import net.minecraft.item.Items;  | 
11 | 14 | import net.minecraft.server.MinecraftServer;  | 
12 | 15 | import net.minecraft.server.network.ServerPlayNetworkHandler;  | 
13 | 16 | import net.minecraft.text.Text;  | 
 | 17 | +import net.minecraft.util.ActionResult;  | 
 | 18 | +import net.minecraft.util.Hand;  | 
 | 19 | +import net.minecraft.util.hit.EntityHitResult;  | 
 | 20 | +import net.minecraft.util.math.Vec3d;  | 
14 | 21 | import net.minecraft.util.registry.Registry;  | 
 | 22 | +import net.minecraft.world.World;  | 
15 | 23 | import xyz.nucleoid.extras.NucleoidExtras;  | 
16 | 24 | import xyz.nucleoid.extras.NucleoidExtrasConfig;  | 
17 | 25 | import xyz.nucleoid.extras.lobby.item.*;  | 
@@ -80,6 +88,7 @@ public class NEItems {  | 
80 | 88 |     public static final Item NONBINARY_TATER = createHead(NEBlocks.NONBINARY_TATER);  | 
81 | 89 |     public static final Item PAN_TATER = createHead(NEBlocks.PAN_TATER);  | 
82 | 90 |     public static final Item WARDEN_TATER = createHead(NEBlocks.WARDEN_TATER);  | 
 | 91 | +    public static final Item VIRAL_TATER = createHead(NEBlocks.VIRAL_TATER);  | 
83 | 92 |     public static final Item TATEROID = createHead(NEBlocks.TATEROID);  | 
84 | 93 |     public static final Item RED_TATEROID = createHead(NEBlocks.RED_TATEROID);  | 
85 | 94 |     public static final Item ORANGE_TATEROID = createHead(NEBlocks.ORANGE_TATEROID);  | 
@@ -405,6 +414,7 @@ public static void register() {  | 
405 | 414 |         register("nonbinary_tater", NONBINARY_TATER);  | 
406 | 415 |         register("pan_tater", PAN_TATER);  | 
407 | 416 |         register("warden_tater", WARDEN_TATER);  | 
 | 417 | +        register("viral_tater", VIRAL_TATER);  | 
408 | 418 |         register("tateroid", TATEROID);  | 
409 | 419 |         register("red_tateroid", RED_TATEROID);  | 
410 | 420 |         register("orange_tateroid", ORANGE_TATEROID);  | 
@@ -666,6 +676,8 @@ public static void register() {  | 
666 | 676 | 
 
  | 
667 | 677 |         ServerPlayConnectionEvents.JOIN.register(NEItems::onPlayerJoin);  | 
668 | 678 | 
 
  | 
 | 679 | +        UseEntityCallback.EVENT.register(NEItems::onUseEntity);  | 
 | 680 | + | 
669 | 681 |         ITEM_GROUP.setIcon(NUCLEOID_LOGO.getDefaultStack());  | 
670 | 682 |     }  | 
671 | 683 | 
 
  | 
@@ -699,6 +711,20 @@ private static void onPlayerJoin(ServerPlayNetworkHandler handler, PacketSender  | 
699 | 711 |         });  | 
700 | 712 |     }  | 
701 | 713 | 
 
  | 
 | 714 | +    private static ActionResult onUseEntity(PlayerEntity player, World world, Hand hand, Entity entity, EntityHitResult hitResult) {  | 
 | 715 | +        if (!player.getWorld().isClient() && hitResult != null) {  | 
 | 716 | +            ItemStack stack = player.getStackInHand(hand);  | 
 | 717 | +            if (stack.getItem() instanceof TaterBoxItem taterBox) {  | 
 | 718 | +                Vec3d hitPos = hitResult.getPos().subtract(entity.getPos());  | 
 | 719 | +                ActionResult result = taterBox.tryAdd(entity, hitPos, stack, player);  | 
 | 720 | + | 
 | 721 | +                return result.isAccepted() ? result : ActionResult.FAIL;  | 
 | 722 | +            }  | 
 | 723 | +        }  | 
 | 724 | + | 
 | 725 | +        return ActionResult.PASS;  | 
 | 726 | +    }  | 
 | 727 | + | 
702 | 728 |     private static <T extends Item> T register(String id, T item) {  | 
703 | 729 |         return Registry.register(Registry.ITEM, NucleoidExtras.identifier(id), item);  | 
704 | 730 |     }  | 
 | 
0 commit comments