2023-05-23 10:48:40 +02:00
|
|
|
package com.minelittlepony.unicopia.item;
|
|
|
|
|
|
|
|
import com.minelittlepony.unicopia.AwaitTickQueue;
|
|
|
|
import com.minelittlepony.unicopia.UTags;
|
|
|
|
import com.minelittlepony.unicopia.util.RegistryUtils;
|
|
|
|
|
|
|
|
import net.minecraft.entity.LivingEntity;
|
|
|
|
import net.minecraft.entity.effect.StatusEffectInstance;
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.sound.SoundCategory;
|
|
|
|
import net.minecraft.sound.SoundEvents;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
|
|
|
|
public class PineappleItem extends Item {
|
|
|
|
public PineappleItem(Settings settings) {
|
|
|
|
super(settings);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) {
|
|
|
|
if (isFood()) {
|
|
|
|
user.eatFood(world, stack.copy());
|
|
|
|
if (!world.isClient) {
|
|
|
|
stack.damage(1, user, u -> {
|
2023-06-03 13:40:54 +02:00
|
|
|
AwaitTickQueue.scheduleTask(u.getWorld(), w -> {
|
2023-05-23 10:48:40 +02:00
|
|
|
w.playSoundFromEntity(null, u, SoundEvents.ENTITY_PLAYER_BURP, SoundCategory.PLAYERS, 1, 0.7F);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
if (world.random.nextInt(20) == 0) {
|
|
|
|
RegistryUtils.pickRandom(world, UTags.PINEAPPLE_EFFECTS, e -> !user.hasStatusEffect(e)).ifPresent(effect -> {
|
|
|
|
user.addStatusEffect(new StatusEffectInstance(effect, 10, 1));
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return stack;
|
|
|
|
}
|
|
|
|
}
|