{"id":26565145,"url":"https://github.com/sieadev/uilabs","last_synced_at":"2025-07-01T10:03:30.106Z","repository":{"id":277774171,"uuid":"933292364","full_name":"sieadev/UILabs","owner":"sieadev","description":"UILabs is an API for Spigot plugins, enabling efficient and safe custom inventory GUIs in Minecraft.","archived":false,"fork":false,"pushed_at":"2025-03-26T16:18:04.000Z","size":45,"stargazers_count":8,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T13:44:47.096Z","etag":null,"topics":["inventory-gui","minecraft","minecraft-gui","minecraft-plugin","spigot","spigot-api","spigot-gui"],"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/sieadev.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":"2025-02-15T16:03:22.000Z","updated_at":"2025-03-26T16:18:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"34ebbc1d-d93d-42bc-93f4-948f88789857","html_url":"https://github.com/sieadev/UILabs","commit_stats":null,"previous_names":["sieadev/uilabs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sieadev/UILabs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieadev%2FUILabs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieadev%2FUILabs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieadev%2FUILabs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieadev%2FUILabs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sieadev","download_url":"https://codeload.github.com/sieadev/UILabs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sieadev%2FUILabs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262941541,"owners_count":23388148,"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":["inventory-gui","minecraft","minecraft-gui","minecraft-plugin","spigot","spigot-api","spigot-gui"],"created_at":"2025-03-22T17:18:55.221Z","updated_at":"2025-07-01T10:03:30.074Z","avatar_url":"https://github.com/sieadev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UILabs\n![uilabs](https://github.com/user-attachments/assets/6636392c-5e86-444d-9b75-7bcfcd5ae17a)\n\n**UILabs** is an API for Spigot plugins, enabling efficient and safe custom **inventory GUIs** in Minecraft.\n\n## Why UILabs?\n- **Efficient**: UILabs is designed to be resource efficient, with minimal impact on server performance.\n- **Safe**: UILabs handles all interactions with the GUI ─ you don't have to worry about players messing with your GUIs.\n- **Easy to Use**: Creating GUIs with UILabs is simple and intuitive, with a clean and easy-to-understand API.\n- **Lightweight**: No need to include a bunch of dependencies in your plugin, UILabs is a standalone API.\n- **Open Source**: UILabs is completely open source, so you can contribute to the project and help make it better.\n- **Customizable**: Customize your GUIs with to your liking, using UILabs' built-in [components](#elements) and utilities.\n\n## Table of Contents\n- [Getting Started](#getting-started)\n  - [Installation](#installation)\n    - [Maven](#maven)\n    - [Gradle](#gradle)\n  - [Creating a GUI](#creating-a-gui)\n- [Elements](#elements)\n\n\n## Getting Started\n### Installation\nTo get use UILabs in your plugin, add it as a dependency in your project.\n#### Maven\n```xml\n\u003crepository\u003e\n    \u003cid\u003epixel-services-snapshots\u003c/id\u003e\n    \u003cname\u003ePixel Services\u003c/name\u003e\n    \u003curl\u003ehttps://maven.pixel-services.com/snapshots\u003c/url\u003e\n\u003c/repository\u003e\n\u003cdependency\u003e\n    \u003cgroupId\u003edev.siea.uilabs\u003c/groupId\u003e\n    \u003cartifactId\u003eUILabs\u003c/artifactId\u003e\n    \u003cversion\u003e0.3.8-SNAPSHOT\u003c/version\u003e\n\u003c/dependency\u003e\n```\n#### Gradle\n```gradle\nrepositories {\n    maven {\n        name = \"pixelServicesSnapshots\"\n        url = uri(\"https://maven.pixel-services.com/snapshots\")\n    }\n}\n\ndependencies {\n    implementation \"dev.siea.uilabs:UILabs:0.3.8-SNAPSHOT\"\n}\n```\n\n### Creating a GUI\nTo create a GUI with UILabs, follow these steps:\n1. **Initialize UILabs**: Create an instance of `UILabs` in your plugin's main class. (Or wherever you want to use UILabs)\n    ```java\n    public class MyPlugin extends JavaPlugin {\n        private UILabs uilabs;\n    \n        @Override\n        public void onEnable() {\n            uilabs = new UILabs(this);\n        }\n    }\n    ```\n2. **Create a GUI**: Use the `UILabs#create` method to create a ``DefaultInventoryGui`` instance. You can specify the title as well as the size(`height`, `width`) of the GUI. \n    ```java\n    DefaultInventoryGui gui = uilabs.create(\"MyGUI\", 6, 9);\n    ```\n    **Yes, it's that simple!** You now have a GUI instance that you can use to add [Elements](#elements) and show to players.\n\n3. **Add Components**: UILabs provides a variety of [Elements](#elements), that you can add to your GUI. Here's an example of adding a `Button` Element to the GUI:\n    ```java\n    Button button = new Button(Material.EMERALD_BLOCK, ChatColor.GREEN + \"Click me!\") {\n        @Override\n        public void onButtonPressed(InventoryClickEvent e) {\n            e.getWhoClicked().sendMessage(ChatColor.GREEN + \"Button clicked! :D\");\n        }\n    };\n    gui.addElement(button);\n    ```\n   \n4. **Show the GUI**: To show the GUI to a player, use the `UILabs#view` method:\n    ```java\n    gui.view(player);\n    ```\n    That's it! You've successfully created a fully functional GUI using UILabs.\n\n## Elements\nUILabs provides a variety of [Elements](#elements) that you can use to create your GUIs. Here's a list of some of the Elements that UILabs provides:\n- `ItemElement`: The most basic element, that represents an item in the GUI. (Almost) All other elements extend this class.\n- `Button`: A simple button that can be clicked by players to perform an action.\n- `CheckBox`: A checkbox that players can toggle on and off.\n- `Carousel`: A carousel that loops through a list of ItemElements at a specified interval.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsieadev%2Fuilabs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsieadev%2Fuilabs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsieadev%2Fuilabs/lists"}