本文整理了Java中org.bukkit.inventory.ItemStack.getEnchantments()
方法的一些代码示例,展示了ItemStack.getEnchantments()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ItemStack.getEnchantments()
方法的具体详情如下:
包路径:org.bukkit.inventory.ItemStack
类名称:ItemStack
方法名:getEnchantments
[英]Gets a map containing all enchantments and their levels on this item.
[中]获取包含此项目上所有附魔及其级别的地图。
代码示例来源:origin: GlowstoneMC/Glowstone
private static boolean canEnchant(ItemStack item) {
Material type = item.getType();
switch (type) {
case ENCHANTED_BOOK:
return false;
case BOOK:
return item.getAmount() == 1;
case FISHING_ROD:
case BOW:
return item.getEnchantments().isEmpty();
default:
return (isEnchantableTool(type) || isCloth(type) || ToolType.SWORD.matches(type))
&& item.getEnchantments().isEmpty();
}
}
代码示例来源:origin: Bukkit/Bukkit
Map<Enchantment, Integer> enchantments = item.getEnchantments();
boolean conflicts = false;
代码示例来源:origin: EngineHub/CommandHelper
@Override
public Map<MCEnchantment, Integer> getEnchantments() {
Map<MCEnchantment, Integer> map = new HashMap<>();
try {
for(Map.Entry<Enchantment, Integer> entry : is.getEnchantments().entrySet()) {
map.put(new BukkitMCEnchantment(entry.getKey()), entry.getValue());
}
} catch (NullPointerException npe) {
// Probably invalid enchantment, always return map
}
return map;
}
代码示例来源:origin: artex-development/Lukkit
@Override
public LuaValue call() {
return CoerceJavaToLua.coerce(item.getEnchantments());
}
});
代码示例来源:origin: me.lucko/helper
public ItemStackBuilder clearEnchantments() {
return transform(itemStack -> itemStack.getEnchantments().keySet().forEach(itemStack::removeEnchantment));
}
代码示例来源:origin: lucko/helper
public ItemStackBuilder clearEnchantments() {
return transform(itemStack -> itemStack.getEnchantments().keySet().forEach(itemStack::removeEnchantment));
}
代码示例来源:origin: xXKeyleXx/MyPet
public static boolean compareEnchantments(ItemStack i1, ItemStack i2) {
if (i1 == null || i2 == null) {
return false;
}
if (i1.getEnchantments().size() == i2.getEnchantments().size()) {
Map<Enchantment, Integer> e1 = i1.getEnchantments();
Map<Enchantment, Integer> e2 = i2.getEnchantments();
Enchantment[] e1l = new Enchantment[e1.size()];
int i = 0;
for (Enchantment enchantment : e1.keySet()) {
e1l[i++] = enchantment;
}
i = 0;
for (Enchantment enchantment : e2.keySet()) {
if (e1l[i].getId() != enchantment.getId()) {
//MyPetLogger.write("enchantment: " + e1l[i].getId() + "<->" + enchantment.getId());
return false;
} else if (!e1.get(e1l[i]).equals(e2.get(enchantment))) {
//MyPetLogger.write("level: " + e1.get(e1l[i]) + "<->" + e2.get(enchantment));
return false;
}
i++;
}
return true;
}
//MyPetLogger.write("size: " + i1.getEnchantments().size() + "<->" + i2.getEnchantments().size());
return false;
}
代码示例来源:origin: eccentricdevotion/TARDIS
private void removeSonicEnchant(PlayerInventory inv) {
int first = inv.first(sonic);
if (first < 0) {
return;
}
ItemStack stack = inv.getItem(first);
if (stack.containsEnchantment(Enchantment.DURABILITY)) {
stack.getEnchantments().keySet().forEach(stack::removeEnchantment);
}
}
代码示例来源:origin: NoCheatPlus/NoCheatPlus
/**
* Checks for illegal enchantments (legacy). Removes enchantments from
* WRITTEN_BOOK.
*
* @param player
* @param stack
* @return True if the check is failed.
*/
public static final boolean checkIllegalEnchantments(final Player player,
final ItemStack stack, final IPlayerData pData){
if (stack == null) {
return false;
}
final Material type = stack.getType();
// Fastest checks first.
// TODO: Make stuff configurable.
if (type == Material.WRITTEN_BOOK){
final Map<Enchantment, Integer> enchantments = stack.getEnchantments();
if (enchantments != null && !enchantments.isEmpty() && pData.isCheckActive(instance.type, player)){
// TODO: differentiate sub checks maybe or add extra permissions, later.
for (final Enchantment ench : new HashSet<Enchantment>(enchantments.keySet())){
stack.removeEnchantment(ench);
}
// TODO: actions and similar.
return true;
}
}
return false;
}
代码示例来源:origin: EpicEricEE/ShopChest
public static Map<Enchantment, Integer> getEnchantments(ItemStack itemStack) {
if (itemStack.getItemMeta() instanceof EnchantmentStorageMeta) {
EnchantmentStorageMeta esm = (EnchantmentStorageMeta) itemStack.getItemMeta();
return esm.getStoredEnchants();
} else {
return itemStack.getEnchantments();
}
}
代码示例来源:origin: ChestShop-authors/ChestShop-3
@EventHandler
public static void addEnchantment(ItemInfoEvent event) {
ItemStack item = event.getItem();
ItemMeta meta = item.getItemMeta();
CommandSender sender = event.getSender();
for (Map.Entry<Enchantment, Integer> enchantment : item.getEnchantments().entrySet()) {
sender.sendMessage(ChatColor.AQUA + capitalizeFirstLetter(enchantment.getKey().getName(), '_') + ' ' + toRoman(enchantment.getValue()));
}
if (meta instanceof EnchantmentStorageMeta) {
for (Map.Entry<Enchantment, Integer> enchantment : ((EnchantmentStorageMeta) meta).getStoredEnchants().entrySet()) {
sender.sendMessage(ChatColor.YELLOW + capitalizeFirstLetter(enchantment.getKey().getName(), '_') + ' ' + toRoman(enchantment.getValue()));
}
}
}
代码示例来源:origin: marcelo-mason/PreciousStones
/**
* @param item
*/
public ItemStackEntry(ItemStack item) {
this.typeId = item.getTypeId();
this.data = item.getData().getData();
this.durability = item.getDurability();
this.enchantments = item.getEnchantments();
this.amount = item.getAmount();
}
代码示例来源:origin: AddstarMC/Minigames
ret += "dur-" + i.getDurability() + "|";
ret += "c-" + i.getAmount() + "|";
if(!i.getEnchantments().isEmpty()){
ret += "enc-";
for(Enchantment e : i.getEnchantments().keySet()){
ret += "[";
ret += e.getName() + ",";
ret += i.getEnchantments().get(e);
ret += "]";
代码示例来源:origin: TheBusyBiscuit/Slimefun4
/**
*
* @param e BlockBreakEvent
* @since 4.2.0
*/
@EventHandler
public void onBlockBreak(BlockBreakEvent e) {
List<ItemStack> drops = new ArrayList<ItemStack>();
ItemStack item = e.getPlayer().getInventory().getItemInMainHand();
int fortune = 1;
if (item != null) {
if (item.getEnchantments().containsKey(Enchantment.LOOT_BONUS_BLOCKS) && !item.getEnchantments().containsKey(Enchantment.SILK_TOUCH)) {
fortune = SlimefunStartup.randomize(item.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS) + 2) - 1;
if (fortune <= 0) fortune = 1;
fortune = (e.getBlock().getType() == Material.LAPIS_ORE ? 4 + SlimefunStartup.randomize(5) : 1) * (fortune + 1);
}
if (!item.getEnchantments().containsKey(Enchantment.SILK_TOUCH) && e.getBlock().getType().toString().endsWith("_ORE")) {
if (Talisman.checkFor(e, SlimefunItem.getByID("MINER_TALISMAN"))) {
if (drops.isEmpty()) drops = (List<ItemStack>) e.getBlock().getDrops();
for (ItemStack drop : new ArrayList<ItemStack>(drops)) {
if (!drop.getType().isBlock()) drops.add(new CustomItem(drop, fortune * 2));
}
}
}
}
}
}
代码示例来源:origin: TheBusyBiscuit/Slimefun4
private ItemStack removeEnchantments(ItemStack itemStack) {
ItemStack strippedItem = itemStack.clone();
for (Enchantment enchantment : itemStack.getEnchantments().keySet()) {
strippedItem.removeEnchantment(enchantment);
}
if (Slimefun.isEmeraldEnchantsInstalled()) {
for(ItemEnchantment enchantment : EmeraldEnchants.getInstance().getRegistry().getEnchantments(itemStack)){
EmeraldEnchants.getInstance().getRegistry().applyEnchantment(strippedItem, enchantment.getEnchantment(), 0);
}
}
return strippedItem;
}
}
代码示例来源:origin: mcMMO-Dev/mcMMO
Player player = getPlayer();
Map<Enchantment, Integer> enchants = item.getEnchantments();
Map<Enchantment, Integer> newEnchants = item.getEnchantments();
代码示例来源:origin: eccentricdevotion/TARDIS
void playSonicSound(Player player, long now, long cooldown, String sound) {
if ((!timeout.containsKey(player.getUniqueId()) || timeout.get(player.getUniqueId()) < now)) {
ItemMeta im = player.getInventory().getItemInMainHand().getItemMeta();
im.addEnchant(Enchantment.DURABILITY, 1, true);
im.addItemFlags(ItemFlag.values());
player.getInventory().getItemInMainHand().setItemMeta(im);
timeout.put(player.getUniqueId(), now + cooldown);
TARDISSounds.playTARDISSound(player.getLocation(), sound);
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, () -> {
ItemStack is = player.getInventory().getItemInMainHand();
if (is.hasItemMeta()) {
ItemMeta im1 = is.getItemMeta();
if (im1.hasDisplayName() && ChatColor.stripColor(im1.getDisplayName()).equals("Sonic Screwdriver")) {
player.getInventory().getItemInMainHand().getEnchantments().keySet().forEach((e) -> player.getInventory().getItemInMainHand().removeEnchantment(e));
} else {
// find the screwdriver in the player's inventory
removeSonicEnchant(player.getInventory());
}
} else {
// find the screwdriver in the player's inventory
removeSonicEnchant(player.getInventory());
}
}, (cooldown / 50L));
}
}
代码示例来源:origin: bitquest/bitquest
ItemStack helmet = inventory.getHelmet();
if (helmet != null && helmet.getType() == Material.PUMPKIN) {
Map<Enchantment, Integer> enchantments = helmet.getEnchantments();
for (Map.Entry<Enchantment, Integer> entry : enchantments.entrySet()) {
if (entry.getKey().equals(Enchantment.BINDING_CURSE)) {
代码示例来源:origin: TheBusyBiscuit/Slimefun4
if (e.getPlayer().getInventory().getItemInMainHand().getEnchantments().containsKey(Enchantment.DURABILITY)) {
if (SlimefunStartup.randomize(100) <= (60 + 40 / (e.getPlayer().getInventory().getItemInMainHand().getEnchantmentLevel(Enchantment.DURABILITY) + 1))) PlayerInventory.damageItemInHand(e.getPlayer());
代码示例来源:origin: CitizensDev/CitizensAPI
public static void saveItem(DataKey key, ItemStack item) {
if (item == null) {
item = new ItemStack(Material.AIR);
}
migrateForSave(key);
if (SpigotUtil.isUsing1_13API()) {
key.setString("type_namespace", item.getType().getKey().getNamespace());
key.setString("type_key", item.getType().getKey().getKey());
} else {
key.setString("type", item.getType().name());
}
key.setInt("amount", item.getAmount());
key.setInt("durability", item.getDurability());
if (item.getData() != null) {
key.setInt("mdata", item.getData().getData());
}
if (item.hasItemMeta()) {
ItemMeta meta = item.getItemMeta();
serialiseMeta(key.getRelative("meta"), meta);
} else {
key.removeKey("meta");
}
serialiseEnchantments(key.getRelative("enchantments"), item.getEnchantments());
}
内容来源于网络,如有侵权,请联系作者删除!