{"id":14969509,"url":"https://github.com/devsrsouza/kotlinbukkitapi","last_synced_at":"2025-08-20T03:31:04.217Z","repository":{"id":44207145,"uuid":"123673532","full_name":"DevSrSouza/KotlinBukkitAPI","owner":"DevSrSouza","description":"KotlinBukkitAPI is an API for Bukkit/SpigotAPI using the cool and nifty features Kotlin has to make your life more easier.","archived":false,"fork":false,"pushed_at":"2023-06-25T13:41:41.000Z","size":896,"stargazers_count":157,"open_issues_count":11,"forks_count":20,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-12-19T06:09:18.525Z","etag":null,"topics":["bukkit","dsl","kotlin","minecraft","spigot"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/DevSrSouza.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":"2018-03-03T08:25:34.000Z","updated_at":"2024-12-13T09:15:33.000Z","dependencies_parsed_at":"2024-09-23T05:01:22.574Z","dependency_job_id":"38c94aa8-8d12-44cf-b80e-e19bdb4cccd1","html_url":"https://github.com/DevSrSouza/KotlinBukkitAPI","commit_stats":{"total_commits":426,"total_committers":7,"mean_commits":"60.857142857142854","dds":"0.016431924882629123","last_synced_commit":"14874b92734a0273b4e7a748391a6e449bbaae1d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevSrSouza%2FKotlinBukkitAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevSrSouza%2FKotlinBukkitAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevSrSouza%2FKotlinBukkitAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DevSrSouza%2FKotlinBukkitAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DevSrSouza","download_url":"https://codeload.github.com/DevSrSouza/KotlinBukkitAPI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230388131,"owners_count":18217755,"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":["bukkit","dsl","kotlin","minecraft","spigot"],"created_at":"2024-09-24T13:41:57.850Z","updated_at":"2024-12-19T06:09:22.301Z","avatar_url":"https://github.com/DevSrSouza.png","language":"Kotlin","funding_links":["https://www.buymeacoffee.com/DevSrSouza"],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/DevSrSouza/KotlinBukkitAPI/raw/master/icon.png?size=96\" alt=\"KotlinBukkitAPI\" title=\"KotlinBukkitAPI\" align=\"right\"/\u003e\n\n## KotlinBukkitAPI\n\n![Kotlin version](https://img.shields.io/static/v1?label=Kotlin\u0026message=1.5.0\u0026color=Orange\u0026style=for-the-badge)\n[![GitHub stars](https://img.shields.io/github/stars/DevSrSouza/KotlinBukkitAPI.svg?style=for-the-badge\u0026color=orange\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAADYklEQVR4XuWbvbPNQBiHn9uo6NFT0GEYHa0/QofOR2MojI8xxmh8VFwVf4RaxTB0KOhdPRUF8zPJmdy1J3l3N9ndxDb3zr0n2exzfu/zJjk5G5Qdh5vp35c6jI1SEzfzbgK/gXOljqMkgF3A1wbAXuBHCQglAehdf9wsWr8rDdlHSQCq+0MdBxzJvnqgFADJ752zYAHILsNSABT3Mw4A/S27DEsAaOW30wHwHcguwxIAuvJzyz67DEsA6MrPBaD/ZZVhbgA++bkQssowNwCf/FwAWWWYE8A6+bkAssowJ4A++RWTYU4AffIrJsNcACzyKyLDXAAs8isiwxwArPIrIsMcAELkl12GOQCEyC+7DAUgpj5LXLpPMeemAOwAXgLHp5ih4n2+Ak62JbCnuRmhn//D2ALUmre6DlAClAQlYsnjJ3ACeK1FuhI8CzxZ8uqbu06rG7C+LrBkKf5zpekDsFQp/pUeoBJYjXXnAUuT4kp6bnn3nQgtRYrbpBcCQK9dghR7b7RaToXnLMXB22sWAHOVold6oSXQvn5uUlwrvVgA2m4uUuyVXgqAuUgx6NMliwN8t6rcDzZrOXselF5qArR9rVI0SW8MANpHbVI0S28sADVJMUh6YwKoRYpB0hsbwEHgQ2ED6hg+xR5DTBfoznUDuB47+Ujb6Rhuxu4rFcBH4EDs5CNtp3dfKYgaKQBqiH+76OgySAFQQ/xbANFlkAKghvi3AKLLIBZATfFPKoNYADXFP6kMYgHUFP+kMogBUGP8o8sgBsBY8f8MXGqO/D6wP6qRb98ouBvEAEiNvx6DuwU8BH41x69L7AvANUBPlMSO4G4QCiAl/vpqzDPgKvBtzQp3A3eB0wmP8gedFIUCiI3/G+A88Nb41h4DHgFHja93r0/M1wahAELjr3f6CvC8+W5QyHp0bEqCEqFkWEdQGYQACIm/blI8AG4DqvmUISfIDXKE9dkFcxmEALDG/wVwEfiSsmrPtvsaqKcM+zV3gxAAQ/Fv25oATDkEYKhtmsvACqAv/r62NiUA7dvSNk1lYAXgi7+lrU0Noq9tmsrACsCNf2hbmxqEr22aysACoBv/lLY2NQRf2xwsAwsARUlnb2O1talBdNvmnaEbphYA94CnE7S1qUGobeozzMt9E/0BUX274HXoySkAAAAASUVORK5CYII=)](https://github.com/DevSrSouza/KotlinBukkitAPI/stargazers)\n[![Github Issues](https://img.shields.io/github/issues-raw/DevSrSouza/KotlinBukkitAPI.svg?style=for-the-badge\u0026color=orange\u0026logo=data:image/png;base64,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)](https://github.com/DevSrSouza/KotlinBukkitAPI/issues)\n[![GitHub last commit](https://img.shields.io/github/last-commit/DevSrSouza/KotlinBukkitAPI/master.svg?style=for-the-badge\u0026color=orange\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAABACAYAAABP97SyAAADZElEQVRoQ+2ZSciOURTHf1+ZZdoZMpdhIUOyJGTe2CpLyRhKYYGwQUghQ1nJ3sZQhpIQGbKhEMk8LMg8Rf/PfdT3ed/nTs/z9Xi7d/Uuzv+c8z//59577nmbaPDV1OD8SAT/d4WTgknBilcgfaIVF8iaXlLQWqKKGyQFKy6QNb2koLVEFTdICkYI1B2YA0wBxgKDgB7G3zvgIXATOAccB95HxKoLLUPBocA6YB7QxTHpT8BRYCvwwBHjZFYkwY7AZmAV0N4p+r9G34AdwCZAv6NXUQQHAseAMdEZ/XFwHZgLPIn1VwTBkWYf9Y5NphX+GTAZuBvjN5Zgf+AK0CcmiRysFJwAPA/1H0NQ++wSMD40uCPuMjAR+OFo38IshuAGcxiExPXF6FTWCeu9Qgn2A+4DnRwi6q47aPbpI2OvO1H34yJgtIOPj4Cun5cOtoUouBtYYQn2GVgOHM6xU4EXAvJnK9Z2YE1bENR99wLomRNM5GYAFxwTmgScspB8A/QFvjv6bDYL+URnm9YqL84Ci3K1sPpc91uSnw6c9iX4ywfgYKs9N87BrrWJii2sy550di+nRROUEjpUQtYSYF8IsB6mDILDgHuBSY4A7gRia8LKIKhDKLRRFvZLIuhRgTIUHB7RIKtxv+2Rv9W0DIKLgQPWyLUNlgF7ArFttgdvmRGF7+msYgs7qmiCvv5mAScsoJCrYimw1+J3GnDGJ+GQTkYnnd5nvXIC6SScCZx3TEYP25OAfNdbrwE1+aW3akpgl5m95OUvkiuBQznNhAqsy32nhZzibAPWOhbsr1mIggKr6dVzqbNDQO0rkdR4UKNCrSHAVPOScNlzei4J88ohXguTUIJyst5M0XxjhthLOSnovWIItgMumpmJd2APgGLoOfXTAxP9iWYOtOmvmk82JL4N89gUUO/PoBWjYBZQDbL2V9GTtadmbBjauDfnVwRB+RlgBr/6D6KIdc0MfkUyahVFUEl0ADYCq83vkMS+Apq9bPG97+oFK5JgFmOwGQ7NB7o6svwAHDEnZTZ5c4Tmm5VBMIvYDVBbl/19JuLZoOqtuRNvAGfNwEkkC19lEiw82RCHiWBI1aqESQpWSY2QXJKCIVWrEiYpWCU1QnJJCoZUrUqYpGCV1AjJJSkYUrUqYRpewd/nrH4569+7pgAAAABJRU5ErkJggg==)](https://github.com/DevSrSouza/KotlinBukkitAPI/commit)\n[![Discord](https://img.shields.io/discord/597530273009106975?style=for-the-badge\u0026color=ORANGE\u0026label=Discord)](https://discord.gg/HhucBqk)\n[![Minecraft Server Running with KotlinBukkitAPI](https://img.shields.io/bstats/servers/6356?color=ORANGE\u0026style=for-the-badge)](https://bstats.org/plugin/bukkit/KotlinBukkitAPI/6356)\n[![MIT License](https://img.shields.io/badge/license-MIT-blue.svg?color=ORANGE\u0026style=for-the-badge)](https://choosealicense.com/licenses/mit)\n[![Build Status](https://img.shields.io/jenkins/build?jobUrl=http%3A%2F%2Fjenkins.devsrsouza.com.br%2Fjob%2FKotlinBukkitAPI%2F\u0026style=for-the-badge)](http://jenkins.devsrsouza.com.br/job/KotlinBukkitAPI/)\n\nKotlinBukkitAPI is an API for Bukkit/SpigotAPI using the cool and nifty features Kotlin has to make your life more easier.\n\n* Need help? contact me on [Twitter](https://twitter.com/DevSrSouza) or join the [Discord](https://discord.gg/HhucBqk)\n\n## ANNOUNCEMENT\n\n**Developer returns to the project! You can find a lot more information at [Discord](https://discord.gg/HhucBqk), join and chat with me!**\n\n### Contents:\n  \n  * [Documentation](https://github.com/DevSrSouza/KotlinBukkitAPI/wiki/)\n  * [Issue reporting](https://github.com/DevSrSouza/KotlinBukkitAPI/issues)\n  * [Dev builds (download)](http://jenkins.devsrsouza.com.br/job/KotlinBukkitAPI/)\n  * [Starter project](https://github.com/KotlinMinecraft/KBAPI-StarterProject/)\n  * [Setup for development](https://github.com/DevSrSouza/KotlinBukkitAPI/wiki/Getting-Started)\n  * [Example plugins](https://github.com/KotlinMinecraft)\n\n# Samples\n\n## [We have more Samples in the Documentation](https://github.com/DevSrSouza/KotlinBukkitAPI/wiki/)\n\nKotlinBukkitAPI goes beyond this samples, and you can find all of it in the [wiki/documentation](https://github.com/DevSrSouza/KotlinBukkitAPI/wiki/).\n\nEvent DSL sample\n```kotlin\nplugin.events {\n  event\u003cPlayerJoinEvent\u003e {\n    player.msg(\"\u00263Welcome ${player.name}\".translateColor()) \n  }\n  \n  event\u003cPlayerQuitEvent\u003e {\n    broadcast(\"\u0026eThe player \u0026c${player.name} \u0026eleft :(\".translateColor())\n  }\n}\n```\n\nSimple Command DSL example\n```kotlin\nplugin.simpleCommand(\"twitter\") {\n  sender.msg(\"\u0026eFollow me on Twitter :D \u0026ahttps://twitter.com/DevSrSouza\".translateColor())\n}\n```\n\nItem meta DSL and other stuff\n```kotlin\nval gem = item(Material.DIAMOND).apply {\n  amount = 5\n  meta\u003cItemMeta\u003e {\n    displayName = \"\u0026bGem\".translateColor()\n  }\n}\nval encbook = item(Material.ENCHANTED_BOOK).meta\u003cEnchantmentStorageMeta\u003e {\n  displayName = \"\u00264\u0026lThe powerful BOOK\".translateColor()\n  addStoredEnchant(Enchantment.DAMAGE_ALL, 10, true) // putting sharpness 10 to the book\n}\n```\n\nAnother approach:\n```\nval gem = item(Material.DIAMOND, amount = 5).displayName(\"\u0026bGem\".translateColor())\n\nval encbook = metadataItem\u003cEnchantmentStorageMeta\u003e(Material.ENCHANTED_BOOK) {\n  displayName = \"\u00264\u0026lThe powerful BOOK\".translateColor()\n    addStoredEnchant(Enchantment.DAMAGE_ALL, 10, true) // putting sharpness 10 to the book\n}\n```\n\nMenu creator DSL\n```kotlin\nval myMenu = menu(+\"\u0026cWarps\", 3, true) {\n\n  val arenaPvP = item(Material.DIAMOND_SWORD) {\n      addEnchant(Enchantment.DAMAGE_ALL, 5, true)\n      displayName = \"\u00264Arena PvP\".translateColor()\n  }\n\n  slot(2, 4, arenaPvP) { // Line, Slot\n    onClick {\n      player.teleport(Location(player.world, 250, 70, -355))\n      close() // close the menu\n    }\n  }\n\n  slot(2, 6, item(Material.GOLD).displayName(\"\u00266Shop\".translateColor())) {\n    onClick {\n      player.teleport(Location(player.world, 2399, 70, -1234))\n      close() // close the menu\n    }\n  }\n\n  // when the menu renders to a player, will show the Paper item with their name.\n  slot(3, 9, item(Material.PAPER).displayName(\"Hello {player}\")) {\n    onRender {\n      showingItem?.meta\u003cItemMeta\u003e {\n         displayName = displayName.replace(\"{player}\", player.name)\n      } \n    }\n  }\n}\n\n// open to player\nmyMenu.openToPlayer(player)\n```\n\nYou can find more examples in the [Documentation](https://github.com/DevSrSouza/KotlinBukkitAPI/wiki/)\n\n# Project\n\n## Modules\n\n![](.github/images/module-graph.svg)\n\n| Module            | Description                                                                                                                                                                             |\n|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Architecture      | KotlinPlugin and Lifecycle aware APIs, inspired in Android Lifecycle Components                                                                                                         |\n| Extensions        | Extensions for bunch of Bukkit types like block, player, inventory, text, permissions, etc                                                                                              |\n| Utility           | Utility types and APIs for Kotlin and Bukkit development, for example, ExpiratioList, OnlinePlayerCollections, Kotlin Duration tick support.                                            |\n| Coroutines        | Adds Kotlin Coroutines Dispatcher for Bukkit Scheduler API as well as adding Flow APIs and Structured Concurrency (CoroutineScope bounded to Lifecycle of the plugin or Manager class). |\n| Exposed           | Extensions for SQL framework [Exposed](https://github.com/JetBrains/Exposed/)                                                                                                           |\n| Serialization     | Extensions for [Kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization)                                                                                                 |\n| Menu              | DSL to create Menus easy and support for Preview in IntelliJ by using the [Plugin](https://github.com/DevSrSouza/KotlinBukkitAPI-Tooling#menu-preview)                                  |\n| Command Legacy    | DSL to create Commands and Sub Commands with Parameter type safe, auto registering and support for Coroutines                                                                           |\n| Scoreboard Legacy | DSL to create Scoreboard with support for handling updates easily                                                                                                                       |\n\n## Consider donate\n\n\u003ca href=\"https://www.buymeacoffee.com/DevSrSouza\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/lato-orange.png\" alt=\"Buy Me A Coffee\" style=\"height: 51px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n![logo](logo.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevsrsouza%2Fkotlinbukkitapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevsrsouza%2Fkotlinbukkitapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevsrsouza%2Fkotlinbukkitapi/lists"}