Prepare for Minecraft v1.13
TonyGravagno opened this issue ยท 4 comments
Minecraft 1.13 will have many changes in identifiers for blocks, items, materials, etc. We've already seen the trend in recent releases and Mojang wants to do away with magic numbers. I've looked at ways to generate the blocks.js file, or a similar file to build and export definitions.
- PrismarineJS for Node.js generates detailed JSON files to define game artifacts. The source data is the Minecraft wiki. Scraping like this is precarious and I see that they have minor inconsistencies similar to those in ScriptCraftJS with manual updates to block.js. Rather than trade one set of problems for another I'd rather skip that option.
- I spoke with Spigot developers. When 1.13 is available it will have "minecraft:name" identifiers and the Spigot team will probably generate maps for features already described in Bukkit. So even if Mojang defines something like red_hamster and Spigot has a hamster_red, both should still work. That's the plan for now.
Given that this is in the air, I recommend deferring any effort on item definitions until 1.13 development releases hit the streets. Coding to existing underpinnings, or using existing code, would seem to be a waste of near-term effort.
As this topic evolves I recommend adding info to this ticket so that we can prepare for the changes.
I did a quick test with the latest published Spigot version, which is compatible with 1.13-pre7
. ScriptCraft loaded OK and the /js
command worked fine for basic stuff (e.g. /js 1+1
) but as expected, the Drone can't put down any block because it uses the deprecated (and now removed) Block.setTypeIdAndData
method.
#388 is what I have working so far.