Seems to work in 1.12, not tested in 1.13 a lot yet. https://pastebin.com/HTweg0X1 XMaterial.java ^ Using the class: Change Code (Text): Material.GOLD_CHESTPLATE to Code (Text): XMaterial.GOLDEN_CHESTPLATE.parseMaterial() It will give Material.GOLDEN_CHESTPLATE in 1.13 to Material.GOLD_CHESTPLATE in 1.12 depending on which one exists in the current server version. Change Code (Text): new ItemStack(Material.WOOL,1,(byte)4); to Code (Text): XMaterial.YELLOW_WOOL.parseItem() This gives An itemstack of material YELLOW_WOOL in 1.13, but an itemstack of material WOOL and data 4 in 1.12 Points to note: This is a big, hardcoded solution for 1.8 to 1.13 material/item support. Note that the hardcoding was not scripted, and done to the semi-best of my own knowledge (I'm not sure of the Skulls, Wall banners, Spawn eggs, 1.13 Wood (not planks) and filled flower pots) Materials that don't exist in 1.12 will return as either stone, or a close alternative (eg, XMaterial.BRAIN_CORAL.parseMaterial() will give Material.STONE in 1.12) Some 1.12 items don't translate well into 1.13 (Like Potato and Potato_item in 1.12 translate into the same thing in 1.13, and there's currently no way to get the specific kind in 1.12 through this resource.) I may improve this resource over time on my own, but if you find some problems with it, do let me know in the discussion, and I'll try to fix it up when I have the time. Due to a lack of time, I may fail to integrate larger solutions any time soon (Like supporting block data, fixing up shortcomings like potato item smoothly etc). Older XMaterial classes: https://pastebin.com/sVHmhbhC Old obsolete code kept here for archiving purposes. Spoiler https://pastebin.com/fTZHc0Dm Using the class: Change Code (Text): Material.GOLD_CHESTPLATE to Code (Text): XMaterial.GOLD_CHESTPLATE.parse() It will give Material.GOLD_CHESTPLATE in 1.12 to Material.GOLDEN_CHESTPLATE in 1.13 To try and get a 1.13 material: Code (Text): XMaterial.reqIfNot("RED_WOOL",XMaterial.WOOL) Tries to get the material (from 1.13) called RED_WOOL, if it doesn't exist, return XMaterial.WOOL.parse(); It's a pretty flimsy fix for part of 1.13's problems, and it was made pretty quickly (So some of the stuff are a little weird. I've added comments to the ones I'm unsure of (//UNKNOWN or //UNSURE) Generated the enum with a script, and manually fixed all the red underlines. By default, returns white or oak for stuff like Material.WOOL, Material.WOOD, Material.LOG Before using it, test it yourself. As mentioned above, some of the linked materials may not make sense. Enjoy the lazy fix EDIT: If someone found a better way, please reply. please.