EpicEnchants/src/main/java/com/craftaro/epicenchants/effect/effects/MoreDrops.java

38 lines
1.3 KiB
Java

package com.craftaro.epicenchants.effect.effects;
import com.craftaro.epicenchants.effect.EffectEventExecutor;
import com.craftaro.epicenchants.enums.EventType;
import com.craftaro.epicenchants.objects.LeveledModifier;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.inventory.ItemStack;
import java.util.List;
import java.util.stream.Collectors;
public class MoreDrops extends EffectEventExecutor {
public MoreDrops(ConfigurationSection section) {
super(section);
}
@Override
public void execute(Player user, LivingEntity opponent, int level, Event event, EventType type) {
if (!(event instanceof EntityDeathEvent)) {
return;
}
EntityDeathEvent deathEvent = (EntityDeathEvent) event;
LeveledModifier modifier = getAmount();
List<ItemStack> newDrops = deathEvent.getDrops()
.stream()
.peek(itemStack -> itemStack.setAmount(((int) (itemStack.getAmount() * modifier.get(level, 1, user, opponent)))))
.collect(Collectors.toList());
deathEvent.getDrops().clear();
deathEvent.getDrops().addAll(newDrops);
}
}