19 Commits
Author SHA1 Message Date
AlexProgrammerDEandgithub-actions[bot] d5317783f0 chore(release): bump version to 1.0.4 2026-02-28 08:02:23 +00:00
AlexProgrammerDE 1f623d9501 chore: update homepage url 2026-02-28 09:01:46 +01:00
AlexProgrammerDEandClaude Opus 4.6 16ce2ccbd2 fix: align release and set-version workflows with SkinsRestorer
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-27 21:04:28 +01:00
AlexProgrammerDEandgithub-actions[bot] 4803212976 chore(release): bump version to 1.0.4-SNAPSHOT 2026-02-27 20:00:56 +00:00
AlexProgrammerDEandgithub-actions[bot] 7a0b60c559 chore(release): bump version to 1.0.3 2026-02-27 19:59:08 +00:00
AlexProgrammerDEandClaude Opus 4.6 7a9d02673b fix: add explicit ref to checkout in set-version workflow
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-27 20:58:25 +01:00
AlexProgrammerDEandgithub-actions[bot] 9159dff6ad chore(release): bump version to 1.0.2 2026-02-27 19:54:30 +00:00
AlexProgrammerDE 0fbb447f7a fix: catch even throwables 2026-02-27 20:49:55 +01:00
AlexProgrammerDE e07e8ab1da fix: make lookup more reliable 2026-02-27 20:49:07 +01:00
AlexProgrammerDEandClaude Opus 4.6 35820562be chore: update mod description to reflect 6b6t blacklist bypass purpose
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-27 20:41:49 +01:00
AlexProgrammerDEandClaude Opus 4.6 0fe333b7be fix: merge common resources via sourceSets, bundle only classes in jar
Adds common's resources as a source dir so they're available during
runClient, and bundles only classesDirs in the jar to avoid duplicates.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-27 20:09:27 +01:00
AlexProgrammerDE b46282d294 fix: merge icon resource into runClient runtime 2026-02-27 20:05:42 +01:00
AlexProgrammerDEandClaude Opus 4.6 8ca683768a fix: use @At("RETURN") instead of @At("TAIL") in mixins
TAIL only hooks the last return opcode, missing early returns.
This caused server injection and unblocking to be skipped when
servers.dat doesn't exist or when isBlockedServerHostName
returns early.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-27 19:58:38 +01:00
AlexProgrammerDE c8c7699d9e chore: update .gitignore 2026-02-27 19:46:03 +01:00
AlexProgrammerDEandClaude Opus 4.6 95962939a2 feat: add modmenu discord link and mod icon
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-27 19:45:36 +01:00
AlexProgrammerDEandgithub-actions[bot] 97f52e650b chore(release): bump version to 1.0.1 2026-02-27 18:23:00 +00:00
AlexProgrammerDEandClaude Opus 4.6 21e85da3fd feat: add download matrix table to release notes
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-27 19:22:24 +01:00
AlexProgrammerDEandClaude Opus 4.6 5c9aa323e0 fix: include project name in release title
Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-02-27 19:21:04 +01:00
AlexProgrammerDEandgithub-actions[bot] f40ecc1b6a chore(release): bump version to 1.0.1-SNAPSHOT 2026-02-27 18:20:08 +00:00
23 changed files with 189 additions and 100 deletions
+49 -27
View File
@@ -1,18 +1,15 @@
name: Release
name: Publish Release
on:
workflow_dispatch:
inputs:
version:
description: "Release version (e.g. 1.1.0)"
description: 'Version to release'
required: true
after-version:
description: "Next snapshot version (e.g. 1.2.0-SNAPSHOT)"
description: 'Snapshot version after release'
required: true
permissions:
contents: write
jobs:
set-release-version:
uses: ./.github/workflows/set-version.yml
@@ -22,28 +19,36 @@ jobs:
build:
needs: set-release-version
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- name: Checkout repository
uses: actions/checkout@v6
with:
ref: ${{ github.ref }}
fetch-depth: 0
- uses: actions/setup-java@v5
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v5
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 21
java-version: '21'
distribution: 'temurin'
- uses: gradle/actions/setup-gradle@v5
- name: Build with Gradle
run: ./gradlew build
- run: ./gradlew build
- name: Generate changelog
- name: Build Changelog
id: changelog
uses: mikepenz/release-changelog-builder-action@v6
with:
commitMode: true
mode: COMMIT
toTag: ${{ github.ref }}
configurationJson: |
{
"template": "#{{CHANGELOG}}",
"commit_template": "- [`#{{SHORT_MERGE_SHA}}`](https://github.com/#{{OWNER}}/#{{REPO}}/commit/#{{MERGE_SHA}}) #{{TITLE}}",
"categories": [
{ "title": "## Features", "labels": ["feat", "feature"] },
{ "title": "## Fixes", "labels": ["fix", "bug"] },
@@ -53,16 +58,14 @@ jobs:
{ "title": "## Build", "labels": ["build", "chore", "ci"] },
{ "title": "## Other", "labels": [] }
],
"empty_template": "no changes",
"label_extractor": [
{
"pattern": "^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test)(\\([\\w\\-\\.]+\\))?(!)?: ([\\w ])+([\\s\\S]*)",
"pattern": "^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test){1}(\\([\\w\\-\\.]+\\))?(!)?: ([\\w ])+([\\s\\S]*)",
"on_property": "title",
"method": "match",
"target": "$1"
}
],
"template": "#{{CHANGELOG}}",
"pr_template": "- [`#{{SHORT_MERGE_SHA}}`](https://github.com/#{{OWNER}}/#{{REPO}}/commit/#{{MERGE_SHA}}) #{{TITLE}}",
"custom_placeholders": [
{
"name": "SHORT_MERGE_SHA",
@@ -80,14 +83,33 @@ jobs:
- name: Create GitHub Release
env:
GH_TOKEN: ${{ github.token }}
CHANGELOG: ${{ steps.changelog.outputs.changelog }}
run: |
gh release create "${{ inputs.version }}" \
--title "${{ inputs.version }}" \
--notes "${{ steps.changelog.outputs.changelog }}" \
mc-1.21.8/build/libs/anarchymod-mc-1.21.8-${{ inputs.version }}.jar \
mc-1.21.9/build/libs/anarchymod-mc-1.21.9-${{ inputs.version }}.jar \
mc-1.21.10/build/libs/anarchymod-mc-1.21.10-${{ inputs.version }}.jar \
mc-1.21.11/build/libs/anarchymod-mc-1.21.11-${{ inputs.version }}.jar
VERSION="${{ inputs.version }}"
REPO="${{ github.repository }}"
DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${VERSION}"
NOTES=$(cat <<EOF
## Downloads
| Minecraft Version | Download |
|---|---|
| 1.21.8 | [\`anarchymod-mc-1.21.8-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.8-${VERSION}.jar) |
| 1.21.9 | [\`anarchymod-mc-1.21.9-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.9-${VERSION}.jar) |
| 1.21.10 | [\`anarchymod-mc-1.21.10-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.10-${VERSION}.jar) |
| 1.21.11 | [\`anarchymod-mc-1.21.11-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.11-${VERSION}.jar) |
${CHANGELOG}
EOF
)
gh release create "${VERSION}" \
--title "AnarchyMod ${VERSION}" \
--notes "${NOTES}" \
mc-1.21.8/build/libs/anarchymod-mc-1.21.8-${VERSION}.jar \
mc-1.21.9/build/libs/anarchymod-mc-1.21.9-${VERSION}.jar \
mc-1.21.10/build/libs/anarchymod-mc-1.21.10-${VERSION}.jar \
mc-1.21.11/build/libs/anarchymod-mc-1.21.11-${VERSION}.jar
set-after-version:
needs: build
+15 -10
View File
@@ -1,30 +1,35 @@
name: Set Version
name: set-version
on:
workflow_dispatch:
inputs:
version:
description: "Version to set (e.g. 1.1.0 or 1.2.0-SNAPSHOT)"
description: 'Version to set'
required: true
workflow_call:
inputs:
version:
description: "Version to set"
required: true
type: string
permissions:
contents: write
jobs:
set-version:
name: Set Version
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Checkout repository
uses: actions/checkout@v6
with:
ref: ${{ github.ref }}
- name: Set version
- name: Set Version
run: sed -i "s/version = \".*\"/version = \"${{ inputs.version }}\"/" build.gradle.kts
- uses: stefanzweifel/git-auto-commit-action@v7
- name: Commit Version
uses: stefanzweifel/git-auto-commit-action@v7
with:
commit_message: "chore(release): bump version to ${{ inputs.version }}"
commit_message: 'chore(release): bump version to ${{ inputs.version }}'
+29 -9
View File
@@ -1,14 +1,34 @@
.gradle/
build/
out/
# Compiled plugin files
target/
# IDE files
.idea/
.vscode/*
.settings/*
.classpath
.project
.factorypath
# UML
*.plantuml
# Gradle
.kotlin
.gradle
**/build/
!src/**/build/
# Ignore Gradle GUI config
gradle-app.setting
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
!gradle-wrapper.jar
# Cache of project
.gradletasknamecache
*.iml
*.ipr
*.iws
*.ipr
.vscode/
.DS_Store
.kotlin/
!gradle/wrapper/gradle-wrapper.jar
**/run/
+1 -1
View File
@@ -3,7 +3,7 @@
[![Build](https://github.com/6b6t/AnarchyMod/actions/workflows/build.yml/badge.svg)](https://github.com/6b6t/AnarchyMod/actions/workflows/build.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
🔓 Client-side Fabric mod for anarchy Minecraft servers — unblocks servers and auto-adds 6b6t to the server list.
🔓 Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.
## Features
+1 -1
View File
@@ -3,7 +3,7 @@ plugins {
}
group = "net.blockhost"
version = "1.0.0"
version = "1.0.4"
repositories {
mavenCentral()
@@ -8,54 +8,57 @@ import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;
import java.util.logging.Logger;
public class Domains {
private static final Logger LOGGER = Logger.getLogger("AnarchyMod-Domains");
private static final String DOMAINS_URL = "https://www.6b6t.org/api/anarchy-mod.json";
private static final Set<String> DEFAULT = Set.of(
"*.6b6t.org", "*.10b10t.org", "*.6b6t.cc", "*.6b6t.me",
"*.7b7t.me", "*.8b8t.org", "*.alacity.net",
"*.anarchypvp.pw", "*.l2x9.org", "*.simpleanarchy.org"
"*.6b6t.org", "*.10b10t.org", "*.6b6t.cc", "*.6b6t.me",
"*.7b7t.me", "*.8b8t.org", "*.alacity.net",
"*.anarchypvp.pw", "*.l2x9.org", "*.simpleanarchy.org"
);
private static final Set<String> domains = new HashSet<>();
private static final Gson gson = new Gson();
static {
DEFAULT.forEach(d -> domains.add(d.toLowerCase()));
DEFAULT.forEach(d -> domains.add(d.toLowerCase(Locale.ROOT)));
loadRemote();
}
private static void loadRemote() {
try {
HttpClient client = HttpClient.newHttpClient();
try (HttpClient client = HttpClient.newHttpClient()) {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(DOMAINS_URL))
.GET()
.build();
.uri(URI.create(DOMAINS_URL))
.timeout(Duration.ofSeconds(15))
.GET()
.build();
HttpResponse<String> response =
client.send(request, HttpResponse.BodyHandlers.ofString());
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
JsonObject json = gson.fromJson(response.body(), JsonObject.class);
JsonArray array = json.getAsJsonArray("domains");
if (array == null) return;
array.forEach(element ->
domains.add(element.getAsString().toLowerCase())
domains.add(element.getAsString().toLowerCase(Locale.ROOT))
);
} catch (Exception ignored) {
} catch (Throwable t) {
LOGGER.warning("Failed to load domains from remote, using defaults: " + t.getMessage());
}
}
public static boolean contains(String input) {
if (input == null) return false;
String domain = input.toLowerCase();
String domain = input.toLowerCase(Locale.ROOT);
if (domain.startsWith("*.")) {
domain = domain.substring(2);
@@ -67,7 +70,6 @@ public class Domains {
}
for (String entry : domains) {
if (entry.startsWith("*.")) {
String base = entry.substring(2);
if (domain.equals(base) || domain.endsWith("." + base)) {
Binary file not shown.

After

Width:  |  Height:  |  Size: 292 B

+8 -5
View File
@@ -17,6 +17,12 @@ base {
repositories {
}
sourceSets {
main {
resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs)
}
}
dependencies {
minecraft("com.mojang:minecraft:$minecraftVersion")
mappings(loom.officialMojangMappings())
@@ -25,11 +31,6 @@ dependencies {
implementation(project(":common"))
}
tasks.named<Jar>("jar") {
dependsOn(project(":common").tasks.named("classes"))
from(project(":common").sourceSets["main"].output)
}
tasks.processResources {
inputs.property("version", project.version)
inputs.property("minecraft_version", minecraftVersion)
@@ -57,6 +58,8 @@ java {
}
tasks.jar {
dependsOn(project(":common").tasks.named("classes"))
from(project(":common").sourceSets["main"].output.classesDirs)
from("LICENSE") {
rename { "${it}_${base.archivesName.get()}" }
}
@@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(BlockedServers.class)
public class BlockedServersMixin {
@Inject(method = "isBlockedServerHostName", at = @At("TAIL"), cancellable = true, remap = false)
@Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false)
public void isBlockedServerHostName(String server, CallbackInfoReturnable<Boolean> cir) {
boolean contains = Domains.contains(server);
if (contains) {
@@ -19,7 +19,7 @@ public class ServerListMixin {
@Final
private List<ServerData> serverList;
@Inject(method = "load", at = @At("TAIL"))
@Inject(method = "load", at = @At("RETURN"))
public void afterLoad(CallbackInfo ci) {
if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) {
serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER));
@@ -3,10 +3,10 @@
"id": "anarchymod",
"version": "${version}",
"name": "AnarchyMod",
"description": "Client-side mod for anarchy Minecraft servers",
"description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.",
"authors": ["6b6t"],
"contact": {
"homepage": "https://6b6t.org",
"homepage": "https://www.6b6t.org/?utm_source=anarchymod&utm_medium=mod_menu&utm_campaign=evergreen_website&utm_content=description_link",
"issues": "https://github.com/6b6t/AnarchyMod/issues",
"sources": "https://github.com/6b6t/AnarchyMod"
},
@@ -21,6 +21,13 @@
"mixins": [
"anarchymod.mixins.json"
],
"custom": {
"modmenu": {
"links": {
"modmenu.discord": "https://6b6t.org/discord"
}
}
},
"depends": {
"fabric": "*",
"fabricloader": ">=${loader_version}",
+8 -5
View File
@@ -17,6 +17,12 @@ base {
repositories {
}
sourceSets {
main {
resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs)
}
}
dependencies {
minecraft("com.mojang:minecraft:$minecraftVersion")
mappings(loom.officialMojangMappings())
@@ -25,11 +31,6 @@ dependencies {
implementation(project(":common"))
}
tasks.named<Jar>("jar") {
dependsOn(project(":common").tasks.named("classes"))
from(project(":common").sourceSets["main"].output)
}
tasks.processResources {
inputs.property("version", project.version)
inputs.property("minecraft_version", minecraftVersion)
@@ -57,6 +58,8 @@ java {
}
tasks.jar {
dependsOn(project(":common").tasks.named("classes"))
from(project(":common").sourceSets["main"].output.classesDirs)
from("LICENSE") {
rename { "${it}_${base.archivesName.get()}" }
}
@@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(BlockedServers.class)
public class BlockedServersMixin {
@Inject(method = "isBlockedServerHostName", at = @At("TAIL"), cancellable = true, remap = false)
@Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false)
public void isBlockedServerHostName(String server, CallbackInfoReturnable<Boolean> cir) {
boolean contains = Domains.contains(server);
if (contains) {
@@ -19,7 +19,7 @@ public class ServerListMixin {
@Final
private List<ServerData> serverList;
@Inject(method = "load", at = @At("TAIL"))
@Inject(method = "load", at = @At("RETURN"))
public void afterLoad(CallbackInfo ci) {
if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) {
serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER));
@@ -3,10 +3,10 @@
"id": "anarchymod",
"version": "${version}",
"name": "AnarchyMod",
"description": "Client-side mod for anarchy Minecraft servers",
"description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.",
"authors": ["6b6t"],
"contact": {
"homepage": "https://6b6t.org",
"homepage": "https://www.6b6t.org/?utm_source=anarchymod&utm_medium=mod_menu&utm_campaign=evergreen_website&utm_content=description_link",
"issues": "https://github.com/6b6t/AnarchyMod/issues",
"sources": "https://github.com/6b6t/AnarchyMod"
},
@@ -21,6 +21,13 @@
"mixins": [
"anarchymod.mixins.json"
],
"custom": {
"modmenu": {
"links": {
"modmenu.discord": "https://6b6t.org/discord"
}
}
},
"depends": {
"fabric": "*",
"fabricloader": ">=${loader_version}",
+8 -5
View File
@@ -17,6 +17,12 @@ base {
repositories {
}
sourceSets {
main {
resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs)
}
}
dependencies {
minecraft("com.mojang:minecraft:$minecraftVersion")
mappings(loom.officialMojangMappings())
@@ -25,11 +31,6 @@ dependencies {
implementation(project(":common"))
}
tasks.named<Jar>("jar") {
dependsOn(project(":common").tasks.named("classes"))
from(project(":common").sourceSets["main"].output)
}
tasks.processResources {
inputs.property("version", project.version)
inputs.property("minecraft_version", minecraftVersion)
@@ -57,6 +58,8 @@ java {
}
tasks.jar {
dependsOn(project(":common").tasks.named("classes"))
from(project(":common").sourceSets["main"].output.classesDirs)
from("LICENSE") {
rename { "${it}_${base.archivesName.get()}" }
}
@@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(BlockedServers.class)
public class BlockedServersMixin {
@Inject(method = "isBlockedServerHostName", at = @At("TAIL"), cancellable = true, remap = false)
@Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false)
public void isBlockedServerHostName(String server, CallbackInfoReturnable<Boolean> cir) {
boolean contains = Domains.contains(server);
if (contains) {
@@ -19,7 +19,7 @@ public class ServerListMixin {
@Final
private List<ServerData> serverList;
@Inject(method = "load", at = @At("TAIL"))
@Inject(method = "load", at = @At("RETURN"))
public void afterLoad(CallbackInfo ci) {
if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) {
serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER));
+9 -2
View File
@@ -3,10 +3,10 @@
"id": "anarchymod",
"version": "${version}",
"name": "AnarchyMod",
"description": "Client-side mod for anarchy Minecraft servers",
"description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.",
"authors": ["6b6t"],
"contact": {
"homepage": "https://6b6t.org",
"homepage": "https://www.6b6t.org/?utm_source=anarchymod&utm_medium=mod_menu&utm_campaign=evergreen_website&utm_content=description_link",
"issues": "https://github.com/6b6t/AnarchyMod/issues",
"sources": "https://github.com/6b6t/AnarchyMod"
},
@@ -21,6 +21,13 @@
"mixins": [
"anarchymod.mixins.json"
],
"custom": {
"modmenu": {
"links": {
"modmenu.discord": "https://6b6t.org/discord"
}
}
},
"depends": {
"fabric": "*",
"fabricloader": ">=${loader_version}",
+8 -5
View File
@@ -17,6 +17,12 @@ base {
repositories {
}
sourceSets {
main {
resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs)
}
}
dependencies {
minecraft("com.mojang:minecraft:$minecraftVersion")
mappings(loom.officialMojangMappings())
@@ -25,11 +31,6 @@ dependencies {
implementation(project(":common"))
}
tasks.named<Jar>("jar") {
dependsOn(project(":common").tasks.named("classes"))
from(project(":common").sourceSets["main"].output)
}
tasks.processResources {
inputs.property("version", project.version)
inputs.property("minecraft_version", minecraftVersion)
@@ -57,6 +58,8 @@ java {
}
tasks.jar {
dependsOn(project(":common").tasks.named("classes"))
from(project(":common").sourceSets["main"].output.classesDirs)
from("LICENSE") {
rename { "${it}_${base.archivesName.get()}" }
}
@@ -10,7 +10,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(BlockedServers.class)
public class BlockedServersMixin {
@Inject(method = "isBlockedServerHostName", at = @At("TAIL"), cancellable = true, remap = false)
@Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false)
public void isBlockedServerHostName(String server, CallbackInfoReturnable<Boolean> cir) {
boolean contains = Domains.contains(server);
if (contains) {
@@ -19,7 +19,7 @@ public class ServerListMixin {
@Final
private List<ServerData> serverList;
@Inject(method = "load", at = @At("TAIL"))
@Inject(method = "load", at = @At("RETURN"))
public void afterLoad(CallbackInfo ci) {
if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) {
serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER));
+9 -2
View File
@@ -3,10 +3,10 @@
"id": "anarchymod",
"version": "${version}",
"name": "AnarchyMod",
"description": "Client-side mod for anarchy Minecraft servers",
"description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.",
"authors": ["6b6t"],
"contact": {
"homepage": "https://6b6t.org",
"homepage": "https://www.6b6t.org/?utm_source=anarchymod&utm_medium=mod_menu&utm_campaign=evergreen_website&utm_content=description_link",
"issues": "https://github.com/6b6t/AnarchyMod/issues",
"sources": "https://github.com/6b6t/AnarchyMod"
},
@@ -21,6 +21,13 @@
"mixins": [
"anarchymod.mixins.json"
],
"custom": {
"modmenu": {
"links": {
"modmenu.discord": "https://6b6t.org/discord"
}
}
},
"depends": {
"fabric": "*",
"fabricloader": ">=${loader_version}",