{"id":30612387,"url":"https://github.com/misieur/hitbox-utils","last_synced_at":"2025-10-18T20:51:37.470Z","repository":{"id":311783221,"uuid":"1044950644","full_name":"misieur/hitbox-utils","owner":"misieur","description":"A BlockBench Plugin made to create and edit hitbox models Made by Misieur","archived":false,"fork":false,"pushed_at":"2025-08-26T14:42:01.000Z","size":34,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-26T20:02:42.634Z","etag":null,"topics":["blockbench","blockbench-plugin","minecraft"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/misieur.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-08-26T12:45:15.000Z","updated_at":"2025-08-26T15:29:21.000Z","dependencies_parsed_at":"2025-08-26T20:06:10.512Z","dependency_job_id":"6758150e-e8e8-41e2-89d7-cbf579d74427","html_url":"https://github.com/misieur/hitbox-utils","commit_stats":null,"previous_names":["misieur/hitbox-utils"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/misieur/hitbox-utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misieur%2Fhitbox-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misieur%2Fhitbox-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misieur%2Fhitbox-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misieur%2Fhitbox-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/misieur","download_url":"https://codeload.github.com/misieur/hitbox-utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/misieur%2Fhitbox-utils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272805572,"owners_count":24995916,"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","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"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":["blockbench","blockbench-plugin","minecraft"],"created_at":"2025-08-30T05:13:10.810Z","updated_at":"2025-10-18T20:51:37.463Z","avatar_url":"https://github.com/misieur.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HitBox Utils,\n## A BlockBench Plugin made to create and edit hitbox models Made by Misieur\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"720\" height=\"516\" alt=\"image\" src=\"https://github.com/user-attachments/assets/cac340c4-3e3b-4640-8a3c-01e67f54bc8f\" /\u003e\n\u003c/p\u003e\u003cbr\u003e\n\n## How to install\nSee https://github.com/misieur/hitbox-utils/releases\n\n[![](https://dcbadge.limes.pink/api/server/https://discord.gg/5VSeDcyJt7)](https://discord.gg/5VSeDcyJt7)\n\n## How to use it (for plugin developers)\nHere is an example of how to use the file in Java using the Bukkit API. You can also look at the generated files it is just json, the generated data are the one you need to use ingame not made for blockbench, everything is handled by the blockbench plugin.\n\n### Java\n\n```Java\npublic static void spawnHitBox(JsonObject hitboxData, Location spawnLocation) {\n  String type = hitboxData.get(\"type\").getAsString();\n  JsonArray hitboxArray = hitboxData.get(\"hitboxes\").getAsJsonArray();\n  switch (type) {\n    case \"entity\" -\u003e\n        hitboxArray.forEach(jsonElement -\u003e {  // You can also use happy ghasts here I am using shulkers riding item displays because it works on 1.21.2+ (below shulkers are not completely invisible)\n          if (jsonElement.getAsJsonObject().get(\"shulker_only\") != null \u0026\u0026 jsonElement.getAsJsonObject().get(\"shulker_only\").getAsBoolean()) {\n            JsonObject position = jsonElement.getAsJsonObject().get(\"position\").getAsJsonObject();\n            ItemDisplay itemDisplay = (ItemDisplay) spawnLocation.getWorld().spawnEntity(spawnLocation.clone().add(position.get(\"x\").getAsFloat(), position.get(\"y\").getAsFloat(), position.get(\"z\").getAsFloat()), EntityType.ITEM_DISPLAY);\n            Shulker shulkerEntity = (Shulker) spawnLocation.getWorld().spawnEntity(spawnLocation.clone().add(position.get(\"x\").getAsFloat(), position.get(\"y\").getAsFloat(), position.get(\"z\").getAsFloat()), EntityType.SHULKER);\n            itemDisplay.addPassenger(shulkerEntity);\n            shulkerEntity.getAttribute(Attribute.SCALE).setBaseValue(jsonElement.getAsJsonObject().get(\"size\").getAsFloat());\n            BlockFace blockFace = switch (jsonElement.getAsJsonObject().get(\"face\").getAsInt()) { // In Minecraft they use numbers but not using bukkit\n              case 3 -\u003e BlockFace.NORTH;\n              case 5 -\u003e BlockFace.WEST;\n              default -\u003e BlockFace.DOWN;\n            };\n            shulkerEntity.setAttachedFace(blockFace);\n            float peek = jsonElement.getAsJsonObject().get(\"height\").getAsInt()/-100f;\n            shulkerEntity.setPeek(peek);\n            shulkerEntity.setAI(false);\n            //shulkerEntity.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, PotionEffect.INFINITE_DURATION, 0, false, false));\n            shulkerEntity.setInvulnerable(true);\n          } else {\n            JsonObject position = jsonElement.getAsJsonObject().get(\"position\").getAsJsonObject();\n            HappyGhast happyGhast = (HappyGhast) spawnLocation.getWorld().spawnEntity(spawnLocation.clone().add(position.get(\"x\").getAsFloat(), position.get(\"y\").getAsFloat(), position.get(\"z\").getAsFloat()), EntityType.HAPPY_GHAST);\n            happyGhast.getAttribute(Attribute.SCALE).setBaseValue(jsonElement.getAsJsonObject().get(\"size\").getAsFloat() * 0.25);\n            happyGhast.setAI(false);\n            happyGhast.setInvulnerable(true);\n          }\n        });\n    case \"block\" -\u003e hitboxArray.forEach(jsonElement -\u003e {\n      JsonObject position = jsonElement.getAsJsonObject().get(\"position\").getAsJsonObject();\n      spawnLocation.getWorld().setType(spawnLocation.clone().add(position.get(\"x\").getAsFloat(), position.get(\"y\").getAsFloat(), position.get(\"z\").getAsFloat()), Material.BARRIER);\n    });\n    case \"interaction\" -\u003e hitboxArray.forEach(jsonElement -\u003e {\n      JsonObject position = jsonElement.getAsJsonObject().get(\"position\").getAsJsonObject();\n      Interaction entity = (Interaction) spawnLocation.getWorld().spawnEntity(spawnLocation.clone().add(position.get(\"x\").getAsFloat(), position.get(\"y\").getAsFloat(), position.get(\"z\").getAsFloat()), EntityType.INTERACTION);\n      entity.setInteractionHeight(jsonElement.getAsJsonObject().get(\"height\").getAsFloat());\n      entity.setInteractionWidth(jsonElement.getAsJsonObject().get(\"width\").getAsFloat());\n    });\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisieur%2Fhitbox-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmisieur%2Fhitbox-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmisieur%2Fhitbox-utils/lists"}