PolyhedralDev / Terra

Voxel world generation modding platform
MIT License
667 stars 87 forks source link

[Feature] Exchange knowledge of loaded packs with Multiverse #46

Open benwoo1110 opened 3 years ago

benwoo1110 commented 3 years ago

When setting generator to be Terra (i.e. with empty config id) instead of Terra:DEFAULT it will throw a IllegalArgumentException. I feel that it will be better to just make it use the DEFAULT instead.

This will help for those new to the plugin, as well as world management plugin like multiverse in detecting possible generators as they assume that default ID is just empty which works for most generators, but not Terra as mentioned.

Tell multiverse about which packs are currently loaded via an API. This will help with command completion & will allow multiverse to list which packs we have.

Also: perhaps have an easy to use public API for getting a string list of all the loaded config packs?

dfsek commented 3 years ago

This will probably not be implemented; having 2 methods of setting configs just makes things more confusing. Also, most beginners will just be looking to copy/paste the three lines in the example, so it won't matter to them whether it's Terra or Terra:DEFAULT. Besides, the default config may not even be installed all the time, implementing a feature like this assumes it would be.

As for Multiverse, I'll have to look at how they analyse generators. Ideally there would be a way to hook into Multiverse and provide it with all installed config IDs.

solonovamax commented 3 years ago

I don't believe multiverse actually uses generator names or generator ids anywhere. They don't seem to have any command completion at all, and I'm not sure where else it would be. I looked at their API and they don't seem to have anything for that.

benwoo1110 commented 3 years ago

Currently, its just this part of the code to check for potential generators: https://github.com/Multiverse/Multiverse-Core/blob/e3f56f6498aa9938c8c7908f4b8508582b7d4166/src/main/java/com/onarandombox/MultiverseCore/commands/GeneratorCommand.java#L41-L47

I will look into asking the mv lead dev about having a new API to register generator plugins, since I do think is beneficial. Also, mv do intend to add tab-completion on the next major release.