{"id":19527344,"url":"https://github.com/papermc/codebook","last_synced_at":"2025-04-26T10:31:48.675Z","repository":{"id":184363689,"uuid":"666648424","full_name":"PaperMC/codebook","owner":"PaperMC","description":"Library for handling jar remaping logic for PaperMC","archived":false,"fork":false,"pushed_at":"2024-12-30T21:02:41.000Z","size":450,"stargazers_count":19,"open_issues_count":13,"forks_count":0,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-04-19T09:04:43.864Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PaperMC.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"PaperMC","open_collective":"PaperMC"}},"created_at":"2023-07-15T05:33:36.000Z","updated_at":"2025-04-04T03:35:27.000Z","dependencies_parsed_at":"2024-01-03T14:14:19.307Z","dependency_job_id":"e6a88d50-f90c-477d-8fcd-e0dc913001f7","html_url":"https://github.com/PaperMC/codebook","commit_stats":{"total_commits":82,"total_committers":5,"mean_commits":16.4,"dds":"0.46341463414634143","last_synced_commit":"60ef0d7edeb6b2a79c953930a589f446ffcaa8ed"},"previous_names":["papermc/codebook"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2Fcodebook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2Fcodebook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2Fcodebook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PaperMC%2Fcodebook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PaperMC","download_url":"https://codeload.github.com/PaperMC/codebook/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250972988,"owners_count":21516457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T01:14:40.846Z","updated_at":"2025-04-26T10:31:48.064Z","avatar_url":"https://github.com/PaperMC.png","language":"Java","readme":"codebook\n========\n\nThis is a small application / library for easily sharing jar remap logic between different Paper projects. It contains\nthe library itself, as well as a main class for use as a standalone CLI.\n\n```\nUsage: codebook [-fhV] [--mappings-maven-base-url=url] -o=\u003coutput-jar\u003e [--remapper-maven-base-url=url] [--unpick-maven-base-url=url]\n                (-r=\u003cart-coords\u003e | --remapper-file=\u003cart-file\u003e | --remapper-uri=\u003cart-uri\u003e) [-m=\u003cmappings-file\u003e |\n                --mappings-uri=\u003cmappings-uri\u003e] [-p=\u003cparam-mappings-coords\u003e | --params-file=\u003cparam-mappings-file\u003e |\n                --params-uri=\u003cparam-mappings-uri\u003e] [[--unpick-coords=\u003cunpick-coords\u003e | --unpick-file=\u003cunpick-jar-file\u003e |\n                --unpick-uri=\u003cunpick-uri\u003e] [--constants-coords=\u003cconstants-coords\u003e | --constants-file=\u003cconstants-jar-file\u003e |\n                --constants-uri=\u003cconstants-uri\u003e]] (-x=\u003cversion\u003e | (-i=\u003cinput-jar\u003e [-c=\u003cjar\u003e[:\u003cjar\u003e...]]...)) [@\u003cfilename\u003e...]\n\nApplies PaperMC's remap process to an input jar.\n\n      [@\u003cfilename\u003e...]      One or more argument files containing options.\n\nOptions:\n  -o, --output=\u003coutput-jar\u003e The jar file to write to. Will only overwrite an existing jar if -f or --force is provided.\n  -f, --force               Set this flag to allow overwriting the output jar if it already exists.\n      --mappings-maven-base-url=url\n                            Provide a different Maven URL to resolve parameter mapping Maven coordinates. It should be the base URL so\n                              the Maven artifact path can be appended to it. The default value when not provided is https://maven.\n                              parchmentmc.org/.\n      --remapper-maven-base-url=url\n                            Provide a different Maven URL to resolve remapper Maven coordinates. It should be the base URL so the Maven\n                              artifact path can be appended to it. The default value when not provided is https://maven.neoforged.\n                              net/releases/.\n      --unpick-maven-base-url=url\n                            Provide a different Maven URL to resolve unpick Maven coordinates. It should be the base URL so the Maven\n                              artifact path can be appended to it. There is no default value when not provided.\n  -h, --help                Show this help message and exit.\n  -V, --version             Print version information and exit.\n\n\nThe remapper must be an executable tiny-remapper jar. This is the 'fat' classifier when downloading from Maven. It can be provided\nseveral different ways, the simplest being to just specify the Maven coordinates (with no classifier).\n  -r, --remapper-coords=\u003cart-coords\u003e\n                            The Maven coordinates for the executable AutoRenamingTool jar to use for the remapping process.\n      --remapper-file=\u003cart-file\u003e\n                            The executable AutoRenamingTool jar to use for the remapping process.\n      --remapper-uri=\u003cart-uri\u003e\n                            A download URL for the executable AutoRenamingTool jar to use for the remapping process.\n\n\nMappings are required when not using the --mc-version option to automatically download a version. They can still be optionally provided\nusing one of the 2 mappings options below, but one of either --mappings-file or --mappings-uri is required when using --input to manually\nspecify a jar file.\n  -m, --mappings-file=\u003cmappings-file\u003e\n                            The ProGuard mojmap mappings to use for base remapping.\n      --mappings-uri=\u003cmappings-uri\u003e\n                            A download URL for the ProGuard mojmap mappings to use for base remapping.\n\n\nParameter mappings are always optional, and can be specified several different ways.\n  -p, --params-coords=\u003cparam-mappings-coords\u003e\n                            The Maven coordinates for TinyV2 mappings to use for parameter remapping. This is the preferred option, as it\n                              allows omitting other details.\n      --params-file=\u003cparam-mappings-file\u003e\n                            The TinyV2 mappings to use for parameter remapping.\n      --params-uri=\u003cparam-mappings-uri\u003e\n                            A download URL for the TinyV2 mappings to use for parameter remapping.\n\n\nUnpick requires unpick definitions. When specifying unpick definitions unpick constants are also required.\n      --unpick-coords=\u003cunpick-coords\u003e\n                            The Maven coordinates for the unpick definitions to use for the unpick process.\n      --unpick-file=\u003cunpick-jar-file\u003e\n                            The unpick definitions file to use for the unpick process.\n      --unpick-uri=\u003cunpick-uri\u003e\n                            A download URL for the unpick definitions to use for the unpick process.\n\n\nUnpick requires a constants jar. This is optional when specifying the parameter mappings using Maven coordinates (preferred). If not\nusing Maven coordinates for parameter mappings, then this is required for unpick to run, otherwise it will be skipped.\n      --constants-coords=\u003cconstants-coords\u003e\n                            The Maven coordinates for the constants jar to use for the unpick process.\n      --constants-file=\u003cconstants-jar-file\u003e\n                            The constants jar to use for the unpick process.\n      --constants-uri=\u003cconstants-uri\u003e\n                            A download URL for the constants jar to use for the unpick process.\n\nThere are 2 methods of providing inputs, and they are mutually exclusive:\n  1. Simply specifying the desired --mc-version to download.\n  2. By manually specifying the input files with --input. When using --input you can also provide additional jars for the classpath using\n--input-classpath.\n\n  -x, --mc-version=\u003cversion\u003e\n                            The Minecraft version (matched from the manifest) to download and remap.\n  -i, --input=\u003cinput-jar\u003e   The input jar to remap.\n  -c, --input-classpath=\u003cjar\u003e[:\u003cjar\u003e...]\n                            Additional classpath jars, provided in standard classpath format (use : to separate jars on the path).\n```\n\nBuilding\n========\n\nJava 17 is required.\n\n```sh\n./gradlew build\n```\n\nFormat source code (to make Spotless and others happy):\n```sh\n./gradlew format\n```\n\nLicense\n=======\n\n[LGPL-3.0-only](license.txt)\n","funding_links":["https://github.com/sponsors/PaperMC","https://opencollective.com/PaperMC"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpapermc%2Fcodebook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpapermc%2Fcodebook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpapermc%2Fcodebook/lists"}