Allow player to use Chinese chars in username of Minecraft
允许玩家使用中文名甚至特殊字符进入服务器
介绍贴: https://www.mcbbs.net/thread-1449800-1-1.html (已似)
推荐所有有条件的服主使用JavaAgent方式加载,以解锁所有功能
- 在Releases中下载
- 放入
plugins
文件夹 [仅Bukkit|BungeeCord,及其所有分支(如Spigot|Paper|WaterFall等)] - 插件方式加载有诸多限制,如:
①原版实体选择器不支持特殊名字玩家. 例如无法使用/tp
命令,请使用/tp "<username>"
其中<username>
替换为玩家名字
②在1.20.5+,Paper
及其分支服务端,玩家名字长度不能长于16,否则无法进入服务器. JavaAgent加载方式不受此限制 - 如需自定义正则匹配,请修改
plugins/CnUsername/pattern.txt
推荐所有有条件的服主使用JavaAgent方式加载,以解锁所有功能
- 在Releases中下载
- 放入
服务端根目录
- 修改你的启动命令,在
java
后写入-javaagent:CnUsername-version-all.jar
. 例如:
java -javaagent:CnUsername-1.0.7-all.jar -jar server.jar
注意,此处仅为举例说明,请根据实际情况编写 - JavaAgent加载模式可以解锁所有功能,包括但不限于:
①玩家名字长度可通过修改正则自定义
②能够正常使用原版实体选择器选择特殊名字玩家 - 如需自定义正则,修改前面启动命令为
-javaagent:CnUsername-<version>-all.jar="<正则表达式>"
,例如:-javaagent:CnUsername-1.0.7-all.jar="^[a-zA-Z0-9_]{3,16}|[a-zA-Z0-9_一-龥]{2,10}$"
- 在
Paper
及其分支服务端中,需要在配置文件中修改perform-validate-username
为false
,否则无法进入服务器; - 安装
AuthMe
插件的情况下,需修改AuthMe
插件的配置文件config.yml
中的allowedNicknameCharacters
。这代表被允许的玩家名的正则表达式,否则无法进入服务器; - 安装
LuckPerms
插件的情况下,需修改LuckPerms
插件的配置文件config.yml
中的allow-invalid-usernames
为true
,否则无法正常处理权限; - 安装
Skript
插件的情况下,需修改Skript
插件的配置文件config.sk
中的player name regex pattern
,此为正则表达式,否则无法正常使用玩家功能. - 在Docker等容器环境下,如果出现
java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters
异常,可通过设置Java环境参数来解决:JAVA_TOOL_OPTIONS='-Dfile.encoding="UTF-8" -Dsun.jnu.encoding="UTF-8"’
默认正则规则: ^[a-zA-Z0-9_]{3,16}|[a-zA-Z0-9_\u4e00-\u9fa5]{2,10}$