27 Commits
Author SHA1 Message Date
TS bdb43a8280 add compatibilies
Build / build (push) Canceled after 0s
2026-07-16 11:47:23 +02:00
TS 324a9b899e update README 2026-07-16 11:17:54 +02:00
TS 3ae90416c8 feat: support any server, drop telemetry and server list injection
Unblock every server instead of only the domains on the built-in
allowlist, which also removes the startup download of the extra domain
list from 6b6t.org.

Remove the join packet that was sent to the server on every connect, and
stop inserting 6b6t into the multiplayer server list. The tracked
homepage link and the Discord entry are dropped from the mod metadata.
2026-07-16 11:12:23 +02:00
AlexProgrammerDEandgithub-actions[bot] 2c53427a23 chore(release): bump version to 1.3.1-SNAPSHOT 2026-07-15 07:19:00 +00:00
AlexProgrammerDEandgithub-actions[bot] e55c3574ba chore(release): bump version to 1.3.0 2026-07-15 07:14:07 +00:00
AlexProgrammerDE f4d6a6aca3 docs(branding): emphasize AnarchyMod requirement 2026-07-15 09:11:17 +02:00
AlexProgrammerDE 47e0b3c9d2 docs(branding): update 6b6t ban messaging 2026-07-15 09:10:10 +02:00
AlexProgrammerDE c674f3cbfa feat: support Minecraft 26.2 2026-07-15 09:08:41 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
869c285729 chore(deps): update all non-major dependencies to v1.17.14 (#36)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-12 23:29:39 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c17c61d325 chore(deps): update all non-major dependencies to v1.17.13 (#35)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-01 21:12:04 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
c530629e24 chore(deps): update gradle to v9.6.1 (#34)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-28 02:28:16 +00:00
AlexandGitHub e0e19720c8 Update _config.yml 2026-06-24 18:36:49 +02:00
AlexandGitHub 103b892f53 Create CODEOWNERS 2026-06-24 18:35:49 +02:00
AlexandGitHub b534dd09fc Create _config.yml 2026-06-24 18:16:10 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
d6c941c6ca chore(deps): update actions/checkout action to v7 (#32)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-24 18:14:15 +02:00
AlexandGitHub 80a12d92c9 Create CNAME 2026-06-24 18:13:37 +02:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1ef0eb4570 chore(deps): update all non-major dependencies (#33)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-20 16:42:57 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
62e7cf1c1c chore(deps): update all non-major dependencies to v0.9.6 (#31)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-17 10:59:33 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
37f771fa2d chore(deps): update all non-major dependencies to v1.17.11 (#30)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-14 21:29:59 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ab61808829 chore(deps): update all non-major dependencies to v1.17.7 (#29)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 19:46:47 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
716e67727b chore(deps): update all non-major dependencies to v0.9.5 (#28)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-05 23:06:17 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
62ee66fdd0 chore(deps): update all non-major dependencies to v1.16.3 (#27)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-02 04:38:16 +00:00
renovate[bot]GitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
79d7858f68 chore(deps): update gradle to v9.5.1 (#26)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-18 21:16:33 +00:00
AlexProgrammerDEandgithub-actions[bot] 0e3fd5af41 chore(release): bump version to 1.2.2-SNAPSHOT 2026-05-17 13:48:34 +00:00
AlexProgrammerDEandgithub-actions[bot] 5c8cf83e7f chore(release): bump version to 1.2.1 2026-05-17 13:43:57 +00:00
AlexProgrammerDE 1a571e42e2 ci(release): include 26.1 artifacts 2026-05-17 15:41:05 +02:00
AlexProgrammerDEandgithub-actions[bot] ddd6174fc0 chore(release): bump version to 1.2.1-SNAPSHOT 2026-05-17 13:10:21 +00:00
24 changed files with 144 additions and 233 deletions
+1
View File
@@ -0,0 +1 @@
* @AlexProgrammerDE
+26 -2
View File
@@ -9,12 +9,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: actions/setup-java@v5
with:
distribution: temurin
java-version: 21
java-version: 25
- uses: gradle/actions/setup-gradle@v6
@@ -139,3 +139,27 @@ jobs:
name: anarchymod-mc-1.21.11
path: versions/1.21.11/build/libs/anarchymod-mc-1.21.11-*.jar
if-no-files-found: error
- uses: actions/upload-artifact@v7
with:
name: anarchymod-mc-26.1
path: versions/26.1/build/libs/anarchymod-mc-26.1-*.jar
if-no-files-found: error
- uses: actions/upload-artifact@v7
with:
name: anarchymod-mc-26.1.1
path: versions/26.1.1/build/libs/anarchymod-mc-26.1.1-*.jar
if-no-files-found: error
- uses: actions/upload-artifact@v7
with:
name: anarchymod-mc-26.1.2
path: versions/26.1.2/build/libs/anarchymod-mc-26.1.2-*.jar
if-no-files-found: error
- uses: actions/upload-artifact@v7
with:
name: anarchymod-mc-26.2
path: versions/26.2/build/libs/anarchymod-mc-26.2-*.jar
if-no-files-found: error
+12 -4
View File
@@ -23,17 +23,17 @@ jobs:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
ref: ${{ github.ref }}
- name: Set up Gradle
uses: gradle/actions/setup-gradle@v6
- name: Set up JDK 21
- name: Set up JDK 25
uses: actions/setup-java@v5
with:
java-version: '21'
java-version: '25'
distribution: 'temurin'
- name: Build with Gradle
@@ -114,6 +114,10 @@ jobs:
| 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) |
| 26.1 | [\`anarchymod-mc-26.1-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-26.1-${VERSION}.jar) |
| 26.1.1 | [\`anarchymod-mc-26.1.1-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-26.1.1-${VERSION}.jar) |
| 26.1.2 | [\`anarchymod-mc-26.1.2-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-26.1.2-${VERSION}.jar) |
| 26.2 | [\`anarchymod-mc-26.2-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-26.2-${VERSION}.jar) |
${CHANGELOG}
EOF
@@ -141,7 +145,11 @@ jobs:
versions/1.21.8/build/libs/anarchymod-mc-1.21.8-${VERSION}.jar \
versions/1.21.9/build/libs/anarchymod-mc-1.21.9-${VERSION}.jar \
versions/1.21.10/build/libs/anarchymod-mc-1.21.10-${VERSION}.jar \
versions/1.21.11/build/libs/anarchymod-mc-1.21.11-${VERSION}.jar
versions/1.21.11/build/libs/anarchymod-mc-1.21.11-${VERSION}.jar \
versions/26.1/build/libs/anarchymod-mc-26.1-${VERSION}.jar \
versions/26.1.1/build/libs/anarchymod-mc-26.1.1-${VERSION}.jar \
versions/26.1.2/build/libs/anarchymod-mc-26.1.2-${VERSION}.jar \
versions/26.2/build/libs/anarchymod-mc-26.2-${VERSION}.jar
set-after-version:
needs: build
+1 -1
View File
@@ -22,7 +22,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
ref: ${{ github.ref }}
+1
View File
@@ -0,0 +1 @@
mod.6b6t.org
+15 -8
View File
@@ -3,13 +3,20 @@
[![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)
🔓 Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.
🔓 Bypass Mojang's blocked server list and connect to any Minecraft server.
This is a fork of [6b6t/AnarchyMod](https://github.com/6b6t/AnarchyMod), reworked so that the mod is useful for any server and keeps to itself.
## What's different from upstream
- **Every server is unblocked, not just a hardcoded list.** Upstream only bypassed the ban for domains on a built-in allowlist of anarchy servers (belonging to 6b6t), extended at startup by a list downloaded from `6b6t.org`. Both are gone: the mod now reports every server as unblocked.
- **No telemetry.** Upstream sent a packet to the server on every join, and the domain download was a second call home. Neither remains, and the mod makes no network requests of its own.
- **Your server list is left alone.** Upstream inserted 6b6t at the top of your multiplayer list if no matching server was present. It no longer touches your server list.
- **No 6b6t promotion in the mod.** The tracked homepage link and the Discord entry are gone from the mod metadata.
## Features
- **Server unblocking** — bypasses Mojang's blocked server list for known anarchy servers
- **Auto server list** — automatically adds 6b6t to your server list if not already present
- **Join notification** — sends a lightweight packet to the server on join for analytics
- **Server unblocking** — bypasses Mojang's blocked server list for every server
## Supported Minecraft Versions
@@ -38,20 +45,20 @@
| 26.1 | `mc-26.1` |
| 26.1.1 | `mc-26.1.1` |
| 26.1.2 | `mc-26.1.2` |
| 26.2 | `mc-26.2` |
## Installation
1. Install [Fabric Loader](https://fabricmc.net/) and [Fabric API](https://modrinth.com/mod/fabric-api) for your
Minecraft version
1. Install [Fabric Loader](https://fabricmc.net/) and [Fabric API](https://modrinth.com/mod/fabric-api) for your Minecraft version
2. Download the matching JAR from [Releases](https://github.com/6b6t/AnarchyMod/releases)
3. Place the JAR in your `.minecraft/mods` folder
## Building from Source
Requires Java 21+.
Requires Java 25+ for the full multi-version build.
```sh
git clone https://github.com/6b6t/AnarchyMod.git
git clone https://github.com/Wokleim/AnarchyMod.git
cd AnarchyMod
./gradlew build
```
+46
View File
@@ -0,0 +1,46 @@
# TODO
Goal: turn AnarchyMod into a generic blocked-server-list bypass, with no telemetry
and no 6b6t-specific behaviour.
## Play on any server
- [x] Make `BlockedServersMixin` always report servers as unblocked, instead of only
those on the 6b6t allowlist.
- [x] Delete `Domains.java`. It held the hardcoded anarchy-server allowlist and also
fetched an extra list from `https://www.6b6t.org/api/anarchy-mod.json` on startup.
With every server unblocked there is nothing left to match against.
## Remove telemetry
- [x] Delete `JoinPayload.java` and stop registering it in `AnarchyMod.onInitializeClient`.
- [x] Drop the `ClientPlayConnectionEvents.JOIN` listener that sent the packet to the
server on every join.
- [x] The remote domain fetch is gone with `Domains.java` (it was the other outbound call).
- [x] Drop the utm-tagged homepage link from `fabric.mod.json`.
## Do not add 6b6t to the server list
- [x] Delete `ServerListMixin.java` and remove it from `anarchymod.mixins.json`.
## Metadata
- [x] Rewrite the `fabric.mod.json` description; remove the 6b6t homepage and Discord links.
- [x] Add `Wokleim` to the authors.
- [x] Remove the now-unused explicit `gson` dependency from `build.gradle.kts` and
`modern-build.gradle.kts` (only `Domains.java` used it).
## Docs
- [x] Rewrite `README.md`: state that it is based on 6b6t/AnarchyMod, link the source,
and list the changes made in this fork.
- [x] Update the description in `_config.yml`.
## Notes / left alone on purpose
- `fabric-api` stays a required dependency and `AnarchyMod` stays the client entrypoint,
even though the entrypoint no longer does anything. Decided against dropping it.
- `contact.issues` / `contact.sources` still point at `github.com/6b6t/AnarchyMod`, kept
as source attribution rather than as promotion.
- Verified by compiling the 1.19.4, 1.20.5 and 1.21.11 modules, which covers all three
Stonecutter branches the deleted code had. Not launched in a real client.
+19
View File
@@ -0,0 +1,19 @@
title: AnarchyMod
description: 🔓 Bypass Mojang's blocked server list and connect to any Minecraft server.
theme: jekyll-theme-hacker
# The release jar lives on the Releases page, so hide the source zip/tar buttons.
show_downloads: false
# This repo is a Gradle project, so keep everything that is not the site out of
# the generated pages. Dotfiles and dotfolders (.github, .gradle, ...) are
# already ignored by Jekyll.
exclude:
- src/
- build/
- gradle/
- run/
- gradlew
- gradlew.bat
- build.gradle.kts
- settings.gradle.kts
+1 -2
View File
@@ -1,5 +1,5 @@
plugins {
id("net.fabricmc.fabric-loom-remap") version "1.16.2"
id("net.fabricmc.fabric-loom-remap") version "1.17.14"
id("maven-publish")
}
@@ -20,7 +20,6 @@ dependencies {
mappings(loom.officialMojangMappings())
modImplementation("net.fabricmc:fabric-loader:$loaderVersion")
modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion")
implementation("com.google.code.gson:gson:2.14.0")
}
loom {
+1 -1
View File
@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx1G
mod_version=1.2.0
mod_version=1.3.1-SNAPSHOT
maven_group=net.blockhost
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
Vendored
+2 -2
View File
@@ -20,7 +20,7 @@
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
# gradlew start up script for POSIX generated by Gradle.
#
# Important for running:
#
@@ -29,7 +29,7 @@
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
# ksh gradlew
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
Vendored
+2 -2
View File
@@ -19,7 +19,7 @@
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem gradlew startup script for Windows
@rem
@rem ##########################################################################
@@ -72,7 +72,7 @@ echo location of your Java installation. 1>&2
@rem Execute Gradle
@rem Execute gradlew
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
@rem which allows us to clear the local environment before executing the java command
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel
+1 -2
View File
@@ -1,5 +1,5 @@
plugins {
id("net.fabricmc.fabric-loom") version "1.16.2"
id("net.fabricmc.fabric-loom") version "1.17.14"
id("maven-publish")
}
@@ -19,7 +19,6 @@ dependencies {
minecraft("com.mojang:minecraft:$minecraftVersion")
implementation("net.fabricmc:fabric-loader:$loaderVersion")
implementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion")
implementation("com.google.code.gson:gson:2.14.0")
}
loom {
+3 -2
View File
@@ -7,7 +7,8 @@ pluginManagement {
}
plugins {
id("dev.kikugie.stonecutter") version "0.9.4"
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
id("dev.kikugie.stonecutter") version "0.9.6"
}
stonecutter {
@@ -19,7 +20,7 @@ stonecutter {
"1.21.5", "1.21.6", "1.21.7",
"1.21.8", "1.21.9", "1.21.10", "1.21.11"
)
val modern = arrayOf("26.1", "26.1.1", "26.1.2")
val modern = arrayOf("26.1", "26.1.1", "26.1.2", "26.2")
versions(*legacy).buildscript("build.gradle.kts")
versions(*modern).buildscript("modern-build.gradle.kts")
@@ -1,31 +1,11 @@
package net.blockhost.anarchymod;
//? if <1.20.5 {
/*import io.netty.buffer.Unpooled;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.network.FriendlyByteBuf;
*///?} else {
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
//?}
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
public class AnarchyMod implements ClientModInitializer {
@Override
public void onInitializeClient() {
//? if >=26.1 {
PayloadTypeRegistry.serverboundPlay().register(JoinPayload.TYPE, JoinPayload.CODEC);
//?} else if >=1.20.5 {
/*PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC);
*///?}
ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> {
if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip))
//? if <1.20.5 {
/*ClientPlayNetworking.send(JoinPayload.ID, new FriendlyByteBuf(Unpooled.buffer()));
*///?} else {
sender.sendPacket(new JoinPayload());
//?}
});
// Everything this mod does happens in BlockedServersMixin.
}
}
@@ -1,88 +0,0 @@
package net.blockhost.anarchymod;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
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"
);
private static final Set<String> domains = new HashSet<>();
private static final Gson gson = new Gson();
static {
DEFAULT.forEach(d -> domains.add(d.toLowerCase(Locale.ROOT)));
loadRemote();
}
private static void loadRemote() {
try {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(DOMAINS_URL))
.timeout(Duration.ofSeconds(15))
.GET()
.build();
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(Locale.ROOT))
);
} 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(Locale.ROOT);
if (domain.startsWith("*.")) {
domain = domain.substring(2);
}
int semiColon = domain.indexOf(':');
if (semiColon != -1) {
domain = domain.substring(0, semiColon);
}
for (String entry : domains) {
if (entry.startsWith("*.")) {
String base = entry.substring(2);
if (domain.equals(base) || domain.endsWith("." + base)) {
return true;
}
} else {
if (domain.equals(entry)) {
return true;
}
}
}
return false;
}
}
@@ -1,44 +0,0 @@
package net.blockhost.anarchymod;
//? if <1.20.5 {
/*import net.minecraft.resources.ResourceLocation;
public class JoinPayload {
public static final ResourceLocation ID = new ResourceLocation("anarchymod", "join");
}
*///?} else {
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
//? if >=1.21.11 {
import net.minecraft.resources.Identifier;
//? } else {
/*import net.minecraft.resources.ResourceLocation;
*///?}
public class JoinPayload implements CustomPacketPayload {
//? if >=1.21.11 {
public static final Identifier ID = Identifier.fromNamespaceAndPath("anarchymod", "join");
//? } elif >=1.21.7 {
/*public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath("anarchymod", "join");
*///?} else {
/*public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join");
*///?}
public static final StreamCodec<FriendlyByteBuf, JoinPayload> CODEC =
StreamCodec.of(
(buf, payload) -> {},
buf -> new JoinPayload()
);
public static final Type<JoinPayload> TYPE =
new Type<>(ID);
@Override
public Type<? extends CustomPacketPayload> type() {
return TYPE;
}
}
//?}
@@ -1,7 +1,6 @@
package net.blockhost.anarchymod.mixin;
import com.mojang.patchy.BlockedServers;
import net.blockhost.anarchymod.Domains;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -10,11 +9,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(BlockedServers.class)
public class BlockedServersMixin {
@Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false)
@Inject(method = "isBlockedServerHostName", at = @At("HEAD"), cancellable = true, remap = false)
public void isBlockedServerHostName(String server, CallbackInfoReturnable<Boolean> cir) {
boolean contains = Domains.contains(server);
if (contains) {
cir.setReturnValue(false);
}
}
}
@@ -1,34 +0,0 @@
package net.blockhost.anarchymod.mixin;
import net.blockhost.anarchymod.Domains;
import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.multiplayer.ServerList;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.List;
@Mixin(ServerList.class)
public class ServerListMixin {
@Shadow
@Final
private List<ServerData> serverList;
@Inject(method = "load", at = @At("RETURN"))
public void afterLoad(CallbackInfo ci) {
if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) {
//? if <1.20.2 {
/*serverList.add(0, new ServerData("6b6t", "6b6t.org", false));
*///? } elif <1.20.5 {
/*serverList.add(0, new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER));
*///?} else {
serverList.addFirst(new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER));
//?}
}
}
}
+1 -2
View File
@@ -4,8 +4,7 @@
"package": "net.blockhost.anarchymod.mixin",
"compatibilityLevel": "JAVA_${java_version}",
"client": [
"BlockedServersMixin",
"ServerListMixin"
"BlockedServersMixin"
],
"injectors": {
"defaultRequire": 1
+3 -10
View File
@@ -3,12 +3,12 @@
"id": "anarchymod",
"version": "${version}",
"name": "AnarchyMod",
"description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.",
"description": "Bypasses Mojang's blocked server list so you can connect to any Minecraft server.",
"authors": [
"6b6t"
"6b6t",
"Wokleim"
],
"contact": {
"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"
},
@@ -23,13 +23,6 @@
"mixins": [
"anarchymod.mixins.json"
],
"custom": {
"modmenu": {
"links": {
"modmenu.discord": "https://6b6t.org/discord"
}
}
},
"depends": {
"fabric-api": "*",
"fabricloader": ">=${loader_version}",
+1 -1
View File
@@ -2,7 +2,7 @@ plugins {
id("dev.kikugie.stonecutter")
}
stonecutter active "26.1.2"
stonecutter active "26.2"
tasks.register("chiseledBuild") {
group = "project"
+4
View File
@@ -0,0 +1,4 @@
minecraft_version=26.2
loader_version=0.19.3
fabric_api_version=0.154.2+26.2
java_version=25