{"id":19952568,"url":"https://github.com/dosmike/megamenus","last_synced_at":"2025-03-01T15:16:35.313Z","repository":{"id":133520119,"uuid":"165377824","full_name":"DosMike/MegaMenus","owner":"DosMike","description":"Another menu API for SpongeAPI","archived":false,"fork":false,"pushed_at":"2020-10-02T14:10:19.000Z","size":419,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-12T06:26:25.631Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/DosMike.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":"2019-01-12T11:02:47.000Z","updated_at":"2020-10-02T14:07:16.000Z","dependencies_parsed_at":"2023-07-10T19:47:09.511Z","dependency_job_id":null,"html_url":"https://github.com/DosMike/MegaMenus","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMegaMenus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMegaMenus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMegaMenus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DosMike%2FMegaMenus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DosMike","download_url":"https://codeload.github.com/DosMike/MegaMenus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241381645,"owners_count":19953751,"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-11-13T01:13:39.168Z","updated_at":"2025-03-01T15:16:35.304Z","avatar_url":"https://github.com/DosMike.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mega Menus\n\nThis menu API focuses on a fluent experience with redrawing inventories that **do \nnot reset the cursor on every click**. A inventory menu with this API keeps the \n**player inventory unlocked** and thus allowes for the inventory menu to accept and \noutput items in a controlled manner.\n\n# Command for Server Admins\n\nIf a player triggered the anti glitch system you can pardon them with  \n`/megamenus pardon \u003cPLAYER\u003e` (permission `megamenus.command.pardon`)  \nIf you changed bits in the config you can reload it with  \n`/megamenus reload` (permission `megamenus.command.reload`)\n\nIf you don't feel like typing megamenus, `/mm` is a command alias.\n\n# Boring dev stuff\n\nThe API itself was influenced by java AWT/Swing but is Builder oriented.\nAdditionally the API will **automatically generate pagination** for menus with \nelements put on different pages.\n\nSupported menu elements are:\n* Icon - does nothing, but looks pretty\n* Button - has a click callback\n* Checkbox - can be toggled on and off, has a change callback, code can set tri-state\n* Spinner - add a list of values, has a change callback\n* Slot - can provide or accept single stacks of items (not shift-clickable), has a slot chagne callback\n\nAdditionally menus hold **state objects** for the menu and every player in the menu.\nThese objects do not reset automatically and are persistent until the menu is \nGCed. Menus can be rendered as shared, potentially allowing multiple player to \ninteract on the same instance, or create a bound instance, that provides a \nseparate instance for all elements so interaction does not clash between \nviewers.\n\nAll Elements on the menu render with Icons, collections of ItemStacks that \nanimates with a given FPS or frametime.\n\nMy **Minesweeper plugin** is a pretty good demo plugin to get things started\n\n## Depending on this plugin\n\nThis plugin is jitpack-compatible, if you're using gradle just add this:\n```{groovy}\nrepositories {\n    ...\n    maven { url \"https://jitpack.io\" }\n}\ndependencies {\n    ...\n    compile 'com.github.DosMike:MegaMenus:master-SNAPSHOT'\n}\n```\nYou can view the JavaDocs [here](https://dosmike.github.io/MegaMenus/index.html)\n\n## External Connections\n\n**[Version Checker](https://github.com/DosMike/SpongePluginVersionChecker)**  \nThis plugin uses a version checker to notify you about available updates.  \nThis updater is **disabled by default** and can be enabled in `config/megamenus.conf`\nby setting the value `VersionChecker` to `true`.    \nIf enabled it will asynchronously check (once per server start) if the Ore repository has any updates.  \nThis will *only print update notes into the server log*, no files are being downlaoded!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdosmike%2Fmegamenus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdosmike%2Fmegamenus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdosmike%2Fmegamenus/lists"}