ScriptCraft icon indicating copy to clipboard operation
ScriptCraft copied to clipboard

Prepare for Minecraft v1.13

Open TonyGravagno opened this issue 8 years ago • 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.

TonyGravagno avatar Sep 20 '17 19:09 TonyGravagno

Some links to read about the transition :

https://www.spigotmc.org/threads/minecraft-1-13-what-to-expect.288714/

https://www.spigotmc.org/threads/bukkit-craftbukkit-spigot-bungeecord-1-13-pre7-development-builds.328883/

Gloorf avatar Jul 19 '18 17:07 Gloorf

Has anyone spun up a 1.13 server with Scriptcraft? Are there any major issues?

triyuga avatar Jul 21 '18 22:07 triyuga

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.

jonathanperret avatar Jul 21 '18 22:07 jonathanperret

#388 is what I have working so far.

jonathanperret avatar Aug 12 '18 08:08 jonathanperret