{"id":27127699,"url":"https://github.com/nollyscafe/nollyapi","last_synced_at":"2025-04-07T17:57:37.157Z","repository":{"id":275368733,"uuid":"925470800","full_name":"NollysCafe/nollyapi","owner":"NollysCafe","description":"NollyAPI is a versatile API for Minecraft plugin developers, providing tools for custom item handling, WebSocket management, HTTP routes, and more.","archived":false,"fork":false,"pushed_at":"2025-04-05T19:20:26.000Z","size":1448,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T19:28:56.616Z","etag":null,"topics":["api","custom-items","kotlin","ktor","minecraft","minecraft-plugin","nollyapi","open-source","server","web-development","websockets"],"latest_commit_sha":null,"homepage":"https://nollyscafe.github.io/nollyapi/","language":"Kotlin","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/NollysCafe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","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},"funding":{"github":"TheNolle","patreon":"_nolly","ko_fi":"nolly__","buy_me_a_coffee":"nolly.cafe","custom":["https://paypal.me/NollyCafe","https://nexus.thenolle.com"]}},"created_at":"2025-02-01T00:16:19.000Z","updated_at":"2025-04-05T19:20:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"947a9915-8f58-4c4a-b904-4d90a6b3a763","html_url":"https://github.com/NollysCafe/nollyapi","commit_stats":null,"previous_names":["thenolle/nollys-api-minecraft","nollyscafe/nollyapi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NollysCafe%2Fnollyapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NollysCafe%2Fnollyapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NollysCafe%2Fnollyapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NollysCafe%2Fnollyapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NollysCafe","download_url":"https://codeload.github.com/NollysCafe/nollyapi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247704511,"owners_count":20982293,"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":["api","custom-items","kotlin","ktor","minecraft","minecraft-plugin","nollyapi","open-source","server","web-development","websockets"],"created_at":"2025-04-07T17:57:36.642Z","updated_at":"2025-04-07T17:57:37.136Z","avatar_url":"https://github.com/NollysCafe.png","language":"Kotlin","funding_links":["https://github.com/sponsors/TheNolle","https://patreon.com/_nolly","https://ko-fi.com/nolly__","https://buymeacoffee.com/nolly.cafe","https://paypal.me/NollyCafe","https://nexus.thenolle.com","https://www.patreon.com/_nolly","https://www.buymeacoffee.com/nolly.cafe"],"categories":[],"sub_categories":[],"readme":"# NollyAPI\n\nNollyAPI is a versatile and robust API designed for Minecraft plugin developers, providing utilities and tools to streamline development. From custom item handling to WebSocket management, NollyAPI offers a range of features that integrate seamlessly with Minecraft servers. It also supports HTTP routes, middleware, and WebSocket services, enhancing the overall server functionality.\n\n[Visit the NollyAPI Nexus Repository](https://nexus.thenolle.com/#browse/browse:nollyapi)\n\n---\n\n## Features\n\n- **Custom Item Handling**: Easily create and manage custom items with a variety of attributes (e.g., tools, armor, food, etc.)\n- **WebSocket Support**: Build and manage WebSocket sessions, broadcast messages, and handle events.\n- **HTTP Routes**: Define routes with middleware support using Ktor to create web-based services.\n- **Dynamic API Responses**: Handle API responses with dynamic data structures and detailed error reporting.\n- **Nexus Integration**: Package and distribute your API via [Nolly's Nexus Repository](https://nexus.thenolle.com/#browse/browse:nollyapi).\n- **Extensive KDoc Documentation**: Every function and class comes with detailed documentation to guide developers.\n\n---\n\n## Installation\n\nTo install NollyAPI in your project, add the following Maven dependency in your `pom.xml` or Gradle build script:\n\n### Maven\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.thenolle.plugin\u003c/groupId\u003e\n    \u003cartifactId\u003enollyapi\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0@jar\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n### Gradle\n\n```gradle\ndependencies {\n    implementation 'com.thenolle.plugin:nollyapi:1.0.0@jar'\n}\n```\n\nYou can also download the JAR from the [Nexus Repository](https://nexus.thenolle.com/#browse/browse:nollyapi).\n\n---\n\n## Usage\n\n### Creating Custom Items\n\nNollyAPI provides an easy-to-use builder for creating custom items. For example:\n\n```kotlin\nval customItem = ArmorItem(\"Epic Helmet\", Material.DIAMOND_HELMET)\n    .armor(5.0) // Set armor points\n    .lore(\"This helmet grants you the power of the gods.\")\n    .glow()\n    .build(\"epic_helmet\")\n```\n\n### Working with WebSockets\n\nNollyAPI makes it simple to handle WebSocket connections. Here's an example of setting up a WebSocket server with event handlers:\n\n```kotlin\nwebSocket(\"/chat\") {\n    onConnect {\n        println(\"New WebSocket connection!\")\n    }\n    onMessage { message -\u003e\n        println(\"Received message: $message\")\n    }\n    onClose { reason -\u003e\n        println(\"Connection closed: $reason\")\n    }\n}\n```\n\n### Defining HTTP Routes\n\nDefine your HTTP routes using the `WebRouter` class:\n\n```kotlin\nval router = WebRouter(\"/api\")\n\nrouter.get(\"/status\") {\n    json(mapOf(\"status\" to \"OK\"))\n}\n\nrouter.post(\"/submit\") {\n    val data: MyRequestData = body() // Parse request body\n    json(mapOf(\"received\" to data))\n}\n```\n\n---\n\n## Contributing\n\nWe welcome contributions to NollyAPI! If you'd like to help improve the project, feel free to fork the repository and submit a pull request.\n\nHere’s how you can contribute:\n1. **Fork** the repository.\n2. **Clone** your fork locally.\n3. Make your changes in a new branch.\n4. **Push** your changes to your fork.\n5. **Create a pull request** from your fork to the main repository.\n\nBefore submitting a pull request, make sure to run the tests to verify everything is working correctly.\n\n---\n\n## License\n\nNollyAPI is licensed under the `NFE-OSL v1` License. See the [LICENSE](./LICENSE) file for more details.\n\n---\n\n## Acknowledgments\n\n- Special thanks to the [Ktor](https://ktor.io/) team for providing the underlying server framework.\n\n---\n\n## Documentation\n\nThe API is fully documented with [KDoc](https://kotlinlang.org/docs/kotlin-doc.html) for easy reference. You can find detailed documentation for each class, function, and property within the project files.\n\nFor more information on how to use the different features of NollyAPI, explore the source code and the Javadoc-style comments within the classes.\n\n---\n\n## Support\n\nIf you encounter any issues or need support, feel free to open an issue on the [GitHub repository](https://github.com/nollyscafe/nollyapi/issues). We will do our best to assist you.\n\n---\n\n## Support Me\n\nIf you enjoy my work and would like to support the development of **NollyAPI**, you can contribute in several ways:\n\n- **Become a sponsor on GitHub!** [GitHub Sponsors](https://github.com/sponsors/TheNolle)\n- **Support me on Patreon** [Patreon](https://www.patreon.com/_nolly) — Get exclusive content and perks!\n- **Buy me a coffee** [Buy Me A Coffee](https://www.buymeacoffee.com/nolly.cafe) — Your support keeps me caffeinated!\n- **Donate directly via PayPal** [PayPal](https://paypal.me/NollyCafe)\n\nEvery bit of support helps me to continue developing and maintaining the project. Thank you so much for your generosity!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnollyscafe%2Fnollyapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnollyscafe%2Fnollyapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnollyscafe%2Fnollyapi/lists"}