๐ง Still work in progress...
The RPC (Resource Pack Converter) is a npm package which can convert a Minecraft: Java Edition resource pack from any version to another version.
You can use it via the Command Line Tool or importing it to your project.
- Make sure you have nodejs installed on your computer.
- Execute
npm i resource-pack-converter -g
in your command line (e.g. PowerShell, cmd, bash, etc.) - TODO
- Installation.
npm i resource-pack-converter
- Import.
import { convert } from 'resource-pack-converter'
- TODO
src
: Source code written in TypeScript.lib
: Output JavaScript files.uti
: Some useful tools while coding.analyzer.js
: An resource pack analyzer which can find the differences (e.g. file names) between two resource packs (only support folders) and generate conversion files. Use
to analyze differences betweennpm run uti:analyzer ${fromDir} ${toDir} ${outDir}
${fromDir}
and${toDir}
. The result will be stored inuti/analyzer/${outDir}
. e.g.npm run uti:analyzer uti/input/1.6/ uti/input/1.7/ 1.6-1.7.json
The RPC will decompressed the input resource pack if it's compressed, and then execute all adapters orderly for each file
in the resource pack according to specific conversion. All adapted files will be put in specific path under ${outDir}
,
so nothing will be changed in the source resource pack.
Adapters carry out operations for single file in the resource pack, e.g. renaming, scaling image,
changing text content, etc. All adapters are written in TypeScript and should implement the Adapter
interface.
They are located in ./src/adapters/
.
Adapters may be referenced in conversions.
A Conversion contains a set of adapters. It's stored in ./src/conversions/
.
- The root tag.
adapters
: (Required) Array. Contains a set of adapters.from
: (Required) String. Specifies the game version which the conversion starts from.to
: (Required) String. Specifies the game version which the conversion ends with.
I'm thrilled to hear that you'd like to contribute to this project. It's no doubt that the converter will be better with your help!
-
Fork this this repo and clone it to your local.
-
Install dependencies.
npm i
-
Edit files in
./src
. -
If you add new features, it's strongly recommend to write tests for them. All tests should be put under
./src/test
. -
Commit your changes by
npm run commit
and then push them to the origin. -
Open a Pull Request. The circle CI will build and test your changes automatically.
There must be lots of mistakes and bad practice in this repository. If you find something not good or not sure whether it's not good, please don't hesitate to tell me!