Search in sources :

Example 46 with StringTag

use of com.wasteofplastic.org.jnbt.StringTag in project acidisland by tastybento.

the class NMSHandler method setPotion.

@Override
public ItemStack setPotion(Material itemMaterial, Tag itemTags, ItemStack chestItem) {
    // Try some backwards compatibility with new 1.9 schematics
    Map<String, Tag> cont = (Map<String, Tag>) ((CompoundTag) itemTags).getValue();
    if (cont != null) {
        if (((CompoundTag) itemTags).getValue().containsKey("tag")) {
            Map<String, Tag> contents = (Map<String, Tag>) ((CompoundTag) itemTags).getValue().get("tag").getValue();
            StringTag stringTag = ((StringTag) contents.get("Potion"));
            if (stringTag != null) {
                String tag = stringTag.getValue().replace("minecraft:", "");
                PotionType type = null;
                boolean strong = tag.contains("strong");
                boolean _long = tag.contains("long");
                // Bukkit.getLogger().info("tag = " + tag);
                if (tag.equals("fire_resistance") || tag.equals("long_fire_resistance")) {
                    type = PotionType.FIRE_RESISTANCE;
                } else if (tag.equals("harming") || tag.equals("strong_harming")) {
                    type = PotionType.INSTANT_DAMAGE;
                } else if (tag.equals("healing") || tag.equals("strong_healing")) {
                    type = PotionType.INSTANT_HEAL;
                } else if (tag.equals("invisibility") || tag.equals("long_invisibility")) {
                    type = PotionType.INVISIBILITY;
                } else if (tag.equals("leaping") || tag.equals("long_leaping") || tag.equals("strong_leaping")) {
                    type = PotionType.JUMP;
                } else if (tag.equals("night_vision") || tag.equals("long_night_vision")) {
                    type = PotionType.NIGHT_VISION;
                } else if (tag.equals("poison") || tag.equals("long_poison") || tag.equals("strong_poison")) {
                    type = PotionType.POISON;
                } else if (tag.equals("regeneration") || tag.equals("long_regeneration") || tag.equals("strong_regeneration")) {
                    type = PotionType.REGEN;
                } else if (tag.equals("slowness") || tag.equals("long_slowness")) {
                    type = PotionType.SLOWNESS;
                } else if (tag.equals("swiftness") || tag.equals("long_swiftness") || tag.equals("strong_swiftness")) {
                    type = PotionType.SPEED;
                } else if (tag.equals("strength") || tag.equals("long_strength") || tag.equals("strong_strength")) {
                    type = PotionType.STRENGTH;
                } else if (tag.equals("water_breathing") || tag.equals("long_water_breathing")) {
                    type = PotionType.WATER_BREATHING;
                } else if (tag.equals("water")) {
                    type = PotionType.WATER;
                } else if (tag.equals("weakness") || tag.equals("long_weakness")) {
                    type = PotionType.WEAKNESS;
                } else {
                    return chestItem;
                }
                Potion potion = new Potion(type);
                potion.setHasExtendedDuration(_long);
                potion.setLevel(strong ? 2 : 1);
                chestItem = potion.toItemStack(chestItem.getAmount());
            }
        }
    }
    return chestItem;
}
Also used : StringTag(com.wasteofplastic.org.jnbt.StringTag) Potion(org.bukkit.potion.Potion) NBTTagString(net.minecraft.server.v1_7_R4.NBTTagString) StringTag(com.wasteofplastic.org.jnbt.StringTag) CompoundTag(com.wasteofplastic.org.jnbt.CompoundTag) Tag(com.wasteofplastic.org.jnbt.Tag) ListTag(com.wasteofplastic.org.jnbt.ListTag) PotionType(org.bukkit.potion.PotionType) Map(java.util.Map)

Aggregations

StringTag (com.wasteofplastic.org.jnbt.StringTag)46 CompoundTag (com.wasteofplastic.org.jnbt.CompoundTag)44 Tag (com.wasteofplastic.org.jnbt.Tag)44 Map (java.util.Map)44 ListTag (com.wasteofplastic.org.jnbt.ListTag)42 ArrayList (java.util.ArrayList)22 ItemStack (org.bukkit.inventory.ItemStack)20 ItemMeta (org.bukkit.inventory.meta.ItemMeta)20 Potion (org.bukkit.potion.Potion)12 PotionType (org.bukkit.potion.PotionType)12 HashMap (java.util.HashMap)10 NBTTagCompound (net.minecraft.server.v1_10_R1.NBTTagCompound)4 NBTTagString (net.minecraft.server.v1_10_R1.NBTTagString)4 NBTTagCompound (net.minecraft.server.v1_11_R1.NBTTagCompound)4 NBTTagString (net.minecraft.server.v1_11_R1.NBTTagString)4 NBTTagCompound (net.minecraft.server.v1_12_R1.NBTTagCompound)4 NBTTagString (net.minecraft.server.v1_12_R1.NBTTagString)4 NBTTagString (net.minecraft.server.v1_7_R3.NBTTagString)4 NBTTagString (net.minecraft.server.v1_7_R4.NBTTagString)4 NBTTagString (net.minecraft.server.v1_8_R1.NBTTagString)4