{"id":51347483,"url":"https://github.com/hboyd2003/configurate-nbt-temp","last_synced_at":"2026-07-02T12:41:14.996Z","repository":{"id":361560894,"uuid":"1250591423","full_name":"hboyd2003/configurate-nbt-temp","owner":"hboyd2003","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-17T03:13:04.000Z","size":113,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-17T04:16:17.327Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hboyd2003.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-26T19:32:46.000Z","updated_at":"2026-06-17T03:12:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hboyd2003/configurate-nbt-temp","commit_stats":null,"previous_names":["hboyd2003/configurate-nbt-temp"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/hboyd2003/configurate-nbt-temp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hboyd2003%2Fconfigurate-nbt-temp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hboyd2003%2Fconfigurate-nbt-temp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hboyd2003%2Fconfigurate-nbt-temp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hboyd2003%2Fconfigurate-nbt-temp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hboyd2003","download_url":"https://codeload.github.com/hboyd2003/configurate-nbt-temp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hboyd2003%2Fconfigurate-nbt-temp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35048062,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2026-07-02T12:41:14.234Z","updated_at":"2026-07-02T12:41:14.985Z","avatar_url":"https://github.com/hboyd2003.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Configurate NBT\n\n[Configurate](https://github.com/SpongePowered/Configurate) loaders and serializers for NBT (Named Binary Tag) using [Kyori Adventure NBT](https://github.com/KyoriPowered/adventure).\nSupports saving and loading via NBT as well as serializing NBT data into configurate.\n\n### Loaders\n- NBT\n- SNBT\n\n### Serializers\nThis library provides BinaryTag serializers that can be used independently with any Configurate loader.\nSince NBT needs to maintain type, two different kinds of serializers are provided:\n- **Type-Safe Serializers** preserve exact numeric types by appending SNBT-style suffixes (`b`, `s`, `i`, `l`, `f`, `d`).\n- **Type-Unsafe Serializers** relies on the configuration loader to deserialize to the correct numeric type. Some\n loaders (HOCON, JSON, YAML, etc.) do not preserve type and as such will not deserialize correctly.\n\nFor both kinds a static `TypeSerializerCollection` is accessible in `BinaryTagSerializer`\n\n#### A Note on Lists\nAdventure NBT lists can support heterogeneity (a list with multiple tag types), but for this a list must be explicitly\ncreated with support for it. When deserializing lists, the deserializer will always presume that a list that\ndeserializes to one type should be created as a non-heterogeneity supporting list. This means that if a list that\nsupports heterogeneity but only contains one tag type is serialized upon deserialization, a non-heterogeneity supporting\nlist will be returned.\n\n## Installation\n\n### Gradle (Kotlin DSL)\n\n```kotlin\nrepositories {\n    maven {\n        name = \"hboyd-dev-repo-releases\"\n        url = uri(\"https://repo.hboyd.dev/releases/\")\n    }\n    \n    // Required for snapshot releases\n    maven {\n        name = \"hboyd-dev-repo-snapshots\"\n        url = uri(\"https://repo.hboyd.dev/snapshots/\")\n    }\n}\n\ndependencies {\n    implementation(\"dev.hboyd:configurate-nbt:1.0.0\")\n}\n```\n\n## Examples\n\n### Saving using SNBT\n\n```java\n// Create a loader for a SNBT file\nSNBTConfigurationLoader loader = SNBTConfigurationLoader.builder()\n    .path(Paths.get(\"config.snbt\"))\n    .indent(4)  // Indentation level\n    .indentType(SNBTConfigurationLoader.IndentType.SPACE)\n    .legacyFormat(false)\n    .build();\n\n// Load and save work the same as binary NBT\nConfigurationNode node = loader.load();\nnode.node(\"key\").set(\"value\");\nloader.save(node);\n```\n\n### Saving an `ItemStack` in a YAML file with the Minecraft Paper API\n\n```java\n// Create YAML loader\nYamlConfigurationLoader loader = YamlConfigurationLoader.builder()\n        .defaultOptions(o -\u003e\n                o.serializers(o.serializers()\n                    .childBuilder()\n                    .registerAll(BinaryTagSerializer.TYPE_SAFE_SERIALIZERS)\n                    .build()))\n        .path(Path.of(\"example.yml\"))\n        .nodeStyle(NodeStyle.BLOCK)\n        .build();\n\n// Serialize ItemStack to NBT\nCompoundBinaryTag itemStackNBT = inventory.getItemInMainHand().serializeAsBytes();\n\n// Deserialize into Adventure's BinaryTag format\nBinaryTag itemStackTag = BinaryTagIO.reader().read(new ByteArrayInputStream(), BinaryTagIO.Compression.GZIP);\n\n// Save into Configurate node and save\nConfigurationNode itemStackTagNode = loader.createNode();\ntry {\n        node.node(\"item\").set(CompoundBinaryTag.class, itemStackTag);\n        loader.save(node);\n} catch (IOException e) {\n        throw new RuntimeException(e);\n}\n```\n\n# License\n\nThis project is licensed under the LGPLv3 License – see the [LICENSE.md](LICENSE.md) file for details","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhboyd2003%2Fconfigurate-nbt-temp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhboyd2003%2Fconfigurate-nbt-temp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhboyd2003%2Fconfigurate-nbt-temp/lists"}