Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retrieve vanilla data packs [$25] #5

Closed
mastercoms opened this issue Sep 15, 2019 · 5 comments
Closed

Retrieve vanilla data packs [$25] #5

mastercoms opened this issue Sep 15, 2019 · 5 comments
Labels
bounty data A feature involving internal representations of blocks, items, properties, and more. essential A feature that must be implemented for 1.13 base support. server An internal technical feature.

Comments

@mastercoms
Copy link
Member

mastercoms commented Sep 15, 2019

This issue is part of the 1.13.x compatibility Epic.

All contributions are subject to the Glowstone CLA. In short, contributions must not contain any content (code or otherwise) copied from,
inspired by or based upon content from Mojang or third-party projects that are based on such content (CraftBukkit, Spigot, Forge, ...).


Description:

Have a way to automatically get vanilla data packs and reports without redistribution. This will likely involve downloading the Minecraft server automatically and running it for generating data reports. We need to also add a flag to prevent downloading the Minecraft server if people choose to opt out of using Mojang data.

Reference Documentation:

https://wiki.vg/Data_Generators

Related to:

#4


There is a $25 open bounty on this issue. Add to the bounty at Bountysource.

@mastercoms mastercoms mentioned this issue Sep 15, 2019
8 tasks
@mastercoms mastercoms added data A feature involving internal representations of blocks, items, properties, and more. essential A feature that must be implemented for 1.13 base support. server An internal technical feature. labels Sep 15, 2019
@aramperes
Copy link
Member

Implementation notes

Glowstone would only be interested in server-side data packs and registry reports. Those can be generated by downloading the Vanilla server JAR, and running:

java -cp server.jar net.minecraft.data.Main --reports --server

Which produces the directory structure:

generated/
├── data
│   └── minecraft
│       ├── advancements
│       │   ├── adventure
│       │   ├── end
│       │   ├── husbandry
│       │   ├── nether
│       │   ├── recipes
│       │   │   ├── brewing
│       │   │   ├── building_blocks
│       │   │   ├── combat
│       │   │   ├── decorations
│       │   │   ├── food
│       │   │   ├── misc
│       │   │   ├── redstone
│       │   │   ├── tools
│       │   │   └── transportation
│       │   └── story
│       ├── recipes
│       └── tags
│           ├── blocks
│           ├── fluids
│           └── items
├── reports
└── tmp

Automating

My thoughts on implementation:

  • Glowstone should look into a local directory (generated by default?) for the data packs and reports
  • If no data is found, Glowstone should fail at startup, giving the following possible solutions:
    • Generating the required files yourself by downloading the Vanilla server from Mojang and running the command
    • Using a command-line flag (--download-vanilla-data) or config entry to enable auto-downloading the Vanilla jar and generating the reports

If the second option is used by the end-user, it should be possible to configure which URL to download the JAR from, defaulting to Mojang's servers.

@mastercoms mastercoms changed the title Retrieve vanilla data packs Retrieve vanilla data packs [$25] Sep 23, 2019
@smartboyathome
Copy link

Do we actually need to automate this? Now that vanilla's gone through 1.13, 1.14, 1.15, and soon 1.16, and at most this file would change once per version. We could just hand edit it based off the changelogs for each version.

@mastercoms
Copy link
Member Author

Yes, because we don't want to redistribute the file.

@birbe
Copy link

birbe commented Jan 14, 2020

Plus a bounty's a bounty :P

@smartboyathome
Copy link

This is now being handled by redstone-transformer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bounty data A feature involving internal representations of blocks, items, properties, and more. essential A feature that must be implemented for 1.13 base support. server An internal technical feature.
Projects
None yet
Development

No branches or pull requests

4 participants