Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
874a9b4f32 | ||
|
|
5690221c27 | ||
|
|
f19b143804 |
@@ -1,6 +1,9 @@
|
|||||||
package com.willfp.eco.core.items;
|
package com.willfp.eco.core.items;
|
||||||
|
|
||||||
|
import com.willfp.eco.core.Eco;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -47,6 +50,12 @@ public class CustomItem implements TestableItem {
|
|||||||
this.key = key;
|
this.key = key;
|
||||||
this.test = test;
|
this.test = test;
|
||||||
this.item = item;
|
this.item = item;
|
||||||
|
|
||||||
|
Eco.getHandler().getEcoPlugin().getScheduler().runLater(() -> {
|
||||||
|
if (!matches(getItem())) {
|
||||||
|
Bukkit.getLogger().severe("Item with key " + key + " is invalid!");
|
||||||
|
}
|
||||||
|
}, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -178,7 +178,10 @@ public final class Items {
|
|||||||
List<Predicate<ItemStack>> predicates = new ArrayList<>();
|
List<Predicate<ItemStack>> predicates = new ArrayList<>();
|
||||||
|
|
||||||
for (LookupArgParser argParser : ARG_PARSERS) {
|
for (LookupArgParser argParser : ARG_PARSERS) {
|
||||||
predicates.add(argParser.parseArguments(modifierArgs, meta));
|
Predicate<ItemStack> predicate = argParser.parseArguments(modifierArgs, meta);
|
||||||
|
if (predicate != null) {
|
||||||
|
predicates.add(argParser.parseArguments(modifierArgs, meta));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
example.setItemMeta(meta);
|
example.setItemMeta(meta);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -16,8 +17,8 @@ import java.util.function.Predicate;
|
|||||||
*/
|
*/
|
||||||
public class EnchantmentArgParser implements LookupArgParser {
|
public class EnchantmentArgParser implements LookupArgParser {
|
||||||
@Override
|
@Override
|
||||||
public Predicate<ItemStack> parseArguments(@NotNull final String[] args,
|
public @Nullable Predicate<ItemStack> parseArguments(@NotNull final String[] args,
|
||||||
@NotNull final ItemMeta meta) {
|
@NotNull final ItemMeta meta) {
|
||||||
Map<Enchantment, Integer> requiredEnchantments = new HashMap<>();
|
Map<Enchantment, Integer> requiredEnchantments = new HashMap<>();
|
||||||
|
|
||||||
for (String enchantArg : args) {
|
for (String enchantArg : args) {
|
||||||
@@ -37,6 +38,10 @@ public class EnchantmentArgParser implements LookupArgParser {
|
|||||||
requiredEnchantments.put(enchantment, level);
|
requiredEnchantments.put(enchantment, level);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (requiredEnchantments.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
if (meta instanceof EnchantmentStorageMeta storageMeta) {
|
if (meta instanceof EnchantmentStorageMeta storageMeta) {
|
||||||
requiredEnchantments.forEach((enchantment, integer) -> storageMeta.addStoredEnchant(enchantment, integer, true));
|
requiredEnchantments.forEach((enchantment, integer) -> storageMeta.addStoredEnchant(enchantment, integer, true));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.willfp.eco.core.items.TestableItem;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
@@ -19,6 +20,6 @@ public interface LookupArgParser {
|
|||||||
* @param meta The ItemMeta to modify.
|
* @param meta The ItemMeta to modify.
|
||||||
* @return The predicate test to apply to the modified item.
|
* @return The predicate test to apply to the modified item.
|
||||||
*/
|
*/
|
||||||
Predicate<ItemStack> parseArguments(@NotNull String[] args,
|
@Nullable Predicate<ItemStack> parseArguments(@NotNull String[] args,
|
||||||
@NotNull ItemMeta meta);
|
@NotNull ItemMeta meta);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
@@ -13,8 +14,8 @@ import java.util.function.Predicate;
|
|||||||
*/
|
*/
|
||||||
public class TextureArgParser implements LookupArgParser {
|
public class TextureArgParser implements LookupArgParser {
|
||||||
@Override
|
@Override
|
||||||
public Predicate<ItemStack> parseArguments(@NotNull final String[] args,
|
public @Nullable Predicate<ItemStack> parseArguments(@NotNull final String[] args,
|
||||||
@NotNull final ItemMeta meta) {
|
@NotNull final ItemMeta meta) {
|
||||||
String skullTexture = null;
|
String skullTexture = null;
|
||||||
|
|
||||||
for (String arg : args) {
|
for (String arg : args) {
|
||||||
@@ -34,6 +35,10 @@ public class TextureArgParser implements LookupArgParser {
|
|||||||
SkullUtils.setSkullTexture(skullMeta, skullTexture);
|
SkullUtils.setSkullTexture(skullMeta, skullTexture);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (skullTexture == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
String finalSkullTexture = skullTexture;
|
String finalSkullTexture = skullTexture;
|
||||||
return test -> {
|
return test -> {
|
||||||
if (!test.hasItemMeta()) {
|
if (!test.hasItemMeta()) {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.willfp.eco.core.recipe.parts;
|
|||||||
|
|
||||||
import com.willfp.eco.core.items.TestableItem;
|
import com.willfp.eco.core.items.TestableItem;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|||||||
@@ -82,6 +82,10 @@ public final class ShapedCraftingRecipe extends PluginDependent<EcoPlugin> imple
|
|||||||
ShapedRecipe shapedRecipe = new ShapedRecipe(this.getKey(), this.getOutput());
|
ShapedRecipe shapedRecipe = new ShapedRecipe(this.getKey(), this.getOutput());
|
||||||
shapedRecipe.shape("012", "345", "678");
|
shapedRecipe.shape("012", "345", "678");
|
||||||
for (int i = 0; i < 9; i++) {
|
for (int i = 0; i < 9; i++) {
|
||||||
|
if (parts.get(i) instanceof EmptyTestableItem) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
char character = String.valueOf(i).toCharArray()[0];
|
char character = String.valueOf(i).toCharArray()[0];
|
||||||
shapedRecipe.setIngredient(character, parts.get(i).getItem().getType());
|
shapedRecipe.setIngredient(character, parts.get(i).getItem().getType());
|
||||||
}
|
}
|
||||||
@@ -89,6 +93,10 @@ public final class ShapedCraftingRecipe extends PluginDependent<EcoPlugin> imple
|
|||||||
ShapedRecipe displayedRecipe = new ShapedRecipe(this.getDisplayedKey(), this.getOutput());
|
ShapedRecipe displayedRecipe = new ShapedRecipe(this.getDisplayedKey(), this.getOutput());
|
||||||
displayedRecipe.shape("012", "345", "678");
|
displayedRecipe.shape("012", "345", "678");
|
||||||
for (int i = 0; i < 9; i++) {
|
for (int i = 0; i < 9; i++) {
|
||||||
|
if (parts.get(i) instanceof EmptyTestableItem) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
char character = String.valueOf(i).toCharArray()[0];
|
char character = String.valueOf(i).toCharArray()[0];
|
||||||
ItemStack item = parts.get(i).getItem();
|
ItemStack item = parts.get(i).getItem();
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
version = 6.7.1
|
version = 6.7.2
|
||||||
plugin-name = eco
|
plugin-name = eco
|
||||||
Reference in New Issue
Block a user