package me.sashegdev.fabled_hearts.menu; import me.sashegdev.fabled_hearts.Main; import me.sashegdev.fabled_hearts.data.WorldData; import me.sashegdev.fabled_hearts.registry.ModEntities; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResultHolder; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; public class EllieSpawnItem extends Item { public EllieSpawnItem() { super(new Item.Properties().stacksTo(1)); } @Override public InteractionResultHolder use(Level level, Player player, InteractionHand hand) { ItemStack stack = player.getItemInHand(hand); if (!level.isClientSide) { ServerLevel serverLevel = (ServerLevel) level; WorldData data = WorldData.get(serverLevel); if (data.hasEllie()) { Entity existing = serverLevel.getEntity(data.getEllieUUID()); if (existing != null) { player.sendSystemMessage(Component.literal("§eEllie уже здесь!")); return InteractionResultHolder.success(stack); } else { data.removeEllie(); } } var entity = ModEntities.ELLIE.get().create(serverLevel); if (entity != null) { entity.setPos(player.getX(), player.getY(), player.getZ()); serverLevel.addFreshEntity(entity); data.setEllieUUID(entity.getUUID()); player.sendSystemMessage(Component.literal("§aEllie появилась!")); } } return InteractionResultHolder.success(stack); } }