1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Did another requested change.

This commit is contained in:
LinoxGH 2020-06-29 10:02:54 +03:00
parent 833b2d3943
commit 942bf436bb

View File

@ -3,6 +3,7 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.magical;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
@ -87,20 +88,27 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
Item entity = (Item) optional.get(); Item entity = (Item) optional.get();
ItemStack target = entity.getItemStack(); ItemStack target = entity.getItemStack();
List<Enchantment> enchantmentList = new ArrayList<>(applicableEnchantments.getOrDefault(target.getType(), new ArrayList<>())); List<Enchantment> applicableEnchantmentList = new ArrayList<>(applicableEnchantments.getOrDefault(target.getType(), new ArrayList<>()));
if (enchantmentList.isEmpty()) { if (applicableEnchantmentList.isEmpty()) {
SlimefunPlugin.getLocal().sendMessage(p, "messages.enchantment-rune.fail", true); SlimefunPlugin.getLocal().sendMessage(p, "messages.enchantment-rune.fail", true);
return; return;
} }
//Removing the enchantments that the item already has from enchantmentSet //Removing the enchantments that the item already has from enchantmentSet
enchantmentList.removeIf(enchantment -> target.getEnchantments().containsKey(enchantment)); for (Enchantment itemEnchantment : target.getEnchantments().keySet()) {
if (enchantmentList.isEmpty()) { for (Enchantment applicableEnchantment : applicableEnchantmentList) {
if (applicableEnchantment == itemEnchantment || applicableEnchantment.conflictsWith(itemEnchantment)) {
applicableEnchantmentList.remove(applicableEnchantment);
}
}
}
if (applicableEnchantmentList.isEmpty()) {
SlimefunPlugin.getLocal().sendMessage(p, "messages.enchantment-rune.no-enchantment", true); SlimefunPlugin.getLocal().sendMessage(p, "messages.enchantment-rune.no-enchantment", true);
return; return;
} }
Enchantment enchantment = enchantmentList.get(ThreadLocalRandom.current().nextInt(enchantmentList.size())); Enchantment enchantment = applicableEnchantmentList.get(ThreadLocalRandom.current().nextInt(applicableEnchantmentList.size()));
int level = 1; int level = 1;
if (enchantment.getMaxLevel() != 1) { if (enchantment.getMaxLevel() != 1) {
level = ThreadLocalRandom.current().nextInt(enchantment.getMaxLevel()) + 1; level = ThreadLocalRandom.current().nextInt(enchantment.getMaxLevel()) + 1;