From 7436830de1d2f78738a2c596f77b29d3a48d0ad8 Mon Sep 17 00:00:00 2001 From: Laur Date: Sun, 1 Mar 2026 02:34:49 +0200 Subject: [PATCH] Added support for versions 1.19.4 through 1.21.7 --- .github/workflows/build.yml | 98 ++++++++++++++++++- .github/workflows/release.yml | 32 ++++++ README.md | 19 +++- common/build.gradle.kts | 2 +- .../net/blockhost/anarchymod/Domains.java | 3 +- desktop.ini | 2 + mc-1.19.4/build.gradle.kts | 75 ++++++++++++++ mc-1.19.4/gradle.properties | 10 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 18 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 8 ++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.19.4/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.20.1/build.gradle.kts | 75 ++++++++++++++ mc-1.20.1/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 18 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 8 ++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.20.1/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.20.2/build.gradle.kts | 75 ++++++++++++++ mc-1.20.2/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 18 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 8 ++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.20.2/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.20.3/build.gradle.kts | 75 ++++++++++++++ mc-1.20.3/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 18 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 8 ++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.20.3/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.20.4/build.gradle.kts | 75 ++++++++++++++ mc-1.20.4/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 18 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 8 ++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.20.4/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.20.5/build.gradle.kts | 75 ++++++++++++++ mc-1.20.5/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.20.5/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.20.6/build.gradle.kts | 75 ++++++++++++++ mc-1.20.6/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.20.6/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.20/build.gradle.kts | 75 ++++++++++++++ mc-1.20/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 18 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 8 ++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.20/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.21.1/build.gradle.kts | 75 ++++++++++++++ mc-1.21.1/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.21.1/src/main/resources/fabric.mod.json | 39 ++++++++ .../net/blockhost/anarchymod/AnarchyMod.java | 2 - .../net/blockhost/anarchymod/JoinPayload.java | 11 ++- mc-1.21.10/src/main/resources/fabric.mod.json | 4 +- .../net/blockhost/anarchymod/AnarchyMod.java | 2 - .../net/blockhost/anarchymod/JoinPayload.java | 11 ++- mc-1.21.11/src/main/resources/fabric.mod.json | 4 +- mc-1.21.2/build.gradle.kts | 75 ++++++++++++++ mc-1.21.2/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.21.2/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.21.3/build.gradle.kts | 75 ++++++++++++++ mc-1.21.3/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.21.3/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.21.4/build.gradle.kts | 75 ++++++++++++++ mc-1.21.4/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.21.4/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.21.5/build.gradle.kts | 75 ++++++++++++++ mc-1.21.5/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.21.5/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.21.6/build.gradle.kts | 75 ++++++++++++++ mc-1.21.6/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.21.6/src/main/resources/fabric.mod.json | 39 ++++++++ mc-1.21.7/build.gradle.kts | 75 ++++++++++++++ mc-1.21.7/gradle.properties | 10 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.21.7/src/main/resources/fabric.mod.json | 39 ++++++++ .../net/blockhost/anarchymod/AnarchyMod.java | 2 - .../net/blockhost/anarchymod/JoinPayload.java | 11 ++- mc-1.21.8/src/main/resources/fabric.mod.json | 4 +- .../net/blockhost/anarchymod/AnarchyMod.java | 2 - .../net/blockhost/anarchymod/JoinPayload.java | 11 ++- mc-1.21.9/src/main/resources/fabric.mod.json | 4 +- mc-1.21/build.gradle.kts | 75 ++++++++++++++ mc-1.21/gradle.properties | 8 ++ .../net/blockhost/anarchymod/AnarchyMod.java | 19 ++++ .../net/blockhost/anarchymod/JoinPayload.java | 26 +++++ .../anarchymod/mixin/BlockedServersMixin.java | 21 ++++ .../anarchymod/mixin/ServerListMixin.java | 29 ++++++ .../src/main/resources/anarchymod.mixins.json | 16 +++ mc-1.21/src/main/resources/fabric.mod.json | 39 ++++++++ renovate.json | 10 +- settings.gradle.kts | 18 +++- 148 files changed, 3831 insertions(+), 39 deletions(-) create mode 100644 desktop.ini create mode 100644 mc-1.19.4/build.gradle.kts create mode 100644 mc-1.19.4/gradle.properties create mode 100644 mc-1.19.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.19.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.19.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.19.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.19.4/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.19.4/src/main/resources/fabric.mod.json create mode 100644 mc-1.20.1/build.gradle.kts create mode 100644 mc-1.20.1/gradle.properties create mode 100644 mc-1.20.1/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.20.1/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.20.1/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.20.1/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.20.1/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.20.1/src/main/resources/fabric.mod.json create mode 100644 mc-1.20.2/build.gradle.kts create mode 100644 mc-1.20.2/gradle.properties create mode 100644 mc-1.20.2/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.20.2/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.20.2/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.20.2/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.20.2/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.20.2/src/main/resources/fabric.mod.json create mode 100644 mc-1.20.3/build.gradle.kts create mode 100644 mc-1.20.3/gradle.properties create mode 100644 mc-1.20.3/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.20.3/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.20.3/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.20.3/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.20.3/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.20.3/src/main/resources/fabric.mod.json create mode 100644 mc-1.20.4/build.gradle.kts create mode 100644 mc-1.20.4/gradle.properties create mode 100644 mc-1.20.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.20.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.20.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.20.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.20.4/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.20.4/src/main/resources/fabric.mod.json create mode 100644 mc-1.20.5/build.gradle.kts create mode 100644 mc-1.20.5/gradle.properties create mode 100644 mc-1.20.5/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.20.5/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.20.5/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.20.5/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.20.5/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.20.5/src/main/resources/fabric.mod.json create mode 100644 mc-1.20.6/build.gradle.kts create mode 100644 mc-1.20.6/gradle.properties create mode 100644 mc-1.20.6/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.20.6/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.20.6/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.20.6/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.20.6/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.20.6/src/main/resources/fabric.mod.json create mode 100644 mc-1.20/build.gradle.kts create mode 100644 mc-1.20/gradle.properties create mode 100644 mc-1.20/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.20/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.20/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.20/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.20/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.20/src/main/resources/fabric.mod.json create mode 100644 mc-1.21.1/build.gradle.kts create mode 100644 mc-1.21.1/gradle.properties create mode 100644 mc-1.21.1/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.21.1/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.21.1/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.21.1/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.21.1/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.21.1/src/main/resources/fabric.mod.json create mode 100644 mc-1.21.2/build.gradle.kts create mode 100644 mc-1.21.2/gradle.properties create mode 100644 mc-1.21.2/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.21.2/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.21.2/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.21.2/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.21.2/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.21.2/src/main/resources/fabric.mod.json create mode 100644 mc-1.21.3/build.gradle.kts create mode 100644 mc-1.21.3/gradle.properties create mode 100644 mc-1.21.3/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.21.3/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.21.3/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.21.3/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.21.3/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.21.3/src/main/resources/fabric.mod.json create mode 100644 mc-1.21.4/build.gradle.kts create mode 100644 mc-1.21.4/gradle.properties create mode 100644 mc-1.21.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.21.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.21.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.21.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.21.4/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.21.4/src/main/resources/fabric.mod.json create mode 100644 mc-1.21.5/build.gradle.kts create mode 100644 mc-1.21.5/gradle.properties create mode 100644 mc-1.21.5/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.21.5/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.21.5/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.21.5/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.21.5/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.21.5/src/main/resources/fabric.mod.json create mode 100644 mc-1.21.6/build.gradle.kts create mode 100644 mc-1.21.6/gradle.properties create mode 100644 mc-1.21.6/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.21.6/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.21.6/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.21.6/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.21.6/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.21.6/src/main/resources/fabric.mod.json create mode 100644 mc-1.21.7/build.gradle.kts create mode 100644 mc-1.21.7/gradle.properties create mode 100644 mc-1.21.7/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.21.7/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.21.7/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.21.7/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.21.7/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.21.7/src/main/resources/fabric.mod.json create mode 100644 mc-1.21/build.gradle.kts create mode 100644 mc-1.21/gradle.properties create mode 100644 mc-1.21/src/main/java/net/blockhost/anarchymod/AnarchyMod.java create mode 100644 mc-1.21/src/main/java/net/blockhost/anarchymod/JoinPayload.java create mode 100644 mc-1.21/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java create mode 100644 mc-1.21/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java create mode 100644 mc-1.21/src/main/resources/anarchymod.mixins.json create mode 100644 mc-1.21/src/main/resources/fabric.mod.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a5b3b88..aa3b78e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,7 @@ name: Build on: push: - branches: [main] + branches: [ main ] pull_request: jobs: @@ -20,6 +20,102 @@ jobs: - run: ./gradlew build + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.19.4 + path: mc-1.19.4/build/libs/anarchymod-mc-1.19.4-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.20 + path: mc-1.20/build/libs/anarchymod-mc-1.20-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.20.1 + path: mc-1.20.1/build/libs/anarchymod-mc-1.20.1-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.20.2 + path: mc-1.20.2/build/libs/anarchymod-mc-1.20.2-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.20.3 + path: mc-1.20.3/build/libs/anarchymod-mc-1.20.3-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.20.4 + path: mc-1.20.4/build/libs/anarchymod-mc-1.20.4-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.20.5 + path: mc-1.20.5/build/libs/anarchymod-mc-1.20.5-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.20.6 + path: mc-1.20.6/build/libs/anarchymod-mc-1.20.6-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.21 + path: mc-1.21/build/libs/anarchymod-mc-1.21-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.21.1 + path: mc-1.21.1/build/libs/anarchymod-mc-1.21.1-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.21.2 + path: mc-1.21.2/build/libs/anarchymod-mc-1.21.2-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.21.3 + path: mc-1.21.3/build/libs/anarchymod-mc-1.21.3-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.21.4 + path: mc-1.21.4/build/libs/anarchymod-mc-1.21.4-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.21.5 + path: mc-1.21.5/build/libs/anarchymod-mc-1.21.5-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.21.6 + path: mc-1.21.6/build/libs/anarchymod-mc-1.21.6-*.jar + if-no-files-found: error + + - uses: actions/upload-artifact@v7 + with: + name: anarchymod-mc-1.21.7 + path: mc-1.21.7/build/libs/anarchymod-mc-1.21.7-*.jar + if-no-files-found: error + - uses: actions/upload-artifact@v7 with: name: anarchymod-mc-1.21.8 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 729d119..2cba5a7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -94,6 +94,22 @@ jobs: | Minecraft Version | Download | |---|---| + | 1.19.4 | [\`anarchymod-mc-1.19.4-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.19.4-${VERSION}.jar) | + | 1.20 | [\`anarchymod-mc-1.20-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.20-${VERSION}.jar) | + | 1.20.1 | [\`anarchymod-mc-1.20.1-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.20.1-${VERSION}.jar) | + | 1.20.2 | [\`anarchymod-mc-1.20.2-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.20.2-${VERSION}.jar) | + | 1.20.3 | [\`anarchymod-mc-1.20.3-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.20.3-${VERSION}.jar) | + | 1.20.4 | [\`anarchymod-mc-1.20.4-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.20.4-${VERSION}.jar) | + | 1.20.5 | [\`anarchymod-mc-1.20.5-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.20.5-${VERSION}.jar) | + | 1.20.6 | [\`anarchymod-mc-1.20.6-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.20.6-${VERSION}.jar) | + | 1.21 | [\`anarchymod-mc-1.21-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21-${VERSION}.jar) | + | 1.21.1 | [\`anarchymod-mc-1.21.1-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.1-${VERSION}.jar) | + | 1.21.2 | [\`anarchymod-mc-1.21.2-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.2-${VERSION}.jar) | + | 1.21.3 | [\`anarchymod-mc-1.21.3-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.3-${VERSION}.jar) | + | 1.21.4 | [\`anarchymod-mc-1.21.4-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.4-${VERSION}.jar) | + | 1.21.5 | [\`anarchymod-mc-1.21.5-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.5-${VERSION}.jar) | + | 1.21.6 | [\`anarchymod-mc-1.21.6-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.6-${VERSION}.jar) | + | 1.21.7 | [\`anarchymod-mc-1.21.7-${VERSION}.jar\`](${DOWNLOAD_URL}/anarchymod-mc-1.21.7-${VERSION}.jar) | | 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) | @@ -106,6 +122,22 @@ jobs: gh release create "${VERSION}" \ --title "AnarchyMod ${VERSION}" \ --notes "${NOTES}" \ + mc-1.19.4/build/libs/anarchymod-mc-1.19.4-${VERSION}.jar \ + mc-1.20/build/libs/anarchymod-mc-1.20-${VERSION}.jar \ + mc-1.20.1/build/libs/anarchymod-mc-1.20.1-${VERSION}.jar \ + mc-1.20.2/build/libs/anarchymod-mc-1.20.2-${VERSION}.jar \ + mc-1.20.3/build/libs/anarchymod-mc-1.20.3-${VERSION}.jar \ + mc-1.20.4/build/libs/anarchymod-mc-1.20.4-${VERSION}.jar \ + mc-1.20.5/build/libs/anarchymod-mc-1.20.5-${VERSION}.jar \ + mc-1.20.6/build/libs/anarchymod-mc-1.20.6-${VERSION}.jar \ + mc-1.21/build/libs/anarchymod-mc-1.21-${VERSION}.jar \ + mc-1.21.1/build/libs/anarchymod-mc-1.21.1-${VERSION}.jar \ + mc-1.21.2/build/libs/anarchymod-mc-1.21.2-${VERSION}.jar \ + mc-1.21.3/build/libs/anarchymod-mc-1.21.3-${VERSION}.jar \ + mc-1.21.4/build/libs/anarchymod-mc-1.21.4-${VERSION}.jar \ + mc-1.21.5/build/libs/anarchymod-mc-1.21.5-${VERSION}.jar \ + mc-1.21.6/build/libs/anarchymod-mc-1.21.6-${VERSION}.jar \ + mc-1.21.7/build/libs/anarchymod-mc-1.21.7-${VERSION}.jar \ 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 \ diff --git a/README.md b/README.md index 402a0a7..ca03e1f 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,22 @@ | Minecraft | Module | |-----------|--------------| +| 1.19.4 | `mc-1.19.4` | +| 1.20 | `mc-1.20` | +| 1.20.1 | `mc-1.20.1` | +| 1.20.2 | `mc-1.20.2` | +| 1.20.3 | `mc-1.20.3` | +| 1.20.4 | `mc-1.20.4` | +| 1.20.5 | `mc-1.20.5` | +| 1.20.6 | `mc-1.20.6` | +| 1.21 | `mc-1.21` | +| 1.21.1 | `mc-1.21.1` | +| 1.21.2 | `mc-1.21.2` | +| 1.21.3 | `mc-1.21.3` | +| 1.21.4 | `mc-1.21.4` | +| 1.21.5 | `mc-1.21.5` | +| 1.21.6 | `mc-1.21.6` | +| 1.21.7 | `mc-1.21.7` | | 1.21.8 | `mc-1.21.8` | | 1.21.9 | `mc-1.21.9` | | 1.21.10 | `mc-1.21.10` | @@ -22,7 +38,8 @@ ## 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 diff --git a/common/build.gradle.kts b/common/build.gradle.kts index ca68057..b71d02f 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -14,5 +14,5 @@ dependencies { } java { - toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + toolchain.languageVersion.set(JavaLanguageVersion.of(17)) } \ No newline at end of file diff --git a/common/src/main/java/net/blockhost/anarchymod/Domains.java b/common/src/main/java/net/blockhost/anarchymod/Domains.java index 5cb0340..5119733 100644 --- a/common/src/main/java/net/blockhost/anarchymod/Domains.java +++ b/common/src/main/java/net/blockhost/anarchymod/Domains.java @@ -34,7 +34,8 @@ public class Domains { } private static void loadRemote() { - try (HttpClient client = HttpClient.newHttpClient()) { + try { + HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(DOMAINS_URL)) .timeout(Duration.ofSeconds(15)) diff --git a/desktop.ini b/desktop.ini new file mode 100644 index 0000000..ac50801 --- /dev/null +++ b/desktop.ini @@ -0,0 +1,2 @@ +[.ShellClassInfo] +LocalizedResourceName=AnarchyMod diff --git a/mc-1.19.4/build.gradle.kts b/mc-1.19.4/build.gradle.kts new file mode 100644 index 0000000..b35cefb --- /dev/null +++ b/mc-1.19.4/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.19.4/gradle.properties b/mc-1.19.4/gradle.properties new file mode 100644 index 0000000..af78a59 --- /dev/null +++ b/mc-1.19.4/gradle.properties @@ -0,0 +1,10 @@ +# Done to increase the memory available to gradle. +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.19.4 +loader_version=0.14.21 +fabric_api_version=0.76.0+1.19.4 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.19.4 + diff --git a/mc-1.19.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.19.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..ddd26b6 --- /dev/null +++ b/mc-1.19.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,18 @@ +package net.blockhost.anarchymod; + +import io.netty.buffer.Unpooled; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.FriendlyByteBuf; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + ClientPlayNetworking.send(JoinPayload.ID, new FriendlyByteBuf(Unpooled.buffer())); + }); + } +} diff --git a/mc-1.19.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.19.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..12353c0 --- /dev/null +++ b/mc-1.19.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,8 @@ +package net.blockhost.anarchymod; + +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload { + + public static final ResourceLocation ID = new ResourceLocation("anarchymod", "join"); +} diff --git a/mc-1.19.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.19.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.19.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.19.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.19.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..5a89365 --- /dev/null +++ b/mc-1.19.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @Inject(method = "load", at = @At("RETURN")) + public void afterLoad(CallbackInfo ci) { + if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { + serverList.add(0, new ServerData("6b6t", "6b6t.org", false)); + } + } + +} diff --git a/mc-1.19.4/src/main/resources/anarchymod.mixins.json b/mc-1.19.4/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..c01be5b --- /dev/null +++ b/mc-1.19.4/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_17", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.19.4/src/main/resources/fabric.mod.json b/mc-1.19.4/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..87c6d3f --- /dev/null +++ b/mc-1.19.4/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=17" + } +} diff --git a/mc-1.20.1/build.gradle.kts b/mc-1.20.1/build.gradle.kts new file mode 100644 index 0000000..b35cefb --- /dev/null +++ b/mc-1.20.1/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.20.1/gradle.properties b/mc-1.20.1/gradle.properties new file mode 100644 index 0000000..7644a4a --- /dev/null +++ b/mc-1.20.1/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.20.1 +loader_version=0.18.4 +fabric_api_version=0.92.7+1.20.1 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.20.1 diff --git a/mc-1.20.1/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.20.1/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..ddd26b6 --- /dev/null +++ b/mc-1.20.1/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,18 @@ +package net.blockhost.anarchymod; + +import io.netty.buffer.Unpooled; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.FriendlyByteBuf; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + ClientPlayNetworking.send(JoinPayload.ID, new FriendlyByteBuf(Unpooled.buffer())); + }); + } +} diff --git a/mc-1.20.1/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.20.1/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..12353c0 --- /dev/null +++ b/mc-1.20.1/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,8 @@ +package net.blockhost.anarchymod; + +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload { + + public static final ResourceLocation ID = new ResourceLocation("anarchymod", "join"); +} diff --git a/mc-1.20.1/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.20.1/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.20.1/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.20.1/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.20.1/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..5a89365 --- /dev/null +++ b/mc-1.20.1/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @Inject(method = "load", at = @At("RETURN")) + public void afterLoad(CallbackInfo ci) { + if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { + serverList.add(0, new ServerData("6b6t", "6b6t.org", false)); + } + } + +} diff --git a/mc-1.20.1/src/main/resources/anarchymod.mixins.json b/mc-1.20.1/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..c01be5b --- /dev/null +++ b/mc-1.20.1/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_17", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.20.1/src/main/resources/fabric.mod.json b/mc-1.20.1/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..87c6d3f --- /dev/null +++ b/mc-1.20.1/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=17" + } +} diff --git a/mc-1.20.2/build.gradle.kts b/mc-1.20.2/build.gradle.kts new file mode 100644 index 0000000..b35cefb --- /dev/null +++ b/mc-1.20.2/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.20.2/gradle.properties b/mc-1.20.2/gradle.properties new file mode 100644 index 0000000..dc65e94 --- /dev/null +++ b/mc-1.20.2/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.20.2 +loader_version=0.18.4 +fabric_api_version=0.91.6+1.20.2 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.20.2 diff --git a/mc-1.20.2/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.20.2/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..ddd26b6 --- /dev/null +++ b/mc-1.20.2/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,18 @@ +package net.blockhost.anarchymod; + +import io.netty.buffer.Unpooled; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.FriendlyByteBuf; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + ClientPlayNetworking.send(JoinPayload.ID, new FriendlyByteBuf(Unpooled.buffer())); + }); + } +} diff --git a/mc-1.20.2/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.20.2/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..12353c0 --- /dev/null +++ b/mc-1.20.2/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,8 @@ +package net.blockhost.anarchymod; + +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload { + + public static final ResourceLocation ID = new ResourceLocation("anarchymod", "join"); +} diff --git a/mc-1.20.2/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.20.2/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.20.2/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.20.2/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.20.2/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..f2bc1b8 --- /dev/null +++ b/mc-1.20.2/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @Inject(method = "load", at = @At("RETURN")) + public void afterLoad(CallbackInfo ci) { + if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { + serverList.add(0, new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER)); + } + } + +} diff --git a/mc-1.20.2/src/main/resources/anarchymod.mixins.json b/mc-1.20.2/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..c01be5b --- /dev/null +++ b/mc-1.20.2/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_17", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.20.2/src/main/resources/fabric.mod.json b/mc-1.20.2/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..87c6d3f --- /dev/null +++ b/mc-1.20.2/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=17" + } +} diff --git a/mc-1.20.3/build.gradle.kts b/mc-1.20.3/build.gradle.kts new file mode 100644 index 0000000..b35cefb --- /dev/null +++ b/mc-1.20.3/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.20.3/gradle.properties b/mc-1.20.3/gradle.properties new file mode 100644 index 0000000..23b7785 --- /dev/null +++ b/mc-1.20.3/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.20.3 +loader_version=0.18.4 +fabric_api_version=0.91.1+1.20.3 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.20.3 diff --git a/mc-1.20.3/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.20.3/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..ddd26b6 --- /dev/null +++ b/mc-1.20.3/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,18 @@ +package net.blockhost.anarchymod; + +import io.netty.buffer.Unpooled; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.FriendlyByteBuf; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + ClientPlayNetworking.send(JoinPayload.ID, new FriendlyByteBuf(Unpooled.buffer())); + }); + } +} diff --git a/mc-1.20.3/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.20.3/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..12353c0 --- /dev/null +++ b/mc-1.20.3/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,8 @@ +package net.blockhost.anarchymod; + +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload { + + public static final ResourceLocation ID = new ResourceLocation("anarchymod", "join"); +} diff --git a/mc-1.20.3/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.20.3/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.20.3/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.20.3/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.20.3/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..f2bc1b8 --- /dev/null +++ b/mc-1.20.3/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @Inject(method = "load", at = @At("RETURN")) + public void afterLoad(CallbackInfo ci) { + if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { + serverList.add(0, new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER)); + } + } + +} diff --git a/mc-1.20.3/src/main/resources/anarchymod.mixins.json b/mc-1.20.3/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..c01be5b --- /dev/null +++ b/mc-1.20.3/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_17", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.20.3/src/main/resources/fabric.mod.json b/mc-1.20.3/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..87c6d3f --- /dev/null +++ b/mc-1.20.3/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=17" + } +} diff --git a/mc-1.20.4/build.gradle.kts b/mc-1.20.4/build.gradle.kts new file mode 100644 index 0000000..b35cefb --- /dev/null +++ b/mc-1.20.4/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.20.4/gradle.properties b/mc-1.20.4/gradle.properties new file mode 100644 index 0000000..eeb0d60 --- /dev/null +++ b/mc-1.20.4/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.20.4 +loader_version=0.18.4 +fabric_api_version=0.97.3+1.20.4 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.20.4 diff --git a/mc-1.20.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.20.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..ddd26b6 --- /dev/null +++ b/mc-1.20.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,18 @@ +package net.blockhost.anarchymod; + +import io.netty.buffer.Unpooled; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.FriendlyByteBuf; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + ClientPlayNetworking.send(JoinPayload.ID, new FriendlyByteBuf(Unpooled.buffer())); + }); + } +} diff --git a/mc-1.20.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.20.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..12353c0 --- /dev/null +++ b/mc-1.20.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,8 @@ +package net.blockhost.anarchymod; + +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload { + + public static final ResourceLocation ID = new ResourceLocation("anarchymod", "join"); +} diff --git a/mc-1.20.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.20.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.20.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.20.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.20.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..f2bc1b8 --- /dev/null +++ b/mc-1.20.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @Inject(method = "load", at = @At("RETURN")) + public void afterLoad(CallbackInfo ci) { + if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { + serverList.add(0, new ServerData("6b6t", "6b6t.org", ServerData.Type.OTHER)); + } + } + +} diff --git a/mc-1.20.4/src/main/resources/anarchymod.mixins.json b/mc-1.20.4/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..c01be5b --- /dev/null +++ b/mc-1.20.4/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_17", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.20.4/src/main/resources/fabric.mod.json b/mc-1.20.4/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..87c6d3f --- /dev/null +++ b/mc-1.20.4/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=17" + } +} diff --git a/mc-1.20.5/build.gradle.kts b/mc-1.20.5/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.20.5/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.20.5/gradle.properties b/mc-1.20.5/gradle.properties new file mode 100644 index 0000000..ae2ae6e --- /dev/null +++ b/mc-1.20.5/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.20.5 +loader_version=0.18.4 +fabric_api_version=0.97.8+1.20.5 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.20.5 diff --git a/mc-1.20.5/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.20.5/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.20.5/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.20.5/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.20.5/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.20.5/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.20.5/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.20.5/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.20.5/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.20.5/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.20.5/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.20.5/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.20.5/src/main/resources/anarchymod.mixins.json b/mc-1.20.5/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.20.5/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.20.5/src/main/resources/fabric.mod.json b/mc-1.20.5/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.20.5/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.20.6/build.gradle.kts b/mc-1.20.6/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.20.6/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.20.6/gradle.properties b/mc-1.20.6/gradle.properties new file mode 100644 index 0000000..dd6492b --- /dev/null +++ b/mc-1.20.6/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.20.6 +loader_version=0.18.4 +fabric_api_version=0.100.8+1.20.6 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.20.6 diff --git a/mc-1.20.6/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.20.6/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.20.6/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.20.6/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.20.6/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.20.6/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.20.6/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.20.6/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.20.6/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.20.6/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.20.6/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.20.6/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.20.6/src/main/resources/anarchymod.mixins.json b/mc-1.20.6/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.20.6/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.20.6/src/main/resources/fabric.mod.json b/mc-1.20.6/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.20.6/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.20/build.gradle.kts b/mc-1.20/build.gradle.kts new file mode 100644 index 0000000..b35cefb --- /dev/null +++ b/mc-1.20/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(17)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.20/gradle.properties b/mc-1.20/gradle.properties new file mode 100644 index 0000000..24bf45e --- /dev/null +++ b/mc-1.20/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.20 +loader_version=0.18.4 +fabric_api_version=0.83.0+1.20 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.20 diff --git a/mc-1.20/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.20/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..ddd26b6 --- /dev/null +++ b/mc-1.20/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,18 @@ +package net.blockhost.anarchymod; + +import io.netty.buffer.Unpooled; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.FriendlyByteBuf; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + ClientPlayNetworking.send(JoinPayload.ID, new FriendlyByteBuf(Unpooled.buffer())); + }); + } +} diff --git a/mc-1.20/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.20/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..12353c0 --- /dev/null +++ b/mc-1.20/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,8 @@ +package net.blockhost.anarchymod; + +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload { + + public static final ResourceLocation ID = new ResourceLocation("anarchymod", "join"); +} diff --git a/mc-1.20/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.20/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.20/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.20/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.20/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..5a89365 --- /dev/null +++ b/mc-1.20/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @Inject(method = "load", at = @At("RETURN")) + public void afterLoad(CallbackInfo ci) { + if (serverList.stream().noneMatch(data -> Domains.contains(data.ip))) { + serverList.add(0, new ServerData("6b6t", "6b6t.org", false)); + } + } + +} diff --git a/mc-1.20/src/main/resources/anarchymod.mixins.json b/mc-1.20/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..c01be5b --- /dev/null +++ b/mc-1.20/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_17", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.20/src/main/resources/fabric.mod.json b/mc-1.20/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..87c6d3f --- /dev/null +++ b/mc-1.20/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=17" + } +} diff --git a/mc-1.21.1/build.gradle.kts b/mc-1.21.1/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.21.1/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.21.1/gradle.properties b/mc-1.21.1/gradle.properties new file mode 100644 index 0000000..ea6789f --- /dev/null +++ b/mc-1.21.1/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.21.1 +loader_version=0.18.4 +fabric_api_version=0.116.9+1.21.1 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.21.1 diff --git a/mc-1.21.1/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.1/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.21.1/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.21.1/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.1/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.21.1/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.21.1/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.1/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.21.1/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.21.1/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.1/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.21.1/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.21.1/src/main/resources/anarchymod.mixins.json b/mc-1.21.1/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.21.1/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.21.1/src/main/resources/fabric.mod.json b/mc-1.21.1/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.21.1/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.21.10/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.10/src/main/java/net/blockhost/anarchymod/AnarchyMod.java index f921459..a30c897 100644 --- a/mc-1.21.10/src/main/java/net/blockhost/anarchymod/AnarchyMod.java +++ b/mc-1.21.10/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -2,9 +2,7 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; -import net.minecraft.core.registries.BuiltInRegistries; public class AnarchyMod implements ClientModInitializer { diff --git a/mc-1.21.10/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.10/src/main/java/net/blockhost/anarchymod/JoinPayload.java index d418cfb..5613cdc 100644 --- a/mc-1.21.10/src/main/java/net/blockhost/anarchymod/JoinPayload.java +++ b/mc-1.21.10/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -10,13 +10,14 @@ public class JoinPayload implements CustomPacketPayload { public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath("anarchymod", "join"); public static final StreamCodec CODEC = - StreamCodec.of( - (payload, buf) -> {}, - buf -> new JoinPayload() - ); + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); public static final Type TYPE = - new Type<>(ID); + new Type<>(ID); @Override public Type type() { diff --git a/mc-1.21.10/src/main/resources/fabric.mod.json b/mc-1.21.10/src/main/resources/fabric.mod.json index 6cd2de9..3a41f8d 100644 --- a/mc-1.21.10/src/main/resources/fabric.mod.json +++ b/mc-1.21.10/src/main/resources/fabric.mod.json @@ -4,7 +4,9 @@ "version": "${version}", "name": "AnarchyMod", "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", - "authors": ["6b6t"], + "authors": [ + "6b6t" + ], "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", diff --git a/mc-1.21.11/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.11/src/main/java/net/blockhost/anarchymod/AnarchyMod.java index f921459..a30c897 100644 --- a/mc-1.21.11/src/main/java/net/blockhost/anarchymod/AnarchyMod.java +++ b/mc-1.21.11/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -2,9 +2,7 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; -import net.minecraft.core.registries.BuiltInRegistries; public class AnarchyMod implements ClientModInitializer { diff --git a/mc-1.21.11/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.11/src/main/java/net/blockhost/anarchymod/JoinPayload.java index da13d93..fd38119 100644 --- a/mc-1.21.11/src/main/java/net/blockhost/anarchymod/JoinPayload.java +++ b/mc-1.21.11/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -10,13 +10,14 @@ public class JoinPayload implements CustomPacketPayload { public static final Identifier ID = Identifier.fromNamespaceAndPath("anarchymod", "join"); public static final StreamCodec CODEC = - StreamCodec.of( - (payload, buf) -> {}, - buf -> new JoinPayload() - ); + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); public static final Type TYPE = - new Type<>(ID); + new Type<>(ID); @Override public Type type() { diff --git a/mc-1.21.11/src/main/resources/fabric.mod.json b/mc-1.21.11/src/main/resources/fabric.mod.json index 6cd2de9..3a41f8d 100644 --- a/mc-1.21.11/src/main/resources/fabric.mod.json +++ b/mc-1.21.11/src/main/resources/fabric.mod.json @@ -4,7 +4,9 @@ "version": "${version}", "name": "AnarchyMod", "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", - "authors": ["6b6t"], + "authors": [ + "6b6t" + ], "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", diff --git a/mc-1.21.2/build.gradle.kts b/mc-1.21.2/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.21.2/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.21.2/gradle.properties b/mc-1.21.2/gradle.properties new file mode 100644 index 0000000..508da3a --- /dev/null +++ b/mc-1.21.2/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.21.2 +loader_version=0.18.4 +fabric_api_version=0.106.1+1.21.2 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.21.2 diff --git a/mc-1.21.2/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.2/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.21.2/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.21.2/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.2/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.21.2/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.21.2/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.2/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.21.2/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.21.2/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.2/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.21.2/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.21.2/src/main/resources/anarchymod.mixins.json b/mc-1.21.2/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.21.2/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.21.2/src/main/resources/fabric.mod.json b/mc-1.21.2/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.21.2/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.21.3/build.gradle.kts b/mc-1.21.3/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.21.3/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.21.3/gradle.properties b/mc-1.21.3/gradle.properties new file mode 100644 index 0000000..92e59a1 --- /dev/null +++ b/mc-1.21.3/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.21.3 +loader_version=0.18.4 +fabric_api_version=0.114.1+1.21.3 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.21.3 diff --git a/mc-1.21.3/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.3/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.21.3/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.21.3/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.3/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.21.3/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.21.3/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.3/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.21.3/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.21.3/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.3/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.21.3/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.21.3/src/main/resources/anarchymod.mixins.json b/mc-1.21.3/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.21.3/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.21.3/src/main/resources/fabric.mod.json b/mc-1.21.3/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.21.3/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.21.4/build.gradle.kts b/mc-1.21.4/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.21.4/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.21.4/gradle.properties b/mc-1.21.4/gradle.properties new file mode 100644 index 0000000..2457916 --- /dev/null +++ b/mc-1.21.4/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.21.4 +loader_version=0.18.4 +fabric_api_version=0.119.4+1.21.4 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.21.4 diff --git a/mc-1.21.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.21.4/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.21.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.21.4/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.21.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.21.4/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.21.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.21.4/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.21.4/src/main/resources/anarchymod.mixins.json b/mc-1.21.4/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.21.4/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.21.4/src/main/resources/fabric.mod.json b/mc-1.21.4/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.21.4/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.21.5/build.gradle.kts b/mc-1.21.5/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.21.5/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.21.5/gradle.properties b/mc-1.21.5/gradle.properties new file mode 100644 index 0000000..1187ba6 --- /dev/null +++ b/mc-1.21.5/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.21.5 +loader_version=0.18.4 +fabric_api_version=0.128.2+1.21.5 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.21.5 diff --git a/mc-1.21.5/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.5/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.21.5/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.21.5/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.5/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.21.5/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.21.5/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.5/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.21.5/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.21.5/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.5/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.21.5/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.21.5/src/main/resources/anarchymod.mixins.json b/mc-1.21.5/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.21.5/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.21.5/src/main/resources/fabric.mod.json b/mc-1.21.5/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.21.5/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.21.6/build.gradle.kts b/mc-1.21.6/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.21.6/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.21.6/gradle.properties b/mc-1.21.6/gradle.properties new file mode 100644 index 0000000..967527b --- /dev/null +++ b/mc-1.21.6/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.21.6 +loader_version=0.18.4 +fabric_api_version=0.128.2+1.21.6 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.21.6 diff --git a/mc-1.21.6/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.6/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.21.6/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.21.6/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.6/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.21.6/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.21.6/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.6/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.21.6/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.21.6/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.6/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.21.6/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.21.6/src/main/resources/anarchymod.mixins.json b/mc-1.21.6/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.21.6/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.21.6/src/main/resources/fabric.mod.json b/mc-1.21.6/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.21.6/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.21.7/build.gradle.kts b/mc-1.21.7/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.21.7/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.21.7/gradle.properties b/mc-1.21.7/gradle.properties new file mode 100644 index 0000000..016fce2 --- /dev/null +++ b/mc-1.21.7/gradle.properties @@ -0,0 +1,10 @@ +# Done to increase the memory available to gradle. +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.21.7 +loader_version=0.18.4 +fabric_api_version=0.129.0+1.21.7 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.21.7 + diff --git a/mc-1.21.7/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.7/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.21.7/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.21.7/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.7/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..5613cdc --- /dev/null +++ b/mc-1.21.7/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.21.7/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21.7/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.21.7/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.21.7/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21.7/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.21.7/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.21.7/src/main/resources/anarchymod.mixins.json b/mc-1.21.7/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.21.7/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.21.7/src/main/resources/fabric.mod.json b/mc-1.21.7/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.21.7/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/mc-1.21.8/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.8/src/main/java/net/blockhost/anarchymod/AnarchyMod.java index f921459..a30c897 100644 --- a/mc-1.21.8/src/main/java/net/blockhost/anarchymod/AnarchyMod.java +++ b/mc-1.21.8/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -2,9 +2,7 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; -import net.minecraft.core.registries.BuiltInRegistries; public class AnarchyMod implements ClientModInitializer { diff --git a/mc-1.21.8/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.8/src/main/java/net/blockhost/anarchymod/JoinPayload.java index d418cfb..5613cdc 100644 --- a/mc-1.21.8/src/main/java/net/blockhost/anarchymod/JoinPayload.java +++ b/mc-1.21.8/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -10,13 +10,14 @@ public class JoinPayload implements CustomPacketPayload { public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath("anarchymod", "join"); public static final StreamCodec CODEC = - StreamCodec.of( - (payload, buf) -> {}, - buf -> new JoinPayload() - ); + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); public static final Type TYPE = - new Type<>(ID); + new Type<>(ID); @Override public Type type() { diff --git a/mc-1.21.8/src/main/resources/fabric.mod.json b/mc-1.21.8/src/main/resources/fabric.mod.json index 6cd2de9..3a41f8d 100644 --- a/mc-1.21.8/src/main/resources/fabric.mod.json +++ b/mc-1.21.8/src/main/resources/fabric.mod.json @@ -4,7 +4,9 @@ "version": "${version}", "name": "AnarchyMod", "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", - "authors": ["6b6t"], + "authors": [ + "6b6t" + ], "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", diff --git a/mc-1.21.9/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21.9/src/main/java/net/blockhost/anarchymod/AnarchyMod.java index f921459..a30c897 100644 --- a/mc-1.21.9/src/main/java/net/blockhost/anarchymod/AnarchyMod.java +++ b/mc-1.21.9/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -2,9 +2,7 @@ import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; -import net.minecraft.core.registries.BuiltInRegistries; public class AnarchyMod implements ClientModInitializer { diff --git a/mc-1.21.9/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21.9/src/main/java/net/blockhost/anarchymod/JoinPayload.java index d418cfb..5613cdc 100644 --- a/mc-1.21.9/src/main/java/net/blockhost/anarchymod/JoinPayload.java +++ b/mc-1.21.9/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -10,13 +10,14 @@ public class JoinPayload implements CustomPacketPayload { public static final ResourceLocation ID = ResourceLocation.fromNamespaceAndPath("anarchymod", "join"); public static final StreamCodec CODEC = - StreamCodec.of( - (payload, buf) -> {}, - buf -> new JoinPayload() - ); + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); public static final Type TYPE = - new Type<>(ID); + new Type<>(ID); @Override public Type type() { diff --git a/mc-1.21.9/src/main/resources/fabric.mod.json b/mc-1.21.9/src/main/resources/fabric.mod.json index 6cd2de9..3a41f8d 100644 --- a/mc-1.21.9/src/main/resources/fabric.mod.json +++ b/mc-1.21.9/src/main/resources/fabric.mod.json @@ -4,7 +4,9 @@ "version": "${version}", "name": "AnarchyMod", "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", - "authors": ["6b6t"], + "authors": [ + "6b6t" + ], "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", diff --git a/mc-1.21/build.gradle.kts b/mc-1.21/build.gradle.kts new file mode 100644 index 0000000..0e631ec --- /dev/null +++ b/mc-1.21/build.gradle.kts @@ -0,0 +1,75 @@ +plugins { + id("fabric-loom") version "1.15.4" + id("maven-publish") +} + +val minecraftVersion = property("minecraft_version") as String +val loaderVersion = property("loader_version") as String +val fabricApiVersion = property("fabric_api_version") as String + +version = rootProject.version +group = property("maven_group")!! + +base { + archivesName.set("anarchymod-${project.name}") +} + +repositories { +} + +sourceSets { + main { + resources.srcDir(project(":common").sourceSets["main"].resources.srcDirs) + } +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraftVersion") + mappings(loom.officialMojangMappings()) + modImplementation("net.fabricmc:fabric-loader:$loaderVersion") + modImplementation("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") + implementation(project(":common")) +} + +tasks.processResources { + inputs.property("version", project.version) + inputs.property("minecraft_version", minecraftVersion) + inputs.property("loader_version", loaderVersion) + filteringCharset = "UTF-8" + + filesMatching("fabric.mod.json") { + expand( + "version" to project.version, + "minecraft_version" to minecraftVersion, + "loader_version" to loaderVersion, + "fabric_api_version" to fabricApiVersion + ) + } +} + +tasks.withType().configureEach { + options.encoding = "UTF-8" + options.release.set(21) +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + withSourcesJar() +} + +tasks.jar { + dependsOn(project(":common").tasks.named("classes")) + from(project(":common").sourceSets["main"].output.classesDirs) + from("LICENSE") { + rename { "${it}_${base.archivesName.get()}" } + } +} + +publishing { + publications { + create("mavenJava") { + artifactId = base.archivesName.get() + from(components["java"]) + } + } +} diff --git a/mc-1.21/gradle.properties b/mc-1.21/gradle.properties new file mode 100644 index 0000000..6dc5fe2 --- /dev/null +++ b/mc-1.21/gradle.properties @@ -0,0 +1,8 @@ +# Fabric Properties +# check these on https://modmuss50.me/fabric.html +minecraft_version=1.21 +loader_version=0.18.4 +fabric_api_version=0.102.0+1.21 +# Mod Properties +maven_group=net.blockhost +archives_base_name=mc-1.21 diff --git a/mc-1.21/src/main/java/net/blockhost/anarchymod/AnarchyMod.java b/mc-1.21/src/main/java/net/blockhost/anarchymod/AnarchyMod.java new file mode 100644 index 0000000..a30c897 --- /dev/null +++ b/mc-1.21/src/main/java/net/blockhost/anarchymod/AnarchyMod.java @@ -0,0 +1,19 @@ +package net.blockhost.anarchymod; + +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class AnarchyMod implements ClientModInitializer { + + @Override + public void onInitializeClient() { + PayloadTypeRegistry.playC2S().register(JoinPayload.TYPE, JoinPayload.CODEC); + ClientPlayConnectionEvents.JOIN.register((listener, sender, client) -> { + if (client.getCurrentServer() != null && Domains.contains(client.getCurrentServer().ip)) + sender.sendPacket(new JoinPayload()); + }); + } + + +} diff --git a/mc-1.21/src/main/java/net/blockhost/anarchymod/JoinPayload.java b/mc-1.21/src/main/java/net/blockhost/anarchymod/JoinPayload.java new file mode 100644 index 0000000..ff2f8a7 --- /dev/null +++ b/mc-1.21/src/main/java/net/blockhost/anarchymod/JoinPayload.java @@ -0,0 +1,26 @@ +package net.blockhost.anarchymod; + +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; + +public class JoinPayload implements CustomPacketPayload { + + public static final ResourceLocation ID = ResourceLocation.tryBuild("anarchymod", "join"); + + public static final StreamCodec CODEC = + StreamCodec.of( + (payload, buf) -> { + }, + buf -> new JoinPayload() + ); + + public static final Type TYPE = + new Type<>(ID); + + @Override + public Type type() { + return TYPE; + } +} diff --git a/mc-1.21/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java b/mc-1.21/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java new file mode 100644 index 0000000..3881394 --- /dev/null +++ b/mc-1.21/src/main/java/net/blockhost/anarchymod/mixin/BlockedServersMixin.java @@ -0,0 +1,21 @@ +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; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(BlockedServers.class) +public class BlockedServersMixin { + + @Inject(method = "isBlockedServerHostName", at = @At("RETURN"), cancellable = true, remap = false) + public void isBlockedServerHostName(String server, CallbackInfoReturnable cir) { + boolean contains = Domains.contains(server); + if (contains) { + cir.setReturnValue(false); + } + } + +} diff --git a/mc-1.21/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java b/mc-1.21/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java new file mode 100644 index 0000000..d326a67 --- /dev/null +++ b/mc-1.21/src/main/java/net/blockhost/anarchymod/mixin/ServerListMixin.java @@ -0,0 +1,29 @@ +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 serverList; + + @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)); + } + } + +} diff --git a/mc-1.21/src/main/resources/anarchymod.mixins.json b/mc-1.21/src/main/resources/anarchymod.mixins.json new file mode 100644 index 0000000..88503bf --- /dev/null +++ b/mc-1.21/src/main/resources/anarchymod.mixins.json @@ -0,0 +1,16 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "net.blockhost.anarchymod.mixin", + "compatibilityLevel": "JAVA_21", + "client": [ + "BlockedServersMixin", + "ServerListMixin" + ], + "injectors": { + "defaultRequire": 1 + }, + "overwrites": { + "requireAnnotations": true + } +} diff --git a/mc-1.21/src/main/resources/fabric.mod.json b/mc-1.21/src/main/resources/fabric.mod.json new file mode 100644 index 0000000..3a41f8d --- /dev/null +++ b/mc-1.21/src/main/resources/fabric.mod.json @@ -0,0 +1,39 @@ +{ + "schemaVersion": 1, + "id": "anarchymod", + "version": "${version}", + "name": "AnarchyMod", + "description": "Bypass a potential Mojang blacklist of 6b6t - the biggest anarchy server in the world.", + "authors": [ + "6b6t" + ], + "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" + }, + "license": "MIT", + "icon": "assets/anarchymod/icon.png", + "environment": "client", + "entrypoints": { + "client": [ + "net.blockhost.anarchymod.AnarchyMod" + ] + }, + "mixins": [ + "anarchymod.mixins.json" + ], + "custom": { + "modmenu": { + "links": { + "modmenu.discord": "https://6b6t.org/discord" + } + } + }, + "depends": { + "fabric": "*", + "fabricloader": ">=${loader_version}", + "minecraft": "${minecraft_version}", + "java": ">=21" + } +} diff --git a/renovate.json b/renovate.json index 721d04b..aad005e 100644 --- a/renovate.json +++ b/renovate.json @@ -1,12 +1,18 @@ { - "extends": ["config:base", "group:allNonMajor", ":semanticCommits"], + "extends": [ + "config:base", + "group:allNonMajor", + ":semanticCommits" + ], "baseBranches": [ "main" ], "labels": [ "enhancement" ], - "reviewers": ["xymb-endcrystalme"], + "reviewers": [ + "xymb-endcrystalme" + ], "packageRules": [ { "matchUpdateTypes": [ diff --git a/settings.gradle.kts b/settings.gradle.kts index df5bb93..d0c9e59 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,7 +11,23 @@ pluginManagement { include("common") +include("mc-1.19.4") +include("mc-1.20") +include("mc-1.20.1") +include("mc-1.20.2") +include("mc-1.20.3") +include("mc-1.20.4") +include("mc-1.20.5") +include("mc-1.20.6") +include("mc-1.21") +include("mc-1.21.1") +include("mc-1.21.2") +include("mc-1.21.3") +include("mc-1.21.4") +include("mc-1.21.5") +include("mc-1.21.6") +include("mc-1.21.7") include("mc-1.21.8") include("mc-1.21.9") include("mc-1.21.10") -include("mc-1.21.11") \ No newline at end of file +include("mc-1.21.11")