{"id":14969487,"url":"https://github.com/shynixn/mccoroutine","last_synced_at":"2025-04-12T21:25:45.417Z","repository":{"id":40451524,"uuid":"156845738","full_name":"Shynixn/MCCoroutine","owner":"Shynixn","description":"MCCoroutine is a library, which adds extensive support for Kotlin Coroutines for Minecraft Server environments.","archived":false,"fork":false,"pushed_at":"2025-02-11T20:12:10.000Z","size":39831,"stargazers_count":227,"open_issues_count":0,"forks_count":19,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-04T01:06:36.047Z","etag":null,"topics":["async","await","bukkit","bungeecord","coroutine","extension","functions","hacktoberfest","kotlin","kotlin-coroutines","library","minecraft","minestom-library","plugin","server","spigot","sponge","suspend","velocity","waterfall"],"latest_commit_sha":null,"homepage":"","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/Shynixn.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-11-09T10:19:30.000Z","updated_at":"2025-03-13T04:42:20.000Z","dependencies_parsed_at":"2024-01-03T21:24:18.771Z","dependency_job_id":"1fa1bb66-51a4-4bb5-a890-e1d8c7755792","html_url":"https://github.com/Shynixn/MCCoroutine","commit_stats":{"total_commits":348,"total_committers":10,"mean_commits":34.8,"dds":0.2729885057471264,"last_synced_commit":"c7de1e8b6409351a67a74d1c2c87887e98f9e989"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shynixn%2FMCCoroutine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shynixn%2FMCCoroutine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shynixn%2FMCCoroutine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shynixn%2FMCCoroutine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shynixn","download_url":"https://codeload.github.com/Shynixn/MCCoroutine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248633332,"owners_count":21136857,"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":["async","await","bukkit","bungeecord","coroutine","extension","functions","hacktoberfest","kotlin","kotlin-coroutines","library","minecraft","minestom-library","plugin","server","spigot","sponge","suspend","velocity","waterfall"],"created_at":"2024-09-24T13:41:55.960Z","updated_at":"2025-04-12T21:25:45.380Z","avatar_url":"https://github.com/Shynixn.png","language":"Kotlin","readme":"# MCCoroutine [![Build Status](https://maven-badges.herokuapp.com/maven-central/com.github.shynixn.mccoroutine/mccoroutine-bukkit-api/badge.svg?style=flat-square)](https://maven-badges.herokuapp.com/maven-central/com.github.shynixn.mccoroutine/mccoroutine-bukkit-api) [![GitHub license](http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://raw.githubusercontent.com/Shynixn/MCCoroutine/master/LICENSE)\n\n| branch        | status        |  version | download |\n| ------------- | ------------- |  --------| ---------| \n| master        | [![Build Status](https://github.com/Shynixn/MCCoroutine/workflows/CI/badge.svg?branch=master)](https://github.com/Shynixn/MCCoroutine/actions)| ![GitHub license](https://img.shields.io/nexus/r/https/oss.sonatype.org/com.github.shynixn.mccoroutine/mccoroutine-bukkit-api.svg?style=flat-square)  |[Download latest release](https://repo1.maven.org/maven2/com/github/shynixn/mccoroutine/)|\n| development   | [![Build Status](https://github.com/Shynixn/MCCoroutine/workflows/CI/badge.svg?branch=development)](https://github.com/Shynixn/MCCoroutine/actions) |![GitHub license](https://img.shields.io/nexus/s/https/oss.sonatype.org/com.github.shynixn.mccoroutine/mccoroutine-bukkit-api.svg?style=flat-square) |  [Download snapshots](https://oss.sonatype.org/content/repositories/snapshots/com/github/shynixn/mccoroutine/) |\n\nMCCoroutine is a library, which adds extensive support for Kotlin Coroutines for Minecraft Server environments.\n\nPlugins for game servers and proxy servers often need to perform asynchronous operations (e.g. accessing databases) to\nbe scalable for a large amount of players. MCCoroutine brings the full power of Kotlin Coroutines to them by extending\nthe existing APIs with suspendable commands, events and schedules.\n\n**Supported Game Servers:**\n\n* CraftBukkit\n* Fabric\n* Folia\n* Minestom\n* Paper\n* Spigot\n* SpongeVanilla v7.x.x\n* SpongeForge v7.x.x\n\n**Supported Proxies:**\n\n* BungeeCord\n* Waterfall\n* Velocity\n\n**Examples:**\n\n```kotlin\n// Allows to prepend suspend to any listener function.\nclass PlayerConnectListener : Listener {\n    @EventHandler\n    suspend fun onPlayerJoinEvent(playerJoinEvent: PlayerJoinEvent) {\n    }\n}\n```\n\n```kotlin\n// Adds a new interface for suspendable command executors.\nclass AdminCommandExecutor: SuspendingCommandExecutor {\n    override suspend fun onCommand(sender: CommandSender,command: Command,label: String,args: Array\u003cout String\u003e): Boolean {\n        return false\n    }\n}\n```\n\n```kotlin\n// Adds a new extension function to switch into a suspendable plugin coroutine.\nfun bar() {\n    plugin.launch {\n        delay(1000)\n        bob()\n    }\n}\n\nprivate suspend fun bob() {\n}\n```\n\n## Getting started\n\n* [Wiki and User Guide](https://shynixn.github.io/MCCoroutine/wiki/site/)\n\n## Resources\n\n* [MCCoroutine JavaDocs for the Bukkit-API](https://shynixn.github.io/MCCoroutine/apidocs/mccoroutine-root/com.github.shynixn.mccoroutine.bukkit/index.html)\n* [MCCoroutine JavaDocs for the BungeeCord-API](https://shynixn.github.io/MCCoroutine/apidocs/mccoroutine-root/com.github.shynixn.mccoroutine.bungeecord/index.html)\n* [MCCoroutine JavaDocs for the Fabric-API](https://shynixn.github.io/MCCoroutine/apidocs/mccoroutine-root/com.github.shynixn.mccoroutine.fabric/index.html)\n* [MCCoroutine JavaDocs for the Folia-API](https://shynixn.github.io/MCCoroutine/apidocs/mccoroutine-root/com.github.shynixn.mccoroutine.folia/index.html)\n* [MCCoroutine JavaDocs for the Minestom-API](https://shynixn.github.io/MCCoroutine/apidocs/mccoroutine-root/com.github.shynixn.mccoroutine.minestom/index.html)\n* [MCCoroutine JavaDocs for the Sponge-v7.x.x-API](https://shynixn.github.io/MCCoroutine/apidocs/mccoroutine-root/com.github.shynixn.mccoroutine.sponge/index.html)\n* [MCCoroutine JavaDocs for the Velocity-API](https://shynixn.github.io/MCCoroutine/apidocs/mccoroutine-root/com.github.shynixn.mccoroutine.velocity/index.html)\n* [Article on custom frameworks](https://github.com/Shynixn/MCCoroutine/blob/master/ARTICLE.md)\n   \n## Features\n\n* Full implementation of Kotlin Coroutines (async/await)\n* Extension functions for already established functions\n* Connection to events, commands, schedulers\n* Coroutine LifeCycle scope for plugins (supports plugin reloading)\n* No NMS\n* Support for Minecraft 1.7 - Latest\n* Support for Java 8+\n\n## Contributing\n\n* Fork the MCCoroutine project on GitHub and clone it to your local environment\n* Install Java 8+\n* Execute gradle sync for dependencies\n\n## Licence\n\nThe source code is licensed under the MIT license. \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshynixn%2Fmccoroutine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshynixn%2Fmccoroutine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshynixn%2Fmccoroutine/lists"}