{"id":17501933,"url":"https://github.com/itsdoot/solace","last_synced_at":"2025-03-28T19:23:25.105Z","repository":{"id":119858843,"uuid":"137396923","full_name":"ItsDoot/Solace","owner":"ItsDoot","description":"A Kotlin extension library for the Sponge ecosystem.","archived":false,"fork":false,"pushed_at":"2018-08-13T03:32:08.000Z","size":124,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-02T20:52:38.827Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/ItsDoot.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-06-14T18:54:10.000Z","updated_at":"2019-03-28T19:59:39.000Z","dependencies_parsed_at":"2023-06-03T10:15:40.837Z","dependency_job_id":null,"html_url":"https://github.com/ItsDoot/Solace","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ItsDoot%2FSolace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ItsDoot%2FSolace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ItsDoot%2FSolace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ItsDoot%2FSolace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ItsDoot","download_url":"https://codeload.github.com/ItsDoot/Solace/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246086166,"owners_count":20721294,"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":[],"created_at":"2024-10-19T20:33:16.911Z","updated_at":"2025-03-28T19:23:25.062Z","avatar_url":"https://github.com/ItsDoot.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Solace [![Release](https://jitpack.io/v/xDotDash/Solace.svg)](https://jitpack.io/#xDotDash/Solace) [![](https://jitpack.io/v/xDotDash/Solace/month.svg)](https://jitpack.io/#xDotDash/Solace)\n\nA Kotlin extension library for the Sponge ecosystem.\n\n## FAQ\n\n**Q: What's the difference between this library, and similar ones already available?**\n\nIn Solace *everything* is `inline`'d, making it easier for Ore reviewers to decompile and read projects which use Solace.\n\nAlso, even though Solace shades the Kotlin standard library and runtime into its jar,\n    it does so without causing issues with other plugins who do the same, because it relocates Kotlin to `solace.kotlin`.\n    \nThen, the only additional thing that projects that use Solace have to do,\n    is to relocate Kotlin references itself to `solace.kotiln`.\n\n## Gradle Setup\n\nTo use Solace, your `build.gradle` should look *similar* to this:\n\n```groovy\nplugins {\n    id \"org.jetbrains.kotlin.jvm\" version \"\u003cKOTLIN VERSION\u003e\"\n    id \"org.jetbrains.kotlin.kapt\" version \"\u003cKOTLIN VERSION\u003e\"\n    \n    id \"com.github.johnrengelman.shadow\" version \"2.0.4\"\n}\n\nconfigurations {\n    compile.extendsFrom(kapt)\n    compile.extendsFrom(shadow)\n}\n\nrepositories {\n    mavenCentral()\n    maven { url \"https://repo.spongepowered.org/maven/\" }\n    maven { url 'https://jitpack.io' }\n}\n\ndependencies {\n    compile \"org.jetbrains.kotlin:kotlin-stdlib-jdk8:\u003cKOTLIN VERSION\u003e\"\n    \n    kapt 'org.spongepowered:spongeapi:7.1.0-SNAPSHOT'\n    \n    compile 'com.github.xDotDash:solace:\u003cLATEST SOLACE VERSION\u003e'\n}\n\nshadowJar {\n    configurations = [project.configurations.shadow]\n\n    relocate 'kotlin', 'solace.kotlin'\n\n    classifier = null\n}\n\nbuild.dependsOn(shadowJar)\n\ncompileKotlin {\n    kotlinOptions {\n        jvmTarget = \"1.8\"\n    }\n}\n```\n\n**NOTE:** We aren't actually using the shadow plugin to shade Kotlin.\nWe are only using it to relocate references in our code, to use Solace's shaded Kotlin version.\n\n### Next:\n\nSimply add Solace as a dependency in your `@Plugin` like so:\n\n```kotlin\n@Plugin(id = \"my-plugin\", dependencies = [\n    Dependency(id = \"solace\", version = \"3.4.0\")\n])\nclass MyPlugin\n```\n\nFinally, for Server Admins to use your plugin, they must now plop the Solace jar for your required version into the `mods`/`plugins` folder as well.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsdoot%2Fsolace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsdoot%2Fsolace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsdoot%2Fsolace/lists"}