{"id":15016333,"url":"https://github.com/trigary/iodine","last_synced_at":"2025-04-12T09:32:38.052Z","repository":{"id":193083822,"uuid":"185633978","full_name":"Trigary/Iodine","owner":"Trigary","description":"A Minecraft mod - server plugin pair that adds custom GUIs and overlays. No more inventory and chat menus!","archived":false,"fork":false,"pushed_at":"2021-02-11T13:26:55.000Z","size":1726,"stargazers_count":24,"open_issues_count":12,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-11-07T12:04:18.163Z","etag":null,"topics":["bukkit","bukkit-plugin","forge","forge-mod","java","minecraft","minecraft-forge","minecraft-forge-mod","minecraft-mod"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Trigary.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}},"created_at":"2019-05-08T15:32:57.000Z","updated_at":"2023-04-03T00:43:57.000Z","dependencies_parsed_at":"2023-09-06T18:40:41.204Z","dependency_job_id":null,"html_url":"https://github.com/Trigary/Iodine","commit_stats":null,"previous_names":["trigary/iodine"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Trigary%2FIodine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Trigary%2FIodine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Trigary%2FIodine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Trigary%2FIodine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Trigary","download_url":"https://codeload.github.com/Trigary/Iodine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223510342,"owners_count":17157306,"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","bukkit-plugin","forge","forge-mod","java","minecraft","minecraft-forge","minecraft-forge-mod","minecraft-mod"],"created_at":"2024-09-24T19:48:42.747Z","updated_at":"2024-11-07T12:04:22.744Z","avatar_url":"https://github.com/Trigary.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Iodine\n\nA Minecraft mod - server plugin pair that adds custom GUIs and overlays.\nNo more inventory and chat menus!\nThis is a successor to [NickAc's Lithium project](https://www.spigotmc.org/threads/lithium.274569/).\n\nThis project is under heavy development currently.\nThere are no stable releases, but Bukkit and Forge builds are automatically generated after each commit.\nThese can be downloaded from the [Actions page](https://github.com/Trigary/Iodine/actions).\nThe plugin API is available through JitPack, see the [API section](#API).\n\nCurrently a Forge based client-side and a Bukkit based server-side is being worked on.\nAdding Fabric or especially Sponge support shouldn't be much trouble at all thanks\nto how the project is structured: Forge and Bukkit are abstracted away.\n\nWhat this project offers:\n\n - GUIs that can be viewed and interacted with by multiple players simultaneously\n - Clickable buttons, sliders, checkboxes, linear and grid layouts, etc.\n - Overlays which can be made into minimaps or custom status bars\n - An easy-to-use API for plugin developers to harness this all\n - Security: no remote code execution is done, the bandwidth is minimized as well\n - All this while keeping the Minecraftian feeling!\n\n## Showcase\n\nShowcase of some of the implemented elements:\n\n![](showcase/elements.png)\n\nShowcase of a proof-of-concept Factions minimap:\n\n![](showcase/minimap-menu.png)\n\n![](showcase/minimap-overlay.png)\n\n## API\n\nVery simple, \"Hello World\" sample code:\n\n```java\nIodineApi.get().createGui()\n    .addElement(GuiElements.TEXT, e -\u003e e.setText(\"Hello, world!\").setWidth(75))\n    .addElement(GuiElements.BUTTON, 0, 15, e -\u003e e.setText(\"Exit\").setWidth(75)\n        .onClicked((ee, p) -\u003e p.closeOpenGui()))\n    .onClosed((gui, p, byPlayer) -\u003e p.sendMessage(\n        byPlayer ? \"You pressed the escape key\" : \"You clicked the exit button\"))\n    .openFor(IodineApi.get().getPlayer(player.getUniqueId()));\n```\n\nReal examples can be found in the [showcase](showcase/src/main/java/hu/trigary/iodine/showcase) subproject.\n\nThe JavaDocs are available online, hosted on JitPack:\n[latest](https://javadoc.jitpack.io/com/github/Trigary/Iodine/api/master-SNAPSHOT/javadoc/)  \n(It might take a while to load, because the build might have to run first.)\n\nGradle coordinates:\n\n```groovy\nrepositories {\n    maven { url 'https://jitpack.io' }\n}\n\ndependencies {\n    compileOnly 'com.github.Trigary.Iodine:api:master-SNAPSHOT'\n}\n```\n\nMaven coordinates:\n\n```xml\n\u003crepository\u003e\n    \u003cid\u003ejitpack.io\u003c/id\u003e\n    \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n\u003c/repository\u003e\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.Trigary.Iodine\u003c/groupId\u003e\n    \u003cartifactId\u003eapi\u003c/artifactId\u003e\n    \u003cversion\u003emaster-SNAPSHOT\u003c/version\u003e\n    \u003cscope\u003eprovided\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\n## Modules\n\nThis project consists of multiple subprojects, each with their own role:\n\n - **common:** contains code that both *api* and *backend* require\n - **api:** the API that plugin developers use, included in *server*\n - **backend:** contains code that both *server* and *client* require\n - **server:** contains code that is used by multiple server-side plugin projects\n - **client:** contains code that is used by multiple client-side mod projects\n - **bukkit:** the Bukkit plugin part of the project\n - **forge-VERSION:** the Forge mod part of the project, for the specified version\n - **showcase** contains sample code, this is an actual Bukkit plugin\n\nThe *forge-VERSION* projects are not real subprojects due to\nForgeGradle issues, they are actually considered separate projects by Gradle.\nThe *showcase* project isn't a subproject either\nsince it's not an actual component in Iodine, it only depends on it.\n\nTo recap which projects depend on which:\n\n - **api:** common\n - **backend:** common\n - **server:** backend + api (inherited: common)\n - **client:** backend (inherited: common)\n - **bukkit:** server (inherited: api, backend, common)\n - **forge-VERSION:** client (inherited: backend, common)\n - **showcase**: api (inherited: common)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrigary%2Fiodine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrigary%2Fiodine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrigary%2Fiodine/lists"}