GithubHelp home page GithubHelp logo

yggdrasilofficialproxy / yggdrasilofficialproxy Goto Github PK

View Code? Open in Web Editor NEW
141.0 4.0 10.0 8.02 MB

MojangYggdrasil的更新! 以代理的方式提供伪正版与正版的实现

License: GNU Lesser General Public License v3.0

Kotlin 99.73% Batchfile 0.27%
kotlin minecraft authlib-injector proxy agent yggdrasil-official-proxy

yggdrasilofficialproxy's Introduction

YggdrasilOfficialProxy v2.3.0

Downloading

首先, 你需要前往 releases 下载你所需要的对应版本.

我们提供了三个版本:

  • minecraft
  • paperclip
  • proxy

请根据需要使用对应的版本

向导模式

下载适合的YOP版本(见下文),然后放置于服务器根目录中

执行 java -jar YggdrasilOfficialProxy-XXX.jar setup 进入向导模式

setup.png

Booting

我们提供了三种启动方式, 作为 agent 加载和 作为独立服务器 加载

Proxy Booting

Proxy Edition, 是以一个独立服务器的方式运行的, 他的好处在于:

  • 独立于MC服务器, 方便另外管理
  • 重新配置只需要配置一个服务器 (见下文)
  • 可以快速重新启动代理服务器而不需要重新启动整个群组

Agent Booting

Agent Edition, 是以修改 javaagent参数的形式启动的, 代理服务器会随着MC的启动而启动, 随着MC的关闭而关闭 好处在于

  • 不需要另外准备服务器或者运行环境
  • 同样只需要配置一个服务器
  • 特别说明:
    • YggdrasilOfficialProxy-minecraft.jar 无法工作时请换用 -paperclip 版本
    • Spigot服务器无法使用 YggdrasilOfficialProxy-minecraft.jar 时请使用 -paperclip 版本并上报相关错误
    • paperclip 版本携带了全部用到的依赖库, 大是必然的

Configuration

在启动 YggdrasilOfficialProxy 的时候, 我们首先会为您生成一个配置文件. 然后服务器会随之关闭 你需要编辑 YggdrasilOfficialProxy.conf, 并且最重要的一点 最重要的一点, edited=true!

Standard Proxy Server setup

Proxy Edition:

在启动了 Yggdrasil Proxy Server (Proxy Edition) 之后, 你可以看到以下日志

[YggdrasilOfficialProxy] Server running on XXXXX:XXXX

假设(只是假设!)运行在 192.168.78.34:30500

假设这是你的启动脚本

#
# 如果你是 BungeeCord 群组服务器,
# 那么这是 BungeeCord 的启动脚本
#
# 如果不是, 那么就是独立服务器的启动脚本
#

java -javaagent:authlib-injector.jar=.... ....

我们需要将他修改成这样

java -javaagent:authlib-injector.jar=http://192.168.78.34:30500 ....

然后 :wq, 重新启动, 此时启动Authlib-Injector可能会警告 [authlib-injector.config] [WARNING] You are using HTTP protocol, which is INSECURE! Please switch to HTTPS if possible.

我们直接选择将其无视掉, 因为目标服务器是我们的内网服务器, 直接安全的无视掉就可以了

Agent Edition Startup

首先我们需要打开我们的服务器启动脚本

假设(假设!只是假设!)

  • 我们的 YggdrasilOfficialProxy AgentEdition 叫做 YggdrasilOfficialProxy-2.0.0-paperclip.jar
  • 我们的 AuthLib Injector 叫做 authlib-injector-1.1.26-41a7a47.jar
  • 我们使用的 Yggdrasil API Root 为 https://skin.prinzeugen.net/api/yggdrasil

这是我们的启动脚本:

#
# 如果你是 BungeeCord 群组服务器,
# 那么这是 BungeeCord 的启动脚本
#
# 如果不是, 那么就是独立服务器的启动脚本
#

java -javaagent:authlib-injector-1.1.26-41a7a47.jar=https://skin.prinzeugen.net/api/yggdrasil ....

然后, 我们需要直接把原来的 -javaagent:authlib-injector-1.1.26-41a7a47.jar=https://skin.prinzeugen.net/api/yggdrasil 删掉. 对,删掉, 一点都不要留, 然后换上我们的配置

java -javaagent:YggdrasilOfficialProxy-2.0.0-paperclip.jar ....

然后直接启动服务器, 对, 直接启动服务器, 我们需要生成 YggdrasilOfficialProxy 的服务器, 如果你写了自动重启, 记得, 在第一次启动后, 关掉. 虽然不关也没问题.

然后打开我们的配置. 修改

# API Root, 将这里改成原来的 API Root!
api="https://skin.prinzeugen.net/api/yggdrasil"
# Authlib Injector的位置, 无效的话服务器将无法启动
authlib-injector="authlib-injector-1.1.26-41a7a47.jar"
# 重要! 重要!, 必须为 true!
edited=true
# 在合并玩家查找的时候, 是否优先使用正版服务器的内容
official-first=false
# 代理服务器的设置
server {
    # 换成 127.0.0.1
    host="127.0.0.1"
    # 随便写, 随便写一个没有被占用的端口
    port=32217
}
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # The proxy of official connecting
    official {
        host=localhost
        port=1080
        # type=socks
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}

在全部工作完成之后, 输入 :wq, 完成我们的配置吧!

特别说明

根据 Minecraft Server, 只要UUID不一样, name一样服务器都会允许玩家加入游戏, 原本 Minecraft 的 Name 是不可能重复的, 但是, 但是! YggdrasilOfficialProxy! 打破了这个限制! 由于 YggdrasilOfficialProxy 的工作方式是替换 Mojang 的 hasJoined. 所以! 你可能会遇到这种奇葩情况!

两个分别来自正版/第三方验证服务器的同名玩家, 同时加到了一个服务器里! 而且服务器还觉得没什么奇怪的!

所以!所以!你需要自己写一个插件! 保证,不会出现两个一样名字的玩家! 这点非常重要!

CDN

由于**大陆部分地区访问 mojang 官方验证服务器较慢或无法连接
特此在 2.3.0 版本加入CDN加速功能 可以通过CDN镜像链接加速官方验证
如从低版本升级请手动删除配置文件并重新生成

# CDN settings
CDN {
    enable=true
    origin="CDN origin link"
}

好了, 现在配置文件有了如何配置一个加速源呢
此处以 Nginx 反代为例 当然你可以用你熟悉的 web 服务器

location /sessionserver/ {
    proxy_pass https://sessionserver.mojang.com/;
}

location /api/ {
    proxy_pass https://api.mojang.com/;
}

配置完成后将你的服务器 ip/域名 填入 origin 字段并将 enable 改成 true 即可

交流群

QQ Group: 832210691

yggdrasilofficialproxy's People

Contributors

karlatemp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

yggdrasilofficialproxy's Issues

能不能重写一下白名单的写法

就是一个外置登录的服务器,要做到白名单UUID正确的话,UUID标记的是正版的,盗版玩家还得拿uuid替换
我觉得可以通过玩家进服信息这种玩家id和uuid绑定的办法来拿到UUID,然后whitelist写入外置登录的UUID,正版优先写入

[PROBLEM] 移动端Geyser兼容

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:

错误复现步骤:

  1. 正确配置代理
    2.使用Geyser-Spigot并用基岩版连接服务器
    3.你将会获得提示:Server returned invalid response

错误日志:

(如果有错误日志, 请粘贴到此处, 并且避免使用pastebin)

YggdrasilOfficialProxy配置

# CDN settings
CDN {
    enable=false
    origin="CDN origin link"
}
# The yggdrasil api root
api="https:/xxxx/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="./authlib-injector.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=true
# Proxy settings
proxy {
    # The proxy of official connecting
    official {
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="0.0.0.0"
    port=32217
}

服务器启动命令行

java -javaagent:authlib-injector.jar=http://10.168.1.2:32217/ -Xms128M -Xmx{{SERVER_MEMORY}}M -Dterminal.jline=false -Dterminal.ansi=true -jar {{SERVER_JARFILE}}

[PROBLEM] 正版用户登录时显示 身份验证服务器目前处于宕机状态,请稍候再试

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:

错误复现步骤:

  1. 打开cmd

错误日志:

[Server] [01:09:34] [User Authenticator #5/ERROR]: Couldn't verify username because servers are unavailable
[Server] [01:09:34] [Server thread/INFO]: com.mojang.authlib.GameProfile@5f6608f1[id=<null>,name=XXXXproperties={},legacy=false] (/192.168.5.7:55594) lost connection: Authentication servers are down. Please try again later, sorry!

YggdrasilOfficialProxy配置

# CDN settings
CDN {
    enable=false
    origin="CDN origin link"
}
# The yggdrasil api root
api="https://littleskin.cn/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="./authlib-injector-XXXX.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=false
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # Example for socks proxy
    just-example-for-socks {
        host=localhost
        port=1080
        type=socks
    }
    # Example for socks proxy with authentication
    just-example-for-socks-with-authentication {
        host=localhost
        password=password
        port=1080
        type=socks
        username=username
    }
    # The proxy of official connecting
    official {
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="0.0.0.0"
    port=32217
}```

服务器启动命令行
```script shell
java -jar YggdrasilOfficialProxy-2.3.0-paperclip.jar

[PROBLEM]不兼容1.16.5墨端,服务器无法读取日志,导致无法运行

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:
服务器无法读取日志导致无法运行
服务端 https://github.com/MohistMC
1.16.5的一个国内主流模组服务端,希望插件可以兼容此服务端

错误复现步骤:

  1. 打开cmd
    2.无法运行,见报错

错误日志:
`PS D:\Delores\Permafrost> java -javaagent:YggdrasilOfficialProxy-2.3.0-Proxy.jar -jar mohist-1.16.5-757-server.jar

YggdrasilOfficialProxy v2.0.0

Oops.

You look like started YggdrasilOfficialProxy before

But you forget edit our configuration.

Before System starting.

You should edit our configuration first!

PS D:\Delores\Permafrost> java -javaagent:YggdrasilOfficialProxy-2.3.0-Proxy.jar -jar mohist-1.16.5-757-server.jar
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[YggdrasilOfficialProxy] Server running on 0.0.0.0:32222
[YggdrasilOfficialProxy] [ INFO] Autoreload is disabled because the development mode is off.
[YggdrasilOfficialProxy] [ INFO] Responding at http://0.0.0.0:32222
[authlib-injector] [INFO] Logging file: D:\Delores\Permafrost\authlib-injector.log
[authlib-injector] [INFO] Version: 1.1.38
[authlib-injector] [INFO] Authentication server: http://localhost:32222
[authlib-injector] [WARNING] You are using HTTP protocol, which is INSECURE! Please switch to HTTPS if possible.
[authlib-injector] [INFO] Polyfill privileges API
Java 16 has been detected. The server may not work well with Java 16, and if you have any error, please contact Mohist's support. Trying to start the server with Java 16, please wait... | Launch Command - java -jar --add-exports=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.base/java.util.jar=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED -Xoptionsfile=D:\Framework\Java16\lib\options.default -Xlockword:mode=default,noLockword=java/lang/String,noLockword=java/util/MapEntry,noLockword=java/util/HashMap$Entry,noLockword=org/apache/harmony/luni/util/ModifiedMap$Entry,noLockword=java/util/Hashtable$Entry,noLockword=java/lang/invoke/MethodType,noLockword=java/lang/invoke/MethodHandle,noLockword=java/lang/invoke/CollectHandle,noLockword=java/lang/invoke/ConstructorHandle,noLockword=java/lang/invoke/ConvertHandle,noLockword=java/lang/invoke/ArgumentConversionHandle,noLockword=java/lang/invoke/AsTypeHandle,noLockword=java/lang/invoke/ExplicitCastHandle,noLockword=java/lang/invoke/FilterReturnHandle,noLockword=java/lang/invoke/DirectHandle,noLockword=java/lang/invoke/ReceiverBoundHandle,noLockword=java/lang/invoke/DynamicInvokerHandle,noLockword=java/lang/invoke/FieldHandle,noLockword=java/lang/invoke/FieldGetterHandle,noLockword=java/lang/invoke/FieldSetterHandle,noLockword=java/lang/invoke/StaticFieldGetterHandle,noLockword=java/lang/invoke/StaticFieldSetterHandle,noLockword=java/lang/invoke/IndirectHandle,noLockword=java/lang/invoke/InterfaceHandle,noLockword=java/lang/invoke/VirtualHandle,noLockword=java/lang/invoke/PrimitiveHandle,noLockword=java/lang/invoke/InvokeExactHandle,noLockword=java/lang/invoke/InvokeGenericHandle,noLockword=java/lang/invoke/VarargsCollectorHandle,noLockword=java/lang/invoke/ThunkTuple -Xjcl:jclse29 -Dcom.ibm.oti.vm.bootstrap.library.path=D:\Framework\Java16\bin\default;D:\Framework\Java16\bin -Dsun.boot.library.path=D:\Framework\Java16\bin\default;D:\Framework\Java16\bin -Djava.library.path=D:\Framework\Java16\bin\default;D:\Framework\Java16\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Microsoft VS Code\bin;C:\Program Files\dotnet;D:\Framework\Java16\bin;D:\Framework\Java16\lib;D:\MySQL\MySQL Shell 8.0\bin;C:\Users\ExDragine\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Bandizip;. -Djava.home=D:\Framework\Java16 -Duser.dir=D:\Delores\Permafrost -Djava.class.path=.;D:\Framework\Java16\lib\dt.jar;D:\Framework\Java16\lib\tools.jar; -javaagent:YggdrasilOfficialProxy-2.3.0-Proxy.jar -Djava.class.path=mohist-1.16.5-757-server.jar -Dsun.java.command=mohist-1.16.5-757-server.jar -Dsun.java.launcher=SUN_STANDARD mohist-1.16.5-757-server.jar launchedWithJava16
The server is being restarted. If nothing happens after this line, your server host / server configuration doesn't allow multiple java instances or isn't compatible with the ProcessBuilder.
[YggdrasilOfficialProxy] Server running on 0.0.0.0:32222
[YggdrasilOfficialProxy] [ INFO] Autoreload is disabled because the development mode is off.
[YggdrasilOfficialProxy] [ INFO] Responding at http://0.0.0.0:32222
2021-08-23 00:29:02,724 main ERROR Unable to move file D:\Delores\Permafrost\logs\debug.log to D:\Delores\Permafrost\logs\debug-1.log: java.nio.file.FileSystemException D:\Delores\Permafrost\logs\debug.log -> D:\Delores\Permafrost\logs\debug-1.log: 另一个程序正在使用此文件,进程无法访问。
2021-08-23 00:29:02,743 main ERROR Unable to delete file D:\Delores\Permafrost\logs\debug.log: java.nio.file.FileSystemException D:\Delores\Permafrost\logs\debug.log: 另一个程序正在使用此文件,进程无法访问。`

YggdrasilOfficialProxy配置
`# CDN settings
CDN {
enable=false
origin="CDN origin link"
}

The yggdrasil api root

api="https://mcskin.littleservice.cn/api/yggdrasil"

The location of YggdrasilInjector

@see https://github.com/yushijinhun/authlib-injector/

authlib-injector="./authlib-injector-1.1.38.jar"

IMPORTANT: Set this value to true!

edited=true

When access multiple apis. Use official api first.

official-first=false

Proxy settings

proxy {
# The proxy of official connecting
official {
type=direct
}
# The proxy of yggdrasil connecting
yggdrasil {
type=direct
}
}

The server binding actions.

server {
host="0.0.0.0"
port=32222
}
`

服务器启动命令行
java -javaagent:YggdrasilOfficialProxy-2.3.0-Proxy.jar -jar mohist-1.16.5-757-server.jar

依然希望支持多个Yggdrasil服务器,为特殊的状况开条路

我已确认目前使用的是受到支持的v2.x版本

此特性可以用于:
可以让多个认证服务器进入服务器,给不同认证服务器的玩家进入一个服务器
这样可以方便服务器联谊

理由我在 #29 说了一次:

时隔1年我也不知道能不能再重新开启这个Issue,最近才发现一个很严重的问题,就差不多是这样的
整合包是Forge 1.19.2 ,使用 Mohist 开启服务器,然后装载MultiLogin插件,结果报错无法运行,尝试通过外置的方法进行支持Yggdrasil,但外置的又只能支持一个服务器。
那我们换个思路,用WaterFall,听说支持Forge了,哎,您猜怎么着,开始有人反馈1.16.5以上的搞不了,出现各类的错误,好了现在问题来了。
外置的只支持一个Yggdrasil,用Multilogin吧,Mohist不支持,那用WaterFall加多一层吧,WaterFall对Mohist不支持,合着Mohist是孤岛对吧(
回归正传,我还是希望支持多个Yggdrasil服务器 ,这个Issue也差不多2年了捏。

PS:我试过lightFall,也依然不行。

我知道这可能是一个很小众化的需求,但我依然希望能够支持多个Yggdrasil服务器。

Forge 1.19.2 -> Mohist 1.19.2 -> MultiLogin (x Mohist could not load) -> WaterFall with MultiLogin (x WaterFall incompatible Mohist) -> Yggdrasil Standard Proxy Server (x only support one Yggdrasil Server)

无法使用-javaagent方式启动

是我哪里姿势不对吗

这样可以正常启动
java -jar YggdrasilOfficialProxy.jar

############################
# Yggdrasil Official Proxy #
# Copyright (c) Karlatemp  #
#     2018-2020.           #
# All rights reserved.     #
############################

这样不行
java -Xmx10G -javaagent:YggdrasilOfficialProxy.jar -jar forge-1.7.10-10.13.4.1614-1.7.10-universal.jar nogui


Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
        at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.lang.NoSuchMethodError: io.netty.util.AttributeKey.newInstance(Ljava/lang/String;)Lio/netty/util/AttributeKey;
        at cn.mcres.karlatemp.yop.server.ContextHandler.<clinit>(ContextHandler.java:38)
        at cn.mcres.karlatemp.yop.server.api.users.Minecraft.register(Minecraft.java:95)
        at cn.mcres.karlatemp.yop.ConfigSetup.init(ConfigSetup.java:65)
        at cn.mcres.karlatemp.yop.YggdrasilOfficialProxy.startup(YggdrasilOfficialProxy.java:38)
        at cn.mcres.karlatemp.yop.YggdrasilOfficialProxy.premain(YggdrasilOfficialProxy.java:119)
        ... 6 more
FATAL ERROR in native method: processing of -javaagent failed
已放弃(吐核)

Colormotd-reremake异常

此混合登录导致colormotd-reremake无法使用。外部在获取motd时,后台会出现大量报错,且该现象较普遍,在papermc1.15.2中可复现。

关于使用统一通行证的问题

这个插件非常赞,但在使用统一通行证时,我遇到了问题,启动服务端后,使用同一通行证进入没有问题,但使用正版登录时出现错误"Not Authenticated Whit Minecraft.net",望解决

使用YOP正版玩家无法进入服务器

我已确认我使用的版本是收到支持的v2.x
YOP 2.1.3
authlib-injector-1.1.32

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误
OK!

错误说明:
正版玩家无法进入服务器 Failed to verify username!
外置可以进入

错误复现步骤:

  1. 正版登录启动游戏
  2. 进入使用YOP代理的服务器提示 Failed to verify username!

错误日志:
YOP的SLF4J无法加载,怎么看日志,,,

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[16:28:11] [User Authenticator #1/INFO]: Disconnecting /127.0.0.1:49870: Failed to verify username!
[16:28:11] [User Authenticator #1/ERROR]: Username 'sky_xc' tried to join with an invalid session
[16:28:12] [Server thread/INFO]: /127.0.0.1:49870 lost connection: Failed to verify username!

YggdrasilOfficialProxy配置

# The yggdrasil api root
api="https://explameurl.url/api/yggdrasil"
authlib-injector="./authlib-injector-1.1.32.jar"
edited=true
official-first=true
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # The proxy of official connecting
    official {
        host=localhost
        port=1080
        type=socks
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="0.0.0.0"
    port=32217
}

服务器启动命令行

java -javaagent:YggdrasilOfficialProxy-2.1.3-proxy.jar -Xmx2G -jar 1.16.2.jar nogui

反代后验证服务器宕机?

服务器log

[authlib-injector.launch] [INFO] Version: 1.1.30
[authlib-injector.config] [INFO] API root: http://101.200.194.251:4321
[authlib-injector.config] [WARNING] You are using HTTP protocol, which is INSECURE! Please switch to HTTPS if possible.
[authlib-injector.httpd] [INFO] Httpd is running on port 60661
[authlib-injector.transform] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService] with [Constant URL Transformer]
[authlib-injector.transform] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService] with [Texture Whitelist Transformer]
[authlib-injector.transform] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService] with [Yggdrasil Public Key Transformer]
[authlib-injector.transform] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService] with [Callback Metafactory Transformer]
[authlib-injector.transform] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository] with [Constant URL Transformer]
[16:02:23] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
[16:02:23] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[16:02:23] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0]
[16:02:23] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498]
[16:02:23] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
[16:02:23] [Server thread/INFO]: Starting minecraft server version 1.14.4
[16:02:23] [Server thread/INFO]: Loading properties
[16:02:23] [Server thread/INFO]: Default game type: SURVIVAL
[16:02:24] [Server thread/INFO]: Generating keypair
[16:02:25] [Server thread/INFO]: Starting Minecraft server on *:26655
[16:02:25] [Server thread/INFO]: Using default channel type
[16:02:26] [Server thread/INFO]: Preparing level "world"
[16:02:26] [Server thread/INFO]: Reloading ResourceManager: Default
[16:02:46] [Server thread/INFO]: Loaded 6 recipes
[16:02:47] [Server thread/INFO]: Loaded 811 advancements
[16:02:47] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[16:02:49] [Server thread/INFO]: Preparing spawn area: 0%
[16:02:49] [Server thread/INFO]: Preparing spawn area: 0%
[16:02:49] [Server thread/INFO]: Preparing spawn area: 0%
[16:02:49] [Server thread/INFO]: Preparing spawn area: 0%
[16:02:54] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-1/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-1/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-1/INFO]: Preparing spawn area: 87%
[16:02:54] [Server-Worker-1/INFO]: Preparing spawn area: 87%
[16:02:55] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:55] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:56] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:57] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:57] [Server-Worker-2/INFO]: Preparing spawn area: 87%
[16:02:57] [Server-Worker-1/INFO]: Preparing spawn area: 87%
[16:02:58] [Server-Worker-1/INFO]: Preparing spawn area: 87%
[16:02:58] [Server-Worker-2/INFO]: Preparing spawn area: 93%
[16:02:59] [Server-Worker-2/INFO]: Preparing spawn area: 94%
[16:02:59] [Server thread/INFO]: Time elapsed: 11862 ms
[16:02:59] [Server thread/INFO]: Done (33.319s)! For help, type "help"
[16:03:11] [User Authenticator #1/INFO]: Disconnecting com.mojang.authlib.GameProfile@4ff6fd20[id=<null>,name=zhzhongshi,properties={},legacy=false] (/127.0.0.1:60679): Authentication servers are down. Please try again later, sorry!
[16:03:11] [User Authenticator #1/ERROR]: Couldn't verify username because servers are unavailable
[16:03:11] [Server thread/INFO]: com.mojang.authlib.GameProfile@4ff6fd20[id=<null>,name=zhzhongshi,properties={},legacy=false] (/127.0.0.1:60679) lost connection: Authentication servers are down. Please try again later, sorry!
[16:03:33] [User Authenticator #2/INFO]: Disconnecting com.mojang.authlib.GameProfile@7a46cc98[id=<null>,name=zhzhongshi,properties={},legacy=false] (/127.0.0.1:60683): Authentication servers are down. Please try again later, sorry!
[16:03:33] [User Authenticator #2/ERROR]: Couldn't verify username because servers are unavailable
[16:03:33] [Server thread/INFO]: com.mojang.authlib.GameProfile@7a46cc98[id=<null>,name=zhzhongshi,properties={},legacy=false] (/127.0.0.1:60683) lost connection: Authentication servers are down. Please try again later, sorry!
[16:04:16] [User Authenticator #3/INFO]: Disconnecting com.mojang.authlib.GameProfile@14a152c0[id=<null>,name=zhzhongshi,properties={},legacy=false] (/127.0.0.1:60692): Authentication servers are down. Please try again later, sorry!
[16:04:16] [User Authenticator #3/ERROR]: Couldn't verify username because servers are unavailable
[16:04:16] [Server thread/INFO]: com.mojang.authlib.GameProfile@14a152c0[id=<null>,name=zhzhongshi,properties={},legacy=false] (/127.0.0.1:60692) lost connection: Authentication servers are down. Please try again later, sorry!

Yggdrasil反代log

[root@localhost authlib]# java -jar YggdrasilOfficialProxy-2.0.0-proxy.jar
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[YggdrasilOfficialProxy] Server running on 0.0.0.0:4321

Yggdrasil反代配置

# The yggdrasil api root
api="https://mcskin.littleservice.cn/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector=""
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=true
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # The proxy of official connecting
    official {
        host=localhost
        port=1080
        type=socks
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="0.0.0.0"
    port=4321
}

AuthServerIsDown

Geyser互通端闪退

rt,玩家连接Geyser端后,java后台报出大量warning,而后BE客户端卡死并闪退。
当java客户端不采用混合登录时,一切正常。
Screenshot_20200530-122706
Screenshot_20200530-122712
Screenshot_20200530-122717

[PROBLEM] 正版和yggdrasil的用户UUID一致

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:
环境:
paper-1.16.4-364
YggdrasilOfficialProxy-2.1.3-paperclip
authlib-injector-1.1.34
yggdrasil API 使用的是LittleSkin的
无任何插件
除了修改api="https://mcskin.littleservice.cn/api/yggdrasil"无其他任何配置文件的修改

错误复现步骤:
任意一个玩家,使用littleskin帐号登陆或者使用正版登陆后,同名的uuid都保持不变,即再用另一种方式登陆,帐号和原来保持一致,不能同时在线。

错误日志:

(如果有错误日志, 请粘贴到此处, 并且避免使用pastebin)

image
image
可以看到我的UUID一直都是fd85ccba-afd8-4f92-b21c-29ef700ed2a5,不论是正版登陆还是Lttleskin yggdrasil

YggdrasilOfficialProxy配置

# The yggdrasil api root
api="https://mcskin.littleservice.cn/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="./authlib-injector-1.1.34.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=false
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # The proxy of official connecting
    official {
        host=localhost
        port=1080
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="0.0.0.0"
    port=30015
}```

服务器启动命令行
```script shell
java -Xmx4G -Xms1G -javaagent:YggdrasilOfficialProxy-2.1.3-paperclip.jar -jar paperclip.jar

[PROBLEM]

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:使用YggdrasilOfficialProxy时候关服线程杀不死(服务端使用了MCDReforged,不过我不认为是他的原因)

错误复现步骤:

  1. 打开cmd
    2../start.sh

错误日志:

这是安装了YggdrasilOfficialProxy情况下:
[Server] [18:46:12] [Server thread/INFO]: Done (16.835s)! For help, type "help"
stop
[Server] [18:46:25] [Server thread/INFO]: Stopping the server
[Server] [18:46:25] [Server thread/INFO]: Stopping server
[Server] [18:46:25] [Server thread/INFO]: Saving players
[Server] [18:46:25] [Server thread/INFO]: Saving worlds
[Server] [18:46:25] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
[Server] [18:46:47] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[Server] [18:46:47] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether
[Server] [18:46:47] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[Server] [18:46:47] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end
[Server] [18:46:47] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[Server] [18:46:47] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[Server] [18:46:47] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[Server] [18:46:47] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
不安装YggdrasilOfficialProxy情况下:

[Server] [18:41:12] [Server thread/INFO]: Done (17.428s)! For help, type "help"
stopo^H
[Server] [18:41:47] [Server thread/INFO]: Unknown or incomplete command, see below for error
[Server] [18:41:47] [Server thread/INFO]: stop<--[HERE]
stop
[Server] [18:41:50] [Server thread/INFO]: Stopping the server
[Server] [18:41:51] [Server thread/INFO]: Stopping server
[Server] [18:41:51] [Server thread/INFO]: Saving players
[Server] [18:41:51] [Server thread/INFO]: Saving worlds
[Server] [18:41:51] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld
[Server] [18:42:13] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[Server] [18:42:13] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether
[Server] [18:42:13] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[Server] [18:42:13] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end
[Server] [18:42:13] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[Server] [18:42:13] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
[Server] [18:42:13] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
[Server] [18:42:13] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
[MCDR] [18:42:13] [MainThread/INFO]: 服务端进程返回代码: 0
[MCDR] [18:42:13] [MainThread/INFO]: 服务端已关闭
[MCDR] [18:42:13] [MainThread/INFO]: bye
(如果有错误日志, 请粘贴到此处, 并且避免使用pastebin)

YggdrasilOfficialProxy配置

# 粘贴YOP配置到此处, 记得剔除重要隐私信息(比如服务器ip
# The yggdrasil api root
api="https://mcskin.cn/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="./authlib-injector-1.1.31.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=true
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # The proxy of official connecting
    official {
        host=localhost
        port=1080
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="127.0.0.1"
    port=36520
}

服务器启动命令行

# 粘贴你的启动命令行到此处, 记住剔除重要隐私信息
java -Xmx1G -Xmx1700M -javaagent:YggdrasilOfficialProxy-2.1.3-paperclip.jar -jar fabric-server-launch.jar nogui
# 请注意请只粘贴 java 开头的命令行, 其余部分都将会被视作多余处理

[PROBLEM]使用LittleSkin的时候不支持中文用户名登录

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:
中文用户名的玩家无法正常通过验证步骤,显示验证服务器处于宕机状态。修改为英文用户名后即解决。

错误复现步骤:

  1. 使用LittleSkin服务作为外置登录并使用中文用户名进入服务器

错误日志:

[14:38:05] [User Authenticator #104/INFO] (class_3248) Disconnecting com.mojang.authlib.GameProfile@60da749a[id=<null>,name=扶她空悲切,properties={},legacy=false] (/116.9.110.253:31315): Authentication servers are do
wn. Please try again later, sorry!
[14:38:05] [User Authenticator #104/ERROR] (class_3248) Couldn't verify username because servers are unavailable                                                                                                        [14:38:05] [Server thread/INFO] (class_3248) com.mojang.authlib.GameProfile@60da749a[id=<null>,name=扶她空悲切,properties={},legacy=false] (/116.9.110.253:31315) lost connection: Authentication servers are down. Plea
se try again later, sorry!

YggdrasilOfficialProxy配置

# CDN settings
CDN {
    enable=false
    origin="CDN origin link"
}
# The yggdrasil api root
api="https://littleskin.cn/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="./authlib-injector-1.1.38.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=false
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # Example for socks proxy
    just-example-for-socks {
        host=localhost
        port=1080
        type=socks
    }
    # Example for socks proxy with authentication
    just-example-for-socks-with-authentication {
        host=localhost
        password=password
        port=1080
        type=socks
        username=username
    }
    # The proxy of official connecting
    official {
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="0.0.0.0"
    port=32217
}

服务器启动命令行

/usr/lib/jvm/jre-16/bin/java -javaagent:authlib-injector.jar=http://127.0.0.1:32217 -Xmx3G -XX:+UseG1GC -jar fabric-server-launch.jar

关于https跳转的问题

您的插件非常赞!但是有个小问题使我用不了它...

############################
# Yggdrasil Official Proxy #
# Copyright (c) Karlatemp  #
#     2018-2020.           #
# All rights reserved.     #
############################
#            Version: 1.0.0
#    Java    Version: 1.8.0_242
#    Server Port    : 4321
# Configuration Path: ./YggdrasilOfficialProxy.yml
# Yggdrasil API ROOT: https://skin.xxxx.com/api/yggdrasil/
#     First Connect : Official
# Proxy of Official : DIRECT
# Proxy of Yggdrasil: DIRECT
# Connect Timed out : 60000
# Reading Timed out : 60000
# Yggdrasil-Fix: false
############################
2020-03-27 11:45:42,997 main WARN Advanced terminal features are not available in this environment
# Server started.
# Injector path: ./authlib-injector-1.1.26-41a7a47.jar
# Injector argument: http://localhost:4321
[authlib-injector.launch] [INFO] Version: 1.1.26-41a7a47
[authlib-injector.config] [INFO] API root: http://localhost:4321/
[authlib-injector.config] [WARNING] You are using HTTP protocol, which is INSECURE! Please switch to HTTPS if possible.
[authlib-injector.config] [SEVERE] Failed to fetch metadata: java.io.IOException: Server returned HTTP response code: 403 for URL: http://skin.xxxxx.com/api/yggdrasil

其中域名已用xxxxx代替,似乎是proxy给authlib-injector传输的是http地址?服务端设置了强制跳转https,网页端访问http://skin.xxxxx.com/api/yggdrasil 时会自动跳转到https页面且能成功访问,
直接访问https://skin.xxxxx.com/api/yggdrasil 也能成功。

[PROBLEM]玩家在聊天栏发送消息会提示“收到未被签名的消息”的提示并踢出服务器

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:
1.19.2服务端使用YOP时,玩家在聊天栏发送消息会提示“收到未被签名的消息”的提示并踢出服务器。

错误复现步骤:

  1. 使用1.19.2 Purpur服务端并将YOP以javaagent方式启动
  2. 登录服务器发送聊天消息

错误日志:

(如果有错误日志, 请粘贴到此处, 并且避免使用pastebin)

YggdrasilOfficialProxy配置

# CDN settings
CDN {
    enable=false
    origin="https://cdn.unknown.com"
}
# The yggdrasil api root
api="https://mc.unknown.com/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="/home/container/authlib-injector.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=true
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # Example for socks proxy
    just-example-for-socks {
        host=localhost
        port=1080
        type=socks
    }
    # Example for socks proxy with authentication
    just-example-for-socks-with-authentication {
        host=localhost
        password=password
        port=1080
        type=socks
        username=username
    }
    # The proxy of official connecting
    official {
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="127.0.0.1"
    port=60491
}

服务器启动命令行

java -javaagent:YggdrasilOfficialProxy.jar -jar server.jar nogui

[PROBLEM]2.1.3升级2.3.0无法链接服务器,提示:认证服务器处于······,但是2.1.3可以正常使用

如题,2.1.3可以正常使用正版以及皮肤站登录服务器,但是使用2.3.0后无法链接
image

更新后的Ygg配置

YggdrasilOfficialProxy.txt

2.1.3的配置

YggdrasilOfficialProxy.txt

服务端:Catserver21.05.18
后台提示
[13:03:53] [eventLoopGroupProxy-4-2/INFO]: [YggdrasilOfficialProxy] [ WARN] A exception in reading network. [13:03:53] [User Authenticator #1/INFO]: Disconnecting com.mojang.authlib.GameProfile@3b62d2db[id=<null>,name=Huaxidesu,properties={},legacy=false] (/192.168.1.8:52575): Authentication servers are down. Please try again later, sorry! [13:03:53] [User Authenticator #1/ERROR]: Couldn't verify username because servers are unavailable [13:03:53] [Server thread/INFO]: com.mojang.authlib.GameProfile@3b62d2db[id=<null>,name=Huaxidesu,properties={},legacy=false] (/192.168.1.8:52575) lost connection: Authentication servers are down. Please try again later, sorry! [13:07:13] [eventLoopGroupProxy-4-3/INFO]: [YggdrasilOfficialProxy] [ WARN] A exception in reading network. [13:07:13] [User Authenticator #2/INFO]: Disconnecting com.mojang.authlib.GameProfile@2eb1c3b[id=<null>,name=Huaxidesu,properties={},legacy=false] (/192.168.1.8:52649): Authentication servers are down. Please try again later, sorry! [13:07:13] [User Authenticator #2/ERROR]: Couldn't verify username because servers are unavailable [13:07:13] [Server thread/INFO]: com.mojang.authlib.GameProfile@2eb1c3b[id=<null>,name=Huaxidesu,properties={},legacy=false] (/192.168.1.8:52649) lost connection: Authentication servers are down. Please try again later, sorry!

[PROBLEM]正版登录无法验证用户名

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[YggdrasilOfficialProxy] Server running on 127.0.0.1:1056
[YggdrasilOfficialProxy] [ INFO] No ktor.deployment.watch patterns specified, automatic reload is not active
[YggdrasilOfficialProxy] [ INFO] Responding at http://127.0.0.1:1056
[authlib-injector] [INFO] Version: 1.1.34
[authlib-injector] [INFO] Authentication server: http://localhost:1056
[authlib-injector] [WARNING] You are using HTTP protocol, which is INSECURE! Please switch to HTTPS if possible.
System Info: Java 1.8 (Java HotSpot(TM) 64-Bit Server VM 25.181-b13) Host: Windows Server 2016 10.0 (amd64)
Loading libraries, please wait...
[authlib-injector] [INFO] Httpd is running on port 60961
[authlib-injector] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilEnvironment] with [Constant URL Transformer]
[authlib-injector] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService] with [Texture Whitelist Transformer]
[authlib-injector] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService] with [Yggdrasil Public Key Transformer]
[15:27:37 INFO]: Environment: authHost='http://localhost:1056/authserver', accountsHost='http://127.0.0.1:60961/https/api.mojang.com', sessionHost='http://127.0.0.1:60961/https/sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[authlib-injector] [INFO] Transformed [com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService] with [Callback Metafactory Transformer]
[15:27:38 INFO]: Reloading ResourceManager: Default, bukkit
[15:27:39 INFO]: Loaded 7 recipes
[15:27:42 INFO]: Starting minecraft server version 1.16.4
[15:27:42 INFO]: Loading properties
[15:27:42 INFO]: This server is running Paper version git-Paper-416 (MC: 1.16.4) (Implementing API version 1.16.4-R0.1-SNAPSHOT)
。。。。。省略
[15:29:16 INFO]: Disconnecting /223.74.116.136:26329: Failed to verify username!
[15:29:16 ERROR]: Username 'aard_mo' tried to join with an invalid session
[15:29:16 INFO]: /223.74.116.136:26329 lost connection: Failed to verify username!
[15:29:29 INFO]: Disconnecting /223.74.116.136:26355: Failed to verify username!
[15:29:29 ERROR]: Username 'aard_mo' tried to join with an invalid session
[15:29:29 INFO]: /223.74.116.136:26355 lost connection: Failed to verify username!

启动脚本
java -javaagent:YggdrasilOfficialProxy-2.1.3-paperclip.jar -jar paper.jar -nogui

YggdrasilOfficialProxy似乎在forge无法进行正版登入

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:

第三方服务器可用,正版不可用(客户端提示:无法验证用户名)
此错误只在forge服务器出现。spigot可进入

https://status.mojang.com/check 结果:

[{"minecraft.net":"green"},{"session.minecraft.net":"green"},{"account.mojang.com":"green"},{"authserver.mojang.com":"green"},{"sessionserver.mojang.com":"red"},{"api.mojang.com":"green"},{"textures.minecraft.net":"green"},{"mojang.com":"green"}]

服务器ping结果:

正在 Ping sessionserver.mojang.com [54.192.20.105] 具有 32 字节的数据:
来自 54.192.20.105 的回复: 字节=32 时间=24ms TTL=236
来自 54.192.20.105 的回复: 字节=32 时间=21ms TTL=235
请求超时。
来自 54.192.20.105 的回复: 字节=32 时间=20ms TTL=235

54.192.20.105 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 20ms,最长 = 24ms,平均 = 21ms

错误复现步骤:

  1. 打开cmd
    2.正常启动服务器

错误日志:

[23:27:08] [User Authenticator #1/INFO] [minecraft/NetHandlerLoginServer]: Disconnecting /192.168.2.122:12020: Failed to verify username!
[23:27:08] [User Authenticator #1/ERROR] [minecraft/NetHandlerLoginServer]: Username 'Lyink_' tried to join with an invalid session
[23:27:08] [Server thread/INFO] [minecraft/NetHandlerLoginServer]: /192.168.2.122:12020 lost connection: Failed to verify username!

YggdrasilOfficialProxy配置

# The yggdrasil api root
api="https://mcpa.xyz:233/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="./authlib-injector-1.1.34.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=false
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # The proxy of official connecting
    official {
        host=localhost
        port=1080
        type=socks
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="0.0.0.0"
    port=10086
}

服务器启动命令行

java -Xms1024M -Xmx8192M -javaagent:authlib-injector-1.1.34.jar=http://127.0.0.1:10086 -jar forge-1.12.2-14.23.5.2847-universal.jar -XX:+UseG1GC -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M -Dfml.readTimeout=180 -Dfml.queryResult=confirm nogui

[PROBLEM]无法完成setup

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:
无法完成setup

错误复现步骤:

  1. 打开cmd
    2.执行java -jar YggdrasilOfficialProxy-2.1.2-paperclip.jar setup

错误日志:

Exception in thread "main" java.lang.RuntimeException: Error: Please use proxy version or run in server direction.
        at io.github.karlatemp.yop.FastConfigurationKt.startSetup(FastConfiguration.kt:105)
        at io.github.karlatemp.yop.YggdrasilOfficialProxy.main(YggdrasilOfficialProxy.kt:216)
[root@server-x86 mc]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

YggdrasilOfficialProxy配置

# 粘贴YOP配置到此处, 记得剔除重要隐私信息(比如服务器ip

服务器启动命令行

# 粘贴你的启动命令行到此处, 记住剔除重要隐私信息
# 请注意请只粘贴 java 开头的命令行, 其余部分都将会被视作多余处理

是否正常支持Java16

服务端更新到Java16后,无论正版还是外置登录玩家,进入服务器通讯加密后显示“认证服务器处于宕机状态中,请稍后再试,抱歉!”而同样的配置在Java8环境下没有此问题。
YOP2.3.0配置如下:
.# CDN settings
CDN {
enable=false
origin="CDN origin link"
}
.# The yggdrasil api root
api="https://mcskin.orecraft.cn/api/yggdrasil"
.# The location of YggdrasilInjector
.# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="/root/mc/survival.5/server/authlib-injector-1.1.35.jar"
.# IMPORTANT: Set this value to true!
edited=true
.# When access multiple apis. Use official api first.
official-first=true
.# Proxy settings
proxy {
just-example-for-http {
type=http
url="http://localhost/proxy"
}
.# Example for socks proxy
just-example-for-socks {
host=localhost
port=1080
type=socks
}
. # Example for socks proxy with authentication
just-example-for-socks-with-authentication {
host=localhost
password=password
port=1080
type=socks
username=username
}
.# The proxy of official connecting
official {
type=direct
}
.# The proxy of yggdrasil connecting
yggdrasil {
type=direct
}
}
.# The server binding actions.
server {
host="0.0.0.0"
port=36520
}
出现报错如下:[Server] [20:51:58] [User Authenticator #1/INFO]: Disconnecting com.mojang.authlib.GameProfile@3b26da3a[id=,name=NiceDavidVeiz,properties={},legacy=false] (/120.239.173.127:28662): Authentication servers are down. Please try again later, sorry!
[Server] [20:51:58] [User Authenticator #1/ERROR]: Couldn't verify username because servers are unavailable
[Server] [20:51:58] [Server thread/INFO]: com.mojang.authlib.GameProfile@3b26da3a[id=,name=NiceDavidVeiz,properties={},legacy=false] (/120.239.173.127:28662) lost connection: Authentication servers are down. Please try again later, sorry!
——————————————————————————————————————————————————
[root@VM-8-10-centos server]# java -jar YggdrasilOfficialProxy-2.3.0-proxy.jar
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[YggdrasilOfficialProxy] Server running on 0.0.0.0:36520
[YggdrasilOfficialProxy] [ INFO] Autoreload is disabled because the development mode is off.
[YggdrasilOfficialProxy] [ INFO] Responding at http://0.0.0.0:36520
[YggdrasilOfficialProxy] [ WARN] A exception in reading network.

[PROBLEM]Purpur无法使用-javaagent方式启动

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:
用-javaagent方法启动,slf4j报错
启动命令

错误复现步骤:

  1. 打开启动脚本

错误日志:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[YggdrasilOfficialProxy] Server running on 0.0.0.0:25570
[YggdrasilOfficialProxy] [ INFO] Autoreload is disabled because the development mode is off.
[YggdrasilOfficialProxy] [ INFO] Responding at http://0.0.0.0:25570
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:491)
        at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:503)
Caused by: java.nio.file.NoSuchFileException: .\cache\authlib-injector-1.1.47.jar.jar
        at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
        at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
        at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:53)
        at java.base/sun.nio.fs.WindowsFileAttributeViews$Basic.readAttributes(WindowsFileAttributeViews.java:38)
        at java.base/sun.nio.fs.WindowsFileSystemProvider.readAttributes(WindowsFileSystemProvider.java:199)
        at java.base/java.nio.file.Files.readAttributes(Files.java:1851)
        at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1264)
        at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:709)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:243)
        at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:172)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:347)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:318)
        at java.base/java.util.jar.JarFile.<init>(JarFile.java:257)
        at io.github.karlatemp.yop.YggdrasilOfficialProxy.premain(YggdrasilOfficialProxy.kt:551)
        ... 6 more
*** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at e:\jenkins\tmp\workspace\build\src\src\java.instrument\share\native\libinstrument\JPLISAgent.c line: 422
FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed

YggdrasilOfficialProxy配置

# CDN settings
CDN {
    enable=false
    origin="CDN origin link"
}
# The yggdrasil api root
api="https://mcskin.cn/api/yggdrasil"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="./cache/authlib-injector-1.1.47.jar.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=false
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # Example for socks proxy
    just-example-for-socks {
        host=localhost
        port=1080
        type=socks
    }
    # Example for socks proxy with authentication
    just-example-for-socks-with-authentication {
        host=localhost
        password=password
        port=1080
        type=socks
        username=username
    }
    # The proxy of official connecting
    official {
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="0.0.0.0"
    port=25570
}

服务器启动命令行

java -javaagent:cache/YggdrasilOfficialProxy-2.3.0-paperclip.jar -jar server-release.jar nogui

[PROBLEM]服务器每隔一段时间会刷报错

Ygg版本2.1.3-2.3.0都会出现(以前使用bc端没有)
服务端为catserver
ygg配置为https://github.com/YggdrasilOfficialProxy/YggdrasilOfficialProxy/files/6565753/YggdrasilOfficialProxy.txt
报错文本
[20:04:47] [eventLoopGroupProxy-4-1/INFO] []: [YggdrasilOfficialProxy] [ERROR] Unhandled: POST - /api/profiles/minecraft [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: java.lang.NoSuchMethodError: com.google.gson.JsonParser.parseString(Ljava/lang/String;)Lcom/google/gson/JsonElement; [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.github.karlatemp.yop.YggdrasilOfficialProxy$main$server$1$1$1$1.invokeSuspend(YggdrasilOfficialProxy.kt:301) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.github.karlatemp.yop.YggdrasilOfficialProxy$main$server$1$1$1$1.invoke(YggdrasilOfficialProxy.kt) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.github.karlatemp.yop.YggdrasilOfficialProxy$main$server$1$1$1$1.invoke(YggdrasilOfficialProxy.kt) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:246) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:79) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.routing.Routing.executeResult(Routing.kt:155) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.routing.Routing.interceptor(Routing.kt:39) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.routing.Routing$Feature$install$1.invokeSuspend(Routing.kt:107) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.routing.Routing$Feature$install$1.invoke(Routing.kt) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:246) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:79) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invokeSuspend(DefaultEnginePipeline.kt:124) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invoke(DefaultEnginePipeline.kt) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:246) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:79) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invokeSuspend(NettyApplicationCallHandler.kt:123) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.BuildersKt.launch(Unknown Source) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.NettyApplicationCallHandler.handleRequest(NettyApplicationCallHandler.kt:43) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.NettyApplicationCallHandler.channelRead(NettyApplicationCallHandler.kt:34) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:353) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.EventLoopGroupProxy$Companion$create$factory$1$1.run(NettyApplicationEngine.kt:241) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [20:04:47] [eventLoopGroupProxy-4-1/INFO] []: at java.lang.Thread.run(Unknown Source) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: [YggdrasilOfficialProxy] [ERROR] Unhandled: POST - /api/profiles/minecraft [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: java.lang.NoSuchMethodError: com.google.gson.JsonParser.parseString(Ljava/lang/String;)Lcom/google/gson/JsonElement; [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.github.karlatemp.yop.YggdrasilOfficialProxy$main$server$1$1$1$1.invokeSuspend(YggdrasilOfficialProxy.kt:301) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.github.karlatemp.yop.YggdrasilOfficialProxy$main$server$1$1$1$1.invoke(YggdrasilOfficialProxy.kt) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.github.karlatemp.yop.YggdrasilOfficialProxy$main$server$1$1$1$1.invoke(YggdrasilOfficialProxy.kt) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:246) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:79) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.routing.Routing.executeResult(Routing.kt:155) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.routing.Routing.interceptor(Routing.kt:39) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.routing.Routing$Feature$install$1.invokeSuspend(Routing.kt:107) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.routing.Routing$Feature$install$1.invoke(Routing.kt) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:246) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:79) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invokeSuspend(DefaultEnginePipeline.kt:124) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invoke(DefaultEnginePipeline.kt) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:246) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:116) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.SuspendFunctionGun.execute(SuspendFunctionGun.kt:136) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:79) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invokeSuspend(NettyApplicationCallHandler.kt:123) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at kotlinx.coroutines.BuildersKt.launch(Unknown Source) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.NettyApplicationCallHandler.handleRequest(NettyApplicationCallHandler.kt:43) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.ktor.server.netty.NettyApplicationCallHandler.channelRead(NettyApplicationCallHandler.kt:34) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [20:04:48] [eventLoopGroupProxy-4-1/INFO] []: at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38) [20:0

[PROBLEM]皮肤站用户无法连接服务器

#22 复发
服务端:Leaves(Paper系)
情况基本和这个issue相同,游戏版本1.20.1,单独使用authlib-injector没有问题。
已经确定下载的是最新的YggdrasilOfficialProxy版本

Relocate

将依赖relocate位置,避免和服务端核心自带依赖冲突

oke(NativeMethodAccessorImpl.java:62)
[01:07:46 INFO]: [STDERR]:  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:07:46 INFO]: [STDERR]:  at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[01:07:46 INFO]: [STDERR]:  at io.papermc.paperclip.Paperclip.main(Paperclip.java:54)
[MCSMANAGER] -------------------------------------------------------------- 
[MCSMANAGER] [ 2020/7/4 1:7:52 ]: 服务端 SunnySide 执行开启命令. 
[MCSMANAGER] -------------------------------------------------------------- 
############################
# Yggdrasil Official Proxy #
# Copyright (c) Karlatemp  #
#     2018-2020.           #
# All rights reserved.     #
############################
#            Version: 1.0.0
#    Java    Version: 11.0.7
#    Server Port    : 42285
# Configuration Path: /home/gamerteam/server/share/YggdrasilOfficialProxy.yml
# Yggdrasil API ROOT: https://user.mcxk.net/api/yggdrasil/
#     First Connect : Yggdrasil
# Proxy of Official : DIRECT
# Proxy of Yggdrasil: DIRECT
# Connect Timed out : 60000
# Reading Timed out : 60000
# Yggdrasil-Fix: true
############################
# Server started.
# Injector path: /home/gamerteam/server/share/authlib-injector-1.1.29.jar
# Injector argument: http://localhost:42285
[authlib-injector.launch] [INFO] Version: 1.1.29
[authlib-injector.config] [INFO] API root: http://localhost:42285/
[authlib-injector.config] [WARNING] You are using HTTP protocol, which is INSECURE! Please switch to HTTPS if possible.
>System Info: Java 11 (Java HotSpot(TM) 64-Bit Server VM 11.0.7+8-LTS) Host: Linux 5.6.14-1.el7.elrepo.x86_64 (amd64)
Loading libraries, please wait...
2020-08-06 01:07:55,887 main WARN Advanced terminal features are not available in this environment
[01:08:01 INFO]: [STDERR]: java.lang.NoSuchMethodError: org.yaml.snakeyaml.LoaderOptions.setMaxAliasesForCollections(I)V
[01:08:01 INFO]: [STDERR]:  at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:56)
[01:08:01 INFO]: [STDERR]:  at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:160)
[01:08:01 INFO]: [STDERR]:  at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:128)
[01:08:01 INFO]: [STDERR]:  at net.minecraft.server.v1_16_R1.Main.loadConfigFile(Main.java:230)
[01:08:01 INFO]: [STDERR]:  at net.minecraft.server.v1_16_R1.Main.main(Main.java:68)
[01:08:01 INFO]: [STDERR]:  at org.bukkit.craftbukkit.Main.main(Main.java:276)
[01:08:01 INFO]: [STDERR]:  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[01:08:01 INFO]: [STDERR]:  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[01:08:01 INFO]: [STDERR]:  at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[01:08:01 INFO]: [STDERR]:  at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[01:08:01 INFO]: [STDERR]:  at io.papermc.paperclip.Paperclip.main(Paperclip.java:54)

[建议]建议添加皮肤站或者正版有任一同名玩家加入过服务器时,禁止另一验证的同名玩家注册的功能

我服务器使用的ftbmod来管理服务器领地,afk,tp等诸类事物,当两位同名玩家登录时,玩家2拥有玩家1的领地权限,并且当一位玩家进入afk状态就会afk刷屏,所以我希望可以添加当一个验证渠道的玩家在服务器注册过后禁止另一个渠道的同名玩家注册,afk刷屏是小事,但如果有了领地权限可能会做坏事,我也不能让所有正版玩家去皮肤站注册账号啊,ftb也是大多模组服使用的基础插件,所以希望能加入一下这个功能

[PROBLEM] Failed to fetch metadata

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. [YggdrasilOfficialProxy] Server running on 127.0.0.1:32217 [YggdrasilOfficialProxy] [ INFO] Autoreload is disabled because the development mode is off. [YggdrasilOfficialProxy] [ INFO] Responding at http://127.0.0.1:32217 [authlib-injector] [WARNING] Couldn't lock log file [D:\UPcraft\Decursio Project Expert - PreRelease 11.0\authlib-injector.log] [authlib-injector] [INFO] Version: 1.1.45 [authlib-injector] [INFO] Authentication server: http://localhost:32217 [authlib-injector] [WARNING] You are using HTTP protocol, which is INSECURE! Please switch to HTTPS if possible. [authlib-injector] [ERROR] Failed to fetch metadata: java.io.FileNotFoundException: http://localhost:32217

YggdrasilOfficialProxy配置

# CDN settings
CDN {
    enable=false
    origin="CDN origin link"
}
# The yggdrasil api root
api="https://littleskin.cn/api/yggdrasill"
# The location of YggdrasilInjector
# @see https://github.com/yushijinhun/authlib-injector/
authlib-injector="authlib-injector.jar"
# IMPORTANT: Set this value to `true`!
edited=true
# When access multiple apis. Use official api first.
official-first=true
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # Example for socks proxy
    just-example-for-socks {
        host=localhost
        port=1080
        type=socks
    }
    # Example for socks proxy with authentication
    just-example-for-socks-with-authentication {
        host=localhost
        password=password
        port=1080
        type=socks
        username=username
    }
    # The proxy of official connecting
    official {
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}
# The server binding actions.
server {
    host="127.0.0.1"
    port=32217
}

服务器启动命令行

# 粘贴你的启动命令行到此处, 记住剔除重要隐私信息
# 请注意请只粘贴 java 开头的命令行, 其余部分都将会被视作多余处理
java -server -javaagent:YggdrasilOfficialProxy-2.3.0-proxy.jar "%OTHERARGS%" %ARGS% -jar forge.jar nogui

解决 Okhttp java.io.EOFException: \n not found: size=0 content= unexpected end

我已确认我使用的版本是收到支持的v2.x

我已经确认出现服务器宕机等无法进入服务器的情况时 https://status.mojang.com/check 显示正常 且 YOP 代理配置无误

错误说明:
BC服务端不能一次就正确区分用户的来源是正版还是外置
下方便是运行实例(我的是外置账户 但是proxy判断并不准确 反复重连才成功)

错误复现步骤:

  1. 打开cmd
    2.BC端进行用户登录 正版的和外置的都不能一次进入 都需要Proxy自行判断多次才能进入
    尝试期间提示无法连接认证服务器 正版和外置均如此

错误日志:

20:52:24 [INFO] [/客户端登录IP地址] <-> InitialHandler has connected
20:52:25 [SEVERE] Error authenticating DreamUniverse with minecraft.net
java.lang.IllegalStateException: Expected HTTP response 200 OK, got 500 Internal Server Error
	at net.md_5.bungee.http.HttpHandler.channelRead0(HttpHandler.java:49)
	at net.md_5.bungee.http.HttpHandler.channelRead0(HttpHandler.java:14)
	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at java.lang.Thread.run(Thread.java:748)
20:52:29 [INFO] [/IP地址] <-> InitialHandler has connected
20:52:34 [INFO] [/IP地址] <-> InitialHandler has connected
20:52:35 [INFO] [DreamUniverse] <-> ServerConnector [主城] has connected

反复多次才登录成功 很不方便 玩家还误以为外置或者正版垮掉了

YggdrasilOfficialProxy配置

# API Root, 将这里改成原来的 API Root!
API地址隐藏处理
# Authlib Injector的位置, 无效的话服务器将无法启动
authlib-injector="authlib-injector.jar"
# 重要! 重要!, 必须为 true!
edited=true
# 在合并玩家查找的时候, 是否优先使用正版服务器的内容
official-first=false
# 代理服务器的设置
server {
    # 换成 127.0.0.1
    host="127.0.0.1"
    # 随便写, 随便写一个没有被占用的端口
    port=45342
}
# Proxy settings
proxy {
    just-example-for-http {
        type=http
        url="http://localhost/proxy"
    }
    # The proxy of official connecting
    official {
        host=localhost
        port=1080
        type=direct
    }
    # The proxy of yggdrasil connecting
    yggdrasil {
        type=direct
    }
}

服务器启动命令行

java -server -Xincgc -javaagent:YggdrasilOfficialProxy.jar -Xss512K -XX:+AggressiveOpts -XX:+UseCompressedOops -XX:+UseCMSCompactAtFullCollection -XX:+UseFastAccessorMethods -XX:ParallelGCThreads=4 -XX:+UseConcMarkSweepGC -XX:CMSFullGCsBeforeCompaction=2 -XX:CMSInitiatingOccupancyFraction=70 -XX:-DisableExplicitGC -XX:-DisableExplicitGC -XX:TargetSurvivorRatio=90

支持多个Yggdrasil服务器

我已确认目前使用的是受到支持的v2.x版本

此特性可以用于:
可以让多个认证服务器进入服务器,给不同认证服务器的玩家进入一个服务器
这样可以方便服务器联谊

使用geyser时出现错误

Screenshot_2020-11-13-13-50-52-013_mark via
使用yop(agent模式)+spigot+geyser(插件模式)时,使用geyser登录,服务端报异常,如上图。

以下为配置文件内容:
Screenshot_2020-11-13-13-53-42-861_bin mt plus

以下为启动的附加参数:

-XX:+UseFastAccessorMethods -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=2 -XX:+AggressiveOpts -XX:+UseCompressedOops -javaagent:yop.jar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.