Browse Source

Update default potions.yml and add tool to do so in the future.

t00thpick1 9 years ago
parent
commit
a238b7029d
2 changed files with 1849 additions and 525 deletions
  1. 1233 525
      src/main/resources/potions.yml
  2. 616 0
      src/util/java/mcMMO/PotionConfigGenerator.java

+ 1233 - 525
src/main/resources/potions.yml

@@ -53,653 +53,1361 @@ Concoctions:
 
 ###
 Potions:
-
-    ### NON-EFFECT POTIONS #####################################################
-
-    WATER:
+    POTION_OF_EMPTY:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Children:
+            SULPHUR: SPLASH_POTION_OF_EMPTY
+    POTION_OF_WATER:
         Material: POTION
         PotionData:
             PotionType: WATER
         Children:
-            BLAZE_POWDER: MUNDANE_POTION
-            FERMENTED_SPIDER_EYE: 8200
-            GHAST_TEAR: MUNDANE_POTION            
-            GLOWSTONE_DUST: THICK
-            MAGMA_CREAM: MUNDANE_POTION           
-            NETHER_STALK: AWKWARD
-            REDSTONE: MUNDANE_POTION_EXTENDED
-            SPECKLED_MELON: MUNDANE_POTION
-            SPIDER_EYE: MUNDANE_POTION
-            SUGAR: MUNDANE_POTION
-
-    AWKWARD:
+            SPIDER_EYE: POTION_OF_MUNDANE
+            GHAST_TEAR: POTION_OF_MUNDANE
+            SUGAR: POTION_OF_MUNDANE
+            FERMENTED_SPIDER_EYE: POTION_OF_WEAKNESS
+            SULPHUR: SPLASH_POTION_OF_WATER
+            NETHER_WARTS: POTION_OF_AWKWARD
+            REDSTONE: POTION_OF_MUNDANE
+            SPECKLED_MELON: POTION_OF_MUNDANE
+            BLAZE_POWDER: POTION_OF_MUNDANE
+            MAGMA_CREAM: POTION_OF_MUNDANE
+            RABBIT_FOOT: POTION_OF_MUNDANE
+            GLOWSTONE_DUST: POTION_OF_THICK
+    POTION_OF_MUNDANE:
         Material: POTION
         PotionData:
-            PotionType: AWKWARD
+            PotionType: MUNDANE
         Children:
-            APPLE: 5376                 # Potion of Health Boost
-            BLAZE_POWDER: 8201          # Potion of Strength
-            BROWN_MUSHROOM: 2304        # Potion of Nausea
-            CARROT_ITEM: 768            # Potion of Haste
-            FERMENTED_SPIDER_EYE: 8200  # Potion of Weakness
-            GHAST_TEAR: 8193            # Potion of Regeneration
-            'GOLDEN_APPLE:0': 2816      # Potion of Resistance
-            GOLDEN_CARROT: 8198         # Potion of Night Vision
-            'INK_SACK:0': 3840          # Potion of Blindness
-            'LONG_GRASS:2': 5888        # Potion of Saturation
-            MAGMA_CREAM: 8195           # Potion of Fire Resistance
-            POISONOUS_POTATO: 5120      # Potion of Decay
-            QUARTZ: 5632                # Potion of Absorption
-            RED_MUSHROOM: 2048          # Potion of Leaping
-            ROTTEN_FLESH: 4352          # Potion of Hunger
-            SLIME_BALL: 1024            # Potion of Dullness
-            SPECKLED_MELON: 8197        # Potion of Healing
-            SPIDER_EYE: 8196            # Potion of Poison
-            SUGAR: SWIFTNESS            # Potion of Swiftness
-            WATER_LILY: 8205            # Potion of Water Breathing (Minecraft 1.6)
-            'RAW_FISH:3': 8205          # Potion of Water Breathing (Minecraft 1.7)
-
-    THICK:
+            SULPHUR: SPLASH_POTION_OF_MUNDANE
+    POTION_OF_THICK:
         Material: POTION
         PotionData:
             PotionType: THICK
         Children:
-            FERMENTED_SPIDER_EYE: 8200
-
-    MUNDANE_POTION:
+            SULPHUR: SPLASH_POTION_OF_THICK
+    POTION_OF_AWKWARD:
         Material: POTION
         PotionData:
-            PotionType: MUNDANE 
+            PotionType: AWKWARD
         Children:
-            FERMENTED_SPIDER_EYE: 8200
-            SULPHUR: 16384
-
-    ### DRINKABLE POTIONS ######################################################
-
-    SWIFTNESS:
+            MAGMA_CREAM: POTION_OF_FIRE_RESISTANCE
+            ROTTEN_FLESH: POTION_OF_HUNGER
+            SULPHUR: SPLASH_POTION_OF_AWKWARD
+            RABBIT_FOOT: POTION_OF_LEAPING
+            GOLDEN_CARROT: POTION_OF_NIGHT_VISION
+            CARROT_ITEM: POTION_OF_HASTE
+            SLIME_BALL: POTION_OF_DULLNESS
+            'RAW_FISH:3': POTION_OF_WATER_BREATHING
+            SPECKLED_MELON: POTION_OF_HEALING
+            SPIDER_EYE: POTION_OF_POISON
+            GHAST_TEAR: POTION_OF_REGENERATION
+            INK_SACK: POTION_OF_BLINDNESS
+            BROWN_MUSHROOM: POTION_OF_NAUSEA
+            BLAZE_POWDER: POTION_OF_STRENGTH
+            POISONOUS_POTATO: POTION_OF_DECAY
+            QUARTZ: POTION_OF_ABSORPTION
+            'LONG_GRASS:2': POTION_OF_SATURATION
+            APPLE: POTION_OF_HEALTH_BOOST
+            SUGAR: POTION_OF_SWIFTNESS
+            GOLDEN_APPLE: POTION_OF_RESISTANCE
+    POTION_OF_NIGHT_VISION:
+        Material: POTION
+        PotionData:
+            PotionType: NIGHT_VISION
+        Children:
+            FERMENTED_SPIDER_EYE: POTION_OF_INVISIBILITY
+            SULPHUR: SPLASH_POTION_OF_NIGHT_VISION
+            REDSTONE: POTION_OF_NIGHT_VISION_EXTENDED
+    POTION_OF_NIGHT_VISION_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: NIGHT_VISION
+            Extended: true
+        Children:
+            SULPHUR: SPLASH_POTION_OF_NIGHT_VISION_EXTENDED
+            FERMENTED_SPIDER_EYE: POTION_OF_INVISIBILITY_EXTENDED
+    POTION_OF_INVISIBILITY:
+        Material: POTION
+        PotionData:
+            PotionType: INVISIBILITY
+        Children:
+            SULPHUR: SPLASH_POTION_OF_INVISIBILITY
+            REDSTONE: POTION_OF_INVISIBILITY_EXTENDED
+    POTION_OF_INVISIBILITY_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: INVISIBILITY
+            Extended: true
+        Children:
+            SULPHUR: SPLASH_POTION_OF_INVISIBILITY_EXTENDED
+    POTION_OF_LEAPING:
+        Material: POTION
+        PotionData:
+            PotionType: JUMP
+        Children:
+            REDSTONE: POTION_OF_LEAPING_EXTENDED
+            FERMENTED_SPIDER_EYE: POTION_OF_SLOWNESS
+            SULPHUR: SPLASH_POTION_OF_LEAPING
+            GLOWSTONE_DUST: POTION_OF_LEAPING_II
+    POTION_OF_LEAPING_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: JUMP
+            Extended: true
+        Children:
+            SULPHUR: SPLASH_POTION_OF_LEAPING_EXTENDED
+    POTION_OF_LEAPING_II:
+        Material: POTION
+        PotionData:
+            PotionType: JUMP
+            Upgraded: true
+        Children:
+            SULPHUR: SPLASH_POTION_OF_LEAPING_II
+    POTION_OF_FIRE_RESISTANCE:
+        Material: POTION
+        PotionData:
+            PotionType: FIRE_RESISTANCE
+        Children:
+            SULPHUR: SPLASH_POTION_OF_FIRE_RESISTANCE
+            FERMENTED_SPIDER_EYE: POTION_OF_SLOWNESS
+            REDSTONE: POTION_OF_FIRE_RESISTANCE_EXTENDED
+    POTION_OF_FIRE_RESISTANCE_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: FIRE_RESISTANCE
+            Extended: true
+        Children:
+            FERMENTED_SPIDER_EYE: POTION_OF_SLOWNESS_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_FIRE_RESISTANCE_EXTENDED
+    POTION_OF_SWIFTNESS:
+        Material: POTION
         PotionData:
             PotionType: SPEED
         Children:
-            FERMENTED_SPIDER_EYE: 8202
-            GLOWSTONE_DUST: SWIFTNESS_2
-            REDSTONE: SWIFTNESS_EXT
-            SULPHUR: 16386
-    SWIFTNESS_2:
+            FERMENTED_SPIDER_EYE: POTION_OF_SLOWNESS
+            GLOWSTONE_DUST: POTION_OF_SWIFTNESS_II
+            SULPHUR: SPLASH_POTION_OF_SWIFTNESS
+            REDSTONE: POTION_OF_SWIFTNESS_EXTENDED
+    POTION_OF_SWIFTNESS_II:
+        Material: POTION
         PotionData:
             PotionType: SPEED
             Upgraded: true
         Children:
-            FERMENTED_SPIDER_EYE: 8266
-            REDSTONE: SWIFTNESS_EXT
-            SULPHUR: 16418
-    SWIFTNESS_EXT: # Potion of Swiftness Extended
+            FERMENTED_SPIDER_EYE: POTION_OF_SLOWNESS_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_SWIFTNESS_II
+    POTION_OF_SWIFTNESS_EXTENDED:
+        Material: POTION
         PotionData:
             PotionType: SPEED
             Extended: true
         Children:
-            FERMENTED_SPIDER_EYE: 8202
-            GLOWSTONE_DUST: SWIFTNESS_2
-            SULPHUR: 16450
-
-    8202: # Potion of Slowness
-        Children:
-            REDSTONE: 8266
-            SULPHUR: 16394
-    8266: # Potion of Slowness Extended
-        Children:
-            GLOWSTONE_DUST: 8202
-            SULPHUR: 16458
-
-    768: # Potion of Haste
-        Effects: ["FAST_DIGGING 0 3600"]
+            SULPHUR: SPLASH_POTION_OF_SWIFTNESS_EXTENDED
+            FERMENTED_SPIDER_EYE: POTION_OF_SLOWNESS_EXTENDED
+    POTION_OF_SLOWNESS:
+        Material: POTION
+        PotionData:
+            PotionType: SLOWNESS
         Children:
-            GLOWSTONE_DUST: 800
-            REDSTONE: 832
-            SULPHUR: 17152
-
-    800: # Potion of Haste II
-        Effects: ["FAST_DIGGING 1 1800"]
+            SULPHUR: SPLASH_POTION_OF_SLOWNESS
+            REDSTONE: POTION_OF_SLOWNESS_EXTENDED
+    POTION_OF_SLOWNESS_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: SLOWNESS
+            Extended: true
         Children:
-            REDSTONE: 832
-            SULPHUR: 17184
-
-    832: # Potion of Haste Extended
-        Effects: ["FAST_DIGGING 0 9600"]
+            SULPHUR: SPLASH_POTION_OF_SLOWNESS_EXTENDED
+    POTION_OF_WATER_BREATHING:
+        Material: POTION
+        PotionData:
+            PotionType: WATER_BREATHING
         Children:
-            GLOWSTONE_DUST: 800
-            SULPHUR: 17216
-
-    1024: # Potion of Dullness
-        Effects: ["SLOW_DIGGING 0 3600"]
+            FERMENTED_SPIDER_EYE: POTION_OF_HARMING
+            REDSTONE: POTION_OF_WATER_BREATHING_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_WATER_BREATHING
+    POTION_OF_WATER_BREATHING_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: WATER_BREATHING
+            Extended: true
         Children:
-            GLOWSTONE_DUST: 1056
-            REDSTONE: 1088
-            SULPHUR: 17408
-    1056: # Potion of Dullness II
-        Effects: ["SLOW_DIGGING 1 1800"]
+            SULPHUR: SPLASH_POTION_OF_WATER_BREATHING_EXTENDED
+    POTION_OF_HEALING:
+        Material: POTION
+        PotionData:
+            PotionType: INSTANT_HEAL
         Children:
-            REDSTONE: 1088
-            SULPHUR: 17408
-    1088: # Potion of Dullness Extended
-        Effects: ["SLOW_DIGGING 0 9600"]
+            GLOWSTONE_DUST: POTION_OF_HEALING_II
+            SULPHUR: SPLASH_POTION_OF_HEALING
+            FERMENTED_SPIDER_EYE: POTION_OF_HARMING
+    POTION_OF_HEALING_II:
+        Material: POTION
+        PotionData:
+            PotionType: INSTANT_HEAL
+            Upgraded: true
         Children:
-            GLOWSTONE_DUST: 1056
-            SULPHUR: 17472
-
-    8201: # Potion of Strength
-        Children:
-            FERMENTED_SPIDER_EYE: 8200
-            GLOWSTONE_DUST: 8233
-            REDSTONE: 8265
-            SULPHUR: 16393
-    8233: # Potion of Strength II
-        Children:
-            FERMENTED_SPIDER_EYE: 8200
-            REDSTONE: 8265
-            SULPHUR: 16425
-    8265: # Potion of Strength Extended
-        Children:
-            FERMENTED_SPIDER_EYE: 8264
-            GLOWSTONE_DUST: 8233
-            SULPHUR: 16457
-
-    8197: # Potion of Healing
+            FERMENTED_SPIDER_EYE: POTION_OF_HARMING_II
+            SULPHUR: SPLASH_POTION_OF_HEALING_II
+    POTION_OF_HARMING:
+        Material: POTION
+        PotionData:
+            PotionType: INSTANT_DAMAGE
         Children:
-            FERMENTED_SPIDER_EYE: 8204
-            GLOWSTONE_DUST: 8229
-            SULPHUR: 16389
-    8229: # Potion of Healing II
+            GLOWSTONE_DUST: POTION_OF_HARMING_II
+            SULPHUR: SPLASH_POTION_OF_HARMING
+    POTION_OF_HARMING_II:
+        Material: POTION
+        PotionData:
+            PotionType: INSTANT_DAMAGE
+            Upgraded: true
         Children:
-            FERMENTED_SPIDER_EYE: 8236
-            REDSTONE: 8197
-            SULPHUR: 16421
-
-    8204: # Potion of Harming
+            SULPHUR: SPLASH_POTION_OF_HARMING_II
+    POTION_OF_POISON:
+        Material: POTION
+        PotionData:
+            PotionType: POISON
         Children:
-            GLOWSTONE_DUST: 8236
-            SULPHUR: 16396
-    8236: # Potion of Harming II
+            GLOWSTONE_DUST: POTION_OF_POISON_II
+            REDSTONE: POTION_OF_POISON_EXTENDED
+            FERMENTED_SPIDER_EYE: POTION_OF_HARMING
+            SULPHUR: SPLASH_POTION_OF_POISON
+    POTION_OF_POISON_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: POISON
+            Extended: true
         Children:
-            REDSTONE: 8204
-            SULPHUR: 16428
-
-    2048: # Potion of Leaping
-        Effects: ["JUMP 0 3600"]
-        Children:
-            GLOWSTONE_DUST: 2080
-            REDSTONE: 2112
-            SULPHUR: 18432
-    2080: # Potion of Leaping II
-        Effects: ["JUMP 1 1800"]
-        Children:
-            REDSTONE: 2112
-            SULPHUR: 18464
-    2112: # Potion of Leaping Extended
-        Effects: ["JUMP 0 9600"]
-        Children:
-            GLOWSTONE_DUST: 2080
-            SULPHUR: 18496
-
-    2304: # Potion of Nausea
-        Effects: ["CONFUSION 0 450"]
+            SULPHUR: SPLASH_POTION_OF_POISON_EXTENDED
+            FERMENTED_SPIDER_EYE: POTION_OF_HARMING_II
+    POTION_OF_POISON_II:
+        Material: POTION
+        PotionData:
+            PotionType: POISON
+            Upgraded: true
         Children:
-            REDSTONE: 2368
-            SULPHUR: 18688
-    2368: # Potion of Nausea Extended
-        Effects: ["CONFUSION 0 1200"]
+            FERMENTED_SPIDER_EYE: POTION_OF_HARMING_II
+            SULPHUR: SPLASH_POTION_OF_POISON_II
+    POTION_OF_REGENERATION:
+        Material: POTION
+        PotionData:
+            PotionType: REGEN
         Children:
-            GLOWSTONE_DUST: 2304
-            SULPHUR: 18752
-
-    8193: # Potion of Regeneration
-        Children:
-            FERMENTED_SPIDER_EYE: 8200
-            GLOWSTONE_DUST: 8225
-            REDSTONE: 8257
-            SULPHUR: 16385
-    8225: # Potion of Regeneration II
-        Children:
-            FERMENTED_SPIDER_EYE: 8200
-            REDSTONE: 8257
-            SULPHUR: 16417
-    8257: # Potion of Regeneration Extended
-        Children:
-            FERMENTED_SPIDER_EYE: 8264
-            GLOWSTONE_DUST: 8225
-            SULPHUR: 16449
-
-    2816: # Potion of Resistance
-        Effects: ["DAMAGE_RESISTANCE 0 450"]
+            REDSTONE: POTION_OF_REGENERATION_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_REGENERATION
+            GLOWSTONE_DUST: POTION_OF_REGENERATION_II
+    POTION_OF_REGENERATION_II:
+        Material: POTION
+        PotionData:
+            PotionType: REGEN
+            Upgraded: true
         Children:
-            GLOWSTONE_DUST: 2848
-            REDSTONE: 2880
-            SULPHUR: 19200
-    2848: # Potion of Resistance II
-        Effects: ["DAMAGE_RESISTANCE 1 225"]
+            SULPHUR: SPLASH_POTION_OF_REGENERATION_II
+    POTION_OF_REGENERATION_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: REGEN
+            Extended: true
         Children:
-            REDSTONE: 2880
-            SULPHUR: 19232
-    2880: # Potion of Resistance Extended
-        Effects: ["DAMAGE_RESISTANCE 0 1200"]
+            SULPHUR: SPLASH_POTION_OF_REGENERATION_EXTENDED
+    POTION_OF_STRENGTH:
+        Material: POTION
+        PotionData:
+            PotionType: STRENGTH
         Children:
-            GLOWSTONE_DUST: 2848
-            SULPHUR: 19264
-
-    8195: # Potion of Fire Resistance
+            GLOWSTONE_DUST: POTION_OF_STRENGTH_II
+            REDSTONE: POTION_OF_STRENGTH_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_STRENGTH
+    POTION_OF_STRENGTH_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: STRENGTH
+            Extended: true
         Children:
-            FERMENTED_SPIDER_EYE: 8202
-            REDSTONE: 8259
-            SULPHUR: 16387
-    8259: # Potion of Fire Resistance Extended
+            SULPHUR: SPLASH_POTION_OF_STRENGTH_EXTENDED
+    POTION_OF_STRENGTH_II:
+        Material: POTION
+        PotionData:
+            PotionType: STRENGTH
+            Upgraded: true
         Children:
-            FERMENTED_SPIDER_EYE: 8266
-            GLOWSTONE_DUST: 8195
-            SULPHUR: 16451
-
-    8205: # Potion of Water Breathing
+            SULPHUR: SPLASH_POTION_OF_STRENGTH_II
+    POTION_OF_WEAKNESS:
+        Material: POTION
+        PotionData:
+            PotionType: WEAKNESS
         Children:
-            REDSTONE: 8269
-            SULPHUR: 16397
-    8269: # Potion of Water Breathing Extended
+            SULPHUR: SPLASH_POTION_OF_WEAKNESS
+            REDSTONE: POTION_OF_WEAKNESS_EXTENDED
+    POTION_OF_WEAKNESS_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: WEAKNESS
+            Extended: true
         Children:
-            GLOWSTONE_DUST: 8205
-            SULPHUR: 16461
-
-    8206: # Potion of Invisibility
+            SULPHUR: SPLASH_POTION_OF_WEAKNESS_EXTENDED
+    POTION_OF_LUCK:
+        Material: POTION
+        PotionData:
+            PotionType: LUCK
         Children:
-            REDSTONE: 8270
-            SULPHUR: 16398
-    8270: # Potion of Invisibility Extended
+            SULPHUR: SPLASH_POTION_OF_LUCK
+    POTION_OF_ABSORPTION:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 0 1800"]
         Children:
-            GLOWSTONE_DUST: 8206
-            SULPHUR: 16462
-
-    3840: # Potion of Blindness
+            SULPHUR: SPLASH_POTION_OF_ABSORPTION
+            GLOWSTONE_DUST: POTION_OF_ABSORPTION_II
+            REDSTONE: POTION_OF_ABSORPTION_EXTENDED
+    POTION_OF_BLINDNESS:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
         Effects: ["BLINDNESS 0 225"]
         Children:
-            REDSTONE: 3904
-            SULPHUR: 20224
-    3904: # Potion of Blindness Extended
-        Effects: ["BLINDNESS 0 600"]
+            REDSTONE: POTION_OF_BLINDNESS_EXTENDED
+            GLOWSTONE_DUST: POTION_OF_BLINDNESS_II
+            SULPHUR: SPLASH_POTION_OF_BLINDNESS
+    POTION_OF_DECAY:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 0 450"]
         Children:
-            GLOWSTONE_DUST: 3840
-            SULPHUR: 20288
-
-    8198: # Potion of Night Vision
+            REDSTONE: POTION_OF_DECAY_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_DECAY
+            GLOWSTONE_DUST: POTION_OF_DECAY_II
+    POTION_OF_DULLNESS:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 0 3600"]
         Children:
-            FERMENTED_SPIDER_EYE: 8206
-            REDSTONE: 8262
-            SULPHUR: 16390
-    8262: # Potion of Night Vision Extended
+            GLOWSTONE_DUST: POTION_OF_DULLNESS_II
+            REDSTONE: POTION_OF_DULLNESS_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_DULLNESS
+    POTION_OF_HASTE:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 0 3600"]
         Children:
-            FERMENTED_SPIDER_EYE: 8270
-            GLOWSTONE_DUST: 8198
-            SULPHUR: 16454
-
-    4352: # Potion of Hunger
+            SULPHUR: SPLASH_POTION_OF_HASTE
+            REDSTONE: POTION_OF_HASTE_EXTENDED
+            GLOWSTONE_DUST: POTION_OF_HASTE_II
+    POTION_OF_HUNGER:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
         Effects: ["HUNGER 0 900"]
         Children:
-            GLOWSTONE_DUST: 4384
-            REDSTONE: 4416
-            SULPHUR: 20736
-    4384: # Potion of Hunger II
+            REDSTONE: POTION_OF_HUNGER_EXTENDED
+            GLOWSTONE_DUST: POTION_OF_HUNGER_II
+            SULPHUR: SPLASH_POTION_OF_HUNGER
+    POTION_OF_NAUSEA:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 0 450"]
+        Children:
+            GLOWSTONE_DUST: POTION_OF_NAUSEA_II
+            REDSTONE: POTION_OF_NAUSEA_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_NAUSEA
+    POTION_OF_RESISTANCE:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 0 450"]
+        Children:
+            GLOWSTONE_DUST: POTION_OF_RESISTANCE_II
+            REDSTONE: POTION_OF_RESISTANCE_EXTENDED
+            SULPHUR: SPLASH_POTION_OF_RESISTANCE
+    POTION_OF_SATURATION:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 0 8"]
+        Children:
+            SULPHUR: SPLASH_POTION_OF_SATURATION
+            GLOWSTONE_DUST: POTION_OF_SATURATION_II
+            REDSTONE: POTION_OF_SATURATION_EXTENDED
+    POTION_OF_ABSORPTION_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 0 3600"]
+    POTION_OF_BLINDNESS_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["BLINDNESS 0 450"]
+    POTION_OF_DECAY_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 0 900"]
+    POTION_OF_DULLNESS_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 0 7200"]
+    POTION_OF_HASTE_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 0 7200"]
+    POTION_OF_HUNGER_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["HUNGER 0 1800"]
+    POTION_OF_NAUSEA_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 0 900"]
+    POTION_OF_RESISTANCE_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 0 900"]
+    POTION_OF_SATURATION_EXTENDED:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 0 16"]
+    POTION_OF_ABSORPTION_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 1 900"]
+    POTION_OF_BLINDNESS_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["BLINDNESS 1 112"]
+    POTION_OF_DECAY_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 1 225"]
+    POTION_OF_DULLNESS_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 1 1800"]
+    POTION_OF_HASTE_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 1 1800"]
+    POTION_OF_HUNGER_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
         Effects: ["HUNGER 1 450"]
+    POTION_OF_NAUSEA_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 1 225"]
+    POTION_OF_RESISTANCE_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 1 225"]
+    POTION_OF_SATURATION_II:
+        Material: POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 1 4"]
+    SPLASH_POTION_OF_EMPTY:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
         Children:
-            REDSTONE: 4416
-            SULPHUR: 20768
-    4416: # Potion of Hunger Extended
-        Effects: ["HUNGER 0 2400"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_EMPTY
+    SPLASH_POTION_OF_WATER:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: WATER
         Children:
-            GLOWSTONE_DUST: 4384
-            SULPHUR: 20800
-
-    8200: # Potion of Weakness
+            RABBIT_FOOT: SPLASH_POTION_OF_MUNDANE
+            MAGMA_CREAM: SPLASH_POTION_OF_MUNDANE
+            REDSTONE: SPLASH_POTION_OF_MUNDANE
+            GLOWSTONE_DUST: SPLASH_POTION_OF_THICK
+            DRAGONS_BREATH: LINGERING_POTION_OF_WATER
+            SPECKLED_MELON: SPLASH_POTION_OF_MUNDANE
+            GHAST_TEAR: SPLASH_POTION_OF_MUNDANE
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_WEAKNESS
+            SPIDER_EYE: SPLASH_POTION_OF_MUNDANE
+            BLAZE_POWDER: SPLASH_POTION_OF_MUNDANE
+            NETHER_WARTS: SPLASH_POTION_OF_AWKWARD
+            SUGAR: SPLASH_POTION_OF_MUNDANE
+    SPLASH_POTION_OF_MUNDANE:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: MUNDANE
         Children:
-            REDSTONE: 8264
-            SULPHUR: 16392
-    8264: # Potion of Weakness Extended
+            DRAGONS_BREATH: LINGERING_POTION_OF_MUNDANE
+    SPLASH_POTION_OF_THICK:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: THICK
         Children:
-            GLOWSTONE_DUST: 8200
-            SULPHUR: 16456
-
-    8196: # Potion of Poison
-        Children:
-            FERMENTED_SPIDER_EYE: 8204
-            GLOWSTONE_DUST: 8228
-            REDSTONE: 8260
-            SULPHUR: 16388
-    8228: # Potion of Poison II
-        Children:
-            FERMENTED_SPIDER_EYE: 8236
-            REDSTONE: 8260
-            SULPHUR: 16420
-    8260: # Potion of Poison Extended
-        Children:
-            FERMENTED_SPIDER_EYE: 8204
-            GLOWSTONE_DUST: 8228
-            SULPHUR: 16452
-
-    5120: # Potion of Decay
-        Effects: ["WITHER 0 450"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_THICK
+    SPLASH_POTION_OF_AWKWARD:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: AWKWARD
         Children:
-            GLOWSTONE_DUST: 5152
-            REDSTONE: 5184
-            SULPHUR: 21504
-    5152: # Potion of Decay II
-        Effects: ["WITHER 1 225"]
+            RABBIT_FOOT: SPLASH_POTION_OF_LEAPING
+            ROTTEN_FLESH: SPLASH_POTION_OF_HUNGER
+            QUARTZ: SPLASH_POTION_OF_ABSORPTION
+            GOLDEN_CARROT: SPLASH_POTION_OF_NIGHT_VISION
+            POISONOUS_POTATO: SPLASH_POTION_OF_DECAY
+            DRAGONS_BREATH: LINGERING_POTION_OF_AWKWARD
+            MAGMA_CREAM: SPLASH_POTION_OF_FIRE_RESISTANCE
+            'RAW_FISH:3': SPLASH_POTION_OF_WATER_BREATHING
+            INK_SACK: SPLASH_POTION_OF_BLINDNESS
+            'LONG_GRASS:2': SPLASH_POTION_OF_SATURATION
+            GOLDEN_APPLE: SPLASH_POTION_OF_RESISTANCE
+            CARROT_ITEM: SPLASH_POTION_OF_HASTE
+            BLAZE_POWDER: SPLASH_POTION_OF_STRENGTH
+            SUGAR: SPLASH_POTION_OF_SWIFTNESS
+            SPIDER_EYE: SPLASH_POTION_OF_POISON
+            SPECKLED_MELON: SPLASH_POTION_OF_HEALING
+            BROWN_MUSHROOM: SPLASH_POTION_OF_NAUSEA
+            SLIME_BALL: SPLASH_POTION_OF_DULLNESS
+            GHAST_TEAR: SPLASH_POTION_OF_REGENERATION
+            APPLE: SPLASH_POTION_OF_HEALTH_BOOST
+    SPLASH_POTION_OF_NIGHT_VISION:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: NIGHT_VISION
         Children:
-            REDSTONE: 5184
-            SULPHUR: 21536
-    5184: # Potion of Decay Extended
-        Effects: ["WITHER 0 1200"]
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_INVISIBILITY
+            DRAGONS_BREATH: LINGERING_POTION_OF_NIGHT_VISION
+            REDSTONE: SPLASH_POTION_OF_NIGHT_VISION_EXTENDED
+    SPLASH_POTION_OF_NIGHT_VISION_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: NIGHT_VISION
+            Extended: true
         Children:
-            GLOWSTONE_DUST: 5152
-            SULPHUR: 21568
-
-    5376: # Potion of Health Boost
-        Effects: ["HEALTH_BOOST 0 1800"]
-        Children:
-            GLOWSTONE_DUST: 5408
-            REDSTONE: 5440
-            SULPHUR: 21760
-    5408: # Potion of Health Boost II
-        Effects: ["HEALTH_BOOST 1 900"]
-        Children:
-            REDSTONE: 5440
-            SULPHUR: 21792
-    5440: # Potion of Health Boost Extended
-        Effects: ["HEALTH_BOOST 0 4800"]
-        Children:
-            GLOWSTONE_DUST: 5408
-            SULPHUR: 21824
-
-    5632: # Potion of Absorption
-        Effects: ["ABSORPTION 0 1800"]
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_INVISIBILITY_EXTENDED
+            DRAGONS_BREATH: LINGERING_POTION_OF_NIGHT_VISION_EXTENDED
+    SPLASH_POTION_OF_INVISIBILITY:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: INVISIBILITY
         Children:
-            GLOWSTONE_DUST: 5664
-            REDSTONE: 5696
-            SULPHUR: 22016
-    5664: # Potion of Absorption II
-        Effects: ["ABSORPTION 1 900"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_INVISIBILITY
+            REDSTONE: SPLASH_POTION_OF_INVISIBILITY_EXTENDED
+    SPLASH_POTION_OF_INVISIBILITY_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: INVISIBILITY
+            Extended: true
         Children:
-            REDSTONE: 5696
-            SULPHUR: 22048
-    5696: # Potion of Absorption Extended
-        Effects: ["ABSORPTION 0 4800"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_INVISIBILITY_EXTENDED
+    SPLASH_POTION_OF_LEAPING:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: JUMP
+        Children:
+            GLOWSTONE_DUST: SPLASH_POTION_OF_LEAPING_II
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_SLOWNESS
+            DRAGONS_BREATH: LINGERING_POTION_OF_LEAPING
+            REDSTONE: SPLASH_POTION_OF_LEAPING_EXTENDED
+    SPLASH_POTION_OF_LEAPING_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: JUMP
+            Upgraded: true
         Children:
-            GLOWSTONE_DUST: 5664
-            SULPHUR: 22080
-
-    5888: # Potion of Saturation
-        Effects: ["SATURATION 0 8"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_LEAPING_II
+    SPLASH_POTION_OF_LEAPING_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: JUMP
+            Extended: true
         Children:
-            GLOWSTONE_DUST: 5920
-            SULPHUR: 22272
-    5920: # Potion of Saturation II
-        Effects: ["SATURATION 1 8"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_LEAPING_EXTENDED
+    SPLASH_POTION_OF_FIRE_RESISTANCE:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: FIRE_RESISTANCE
         Children:
-            REDSTONE: 5888
-            SULPHUR: 22304
-
-    ### SPLASH POTIONS #########################################################
-
-    16384: # Splash Mundane Potion
+            DRAGONS_BREATH: LINGERING_POTION_OF_FIRE_RESISTANCE
+            REDSTONE: SPLASH_POTION_OF_FIRE_RESISTANCE_EXTENDED
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_SLOWNESS
+    SPLASH_POTION_OF_FIRE_RESISTANCE_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: FIRE_RESISTANCE
+            Extended: true
         Children:
-            FERMENTED_SPIDER_EYE: 16392
-
-    16386: # Splash Potion of Swiftness
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_SLOWNESS_EXTENDED
+            DRAGONS_BREATH: LINGERING_POTION_OF_FIRE_RESISTANCE_EXTENDED
+    SPLASH_POTION_OF_SWIFTNESS:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: SPEED
         Children:
-            FERMENTED_SPIDER_EYE: 16394
-            GLOWSTONE_DUST: 16418
-            REDSTONE: 16450
-    16418: # Splash Potion of Swiftness II
+            REDSTONE: SPLASH_POTION_OF_SWIFTNESS_EXTENDED
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_SLOWNESS
+            GLOWSTONE_DUST: SPLASH_POTION_OF_SWIFTNESS_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_SWIFTNESS
+    SPLASH_POTION_OF_SWIFTNESS_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: SPEED
+            Extended: true
         Children:
-            FERMENTED_SPIDER_EYE: 16394
-            REDSTONE: 16450
-    16450: # Splash Potion of Swiftness Extended
+            DRAGONS_BREATH: LINGERING_POTION_OF_SWIFTNESS_EXTENDED
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_SLOWNESS_EXTENDED
+    SPLASH_POTION_OF_SWIFTNESS_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: SPEED
+            Upgraded: true
         Children:
-            FERMENTED_SPIDER_EYE: 16394
-            GLOWSTONE_DUST: 16418
-
-    16394: # Splash Potion of Slowness
+            DRAGONS_BREATH: LINGERING_POTION_OF_SWIFTNESS_II
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_SLOWNESS_EXTENDED
+    SPLASH_POTION_OF_SLOWNESS:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: SLOWNESS
         Children:
-            REDSTONE: 16458
-    16458: # Splash Potion of Slowness Extended
+            REDSTONE: SPLASH_POTION_OF_SLOWNESS_EXTENDED
+            DRAGONS_BREATH: LINGERING_POTION_OF_SLOWNESS
+    SPLASH_POTION_OF_SLOWNESS_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: SLOWNESS
+            Extended: true
         Children:
-            GLOWSTONE_DUST: 16394
-
-    17152: # Splash Potion of Haste
-        Effects: ["FAST_DIGGING 0 2700"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_SLOWNESS_EXTENDED
+    SPLASH_POTION_OF_WATER_BREATHING:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: WATER_BREATHING
         Children:
-            GLOWSTONE_DUST: 17184
-            REDSTONE: 17216
-    17184: # Splash Potion of Haste II
-        Effects: ["FAST_DIGGING 1 1350"]
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_HARMING
+            REDSTONE: SPLASH_POTION_OF_WATER_BREATHING_EXTENDED
+            DRAGONS_BREATH: LINGERING_POTION_OF_WATER_BREATHING
+    SPLASH_POTION_OF_WATER_BREATHING_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: WATER_BREATHING
+            Extended: true
         Children:
-            REDSTONE: 17216
-    17216: # Splash Potion of Haste Extended
-        Effects: ["FAST_DIGGING 0 7200"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_WATER_BREATHING_EXTENDED
+    SPLASH_POTION_OF_HEALING:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: INSTANT_HEAL
         Children:
-            GLOWSTONE_DUST: 17184
-
-    17408: # Splash Potion of Dullness
-        Effects: ["SLOW_DIGGING 0 2700"]
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_HARMING
+            GLOWSTONE_DUST: SPLASH_POTION_OF_HEALING_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_HEALING
+    SPLASH_POTION_OF_HEALING_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: INSTANT_HEAL
+            Upgraded: true
         Children:
-            GLOWSTONE_DUST: 17440
-            REDSTONE: 17472
-    17440: # Splash Potion of Dullness II
-        Effects: ["SLOW_DIGGING 1 1350"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_HEALING_II
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_HARMING_II
+    SPLASH_POTION_OF_HARMING:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: INSTANT_DAMAGE
         Children:
-            REDSTONE: 17472
-    17472: # Splash Potion of Dullness Extended
-        Effects: ["SLOW_DIGGING 0 7200"]
+            GLOWSTONE_DUST: SPLASH_POTION_OF_HARMING_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_HARMING
+    SPLASH_POTION_OF_HARMING_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: INSTANT_DAMAGE
+            Upgraded: true
         Children:
-            GLOWSTONE_DUST: 17440
-
-    16393: # Splash Potion of Strength
+            DRAGONS_BREATH: LINGERING_POTION_OF_HARMING_II
+    SPLASH_POTION_OF_POISON:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: POISON
+        Children:
+            DRAGONS_BREATH: LINGERING_POTION_OF_POISON
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_HARMING
+            REDSTONE: SPLASH_POTION_OF_POISON_EXTENDED
+            GLOWSTONE_DUST: SPLASH_POTION_OF_POISON_II
+    SPLASH_POTION_OF_POISON_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: POISON
+            Extended: true
         Children:
-            FERMENTED_SPIDER_EYE: 16392
-            GLOWSTONE_DUST: 16425
-            REDSTONE: 16457
-    16425: # Splash Potion of Strength II
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_HARMING_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_POISON_EXTENDED
+    SPLASH_POTION_OF_POISON_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: POISON
+            Upgraded: true
         Children:
-            FERMENTED_SPIDER_EYE: 16392
-            REDSTONE: 16457
-    16457: # Splash Potion of Strength Extended
+            DRAGONS_BREATH: LINGERING_POTION_OF_POISON_II
+            FERMENTED_SPIDER_EYE: SPLASH_POTION_OF_HARMING_II
+    SPLASH_POTION_OF_REGENERATION:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: REGEN
         Children:
-            FERMENTED_SPIDER_EYE: 16456
-            GLOWSTONE_DUST: 16425
-
-    16389: # Splash Potion of Healing
+            GLOWSTONE_DUST: SPLASH_POTION_OF_REGENERATION_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_REGENERATION
+            REDSTONE: SPLASH_POTION_OF_REGENERATION_EXTENDED
+    SPLASH_POTION_OF_REGENERATION_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: REGEN
+            Extended: true
         Children:
-            FERMENTED_SPIDER_EYE: 16396
-            GLOWSTONE_DUST: 16421
-    16421: # Splash Potion of Healing II
+            DRAGONS_BREATH: LINGERING_POTION_OF_REGENERATION_EXTENDED
+    SPLASH_POTION_OF_REGENERATION_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: REGEN
+            Upgraded: true
         Children:
-            FERMENTED_SPIDER_EYE: 16428
-            REDSTONE: 16389
-
-    16396: # Splash Potion of Harming
+            DRAGONS_BREATH: LINGERING_POTION_OF_REGENERATION_II
+    SPLASH_POTION_OF_STRENGTH:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: STRENGTH
         Children:
-            GLOWSTONE_DUST: 16428
-    16428: # Splash Potion of Harming II
+            REDSTONE: SPLASH_POTION_OF_STRENGTH_EXTENDED
+            GLOWSTONE_DUST: SPLASH_POTION_OF_STRENGTH_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_STRENGTH
+    SPLASH_POTION_OF_STRENGTH_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: STRENGTH
+            Extended: true
         Children:
-            REDSTONE: 16396
-
-    18432: # Splash Potion of Leaping
-        Effects: ["JUMP 0 2700"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_STRENGTH_EXTENDED
+    SPLASH_POTION_OF_STRENGTH_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: STRENGTH
+            Upgraded: true
         Children:
-            GLOWSTONE_DUST: 18464
-            REDSTONE: 18496
-    18464: # Splash Potion of Leaping II
-        Effects: ["JUMP 1 1350"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_STRENGTH_II
+    SPLASH_POTION_OF_WEAKNESS:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: WEAKNESS
         Children:
-            REDSTONE: 18496
-    18496: # Splash Potion of Leaping Extended
-        Effects: ["JUMP 0 7200"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_WEAKNESS
+            REDSTONE: SPLASH_POTION_OF_WEAKNESS_EXTENDED
+    SPLASH_POTION_OF_WEAKNESS_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: WEAKNESS
+            Extended: true
         Children:
-            GLOWSTONE_DUST: 18464
-
-    18688: # Splash Potion of Nausea
-        Effects: ["CONFUSION 0 338"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_WEAKNESS_EXTENDED
+    SPLASH_POTION_OF_LUCK:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: LUCK
         Children:
-            REDSTONE: 18752
-    18752: # Splash Potion of Nausea Extended
-        Effects: ["CONFUSION 0 900"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_LUCK
+    SPLASH_POTION_OF_ABSORPTION:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 0 1350"]
         Children:
-            GLOWSTONE_DUST: 18688
-
-    16385: # Splash Potion of Regeneration
+            REDSTONE: SPLASH_POTION_OF_ABSORPTION_EXTENDED
+            GLOWSTONE_DUST: SPLASH_POTION_OF_ABSORPTION_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_ABSORPTION
+    SPLASH_POTION_OF_BLINDNESS:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["BLINDNESS 0 168"]
+        Children:
+            DRAGONS_BREATH: LINGERING_POTION_OF_BLINDNESS
+            REDSTONE: SPLASH_POTION_OF_BLINDNESS_EXTENDED
+            GLOWSTONE_DUST: SPLASH_POTION_OF_BLINDNESS_II
+    SPLASH_POTION_OF_DECAY:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 0 337"]
+        Children:
+            REDSTONE: SPLASH_POTION_OF_DECAY_EXTENDED
+            GLOWSTONE_DUST: SPLASH_POTION_OF_DECAY_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_DECAY
+    SPLASH_POTION_OF_DULLNESS:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 0 2700"]
         Children:
-            FERMENTED_SPIDER_EYE: 16392
-            GLOWSTONE_DUST: 16417
-            REDSTONE: 16449
-    16417: # Splash Potion of Regeneration II
+            GLOWSTONE_DUST: SPLASH_POTION_OF_DULLNESS_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_DULLNESS
+            REDSTONE: SPLASH_POTION_OF_DULLNESS_EXTENDED
+    SPLASH_POTION_OF_HASTE:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 0 2700"]
         Children:
-            FERMENTED_SPIDER_EYE: 16392
-            REDSTONE: 16449
-    16449: # Splash Potion of Regeneration Extended
+            DRAGONS_BREATH: LINGERING_POTION_OF_HASTE
+            REDSTONE: SPLASH_POTION_OF_HASTE_EXTENDED
+            GLOWSTONE_DUST: SPLASH_POTION_OF_HASTE_II
+    SPLASH_POTION_OF_HUNGER:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["HUNGER 0 675"]
         Children:
-            FERMENTED_SPIDER_EYE: 16456
-            GLOWSTONE_DUST: 16417
-
-    19200: # Splash Potion of Resistance
-        Effects: ["DAMAGE_RESISTANCE 0 338"]
+            GLOWSTONE_DUST: SPLASH_POTION_OF_HUNGER_II
+            REDSTONE: SPLASH_POTION_OF_HUNGER_EXTENDED
+            DRAGONS_BREATH: LINGERING_POTION_OF_HUNGER
+    SPLASH_POTION_OF_NAUSEA:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 0 337"]
+        Children:
+            GLOWSTONE_DUST: SPLASH_POTION_OF_NAUSEA_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_NAUSEA
+            REDSTONE: SPLASH_POTION_OF_NAUSEA_EXTENDED
+    SPLASH_POTION_OF_RESISTANCE:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 0 337"]
+        Children:
+            GLOWSTONE_DUST: SPLASH_POTION_OF_RESISTANCE_II
+            DRAGONS_BREATH: LINGERING_POTION_OF_RESISTANCE
+            REDSTONE: SPLASH_POTION_OF_RESISTANCE_EXTENDED
+    SPLASH_POTION_OF_SATURATION:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 0 6"]
         Children:
-            GLOWSTONE_DUST: 19232
-            REDSTONE: 19264
-    19232: # Splash Potion of Resistance II
-        Effects: ["DAMAGE_RESISTANCE 1 169"]
+            DRAGONS_BREATH: LINGERING_POTION_OF_SATURATION
+            GLOWSTONE_DUST: SPLASH_POTION_OF_SATURATION_II
+            REDSTONE: SPLASH_POTION_OF_SATURATION_EXTENDED
+    SPLASH_POTION_OF_ABSORPTION_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 0 2700"]
+    SPLASH_POTION_OF_BLINDNESS_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["BLINDNESS 0 336"]
+    SPLASH_POTION_OF_DECAY_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 0 674"]
+    SPLASH_POTION_OF_DULLNESS_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 0 5400"]
+    SPLASH_POTION_OF_HASTE_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 0 5400"]
+    SPLASH_POTION_OF_HUNGER_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["HUNGER 0 1350"]
+    SPLASH_POTION_OF_NAUSEA_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 0 674"]
+    SPLASH_POTION_OF_RESISTANCE_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 0 674"]
+    SPLASH_POTION_OF_SATURATION_EXTENDED:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 0 12"]
+    SPLASH_POTION_OF_ABSORPTION_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 1 675"]
+    SPLASH_POTION_OF_BLINDNESS_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["BLINDNESS 1 84"]
+    SPLASH_POTION_OF_DECAY_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 1 168"]
+    SPLASH_POTION_OF_DULLNESS_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 1 1350"]
+    SPLASH_POTION_OF_HASTE_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 1 1350"]
+    SPLASH_POTION_OF_HUNGER_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["HUNGER 1 337"]
+    SPLASH_POTION_OF_NAUSEA_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 1 168"]
+    SPLASH_POTION_OF_RESISTANCE_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 1 168"]
+    SPLASH_POTION_OF_SATURATION_II:
+        Material: SPLASH_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 1 3"]
+    LINGERING_POTION_OF_EMPTY:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+    LINGERING_POTION_OF_WATER:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: WATER
         Children:
-            REDSTONE: 19264
-    19264: # Splash Potion of Resistance Extended
-        Effects: ["DAMAGE_RESISTANCE 0 900"]
+            NETHER_WARTS: LINGERING_POTION_OF_AWKWARD
+            MAGMA_CREAM: LINGERING_POTION_OF_MUNDANE
+            BLAZE_POWDER: LINGERING_POTION_OF_MUNDANE
+            RABBIT_FOOT: LINGERING_POTION_OF_MUNDANE
+            SUGAR: LINGERING_POTION_OF_MUNDANE
+            GLOWSTONE_DUST: LINGERING_POTION_OF_THICK
+            SPIDER_EYE: LINGERING_POTION_OF_MUNDANE
+            REDSTONE: LINGERING_POTION_OF_MUNDANE
+            SPECKLED_MELON: LINGERING_POTION_OF_MUNDANE
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_WEAKNESS
+            GHAST_TEAR: LINGERING_POTION_OF_MUNDANE
+    LINGERING_POTION_OF_MUNDANE:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: MUNDANE
+    LINGERING_POTION_OF_THICK:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: THICK
+    LINGERING_POTION_OF_AWKWARD:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: AWKWARD
         Children:
-            GLOWSTONE_DUST: 19232
-
-    16387: # Splash Potion of Fire Resistance
+            ROTTEN_FLESH: LINGERING_POTION_OF_HUNGER
+            APPLE: LINGERING_POTION_OF_HEALTH_BOOST
+            CARROT_ITEM: LINGERING_POTION_OF_HASTE
+            SPIDER_EYE: LINGERING_POTION_OF_POISON
+            GOLDEN_CARROT: LINGERING_POTION_OF_NIGHT_VISION
+            BLAZE_POWDER: LINGERING_POTION_OF_STRENGTH
+            GHAST_TEAR: LINGERING_POTION_OF_REGENERATION
+            'RAW_FISH:3': LINGERING_POTION_OF_WATER_BREATHING
+            BROWN_MUSHROOM: LINGERING_POTION_OF_NAUSEA
+            SPECKLED_MELON: LINGERING_POTION_OF_HEALING
+            GOLDEN_APPLE: LINGERING_POTION_OF_RESISTANCE
+            RABBIT_FOOT: LINGERING_POTION_OF_LEAPING
+            MAGMA_CREAM: LINGERING_POTION_OF_FIRE_RESISTANCE
+            QUARTZ: LINGERING_POTION_OF_ABSORPTION
+            SLIME_BALL: LINGERING_POTION_OF_DULLNESS
+            'LONG_GRASS:2': LINGERING_POTION_OF_SATURATION
+            SUGAR: LINGERING_POTION_OF_SWIFTNESS
+            INK_SACK: LINGERING_POTION_OF_BLINDNESS
+            POISONOUS_POTATO: LINGERING_POTION_OF_DECAY
+    LINGERING_POTION_OF_NIGHT_VISION:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: NIGHT_VISION
         Children:
-            FERMENTED_SPIDER_EYE: 16394
-            REDSTONE: 16451
-    16451: # Splash Potion of Fire Resistance Extended
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_INVISIBILITY
+            REDSTONE: LINGERING_POTION_OF_NIGHT_VISION_EXTENDED
+    LINGERING_POTION_OF_NIGHT_VISION_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: NIGHT_VISION
+            Extended: true
         Children:
-            FERMENTED_SPIDER_EYE: 16458
-            GLOWSTONE_DUST: 16387
-
-    16397: # Splash Potion of Water Breathing
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_INVISIBILITY_EXTENDED
+    LINGERING_POTION_OF_INVISIBILITY:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: INVISIBILITY
         Children:
-            REDSTONE: 16461
-    16461: # Splash Potion of Water Breathing Extended
+            REDSTONE: LINGERING_POTION_OF_INVISIBILITY_EXTENDED
+    LINGERING_POTION_OF_INVISIBILITY_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: INVISIBILITY
+            Extended: true
+    LINGERING_POTION_OF_LEAPING:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: JUMP
         Children:
-            GLOWSTONE_DUST: 16397
-
-    16398: # Splash Potion of Invisibility
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_SLOWNESS
+            REDSTONE: LINGERING_POTION_OF_LEAPING_EXTENDED
+            GLOWSTONE_DUST: LINGERING_POTION_OF_LEAPING_II
+    LINGERING_POTION_OF_LEAPING_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: JUMP
+            Upgraded: true
+    LINGERING_POTION_OF_LEAPING_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: JUMP
+            Extended: true
+    LINGERING_POTION_OF_FIRE_RESISTANCE:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: FIRE_RESISTANCE
         Children:
-            REDSTONE: 16462
-    16462: # Splash Potion of Invisibility Extended
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_SLOWNESS
+            REDSTONE: LINGERING_POTION_OF_FIRE_RESISTANCE_EXTENDED
+    LINGERING_POTION_OF_FIRE_RESISTANCE_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: FIRE_RESISTANCE
+            Extended: true
         Children:
-            GLOWSTONE_DUST: 16398
-
-    20224: # Splash Potion of Blindness
-        Effects: ["BLINDNESS 0 169"]
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_SLOWNESS_EXTENDED
+    LINGERING_POTION_OF_SWIFTNESS:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: SPEED
         Children:
-            REDSTONE: 20288
-    20288: # Splash Potion of Blindness Extended
-        Effects: ["BLINDNESS 0 450"]
+            REDSTONE: LINGERING_POTION_OF_SWIFTNESS_EXTENDED
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_SLOWNESS
+            GLOWSTONE_DUST: LINGERING_POTION_OF_SWIFTNESS_II
+    LINGERING_POTION_OF_SWIFTNESS_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: SPEED
+            Extended: true
         Children:
-            GLOWSTONE_DUST: 20224
-
-    16390: # Splash Potion of Night Vision
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_SLOWNESS_EXTENDED
+    LINGERING_POTION_OF_SWIFTNESS_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: SPEED
+            Upgraded: true
         Children:
-            FERMENTED_SPIDER_EYE: 16398
-            REDSTONE: 16454
-    16454: # Splash Potion of Night Vision Extended
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_SLOWNESS_EXTENDED
+    LINGERING_POTION_OF_SLOWNESS:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: SLOWNESS
         Children:
-            FERMENTED_SPIDER_EYE: 16462
-            GLOWSTONE_DUST: 16390
-
-    20736: # Splash Potion of Hunger
-        Effects: ["HUNGER 0 675"]
+            REDSTONE: LINGERING_POTION_OF_SLOWNESS_EXTENDED
+    LINGERING_POTION_OF_SLOWNESS_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: SLOWNESS
+            Extended: true
+    LINGERING_POTION_OF_WATER_BREATHING:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: WATER_BREATHING
         Children:
-            GLOWSTONE_DUST: 20768
-            REDSTONE: 20800
-    20768: # Splash Potion of Hunger II
-        Effects: ["HUNGER 1 338"]
+            REDSTONE: LINGERING_POTION_OF_WATER_BREATHING_EXTENDED
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_HARMING
+    LINGERING_POTION_OF_WATER_BREATHING_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: WATER_BREATHING
+            Extended: true
+    LINGERING_POTION_OF_HEALING:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: INSTANT_HEAL
         Children:
-            REDSTONE: 20800
-    20800: # Splash Potion of Hunger Extended
-        Effects: ["HUNGER 0 1800"]
+            GLOWSTONE_DUST: LINGERING_POTION_OF_HEALING_II
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_HARMING
+    LINGERING_POTION_OF_HEALING_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: INSTANT_HEAL
+            Upgraded: true
         Children:
-            GLOWSTONE_DUST: 20768
-
-    16392: # Splash Potion of Weakness
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_HARMING_II
+    LINGERING_POTION_OF_HARMING:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: INSTANT_DAMAGE
         Children:
-            REDSTONE: 16456
-    16456: # Splash Potion of Weakness Extended
+            GLOWSTONE_DUST: LINGERING_POTION_OF_HARMING_II
+    LINGERING_POTION_OF_HARMING_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: INSTANT_DAMAGE
+            Upgraded: true
+    LINGERING_POTION_OF_POISON:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: POISON
         Children:
-            GLOWSTONE_DUST: 16392
-
-    16388: # Splash Potion of Poison
+            REDSTONE: LINGERING_POTION_OF_POISON_EXTENDED
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_HARMING
+            GLOWSTONE_DUST: LINGERING_POTION_OF_POISON_II
+    LINGERING_POTION_OF_POISON_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: POISON
+            Extended: true
         Children:
-            FERMENTED_SPIDER_EYE: 16396
-            GLOWSTONE_DUST: 16420
-            REDSTONE: 16452
-    16420: # Splash Potion of Poison II
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_HARMING_II
+    LINGERING_POTION_OF_POISON_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: POISON
+            Upgraded: true
         Children:
-            FERMENTED_SPIDER_EYE: 16428
-            REDSTONE: 16452
-    16452: # Splash Potion of Poison Extended
+            FERMENTED_SPIDER_EYE: LINGERING_POTION_OF_HARMING_II
+    LINGERING_POTION_OF_REGENERATION:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: REGEN
         Children:
-            FERMENTED_SPIDER_EYE: 16396
-            GLOWSTONE_DUST: 16420
-
-    21504: # Splash Potion of Decay
-        Effects: ["WITHER 0 338"]
+            GLOWSTONE_DUST: LINGERING_POTION_OF_REGENERATION_II
+            REDSTONE: LINGERING_POTION_OF_REGENERATION_EXTENDED
+    LINGERING_POTION_OF_REGENERATION_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: REGEN
+            Upgraded: true
+    LINGERING_POTION_OF_REGENERATION_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: REGEN
+            Extended: true
+    LINGERING_POTION_OF_STRENGTH:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: STRENGTH
         Children:
-            GLOWSTONE_DUST: 21536
-            REDSTONE: 21568
-    21536: # Splash Potion of Decay II
-        Effects: ["WITHER 1 169"]
+            REDSTONE: LINGERING_POTION_OF_STRENGTH_EXTENDED
+            GLOWSTONE_DUST: LINGERING_POTION_OF_STRENGTH_II
+    LINGERING_POTION_OF_STRENGTH_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: STRENGTH
+            Extended: true
+    LINGERING_POTION_OF_STRENGTH_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: STRENGTH
+            Upgraded: true
+    LINGERING_POTION_OF_WEAKNESS:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: WEAKNESS
         Children:
-            REDSTONE: 21568
-    21568: # Splash Potion of Decay Extended
-        Effects: ["WITHER 0 900"]
+            REDSTONE: LINGERING_POTION_OF_WEAKNESS_EXTENDED
+    LINGERING_POTION_OF_WEAKNESS_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: WEAKNESS
+            Extended: true
+    LINGERING_POTION_OF_LUCK:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: LUCK
+    LINGERING_POTION_OF_ABSORPTION:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 0 450"]
         Children:
-            GLOWSTONE_DUST: 21536
-
-    21760: # Splash Potion of Health Boost
-        Effects: ["HEALTH_BOOST 0 1350"]
+            REDSTONE: LINGERING_POTION_OF_ABSORPTION_EXTENDED
+            GLOWSTONE_DUST: LINGERING_POTION_OF_ABSORPTION_II
+    LINGERING_POTION_OF_BLINDNESS:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["BLINDNESS 0 56"]
         Children:
-            GLOWSTONE_DUST: 21792
-            REDSTONE: 5440
-    21792: # Splash Potion of Health Boost II
-        Effects: ["HEALTH_BOOST 1 675"]
+            GLOWSTONE_DUST: LINGERING_POTION_OF_BLINDNESS_II
+            REDSTONE: LINGERING_POTION_OF_BLINDNESS_EXTENDED
+    LINGERING_POTION_OF_DECAY:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 0 112"]
         Children:
-            REDSTONE: 21824
-    21824: # Splash Potion of Health Boost Extended
-        Effects: ["HEALTH_BOOST 0 3600"]
+            REDSTONE: LINGERING_POTION_OF_DECAY_EXTENDED
+            GLOWSTONE_DUST: LINGERING_POTION_OF_DECAY_II
+    LINGERING_POTION_OF_DULLNESS:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 0 900"]
         Children:
-            GLOWSTONE_DUST: 21792
-
-    22016: # Splash Potion of Absorption
-        Effects: ["ABSORPTION 0 1350"]
+            GLOWSTONE_DUST: LINGERING_POTION_OF_DULLNESS_II
+            REDSTONE: LINGERING_POTION_OF_DULLNESS_EXTENDED
+    LINGERING_POTION_OF_HASTE:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 0 900"]
         Children:
-            GLOWSTONE_DUST: 22048
-            REDSTONE: 22080
-    22048: # Splash Potion of Absorption II
-        Effects: ["ABSORPTION 1 675"]
+            GLOWSTONE_DUST: LINGERING_POTION_OF_HASTE_II
+            REDSTONE: LINGERING_POTION_OF_HASTE_EXTENDED
+    LINGERING_POTION_OF_HUNGER:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["HUNGER 0 225"]
         Children:
-            REDSTONE: 22080
-    22080: # Splash Potion of Absorption Extended
-        Effects: ["ABSORPTION 0 3600"]
+            REDSTONE: LINGERING_POTION_OF_HUNGER_EXTENDED
+            GLOWSTONE_DUST: LINGERING_POTION_OF_HUNGER_II
+    LINGERING_POTION_OF_NAUSEA:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 0 112"]
         Children:
-            GLOWSTONE_DUST: 22048
-
-    22272: # Splash Potion of Saturation
-        Effects: ["SATURATION 0 6"]
+            GLOWSTONE_DUST: LINGERING_POTION_OF_NAUSEA_II
+            REDSTONE: LINGERING_POTION_OF_NAUSEA_EXTENDED
+    LINGERING_POTION_OF_RESISTANCE:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 0 112"]
         Children:
-            GLOWSTONE_DUST: 22304
-    22304: # Splash Potion of Saturation II
-        Effects: ["SATURATION 1 6"]
+            GLOWSTONE_DUST: LINGERING_POTION_OF_RESISTANCE_II
+            REDSTONE: LINGERING_POTION_OF_RESISTANCE_EXTENDED
+    LINGERING_POTION_OF_SATURATION:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 0 2"]
         Children:
-            REDSTONE: 22272
+            GLOWSTONE_DUST: LINGERING_POTION_OF_SATURATION_II
+            REDSTONE: LINGERING_POTION_OF_SATURATION_EXTENDED
+    LINGERING_POTION_OF_ABSORPTION_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 0 900"]
+    LINGERING_POTION_OF_BLINDNESS_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["BLINDNESS 0 112"]
+    LINGERING_POTION_OF_DECAY_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 0 224"]
+    LINGERING_POTION_OF_DULLNESS_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 0 1800"]
+    LINGERING_POTION_OF_HASTE_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 0 1800"]
+    LINGERING_POTION_OF_HUNGER_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["HUNGER 0 450"]
+    LINGERING_POTION_OF_NAUSEA_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 0 224"]
+    LINGERING_POTION_OF_RESISTANCE_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 0 224"]
+    LINGERING_POTION_OF_SATURATION_EXTENDED:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 0 4"]
+    LINGERING_POTION_OF_ABSORPTION_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["ABSORPTION 1 225"]
+    LINGERING_POTION_OF_BLINDNESS_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["BLINDNESS 1 28"]
+    LINGERING_POTION_OF_DECAY_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["WITHER 1 56"]
+    LINGERING_POTION_OF_DULLNESS_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SLOW_DIGGING 1 450"]
+    LINGERING_POTION_OF_HASTE_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["FAST_DIGGING 1 450"]
+    LINGERING_POTION_OF_HUNGER_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["HUNGER 1 112"]
+    LINGERING_POTION_OF_NAUSEA_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["CONFUSION 1 56"]
+    LINGERING_POTION_OF_RESISTANCE_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["DAMAGE_RESISTANCE 1 56"]
+    LINGERING_POTION_OF_SATURATION_II:
+        Material: LINGERING_POTION
+        PotionData:
+            PotionType: UNCRAFTABLE
+        Effects: ["SATURATION 1 1"]

+ 616 - 0
src/util/java/mcMMO/PotionConfigGenerator.java

@@ -0,0 +1,616 @@
+package com.gmail.nossr50;
+
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.bukkit.Material;
+import org.bukkit.potion.PotionType;
+
+import org.bukkit.potion.PotionData;
+import org.bukkit.potion.PotionEffect;
+import org.bukkit.potion.PotionEffectType;
+
+public class PotionConfigGenerator {
+
+    public static class Ingredient {
+
+        public Material mat;
+        public int      data;
+        public String   name;
+
+        public Ingredient(Material mat) {
+            this.mat = mat;
+            this.data = 0;
+            name = mat.name();
+        }
+
+        public Ingredient(Material mat, int data) {
+            this.mat = mat;
+            this.data = data;
+            name = "'" + mat.name() + ":" + data + "'";
+        }
+    }
+    public static class WriteablePotion {
+
+        public String             name;
+        public Material           mat;
+        public PotionData         data;
+        public PotionEffect effect;
+        public String baseName;
+
+        public WriteablePotion(PotionData data) {
+            this(Material.POTION, data);
+        }
+
+        public WriteablePotion(Material type, PotionData data) {
+            this(type, data, null, getMCName(data.getType()));
+        }
+
+        public WriteablePotion(Material mat, PotionType type, PotionEffect effect, String baseName) {
+            this(mat, new PotionData(type, false, false), effect, baseName);
+        }
+
+        public WriteablePotion(Material type, PotionData data, PotionEffect effect, String baseName) {
+            this.data = data;
+            this.effect = effect;
+            this.mat = type;
+            this.baseName = baseName;
+            this.name = "POTION_OF_" + baseName;
+            if (mat == Material.SPLASH_POTION) {
+                this.name = "SPLASH_" + this.name;
+            }
+            if (mat == Material.LINGERING_POTION) {
+                this.name = "LINGERING_" + this.name;
+            }
+            if (data.isExtended()) {
+                this.name += "_EXTENDED";
+            }
+            if (data.isUpgraded()) {
+                this.name += "_II";
+            }
+        }
+
+        public WriteablePotion(PotionType type) {
+            this(new PotionData(type, false, false));
+        }
+
+        public WriteablePotion(Material mat, PotionType type) {
+            this(mat, new PotionData(type, false, false));
+        }
+
+        private static String getMCName(PotionType type) {
+            switch (type) {
+                case INSTANT_DAMAGE :
+                    return "HARMING";
+                case INSTANT_HEAL :
+                    return "HEALING";
+                case JUMP :
+                    return "LEAPING";
+                case REGEN :
+                    return "REGENERATION";
+                case SPEED :
+                    return "SWIFTNESS";
+                case UNCRAFTABLE :
+                    return "EMPTY";
+                case LUCK :
+                case MUNDANE :
+                case NIGHT_VISION :
+                case POISON :
+                case INVISIBILITY :
+                case SLOWNESS :
+                case AWKWARD :
+                case STRENGTH :
+                case THICK :
+                case FIRE_RESISTANCE :
+                case WATER :
+                case WATER_BREATHING :
+                case WEAKNESS :
+                    return type.name();
+                default :
+                    return "";
+            }
+        }
+
+        public int hashCode() {
+            return name.hashCode();
+        }
+
+        public boolean equals(Object obj) {
+            if (!(obj instanceof WriteablePotion)) {
+                return false;
+            }
+            return name.equals(((WriteablePotion) obj).name);
+        }
+    }
+
+    public static void main(String[] args) throws IOException {
+        Map<WriteablePotion, Map<Ingredient, WriteablePotion>> vanillaPotions = new HashMap<WriteablePotion, Map<Ingredient, WriteablePotion>>();
+        populateVanillaPotions(vanillaPotions);
+        Map<WriteablePotion, Map<Ingredient, WriteablePotion>> mcMMOPotions = new HashMap<WriteablePotion, Map<Ingredient, WriteablePotion>>();
+        populateCustomPotions(mcMMOPotions);
+        List<WriteablePotion> sorted = new ArrayList<WriteablePotion>();
+        sorted.addAll(vanillaPotions.keySet());
+        sorted.addAll(mcMMOPotions.keySet());
+        // Get all mcMMO potions without children
+        for (Map<Ingredient, WriteablePotion> map : mcMMOPotions.values()) {
+            for (WriteablePotion potion : map.values()) {
+                if (!sorted.contains(potion)) {
+                    sorted.add(potion);
+                }
+            }
+        }
+        sorted.sort(new Comparator<WriteablePotion>() {
+
+            @Override
+            public int compare(WriteablePotion a, WriteablePotion b) {
+                // All normal potions first
+                if (a.mat == Material.POTION && b.mat != Material.POTION) {
+                    return -1;
+                }
+                if (b.mat == Material.POTION && a.mat != Material.POTION) {
+                    return 1;
+                }
+                // All splash potions second
+                if (a.mat == Material.SPLASH_POTION && b.mat != Material.SPLASH_POTION) {
+                    return -1;
+                }
+                if (b.mat == Material.SPLASH_POTION && a.mat != Material.SPLASH_POTION) {
+                    return 1;
+                }
+                // Vanilla Potions first
+                if (a.effect == null && b.effect != null) {
+                    return -1;
+                }
+                if (b.effect == null && a.effect != null) {
+                    return 1;
+                }
+                // Vanilla potions
+                if (a.effect == null && b.effect == null) {
+                    // Order by PotionType
+                    if (a.data.getType() != b.data.getType()) {
+                        return Integer.compare(a.data.getType().ordinal(), b.data.getType().ordinal());
+                    }
+                    // Plain before extended or upgraded
+                    if (!a.data.isExtended() && !a.data.isUpgraded() && (b.data.isExtended() || b.data.isUpgraded())) {
+                        return -1;
+                    }
+                    if (!b.data.isExtended() && !b.data.isUpgraded() && (a.data.isExtended() || a.data.isUpgraded())) {
+                        return 1;
+                    }
+                    // Extended before Upgraded
+                    if (a.data.isExtended() && b.data.isUpgraded()) {
+                        return -1;
+                    }
+                    if (b.data.isExtended() && a.data.isUpgraded()) {
+                        return -1;
+                    }
+                    // Same potion somehow?
+                    return 0;
+                }
+                // mcMMO Potions
+                else {
+                    if ((a.baseName.contains("II") || a.baseName.contains("EXTENDED")) && !(b.baseName.contains("II") || b.baseName.contains("EXTENDED"))) {
+                        return 1;
+                    }
+                    if ((b.baseName.contains("II") || b.baseName.contains("EXTENDED")) && !(a.baseName.contains("II") || a.baseName.contains("EXTENDED"))) {
+                        return -1;
+                    }
+                    if (!a.baseName.contains("II") && b.baseName.contains("II")) {
+                        return -1;
+                    }
+                    if (!b.baseName.contains("II") && a.baseName.contains("II")) {
+                        return 1;
+                    }
+                    return a.baseName.split("_")[0].compareTo(b.baseName.split("_")[0]);
+                }
+            }
+            
+        });
+        for (WriteablePotion potion : sorted) {
+            Map<Ingredient, WriteablePotion> children;
+            if (vanillaPotions.containsKey(potion)) {
+                children = vanillaPotions.get(potion);
+            } else {
+                children = mcMMOPotions.get(potion);
+            }
+            System.out.println("    " + potion.name + ":");
+            System.out.println("        Material: " + potion.mat.name());
+            System.out.println("        PotionData:");
+            System.out.println("            PotionType: " + potion.data.getType().name());
+            if (potion.data.isExtended()) {
+                System.out.println("            Extended: true");
+            }
+            if (potion.data.isUpgraded()) {
+                System.out.println("            Upgraded: true");
+            }
+            if (potion.effect != null) {
+                System.out.println("        Effects: [\"" + getName(potion.effect.getType()) + " " + potion.effect.getAmplifier() + " " + potion.effect.getDuration() + "\"]");
+            }
+            if (children == null || children.isEmpty()) {
+                continue;
+            }
+            System.out.println("        Children:");
+            for (Entry<Ingredient, WriteablePotion> child : children.entrySet()) {
+                System.out.println("            " + child.getKey().name + ": " + child.getValue().name);
+            }
+        }
+    }
+
+    private static String getName(PotionEffectType type) {
+        switch (type.getId()) {
+        case 1:
+            return "SPEED";
+        case 2:
+            return "SLOW";
+        case 3:
+            return "FAST_DIGGING";
+        case 4:
+            return "SLOW_DIGGING";
+        case 5:
+            return "INCREASE_DAMAGE";
+        case 6:
+            return "HEAL";
+        case 7:
+            return "HARM";
+        case 8:
+            return "JUMP";
+        case 9:
+            return "CONFUSION";
+        case 10:
+            return "REGENERATION";
+        case 11:
+            return "DAMAGE_RESISTANCE";
+        case 12:
+            return "FIRE_RESISTANCE";
+        case 13:
+            return "WATER_BREATHING";
+        case 14:
+            return "INVISIBILITY";
+        case 15:
+            return "BLINDNESS";
+        case 16:
+            return "NIGHT_VISION";
+        case 17:
+            return "HUNGER";
+        case 18:
+            return "WEAKNESS";
+        case 19:
+            return "POISON";
+        case 20:
+            return "WITHER";
+        case 21:
+            return "HEALTH_BOOST";
+        case 22:
+            return "ABSORPTION";
+        case 23:
+            return "SATURATION";
+        case 24:
+            return "GLOWING";
+        case 25:
+            return "LEVITATION";
+        case 26:
+            return "LUCK";
+        case 27:
+            return "UNLUCK";
+        default:
+            return "UNKNOWN_EFFECT_TYPE_" + type.getId();
+        }
+    }
+
+    private static void populateVanillaPotions(Map<WriteablePotion, Map<Ingredient, WriteablePotion>> vanillaPotions) {
+        for (PotionType type : PotionType.values()) {
+            for (Material material : new Material[]{Material.POTION, Material.SPLASH_POTION, Material.LINGERING_POTION}) {
+                WriteablePotion data = new WriteablePotion(material, type);
+                HashMap<Ingredient, WriteablePotion> children = new HashMap<Ingredient, WriteablePotion>();
+                getChildren(data, children);
+                vanillaPotions.put(data, children);
+                if (type.isExtendable()) {
+                    data = new WriteablePotion(material, new PotionData(type, true, false));
+                    children = new HashMap<Ingredient, WriteablePotion>();
+                    getChildren(data, children);
+                    vanillaPotions.put(data, children);
+                }
+                if (type.isUpgradeable()) {
+                    data = new WriteablePotion(material, new PotionData(type, false, true));
+                    children = new HashMap<Ingredient, WriteablePotion>();
+                    getChildren(data, children);
+                    vanillaPotions.put(data, children);
+                }
+            }
+        }
+        for (Entry<WriteablePotion, Map<Ingredient, WriteablePotion>> entry : vanillaPotions.entrySet()) {
+            if (entry.getKey().mat == Material.POTION) {
+                entry.getValue().put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, entry.getKey().data));
+            }
+            if (entry.getKey().mat == Material.SPLASH_POTION) {
+                entry.getValue().put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, entry.getKey().data));
+            }
+        }
+    }
+
+    private static void getChildren(WriteablePotion current, HashMap<Ingredient, WriteablePotion> children) {
+        switch (current.data.getType()) {
+            case WATER :
+                assert(!current.data.isExtended());
+                assert(!current.data.isUpgraded());
+                children.put(new Ingredient(Material.NETHER_WARTS), new WriteablePotion(current.mat, PotionType.AWKWARD));
+                children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.WEAKNESS));
+                children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, PotionType.MUNDANE));
+                children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, PotionType.THICK));
+                children.put(new Ingredient(Material.BLAZE_POWDER), new WriteablePotion(current.mat, PotionType.MUNDANE));
+                children.put(new Ingredient(Material.SUGAR), new WriteablePotion(current.mat, PotionType.MUNDANE));
+                children.put(new Ingredient(Material.RABBIT_FOOT), new WriteablePotion(current.mat, PotionType.MUNDANE));
+                children.put(new Ingredient(Material.SPIDER_EYE), new WriteablePotion(current.mat, PotionType.MUNDANE));
+                children.put(new Ingredient(Material.MAGMA_CREAM), new WriteablePotion(current.mat, PotionType.MUNDANE));
+                children.put(new Ingredient(Material.SPECKLED_MELON), new WriteablePotion(current.mat, PotionType.MUNDANE));
+                children.put(new Ingredient(Material.GHAST_TEAR), new WriteablePotion(current.mat, PotionType.MUNDANE));
+                return;
+            case AWKWARD :
+                assert(!current.data.isExtended());
+                assert(!current.data.isUpgraded());
+                children.put(new Ingredient(Material.GOLDEN_CARROT), new WriteablePotion(current.mat, PotionType.NIGHT_VISION));
+                children.put(new Ingredient(Material.RABBIT_FOOT), new WriteablePotion(current.mat, PotionType.JUMP));
+                children.put(new Ingredient(Material.MAGMA_CREAM), new WriteablePotion(current.mat, PotionType.FIRE_RESISTANCE));
+                children.put(new Ingredient(Material.SUGAR), new WriteablePotion(current.mat, PotionType.SPEED));
+                children.put(new Ingredient(Material.RAW_FISH, 3), new WriteablePotion(current.mat, PotionType.WATER_BREATHING));
+                children.put(new Ingredient(Material.SPECKLED_MELON), new WriteablePotion(current.mat, PotionType.INSTANT_HEAL));
+                children.put(new Ingredient(Material.SPIDER_EYE), new WriteablePotion(current.mat, PotionType.POISON));
+                children.put(new Ingredient(Material.GHAST_TEAR), new WriteablePotion(current.mat, PotionType.REGEN));
+                children.put(new Ingredient(Material.BLAZE_POWDER), new WriteablePotion(current.mat, PotionType.STRENGTH));
+                // mcMMO custom potions
+                double mod = 1;
+                if (current.mat == Material.SPLASH_POTION) {
+                    mod = 0.75;
+                }
+                if (current.mat == Material.LINGERING_POTION) {
+                    mod = 0.25;
+                }
+                children.put(new Ingredient(Material.BROWN_MUSHROOM), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.CONFUSION, (int) (450 * mod), 0), "NAUSEA"));
+                children.put(new Ingredient(Material.CARROT_ITEM), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.FAST_DIGGING, (int) (3600 * mod), 0), "HASTE"));
+                children.put(new Ingredient(Material.SLIME_BALL), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SLOW_DIGGING, (int) (3600 * mod), 0), "DULLNESS"));
+                children.put(new Ingredient(Material.GOLDEN_APPLE), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, (int) (450 * mod), 0), "RESISTANCE"));
+                children.put(new Ingredient(Material.INK_SACK), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.BLINDNESS, (int) (225 * mod), 0), "BLINDNESS"));
+                children.put(new Ingredient(Material.ROTTEN_FLESH), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HUNGER, (int) (900 * mod), 0), "HUNGER"));
+                children.put(new Ingredient(Material.POISONOUS_POTATO), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.WITHER, (int) (450 * mod), 0), "DECAY"));
+                children.put(new Ingredient(Material.QUARTZ), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.ABSORPTION, (int) (1800 * mod), 0), "ABSORPTION"));
+                children.put(new Ingredient(Material.LONG_GRASS, 2), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SATURATION, (int) (8 * mod), 0), "SATURATION"));
+                children.put(new Ingredient(Material.APPLE), new WriteablePotion(current.mat, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HEALTH_BOOST, (int) (1800 * mod), 0), "HEALTH_BOOST"));
+                return;
+            case FIRE_RESISTANCE :
+                assert(!current.data.isUpgraded());
+                if (current.data.isExtended()) {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.SLOWNESS, true, false)));
+                } else {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.SLOWNESS));
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                }
+                return;
+            case INSTANT_DAMAGE :
+                assert(!current.data.isExtended());
+                if (!current.data.isUpgraded()) {
+                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
+                }
+                return;
+            case INSTANT_HEAL :
+                assert(!current.data.isExtended());
+                if (!current.data.isUpgraded()) {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
+                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
+                } else {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INSTANT_DAMAGE, false, true)));
+                }
+                return;
+            case INVISIBILITY :
+                assert(!current.data.isUpgraded());
+                if (!current.data.isExtended()) {
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                }
+                return;
+            case JUMP :
+                if (!current.data.isUpgraded() && !current.data.isExtended()) {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.SLOWNESS));
+                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                }
+                return;
+            case NIGHT_VISION :
+                assert(!current.data.isUpgraded());
+                if (!current.data.isExtended()) {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INVISIBILITY));
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                } else {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INVISIBILITY, true, false)));
+                }
+                return;
+            case POISON :
+                if (!current.data.isUpgraded() && !current.data.isExtended()) {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
+                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                } else {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.INSTANT_DAMAGE, false, true)));
+                }
+                return;
+            case REGEN :
+                if (!current.data.isUpgraded() && !current.data.isExtended()) {
+                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                }
+                return;
+            case SLOWNESS :
+                assert(!current.data.isUpgraded());
+                if (!current.data.isExtended()) {
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                }
+                return;
+            case SPEED :
+                if (!current.data.isUpgraded() && !current.data.isExtended()) {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.SLOWNESS));
+                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                } else {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, new PotionData(PotionType.SLOWNESS, true, false)));
+                }
+                return;
+            case STRENGTH :
+                if (!current.data.isUpgraded() && !current.data.isExtended()) {
+                    children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(current.mat, new PotionData(current.data.getType(), false, true)));
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                }
+                return;
+            case WATER_BREATHING :
+                assert(!current.data.isUpgraded());
+                if (!current.data.isExtended()) {
+                    children.put(new Ingredient(Material.FERMENTED_SPIDER_EYE), new WriteablePotion(current.mat, PotionType.INSTANT_DAMAGE));
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                }
+                return;
+            case WEAKNESS :
+                assert(!current.data.isUpgraded());
+                if (!current.data.isExtended()) {
+                    children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(current.mat, new PotionData(current.data.getType(), true, false)));
+                }
+                return;
+            case LUCK :
+            case MUNDANE :
+            case THICK :
+            case UNCRAFTABLE :
+                assert(!current.data.isExtended());
+                assert(!current.data.isUpgraded());
+                return;
+            default :
+                assert(false);
+                break;
+        }
+    }
+
+    private static void populateCustomPotions(Map<WriteablePotion, Map<Ingredient, WriteablePotion>> mcMMOPotions) {
+        for (Material material : new Material[]{Material.POTION, Material.SPLASH_POTION, Material.LINGERING_POTION}) {
+            WriteablePotion data = new WriteablePotion(material, PotionType.AWKWARD);
+            double mod = 1;
+            if (material == Material.SPLASH_POTION) {
+                mod = 0.75;
+            }
+            if (material == Material.LINGERING_POTION) {
+                mod = 0.25;
+            }
+            HashMap<Ingredient, WriteablePotion> children = new HashMap<Ingredient, WriteablePotion>();
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.CONFUSION, (int) (450 * mod), 0), "NAUSEA");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.FAST_DIGGING, (int) (3600 * mod), 0), "HASTE");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SLOW_DIGGING, (int) (3600 * mod), 0), "DULLNESS");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.DAMAGE_RESISTANCE, (int) (450 * mod), 0), "RESISTANCE");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.BLINDNESS, (int) (225 * mod), 0), "BLINDNESS");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HUNGER, (int) (900 * mod), 0), "HUNGER");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.WITHER, (int) (450 * mod), 0), "DECAY");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.ABSORPTION, (int) (1800 * mod), 0), "ABSORPTION");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.SATURATION, (int) (8 * mod), 0), "SATURATION");
+            children = new HashMap<Ingredient, WriteablePotion>();
+            if (material == Material.POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.75), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.SULPHUR), new WriteablePotion(Material.SPLASH_POTION, data.data, effect, data.baseName));
+            } else if (material == Material.SPLASH_POTION) {
+                PotionEffect effect = new PotionEffect(data.effect.getType(), (int) (data.effect.getDuration() * 0.33), data.effect.getAmplifier());
+                children.put(new Ingredient(Material.DRAGONS_BREATH), new WriteablePotion(Material.LINGERING_POTION, data.data, effect, data.baseName));
+            }
+            children.put(new Ingredient(Material.GLOWSTONE_DUST), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() / 2, 1), data.baseName + "_II"));
+            children.put(new Ingredient(Material.REDSTONE), new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(data.effect.getType(), data.effect.getDuration() * 2, 0), data.baseName + "_EXTENDED"));
+            mcMMOPotions.put(data, children);
+            data = new WriteablePotion(material, PotionType.UNCRAFTABLE, new PotionEffect(PotionEffectType.HEALTH_BOOST, (int) (1800 * mod), 0), "HEALTH_BOOST");
+        }
+    }
+}