ActuallyAdditions/src/main/java/de/ellpeck/actuallyadditions/mod/util/ItemUtil.java

94 lines
3.6 KiB
Java
Raw Normal View History

2015-08-29 14:33:25 +02:00
/*
2016-05-16 22:52:27 +02:00
* This file ("ItemUtil.java") is part of the Actually Additions mod for Minecraft.
2015-08-29 14:33:25 +02:00
* It is created and owned by Ellpeck and distributed
* under the Actually Additions License to be found at
2016-05-16 22:52:27 +02:00
* http://ellpeck.de/actaddlicense
2015-08-29 14:33:25 +02:00
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
*
2017-01-01 16:23:26 +01:00
* © 2015-2017 Ellpeck
2015-08-29 14:33:25 +02:00
*/
2016-01-05 04:47:35 +01:00
package de.ellpeck.actuallyadditions.mod.util;
2015-03-29 15:29:05 +02:00
import net.minecraft.enchantment.Enchantment;
import net.minecraft.enchantment.EnchantmentHelper;
2021-02-26 22:15:48 +01:00
import net.minecraft.entity.player.PlayerEntity;
2015-03-29 15:29:05 +02:00
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
2021-02-26 22:15:48 +01:00
import net.minecraft.util.Hand;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.registries.ForgeRegistries;
import java.util.Map;
2021-02-26 22:15:48 +01:00
2019-05-02 09:10:29 +02:00
public final class ItemUtil {
2015-03-29 15:29:05 +02:00
2019-05-02 09:10:29 +02:00
public static Item getItemFromName(String name) {
2017-11-02 22:49:53 +01:00
return ForgeRegistries.ITEMS.getValue(new ResourceLocation(name));
2015-07-12 22:05:34 +02:00
}
// public static boolean contains(ItemStack[] array, ItemStack stack, boolean checkWildcard) {
// return getPlaceAt(array, stack, checkWildcard) != -1;
// }
//
// public static int getPlaceAt(ItemStack[] array, ItemStack stack, boolean checkWildcard) {
// return getPlaceAt(Arrays.asList(array), stack, checkWildcard);
// }
//
// public static int getPlaceAt(List<ItemStack> list, ItemStack stack, boolean checkWildcard) {
// if (list != null && list.size() > 0) {
// for (int i = 0; i < list.size(); i++) {
// if (!StackUtil.isValid(stack) && !StackUtil.isValid(list.get(i)) || areItemsEqual(stack, list.get(i), checkWildcard)) {
// return i;
// }
// }
// }
// return -1;
// }
@Deprecated
2019-05-02 09:10:29 +02:00
public static boolean areItemsEqual(ItemStack stack1, ItemStack stack2, boolean checkWildcard) {
return stack1.isItemEqual(stack2);
//return StackUtil.isValid(stack1) && StackUtil.isValid(stack2) && (stack1.isItemEqual(stack2) || checkWildcard && stack1.getItem() == stack2.getItem() && (stack1.getItemDamage() == Util.WILDCARD || stack2.getItemDamage() == Util.WILDCARD));
}
// /**
// * Returns true if list contains stack or if both contain null
// */
// public static boolean contains(List<ItemStack> list, ItemStack stack, boolean checkWildcard) {
// return !(list == null || list.isEmpty()) && getPlaceAt(list, stack, checkWildcard) != -1;
// }
2015-10-03 22:13:57 +02:00
@Deprecated
2019-05-02 09:10:29 +02:00
public static void addEnchantment(ItemStack stack, Enchantment e, int level) {
if (!EnchantmentHelper.getEnchantments(stack).containsKey(e)) {
stack.addEnchantment(e, level);
}
}
// TODO: [port] ensure this still works :D
2019-05-02 09:10:29 +02:00
public static void removeEnchantment(ItemStack stack, Enchantment e) {
Map<Enchantment, Integer> enchantments = EnchantmentHelper.getEnchantments(stack);
enchantments.remove(e);
EnchantmentHelper.setEnchantments(enchantments, stack);
}
2019-05-02 09:10:29 +02:00
public static boolean canBeStacked(ItemStack stack1, ItemStack stack2) {
return ItemStack.areItemsEqual(stack1, stack2) && ItemStack.areItemStackTagsEqual(stack1, stack2);
}
2019-05-02 09:10:29 +02:00
public static boolean isEnabled(ItemStack stack) {
return stack.getOrCreateTag().getBoolean("IsEnabled");
}
2021-02-26 22:15:48 +01:00
public static void changeEnabled(PlayerEntity player, Hand hand) {
changeEnabled(player.getHeldItem(hand));
}
2019-05-02 09:10:29 +02:00
public static void changeEnabled(ItemStack stack) {
boolean isEnabled = isEnabled(stack);
stack.getOrCreateTag().putBoolean("IsEnabled", !isEnabled);
}
2015-03-29 15:29:05 +02:00
}