{"id":50922137,"url":"https://github.com/sshcrack/live-voice-chat-translate","last_synced_at":"2026-06-16T19:03:09.451Z","repository":{"id":364132444,"uuid":"1266544111","full_name":"sshcrack/live-voice-chat-translate","owner":"sshcrack","description":"Live Translation of other players using the Gemini API","archived":false,"fork":false,"pushed_at":"2026-06-11T18:54:28.000Z","size":138,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T20:13:20.154Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","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/sshcrack.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-11T18:07:31.000Z","updated_at":"2026-06-11T18:54:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sshcrack/live-voice-chat-translate","commit_stats":null,"previous_names":["sshcrack/live-voice-chat-translate"],"tags_count":null,"template":false,"template_full_name":"stonecutter-versioning/stonecutter-template-fabric","purl":"pkg:github/sshcrack/live-voice-chat-translate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshcrack%2Flive-voice-chat-translate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshcrack%2Flive-voice-chat-translate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshcrack%2Flive-voice-chat-translate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshcrack%2Flive-voice-chat-translate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sshcrack","download_url":"https://codeload.github.com/sshcrack/live-voice-chat-translate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshcrack%2Flive-voice-chat-translate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34419350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2026-06-16T19:03:07.999Z","updated_at":"2026-06-16T19:03:09.442Z","avatar_url":"https://github.com/sshcrack.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stonecutter Mod Template\n\nA multi-platform Minecraft mod template for **Fabric**, **NeoForge**, and **Forge**,\nusing [Stonecutter](https://stonecutter.kikugie.dev/) for\nmultiversion and multiloader code.\nThis is the Java-only version adapted from KikuGie's Elytra Trims\nrewrite following major Stonecutter feature updates.\n\nThis template is as \"batteries included\" as possible.\nIf you don't like this, it's not the right template for\nyou ([Alternative Templates](https://stonecutter.kikugie.dev/wiki/tips/multiloader)).\n\n## Features\n\n* Single codebase for Fabric, NeoForge, and Forge\n* Single codebase for multiple Minecraft versions\n* CI/CD with GitHub Actions for automated builds and releases\n* Separate build scripts for each platform\n\n## Getting Started\n\n### Prerequisites\n\n* Knowledge of Fabric, NeoForge, and/or Forge\n* Suitable IDE\n* Java 25 or higher\n* Git\n\n### Initial Setup\n\n#### 1. **Clone or use this template**\n\n```bash\ngit clone https://github.com/rotgruengelb/stonecutter-mod-template.git\ncd stonecutter-mod-template\n```\n\n#### 2. **Open in your IDE**\n\nImport the project as a Gradle project\nin your preferred IDE (e.g., IntelliJ IDEA, Eclipse).\n\n#### 3. **Stonecutter IntelliJ plugin**\n\nThe IntelliJ plugin adds comment syntax highlighting and completion,\na button to switch the active version, alongside other utilities.\n\n#### 4. **Configure your mod**\n\nEdit `stonecutter.properties.toml` to set your mod's metadata:\n\n| Property           | Description                                  | Example                                                           |\n|--------------------|----------------------------------------------|-------------------------------------------------------------------|\n| `mod.id`           | Your mod's identifier (lowercase, no spaces) | `modtemplate`                                                     |\n| `mod.name`         | Display name of your mod                     | `Mod Template`                                                    |\n| `mod.group`        | Java package group                           | `com.example`                                                     |\n| `mod.version`      | Mod version number                           | `0.1.0`                                                           |\n| `mod.channel_tag`  | Optional release channel tag                 | `-alpha.0`                                                        |\n| `mod.authors`      | Name of the author(s), as a TOML array       | `[\"AuthorName\"]`                                                  |\n| `mod.contributors` | Contributor names, as a TOML array           | `[\"ContributorName\", \"AnotherContributorName\"]`                   |\n| `mod.license.name` | License type                                 | `MIT`                                                             |\n| `mod.description`  | Short mod description                        | `Example Description`                                             |\n| `mod.sources_url`  | Link to your source code repository          | `https://github.com/rotgruengelb/stonecutter-mod-template`        |\n| `mod.homepage_url` | Mod homepage or info page                    | `https://github.com/rotgruengelb/stonecutter-mod-template`        |\n| `mod.issues_url`   | Link to issue tracker                        | `https://github.com/rotgruengelb/stonecutter-mod-template/issues` |\n| `mod.discord_url`  | Link to a Discord invite                     | `https://discord.gg/aunYJB4wz9`                                   |\n\nDependencies and properties that are specific to a version/loader\nare defined in `stonecutter.properties.toml` under their respective `[loader.\"version\"]` table,\ne.g. `[fabric.\"1.21.7\"]`.\n\n#### 5. **Rename package structure**\n\nRename the `com.example.modtemplate` package in\n`src/main/java/` to match your `mod.group` and `mod.id`.\n\n#### 6. **Update resource files**\n\nRename these files to match your `mod.id`:\n\nReplace `src/main/resources/assets/icon.png` and `.idea/icon.png` with your mod's icon.\n\n## Development\n\n### Stonecutter\n\n[Stonecutter](https://stonecutter.kikugie.dev/) allows multiple Minecraft versions and loaders in a single codebase.\nConfigure Stonecutter in `stonecutter.gradle.kts` and `settings.gradle.kts`.\n\nExample of platform-specific code using Stonecutter comments:\n\n```java\n//? fabric {\nfabricOnlyCode();\n//?} else {\n/*neoforgeOnlyCode();*/\n//?}\n```\n\nVersion-specific code works similarly:\n\n```java\n//? 1.21.7 {\nLOGGER.info(\"hello 1.21.7!\");\n//?} else {\n/*LOGGER.info(\"hello from any other version!\");\n *///?}\n```\n\nFor more details, read the [Stonecutter documentation](https://stonecutter.kikugie.dev/wiki/).\n\n### Running in Development\n\nThe Gradle plugins of the respective platform should provide run configurations.\nIf not, you can run the server and client with the respective Gradle tasks.\nBe careful to run the correct task for the selected Stonecutter platform and Minecraft version.\n\n### Platform Abstraction\n\nThe template uses a platform abstraction pattern to keep shared code loader-agnostic:\n\n* **Shared code** goes in `com.example.modtemplate` (no platform dependencies)\n* **Platform-specific code** goes in `com.example.modtemplate.platform.{fabric|neoforge|forge}`\n* The `Platform` interface provides loader-specific functionality to shared code\n\n### Adding Dependencies\n\nTo add dependencies for a specific platform, modify the `platform` block in the respective `build.gradle.kts` file.\nThe declared dependencies are automatically added to the metadata file for the loader and when publishing the mod to\nmod hosting platforms.\n**Important:** This does not replace the `dependencies` block!\n\n```kotlin\nplatform {\n  loader = \"fabric-m\" // or \"neoforge\" / \"forge\" / \"fabric-o\" for old minecraft versions that require loom-remap \n  dependencies {\n    required(\"my-lib\") {\n      slug(\"my-lib\") // Mod hosting platform slug (here the slug is the same on both Modrinth and CurseForge)\n      versionRange = \"\u003e=${prop(\"deps.my-lib\")}\" // version range (for fabric.mod.json)\n      forgeVersionRange =\n        \"[${prop(\"deps.my-lib\")},)\" // version range (for neoforge mods.toml), uses Maven version range syntax\n    }\n  }\n}\n```\n\n### Data Generation\n\nRun Fabric data generation to create recipes, tags, and other data:\n\n```bash\n./gradlew :1.21.7-fabric:runDatagen\n```\n\nGenerated files appear in `versions/datagen/{mc_version}/src/main/generated/`.\nThe current setup uses Fabric data generation for all platforms to keep everything consistent.\n\n### Environment Variables\n\nCopy `.env.template` to `.env` and fill in the values for local publishing. The `.env` file is loaded automatically by\nthe `dotenv-gradle` plugin. When using the CI, set the corresponding repository secrets and variables instead\n(see [Using the CI](#using-the-ci)).\n\nNote: When using the CI `MOD_IS_RELEASE` is managed automatically, it is set by the CI based on the workflow trigger and\ndoes not need to be set manually.\n\n| Variable                      | Description                                                                | CI type  |\n|-------------------------------|----------------------------------------------------------------------------|----------|\n| `PUB_DRY_RUN`                 | Set to `true` to simulate publishing without actually uploading            | Variable |\n| `PUB_MODS_ENABLE`             | Set to `true` to enable publishing to Modrinth and CurseForge              | Variable |\n| `PUB_MAVEN_ENABLE`            | Set to `true` to enable Maven publishing                                   | Variable |\n| `PUB_MAVEN_CENTRAL_ENABLE`    | Set to `true` to publish to Maven Central                                  | Variable |\n| `PUB_MAVEN_CENTRAL_SNAPSHOTS` | Set to `true` to also publish snapshot versions to Maven Central           | Variable |\n| `PUB_MODRINTH_STAGING`        | Set to `true` to publish to the Modrinth staging API instead of production | Variable |\n| `PUB_MODRINTH_PROJECT_ID`     | Your Modrinth project ID                                                   | Variable |\n| `PUB_CURSEFORGE_PROJECT_ID`   | Your CurseForge project ID                                                 | Variable |\n| `PUB_GITHUB_RELEASES`         | Set to `true` to publish GitHub releases on tag push (CI only!)            | Variable |\n| `PUB_MODRINTH_TOKEN`          | Your Modrinth personal access token                                        | Secret   |\n| `PUB_CURSEFORGE_TOKEN`        | Your CurseForge API token                                                  | Secret   |\n| `PUB_MAVEN_CENTRAL_USERNAME`  | Your Maven Central (Sonatype) username                                     | Secret   |\n| `PUB_MAVEN_CENTRAL_PASSWORD`  | Your Maven Central (Sonatype) password                                     | Secret   |\n| `PUB_SIGNING_KEY`             | ASCII-armored PGP private key for artifact signing                         | Secret   |\n| `PUB_SIGNING_ID`              | PGP key ID                                                                 | Secret   |\n| `PUB_SIGNING_PASSWORD`        | Passphrase for the PGP signing key                                         | Secret   |\n\n### Using the CI\n\nThe template includes two GitHub Actions workflows.\n\n**`build.yml`** runs on every push and pull request. It builds all versions and uploads the jars as artifacts. No\nconfiguration needed beyond having a working build.\n\n**`release.yml`** runs when a tag is pushed. It validates that the tag matches `mod.version` + `mod.channel_tag` in\n`stonecutter.properties.toml`, builds all versions, generates a changelog via [`git-cliff`](https://git-cliff.org/), and\nthen publishes to\nwhichever platforms you have enabled.\n\nTo set up the CI for publishing:\n\n1. Go to your repository on GitHub and open **Settings \u003e Secrets and variables \u003e Actions**.\n2. Under **Secrets**, add any credentials you need (tokens, signing key, Maven credentials).\n3. Under **Variables**, add the toggles and IDs for your platforms. At minimum, you likely want:\n   \u003cbr/\u003e`PUB_MODS_ENABLE = true`\n   \u003cbr/\u003e`PUB_GITHUB_RELEASES = true`\n   \u003cbr/\u003e`PUB_MODRINTH_PROJECT_ID = \u003cyour id\u003e`\n   \u003cbr/\u003e`PUB_CURSEFORGE_PROJECT_ID = \u003cyour id\u003e`\n\n4. To trigger a release, make sure `mod.version` and `mod.channel_tag` in `stonecutter.properties.toml` reflect the\n   version you want to release, then push a tag that matches the combined value:\n   ```bash\n   git tag 0.1.0-alpha.2\n   git push origin 0.1.0-alpha.2\n   ```\n   If the tag does not match the version in the properties file the workflow will delete the tag and fail early without\n   building.\n\n## Dependency Updates with Renovate\n\nThe file `renovate.json.example` contains a minimal [Renovate](https://docs.renovatebot.com/) configuration.\nIf you want automated dependency update PRs, rename it to `renovate.json` and enable the Renovate GitHub App on your\nrepository. The default config (`config:recommended`) is enough to get started.\n\n## Resources and Links\n\n- [Stonecutter Documentation](https://stonecutter.kikugie.dev/wiki/)\n- [NeoForge Documentation](https://docs.neoforged.net/docs/gettingstarted/)\n- [Fabric Documentation](https://docs.fabricmc.net/develop/)\n- [Pre-commit](https://pre-commit.com/)\n- [Git Source Control](https://git-scm.com/doc)\n- [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)\n- [Semantic Versioning](https://semver.org/)\n  - [How to denote a pre-release version](https://semver.org/#spec-item-9)\n- [Your Modrinth PAT](https://modrinth.com/settings/pats)\n- [Your CurseForge API Tokens](https://legacy.curseforge.com/account/api-tokens)\n- [GitHub Actions Documentation](https://docs.github.com/en/actions)\n- [Gradle Documentation](https://docs.gradle.org/current/userguide/userguide.html)\n- [Git Cliff (Automatic Changelogs)](https://git-cliff.org/)\n\n### Help and Support\n\nFor help and support, consider the following places:\n\n- [\"Kiku's Realm\" Discord Server](https://discord.kikugie.dev/) for Stonecutter-related questions.\n- [\"Cascading Colors\" (My) Discord Server](https://discord.gg/aunYJB4wz9) for questions about this template and its\n  setup.\n- [\"The NeoForge Project\" Discord Server](https://github.com/neoforged) for NeoForge-related questions.\n- [\"The Fabric Project\" Discord Server](https://discord.gg/v6v4pMv) for Fabric-related questions.\n\n## License/Credits\n\nThis template is provided under the MIT License.\nCheck `LICENSE` for details.\n\n* Based on [murderspagurder/mod-template-java](https://github.com/murderspagurder/mod-template-java)\n  * Adapted from [KikuGie's Elytra Trims](https://github.com/kikugie/elytra-trims) setup\n* Uses [Stonecutter](https://stonecutter.kikugie.dev/) by KikuGie\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshcrack%2Flive-voice-chat-translate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsshcrack%2Flive-voice-chat-translate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshcrack%2Flive-voice-chat-translate/lists"}