{"id":20292819,"url":"https://github.com/groovymc/groovymodloader","last_synced_at":"2025-04-11T11:24:06.821Z","repository":{"id":65400650,"uuid":"524401975","full_name":"GroovyMC/GroovyModLoader","owner":"GroovyMC","description":"Neo/Forge Groovy mod loader","archived":false,"fork":false,"pushed_at":"2024-11-14T17:41:34.000Z","size":706,"stargazers_count":3,"open_issues_count":8,"forks_count":2,"subscribers_count":1,"default_branch":"1.21.x","last_synced_at":"2025-03-25T07:51:07.540Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Groovy","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/GroovyMC.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":"2022-08-13T13:06:28.000Z","updated_at":"2024-11-14T17:41:37.000Z","dependencies_parsed_at":"2024-11-19T01:32:08.568Z","dependency_job_id":null,"html_url":"https://github.com/GroovyMC/GroovyModLoader","commit_stats":null,"previous_names":["groovymc/groovymodloader"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GroovyMC%2FGroovyModLoader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GroovyMC%2FGroovyModLoader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GroovyMC%2FGroovyModLoader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GroovyMC%2FGroovyModLoader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GroovyMC","download_url":"https://codeload.github.com/GroovyMC/GroovyModLoader/tar.gz/refs/heads/1.21.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248382577,"owners_count":21094561,"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-14T15:19:29.394Z","updated_at":"2025-04-11T11:24:06.802Z","avatar_url":"https://github.com/GroovyMC.png","language":"Groovy","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GroovyModLoader\n[![GML Version](https://img.shields.io/badge/dynamic/xml?style=for-the-badge\u0026color=red\u0026label=Latest%20GML%20Version\u0026prefix=v\u0026query=metadata//latest\u0026url=https://repo.maven.apache.org/maven2/org/groovymc/gml/gml/maven-metadata.xml)](https://central.sonatype.com/artifact/org.groovymc.gml/gml)\n\nGroovyModLoader (GML) is a NeoForge language loader for Groovy mods.\n## How to use\nTo use this language provider, simply add it as a dependency in your build script. The\nlanguage provider is available on maven central, so you can simply add the following\nto your build script. Make sure to define `gmlVersion` in the `gradle.properties` file, as the version of GML you want to use.\n```groovy\ndependencies {\n    implementation \"org.groovymc.gml:gml:${gmlVersion}\"\n}\n```\n\nAlso make sure to add the `groovy` plugin to your build script to ensure that the required\ntasks for Groovy compilation are added:\n```groovy\nplugins {\n    id 'groovy'\n}\n```\nIn your `mods.toml` / [mods.groovy](https://github.com/GroovyMC/ModsDotGroovy), specify `gml` as the loader and the version of the software\nas `loaderVersion`.\n\nThe main mod class should have a no-arg constructor and be annotated with `@GMod` with the mod ID specified. Access to the mod and Forge\nbuses is provided respectively through the `modBus` or `forgeBus` properties.\nIf you want IDE support alongside `@CompileStatic` for those properties, consider implementing `BaseGMod` in your mod main class or install the [EnhancedGroovy plugin for IntelliJ](https://plugins.jetbrains.com/plugin/19844-enhancedgroovy).\n\n```groovy\n@GMod('examplemod')\n@Slf4j(category = 'ExampleMod')\nclass ExampleMod implements BaseGMod {\n    ExampleMod() {\n        log.info('Hello from Groovy-land!')\n        \n        modBus.register(ModBusEventHandler)\n        forgeBus.register(ForgeBusEventHandler)\n        \n        assert forgeBus === MinecraftForge.EVENT_BUS\n        assert modBus === GMLModLoadingContext.get().getModEventBus()\n    }\n}\n```\n\n## Groovy Version\nThe Groovy version provided by the latest version of GML is currently: **4.0.19**.  \n\nOnly releases will be supported by GML, not release candidates.\nOnce a NeoForge version has a Recommended Build published, the Groovy major and minor versions will be locked for that Minecraft version. However, patch versions will still be updated.\n\n### Groovy modules\nThe Groovy modules provided by GML are: stdlib, contracts, datetime, nio, macro, macro-library, templates, typecheckers, dateutil, ginq, toml, json.  \nYou may however include a Groovy module that is **not** provided by GML using [JiJ](https://forge.gemwire.uk/wiki/Jar-in-Jar).  \nPlease **do not** JiJ different versions of Groovy modules already bundled by GML as that may cause issues.\n\n## MC Versions\nThe major GML version is bumped every MC version. Below you can find a list of MC version -\u003e GML version:\n- `1.19.2` -\u003e `1.x.x`\n- `1.19.3` -\u003e `2.x.x`\n- `1.19.4` -\u003e `3.x.x`\n- `1.20.0` -\u003e `4.x.x`\n- `1.20.4` -\u003e `5.x.x`\n\n**NOTE**: 1.19.2 - 1.19.4 versions use the `com.matyrobbrt.gml` artifact group.\n\n## Shading GML\nWhile we would appreciate if you instead had a dependency on GML on [CurseForge](https://www.curseforge.com/minecraft/mc-mods/gml) in order provide us revenue, we understand that in some cases, you may not\nwant to depend on another mod. Fortunately, we _are_ JiJ-able.  \nIf you want to JiJ GML, just follow the guide [here](https://forge.gemwire.uk/wiki/Jar-in-Jar) but replace GSON with the `all` version of GML (the `runtimeOnly` one).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroovymc%2Fgroovymodloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgroovymc%2Fgroovymodloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgroovymc%2Fgroovymodloader/lists"}