Skip to content

Commit

Permalink
Merge pull request #1 from YuxuanZuo/develop
Browse files Browse the repository at this point in the history
Release v0.1.0
  • Loading branch information
YuxuanZuo authored May 8, 2022
2 parents 74b3e6e + 0ae8183 commit 4855461
Show file tree
Hide file tree
Showing 100 changed files with 1,938 additions and 3,562 deletions.
12 changes: 7 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,13 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Setup JDK 8
uses: actions/setup-java@v1
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
java-version: 8
distribution: 'microsoft'
java-version: 17

- name: Build
run: gradle
Expand All @@ -25,6 +26,7 @@ jobs:
run: gradle test

- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: libs-output
path: build/libs/*
11 changes: 6 additions & 5 deletions .github/workflows/create_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
exit 1
fi
prev_build_number=$(curl -Ss 'https://raw.githubusercontent.com/yushijinhun/authlib-injector.yushi.moe/master/artifacts.json' | jq -r '.artifacts|max_by(.build_number).build_number')
prev_build_number=$(curl -Ss 'https://raw.githubusercontent.com/YuxuanZuo/multiyggdrasil.zuoyx.xyz/master/artifacts.json' | jq -r '.artifacts|max_by(.build_number).build_number')
echo "prev_build_number=$prev_build_number"
build_number=$(grep -Pom1 '@@release_proposal\.build_number=\K.*(?=@@)' <<< $pr_body) || {
echo "no build number specified, using auto-increment build number."
Expand Down Expand Up @@ -66,14 +66,15 @@ jobs:
Build number: ${{ steps.parse_pr.outputs.build_number }}
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
ref: ${{ steps.parse_pr.outputs.commit }}

- name: Setup JDK 8
uses: actions/setup-java@v1
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
java-version: 8
distribution: 'microsoft'
java-version: 17

- id: build
name: Build
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/deploy_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ jobs:
key: ${{ secrets.SSH_KEY }}
known_hosts: ${{ secrets.KNOWN_HOSTS }}

- name: Restore yushijinhun/authlib-injector.yushi.moe:master cache
uses: actions/cache@v1
- name: Restore YuxuanZuo/multiyggdrasil.zuoyx.xyz:master cache
uses: actions/cache@v3
with:
path: ~/deploy
key: cache-deploy

- name: Pull yushijinhun/authlib-injector.yushi.moe:master
- name: Pull YuxuanZuo/multiyggdrasil.zuoyx.xyz:master
shell: bash
run: |
if [ -d ~/deploy ]; then
Expand All @@ -28,7 +28,7 @@ jobs:
git add --all
git reset --hard origin/master
else
git clone --single-branch --branch master "git@github.com:yushijinhun/authlib-injector.yushi.moe" ~/deploy
git clone --single-branch --branch master "git@github.com:YuxuanZuo/multiyggdrasil.zuoyx.xyz" ~/deploy
fi
- name: Deploy
Expand All @@ -49,7 +49,7 @@ jobs:
jq -n \
--arg build_number "$build_number" \
--arg version "$version_number" \
--arg download_url "https://authlib-injector.yushi.moe/artifact/$build_number/$asset_name" \
--arg download_url "https://multiyggdrasil.zuoyx.xyz/artifact/$build_number/$asset_name" \
--arg sha256 "$sha256" \
'
{
Expand Down Expand Up @@ -84,5 +84,5 @@ jobs:
GitHub Action: https://github.com/${{ github.repository }}/actions/runs/$GITHUB_RUN_ID
"
git push "git@github.com:yushijinhun/authlib-injector.yushi.moe" master:master
git push "git@github.com:YuxuanZuo/multiyggdrasil.zuoyx.xyz" master:master
7 changes: 1 addition & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,12 @@

在参与到本项目之前,希望您能花一些时间阅读下面的指引,它们或许能为你提供一些帮助。

## 提问 & 交流
如果您对本项目有任何疑问,您可以通过以下方式向他人提问:
* 开发讨论 QQ 群:926979364
* Telegram 群组:[@authlib_injector](https://t.me/authlib_injector)

## Bug 反馈
如果您希望报告 bug,建议您遵循以下步骤:
* 请检查您的相关软件是否都**更新到了最新版本**,您遇到的 bug 可能已经在新版本中修复。
* 在 GitHub Issues 中搜索这个 bug 是否已经被报告过了。如果有反馈相同 bug 的 issue,请直接在 issue 下留言,**不要再开一个 issue**

如果以上步骤没能解决您的问题,请在 GitHub Issues 上[提交一个 issue](https://github.com/yushijinhun/authlib-injector/issues/new)
如果以上步骤没能解决您的问题,请在 GitHub Issues 上[提交一个 issue](https://github.com/YuxuanZuo/MultiYggdrasil/issues/new)
填写 issue 时请务必注意以下几点,这能帮助开发者更快地判断问题:
* 尽量使用准确、清晰的语言描述问题。
* **详细描述**重现问题的方法。您应尽量详尽、具体地描述问题出现的场景,尤其是出现问题前的**操作步骤**,这可以帮助开发者更快重现您遇到的问题。
Expand Down
74 changes: 61 additions & 13 deletions README.en.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
* **English**
* [简体中文(Chinese Simplified)](https://github.com/yushijinhun/authlib-injector/blob/develop/README.md)
* [简体中文(Chinese Simplified)](https://github.com/YuxuanZuo/MultiYggdrasil/blob/develop/README.md)

# authlib-injector
[![latest release](https://img.shields.io/github/v/tag/yushijinhun/authlib-injector?color=yellow&include_prereleases&label=version&sort=semver&style=flat-square)](https://github.com/yushijinhun/authlib-injector/releases)
[![ci status](https://img.shields.io/github/workflow/status/yushijinhun/authlib-injector/CI?style=flat-square)](https://github.com/yushijinhun/authlib-injector/actions?query=workflow%3ACI)
[![license agpl-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg?style=flat-square)](https://github.com/yushijinhun/authlib-injector/blob/develop/LICENSE)
# MultiYggdrasil
[![latest release](https://img.shields.io/github/v/tag/YuxuanZuo/MultiYggdrasil?color=yellow&include_prereleases&label=version&sort=semver&style=flat-square)](https://github.com/YuxuanZuo/MultiYggdrasil/releases)
[![ci status](https://img.shields.io/github/workflow/status/YuxuanZuo/MultiYggdrasil/CI?style=flat-square)](https://github.com/YuxuanZuo/MultiYggdrasil/actions?query=workflow%3ACI)
[![license agpl-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg?style=flat-square)](https://github.com/YuxuanZuo/MultiYggdrasil/blob/develop/LICENSE)

authlib-injector enables you to build a Minecraft authentication system offering all the features that genuine Minecraft has.
A fork of authlib-injector with support for coexist with the Mojang authentication server.

**[See the wiki](https://github.com/yushijinhun/authlib-injector/wiki) for documents and detailed descriptions.**
**For more information about authlib-injector, [see the wiki](https://github.com/yushijinhun/authlib-injector/wiki) for documents and detailed descriptions.**

## Download
You can download the latest authlib-injector build from [here](https://authlib-injector.yushi.moe/).
You can download the latest MultiYggdrasil build from [here](https://MultiYggdrasil.zuoyx.xyz/).

## Build
Dependencies: Gradle, JDK 8+
Dependencies: Gradle, JDK 17+

Run:
```
Expand All @@ -25,7 +25,7 @@ Build output can be found in `build/libs`.
## Deploy
Configure Minecraft server with the following JVM parameter:
```
-javaagent:{/path/to/authlib-injector.jar}={Authentication Server URL}
-javaagent:{/path/to/MultiYggdrasil.jar}={Authentication Server URL}
```

## Options
Expand Down Expand Up @@ -53,7 +53,7 @@ Configure Minecraft server with the following JVM parameter:
Only SOCKS protocol is supported.
URL format: socks://<host>:<port>
This proxy setting only affects Mojang namespace feature, and the proxy is used only when accessing Mojang's servers.
This proxy setting only affects Mojang namespace and Mojang Yggdrasil server feature, and the proxy is used only when accessing Mojang's servers.
To enable proxy for your customized authentication server, see https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.html .
-Dauthlibinjector.legacySkinPolyfill={default|enabled|disabled}
Expand All @@ -77,14 +77,17 @@ Configure Minecraft server with the following JVM parameter:
- Mojang namespace
- Legacy skin API polyfill
-Dauthlibinjector.httpdPort={port}
Sets the port used by the local HTTP server, defaults to 0 (randomly chosen).
-Dauthlibinjector.noShowServerName
Do not show authentication server name in Minecraft menu screen.
By default, authlib-injector alters --versionType parameter to display the authentication server name.
By default, MultiYggdrasil alters --versionType parameter to display the authentication server name.
This feature can be disabled using this option.
-Dauthlibinjector.mojangAntiFeatures={default|enabled|disabled}
Whether to turn on Minecraft's anti-features.
It's enabled by default if the authentication server does NOT send feature.enable_mojang_anti_features option.
It's disabled by default if the authentication server does NOT send feature.enable_mojang_anti_features option.
These anti-features include:
- Minecraft server blocklist
Expand All @@ -94,4 +97,49 @@ Configure Minecraft server with the following JVM parameter:
* Realms (allowed if the option is disabled)
* Telemetry (turned off if the option is disabled)
* Profanity filter (turned off if the option is disabled)
-Dauthlibinjector.profileKey={default|enabled|disabled}
Whether to enable the profile signing key feature. This feature is introduced in 22w17a, and is used to implement the multiplayer secure chat signing.
If this this feature is enabled, Minecraft will send a POST request to /minecraftservices/player/certificates to retrieve the key pair issued by the authentication server.
It's enabled by default if the authentication server sends feature.enable_profile_key option.
If the profile signing key isn't present, the player will be unable to join servers that enable enforce-secure-profile=true option.
And other players' Minecraft client will log a warning when receiving an unsigned chat message.
-Dmultiyggdrasil.mojangYggdrasilService={default|enabled|disabled}
Whether to enable ability to coexist with the Mojang authentication server.
It's disabled by default if the authentication server does NOT send feature.enable_mojang_yggdrasil_service option.
If this option is enabled, the game server will allow players from the custom authentication server and genuine
players to login simultaneously. This would required the custom authentication server to generate a UUID for the
player using the version 3 (MD5 hashing) UUID generator algorithm so that it could distinguish the custom player
from the genuine player. Note: If you used a different UUID generator algorithm than version 4 before, you MUST
migrate your server data of the player to the new ones, otherwise you may run into some random issues.
In order to distinguish the username of players from the custom authentication server from that of the Mojang server,
the player who from the custom authentication server will add a namespace suffix to their username.
For example:
Notch@custom
If the option "-Dmultiyggdrasil.namespace" is not set and the field "namespace" is not sent by authentication
server, the server will issue a default namespace called "custom". If any fields were sent, the server will use the
namespace that you defined earlier.
Some features that conflict with Mojang Yggdrasil server will no longer available anymore:
- Mojang namespace
-Dmultiyggdrasil.namespace={namespace string}
Set the namespace used by the feature "Mojang authentication server". Allowed characters are a-z0-9._- .
-Dmultiyggdrasil.noNamespaceSuffix
Do not add namespace suffix to the username.
By default, MultiYggdrasil will automatically add namespace suffix to the username to allow players from different
authentication servers to play simultaneously.
This feature can be disabled using this option.
```

## Credits
* [authlib-injector](https://github.com/yushijinhun/authlib-injector) by [Haowei Wen](https://github.com/yushijinhun)
This is the base of this project, which makes our ideas possible.
* [Gson](https://github.com/google/gson) by Google Inc.
* [ASM](https://asm.ow2.io) by INRIA, France Telecom
* [NanoHttpd](https://github.com/NanoHttpd/nanohttpd)
Loading

0 comments on commit 4855461

Please sign in to comment.