{"id":15174242,"url":"https://github.com/nahkd123/bukkitcommandkit","last_synced_at":"2026-02-03T09:02:54.493Z","repository":{"id":251630755,"uuid":"784410744","full_name":"nahkd123/bukkitcommandkit","owner":"nahkd123","description":"Annotation processor for generating Bukkit command classes","archived":false,"fork":false,"pushed_at":"2024-08-04T15:37:30.000Z","size":31,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-13T12:51:57.543Z","etag":null,"topics":["annotation","annotation-processing","annotation-processor","bukkit","bukkit-commands","command","java","java-annotation"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nahkd123.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-04-09T19:50:09.000Z","updated_at":"2024-12-10T07:24:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"0bfdae3d-21db-4a3c-9a0a-fbee45d7e986","html_url":"https://github.com/nahkd123/bukkitcommandkit","commit_stats":{"total_commits":3,"total_committers":1,"mean_commits":3.0,"dds":0.0,"last_synced_commit":"89f90b1cb24ee9bd02771540110f32ac4e09514b"},"previous_names":["nahkd123/bukkitcommandkit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nahkd123/bukkitcommandkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nahkd123%2Fbukkitcommandkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nahkd123%2Fbukkitcommandkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nahkd123%2Fbukkitcommandkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nahkd123%2Fbukkitcommandkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nahkd123","download_url":"https://codeload.github.com/nahkd123/bukkitcommandkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nahkd123%2Fbukkitcommandkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29039341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T08:41:49.363Z","status":"ssl_error","status_checked_at":"2026-02-03T08:40:19.255Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["annotation","annotation-processing","annotation-processor","bukkit","bukkit-commands","command","java","java-annotation"],"created_at":"2024-09-27T11:41:24.998Z","updated_at":"2026-02-03T09:02:54.472Z","avatar_url":"https://github.com/nahkd123.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nahkd's BukkitCommandKit\nAnnotation processor for generating Bukkit commands.\n\nThis was made with fast prototyping in mind. However, this does not includes a full command system like most command frameworks/libraries, so you might have a better chance at writing your own command parsing system if you are making a big plugin.\n\nPlease note that annotation processing is much different than runtime reflection; annotation processing only do processing during compile time and generates new classes, while reflection can be quite slow. **You shouldn't shade BukkitCommandKit**, because there is no need to do that ;) (although it is just 35KiB in size).\n\n## See BukkitCommandKit in action!\n```java\npublic class MyPlugin extends JavaPlugin {\n\t@Override\n\tpublic void onEnable() {\n\t\tgetCommand(\"mycommand\").setExecutor(new MyCommandGenerated(new MyCommand()));\n\t\t// Try these commands:\n\t\t// /mycommand hello (run as console and player)\n\t\t// /mycommand get \u003cplayer name\u003e item DIAMOND 32\n\t\t// /mycommand get \u003cplayer name\u003e meow\n\t}\n}\n```\n\n```java\n@Command(permission = \"bukkitcommandkit.mycommand\")\npublic class MyCommand {\n\t@Subcommand(\"hello\")\n\tpublic void hello(@Sender CommandSender sender) {\n\t\tsender.sendMessage(\"Hi!\");\n\t}\n\n\t@Subcommand(\"hello\")\n\tpublic void hello(@Sender Player player) {\n\t\tplayer.sendMessage(\"Hi \" + player.getDisplayName() + \"!\");\n\t}\n\n\t@Subcommand(\"get \u003cplayer\u003e item \u003ctype\u003e \u003camount\u003e\")\n\tpublic void getItem(Player player, Material type, @ArgConstraint(min = 1, max = 64) int amount) {\n\t\tItemStack stack = new ItemStack(type, amount);\n\t\tplayer.getInventory().addItem(stack);\n\t}\n\n\t@Subcommand(\n\t\tvalue = \"get \u003cplayer\u003e item \u003ctype\u003e\",\n\t\tsampleUsages = {\n\t\t\t\"get nahkd123 item DIAMOND\",\n\t\t\t\"get @s item STONE\"\n\t\t})\n\tpublic void getItem(Player player, Material type) {\n\t\tgetItem(player, type, 1);\n\t}\n\n\t@Subcommand(\n\t\tvalue = \"get \u003cplayer\u003e meow\",\n\t\tpermission = \"bukkitcommandkit.mycommand.meow\")\n\tpublic void getMeow(Player player) {\n\t\tplayer.playSound(player, Sound.ENTITY_CAT_AMBIENT, 1f, 1f);\n\t\tplayer.sendMessage(\"Meow!\");\n\t}\n}\n```\n\n\u003e **Note:** `MyCommandGenerated` is a generated class; you can try Ctrl-clicking it to see the generated code!\n\n## Use BukkitCommandKit\n### Maven\n```xml\n\u003c!-- Include Jitpack if you haven't done this --\u003e\n\u003crepository\u003e\n    \u003cid\u003ejitpack\u003c/id\u003e\n    \u003curl\u003ehttps://jitpack.io/\u003c/url\u003e\n\u003c/repository\u003e\n```\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.nahkd123.bukkitcommandkit\u003c/groupId\u003e\n    \u003cartifactId\u003ebukkitcommandkit-annotations\u003c/artifactId\u003e\n    \u003cversion\u003emain-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Gradle\n```groovy\nrepositories {\n    maven { url 'https://jitpack.io/' }\n}\n\ndependencies {\n    implementation annotationProcessor('io.github.nahkd123.bukkitcommandkit:bukkitcommandkit-annotations:main-SNAPSHOT')\n}\n```\n\n## License\nMIT License. I'm not mad if you forked this project (in fact, you should fork and improve it!).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnahkd123%2Fbukkitcommandkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnahkd123%2Fbukkitcommandkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnahkd123%2Fbukkitcommandkit/lists"}