{"id":23722792,"url":"https://github.com/fulminazzo/yagl","last_synced_at":"2026-03-16T16:01:32.876Z","repository":{"id":228607336,"uuid":"766558929","full_name":"fulminazzo/YAGL","owner":"fulminazzo","description":"Yet Another GUI Library.","archived":false,"fork":false,"pushed_at":"2025-01-09T00:09:08.000Z","size":2451,"stargazers_count":0,"open_issues_count":13,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-09T01:22:38.237Z","etag":null,"topics":["bukkit","effects","gui","item","java","library","minecraft","particles","serialization","serialization-library"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fulminazzo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-03-03T15:47:54.000Z","updated_at":"2025-01-09T00:00:46.000Z","dependencies_parsed_at":"2024-04-14T12:32:35.311Z","dependency_job_id":"c5f7390b-4285-4b1c-b996-39b36fd86864","html_url":"https://github.com/fulminazzo/YAGL","commit_stats":null,"previous_names":["fulminazzo/yagl"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulminazzo%2FYAGL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulminazzo%2FYAGL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulminazzo%2FYAGL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulminazzo%2FYAGL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fulminazzo","download_url":"https://codeload.github.com/fulminazzo/YAGL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239818227,"owners_count":19702091,"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","effects","gui","item","java","library","minecraft","particles","serialization","serialization-library"],"created_at":"2024-12-30T23:56:49.635Z","updated_at":"2026-03-16T16:01:32.862Z","avatar_url":"https://github.com/fulminazzo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://yagl.fulminazzo.it/coverage\"\u003e\u003cimg src=\"https://fulminazzo.it/badge/coverage/Fulminazzo/YAGL/gradle.yml\" alt=\"Tests coverage\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://app.codacy.com/gh/Fulminazzo/YAGL/\"\u003e\u003cimg src=\"https://img.shields.io/codacy/grade/8740bf6175de4d479851a4a9ed0ea18e?logo=codacy\" alt=\"Codacy Grade\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://app.codacy.com/gh/Fulminazzo/YAGL/\"\u003e\u003cimg src=\"https://fulminazzo.it/badge/code/Fulminazzo/YAGL\" alt=\"Lines of Code\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.8.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.8.yml?style=flat\u0026logo=github\u0026label=MC%201.8\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.20.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.20.yml?style=flat\u0026logo=github\u0026label=MC%201.20\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.21.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.21.yml?style=flat\u0026logo=github\u0026label=MC%201.21\" alt=\"\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.14.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.14.yml?style=flat\u0026logo=github\u0026label=MC%201.14\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.15.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.15.yml?style=flat\u0026logo=github\u0026label=MC%201.15\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.16.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.16.yml?style=flat\u0026logo=github\u0026label=MC%201.16\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.17.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.17.yml?style=flat\u0026logo=github\u0026label=MC%201.17\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.18.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.18.yml?style=flat\u0026logo=github\u0026label=MC%201.18\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.19.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.19.yml?style=flat\u0026logo=github\u0026label=MC%201.19\" alt=\"\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.9.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.9.yml?style=flat\u0026logo=github\u0026label=MC%201.9\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.10.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.10.yml?style=flat\u0026logo=github\u0026label=MC%201.10\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.11.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.11.yml?style=flat\u0026logo=github\u0026label=MC%201.11\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.12.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.12.yml?style=flat\u0026logo=github\u0026label=MC%201.12\" alt=\"\" /\u003e\u003c/a\u003e\n    \u003ca href=\"../../actions/workflows/bukkit-1.13.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Fulminazzo/YAGL/bukkit-1.13.yml?style=flat\u0026logo=github\u0026label=MC%201.13\" alt=\"\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"../../releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/Fulminazzo/YAGL?display_name=tag\u0026color=red\" alt=\"Latest version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"build.gradle\"\u003e\u003cimg src=\"https://img.shields.io/badge/java-1.8-%23ED8B00\" alt=\"Java version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"build.gradle\"\u003e\u003cimg src=\"https://fulminazzo.it/badge/gradle/Fulminazzo/YAGL\" alt=\"Gradle version\" \u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"../../commit/\"\u003e\u003cimg src=\"https://img.shields.io/github/commits-since/Fulminazzo/YAGL/1.0\" alt=\"GitHub commits\"/\u003e\u003c/a\u003e\n  \u003ca href=\"../../issues?q=is%3Aissue+is%3Aclosed\"\u003e\u003cimg src=\"https://img.shields.io/github/issues-closed-raw/Fulminazzo/YAGL?color=%23FF69B4\" alt=\"Issues\" \u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"\"\u003e\u003cimg src=\"https://forthebadge.com/images/badges/powered-by-overtime.svg\" alt=\"\" \u003e\u003c/a\u003e\n  \u003ca href=\"\"\u003e\u003cimg src=\"https://forthebadge.com/images/badges/built-with-love.svg\" alt=\"\" \u003e\u003c/a\u003e\n\u003c/p\u003e\n\n**Need help?**\n[![Read the wiki](https://img.shields.io/badge/read-the_wiki-blue?style=for-the-badge)](../../wiki)\n[![Read the docs](https://img.shields.io/badge/read-the_docs-orange?style=for-the-badge)](https://yagl.fulminazzo.it/docs)\n\n**Welcome to the official YAGL page**\n\n**Yet Another GUI Library** (**YAGL** for short) is a **Java library** created to generate and manage **graphical user interfaces** in game.\n\nIf you are a **server admin**, I suggest you [read the documentation](../../wiki) to learn how to properly configure and change default values.\n\nIf you are a **developer**, **YAGL** is composed of **three main modules**:\n\n- [wrapper](tree/main/wrapper), a module that contains common **Minecraft** objects like **enchantments**, **sounds**, **particles**. It offers the capability of **saving and loading** them in a **nice format** for the end user;\n- [item](tree/main/item), a module to **generate and customize items** and even **apply textures** to them;\n- [gui](tree/main/gui), the **core module**, that **displays the actual interfaces** to players.\n\nEach one of them is made of three submodules:\n**base** (the core function of the module),\n**serializer** (saving and loading capabilities of the module) and **bukkit**\n(an implementation of the module for [Bukkit plugins](https://getbukkit.org/)).\n\nThey can all be imported separately or together, following one of the three common methods:\n\n- **Gradle** (preferred):\n  ```groovy\n  repositories {\n      // DEPRECATED!\n      // Starting from January 18th 2026, YAGL will be available from Maven Central!\n      maven { url = 'https://repo.fulminazzo.it/releases' }\n  }\n\n  dependencies {\n      implementation 'it.fulminazzo:yagl:latest'\n  }\n  ```\n- **Maven** (alternative):\n  ```xml\n  \u003crepository\u003e\n      \u003c!-- DEPRECATED! --\u003e\n      \u003c!-- Starting from January 18th 2026, YAGL will be available from Maven Central! --\u003e\n      \u003cid\u003efulminazzo\u003c/id\u003e\n      \u003curl\u003ehttps://repo.fulminazzo.it/releases\u003c/url\u003e\n  \u003c/repository\u003e\n  ```\n  ```xml\n  \u003cdependency\u003e\n      \u003cgroupId\u003eit.fulminazzo\u003c/groupId\u003e\n      \u003cartifact\u003eyagl\u003c/artifact\u003e\n      \u003cversion\u003eLATEST\u003c/version\u003e\n  \u003c/dependency\u003e\n  ```\n- **Manual** (discouraged): download the JAR file from the [latest release](../../releases/latest) and import it using your IDE.\n\nFor more information, [check the wiki](../../wiki).\n\n## Why?\n\n\u003e Wait, so in 2024 you wrote another GUI library, totally ignoring all the better options available? \n\u003e You are not that smart, are you?\n\nWhen **YAGL** was nothing more than a simple thought, it had many goals:\n\n- it had to be **platform independent**, meaning that it could potentially be used by even other platforms to implement their own versions (check [Roadmap](#roadmap) for more);\n- it had to be **cross-compatible** among **older Minecraft versions**, specifically from **1.8**.\n  Many may argue that such a version is so obsolete that it should not even be distributed anymore,\n  and I totally agree with that.\n  However, while working in the Minecraft industry for a long time,\n  I noticed that many still require the **retro-compatibility** option,\n  that is why **YAGL** is tested on **every Minecraft version from 1.8**;\n- it had to create a **fast**, **easy** and **scalable** system for developers to create **custom items** and **guis**, without the overhead created by **Bukkit** methods like **ItemMeta**.\n\nDuring the production, **YAGL** expanded even more, and right now is not just a **GUI** library:\nit took its idea of independence and extended to many aspects of Minecraft, allowing **independent serializing** of **particles**, **sounds**, **enchantments**, **items**, **guis** and **more**!\n\nHowever, its development is not over yet.\n\nBecause of its incredible modularity, **YAGL** can be used for more projects related to Minecraft, like [Fabric](https://fabricmc.net/) and [Forge](https://files.minecraftforge.net/net/minecraftforge/forge/).\nAs of right now, **they are not planned**, but there is possibility in the future.\n\n## Roadmap\n\nWhile it being such a huge project, **YAGL** can still be expanded a lot.\nThese are some of the pending features that are planned for the future:\n\n- [x] possibility to serialize data to **different file formats** like **JSON**, **XML**, **properties**.\n      Completed using the [Configurations library](https://github.com/fulminazzo/Configurations);\n- [x] add support for [PlaceholderAPI](https://github.com/PlaceholderAPI/PlaceholderAPI) in variable replacements;\n- [ ] a special `GUIContent` that allows animated items;\n- [ ] a special `GUIContent` that allows items which can be toggled based on user click;\n- [x] [fullscreen `GUI`](tree/main/gui/base/src/main/java/it/fulminazzo/yagl/gui/FullscreenGUI.java);\n- [ ] online web editor to customize and visualize data in real time.\n\n## Media\n\n![Search GUI demo](./media/search-gui-demo-short.gif \"Search GUI demo\")\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulminazzo%2Fyagl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffulminazzo%2Fyagl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulminazzo%2Fyagl/lists"}