1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-19 19:25:48 +00:00
This commit is contained in:
TheBusyBiscuit 2021-03-13 00:18:02 +01:00
parent 76cb7434dc
commit 4aec2ffbcf
2 changed files with 22 additions and 7 deletions

View File

@ -59,6 +59,7 @@
* Fixed #2856
* Fixed #2876
* Fixed #2877
* Fixed #2878
## Release Candidate 20 (30 Jan 2021)

View File

@ -9,6 +9,9 @@ import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ThreadLocalRandom;
import javax.annotation.Nonnull;
import javax.annotation.ParametersAreNonnullByDefault;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Particle;
@ -41,6 +44,7 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
private static final double RANGE = 1.5;
private final Map<Material, List<Enchantment>> applicableEnchantments = new EnumMap<>(Material.class);
@ParametersAreNonnullByDefault
public EnchantmentRune(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, recipeType, recipe);
@ -48,7 +52,7 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
List<Enchantment> enchantments = new ArrayList<>();
for (Enchantment enchantment : Enchantment.values()) {
if (enchantment == Enchantment.BINDING_CURSE || enchantment == Enchantment.VANISHING_CURSE) {
if (enchantment.equals(Enchantment.BINDING_CURSE) || enchantment.equals(Enchantment.VANISHING_CURSE)) {
continue;
}
@ -82,7 +86,7 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
};
}
private void addRandomEnchantment(Player p, Item rune) {
private void addRandomEnchantment(@Nonnull Player p, @Nonnull Item rune) {
// Being sure the entity is still valid and not picked up or whatsoever.
if (!rune.isValid()) {
return;
@ -105,8 +109,18 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
potentialEnchantments = new ArrayList<>(potentialEnchantments);
}
// Removing the enchantments that the item already has from enchantmentSet
// This also removes any conflicting enchantments
SlimefunItem slimefunItem = SlimefunItem.getByItem(itemStack);
// Fixes #2878 - Respect enchatability config setting.
if (slimefunItem != null && !slimefunItem.isEnchantable()) {
SlimefunPlugin.getLocalization().sendMessage(p, "messages.enchantment-rune.fail", true);
return;
}
/*
* Removing the enchantments that the item already has from enchantmentSet.
* This also removes any conflicting enchantments
*/
removeIllegalEnchantments(itemStack, potentialEnchantments);
if (potentialEnchantments.isEmpty()) {
@ -143,7 +157,7 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
}
}
private int getRandomlevel(Enchantment enchantment) {
private int getRandomlevel(@Nonnull Enchantment enchantment) {
int level = 1;
if (enchantment.getMaxLevel() != 1) {
@ -153,7 +167,7 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
return level;
}
private void removeIllegalEnchantments(ItemStack target, List<Enchantment> potentialEnchantments) {
private void removeIllegalEnchantments(@Nonnull ItemStack target, @Nonnull List<Enchantment> potentialEnchantments) {
for (Enchantment enchantment : target.getEnchantments().keySet()) {
Iterator<Enchantment> iterator = potentialEnchantments.iterator();
@ -168,7 +182,7 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
}
}
private boolean findCompatibleItem(Entity n) {
private boolean findCompatibleItem(@Nonnull Entity n) {
if (n instanceof Item) {
Item item = (Item) n;