NukkitX
Nukkit是一款高性能,基于Java的一款高效基岩版服务端,它的结构十分类似与Bukkit/Spigot,阅读本帖可能对你了解Nukkit有一定的帮助。
让我来扩大你对Nukkit的认知吧!
项目简介
Nukkit 由 Java 编写,拥有强大的多线程性能,可以更好地利用你的主机资源,让玩家们更欢快的游戏源代码根据 LGPL 协议开放,方便开发者和腐竹对于 Nukkit 的学习采用了类似 PocketMine-MP 的结构,提供了高效的插件解决方案,也便于大家对 Nukkit 作出代码贡献。
特点:
- Nukkit 由 Java 编写,稳定性 可靠性 高于PM
- 其结构也类似于 PocketMine-MP 高效
- 将PocketMine-MP插件重写到Nukkit插件很容易
- 了解Bukkit的开发的开发组入手Nukkit开发很容易
- 更新速度飞快,如今核心NukkitX达到1.12.0版本
- Nukkit随着基岩版更新,速度极快
NukkitX配置
Nukkit基础配置讲解
- motd=A Nukkit Powered Server
- sub-motd=https://nukkitx.com
- server-port=19132
- server-ip=0.0.0.0
- view-distance=10
- white-list=off
- achievements=on
- announce-player-achievements=on
- spawn-protection=16
- max-players=20
- allow-flight=off
- spawn-animals=on
- spawn-mobs=on
- gamemode=0
- force-gamemode=off
- hardcore=off
- pvp=on
- difficulty=1
- generator-settings=
- level-name=world
- level-seed=
- level-type=DEFAULT
- allow-nether=on
- enable-query=on
- enable-rcon=off
- rcon.password=kMGJhZjRjZ
- auto-save=on
- force-resources=off
- bug-report=on
- xbox-auth=on
高级配置
- # Nukkit 高级设置
- # 警告:此处部分设置是安全的,而一些在设置不当的情况下可能会损害您的服务器
- # 升级后,新的设置及默认值将不会自动显示在这里,它们将以默认值运行直到你手动更新配置文件
- settings:
- #多语言设置
- #可用:eng, chs, cht, jpn, rus, spa, pol, bra, kor, ukr, deu, ltu, cze
- language: "chs"
- #服务器强制语言
- force-language: false
- shutdown-message: "服务器已关闭"
- #允许使用Query协议查询您的插件
- query-plugins: true
- #当某插件使用不被推荐的API时,在控制台提醒
- deprecated-verbose: true
- #异步线程数量
- #如果设置为auto,则自动识别CPU核心数量(最少4线程)
- async-workers: auto
- network:
- #数据包大小阀值(单位:字节)。仅这些包会被压缩
- #设为 0 以压缩全部。设为 -1 以禁用此功能
- batch-threshold: 256
- #压缩等级。等级越高,CPU 占用越高,占用带宽越少
- compression-level: 7
- #异步压缩。通过增加半个/一个 tick 的延迟缓解主线程 CPU 负载
- async-compression: false
- debug:
- #当调试级别 > 1 时,将在控制台显示调试信息
- level: 1
- #启用命令 /status /gc
- commands: false
- timings:
- #默认启用核心和插件的性能分析
- enabled: false
- #启用详细级别的监控,包括高频记录
- verbose: false
- #以 tick 为单位的历史帧间隔
- #默认五分钟(6000 ticks)
- history-interval: 6000
- #以 tick 为单位的整个分析历史时长
- #默认一小时(72000 ticks)
- #该值上限为历史间隔(history-interval,即上一配置)的 12 倍
- history-length: 72000
- #对于有特殊权限以绕过最大值的服务器的特殊情况
- #最大值有助于保持数据文件大小合理,以便在 Aikar 的性能分析器端进行处理
- #设置此选项不会帮你绕过最大值限制,除非 Aikar 在 API 端添加了一个例外
- bypass-max: false
- #将此设置为 true,你的服务器名就不会被发送出去
- privacy: false
- #设置忽略部分。这些部分不会被送往 Aikar 的性能分析器
- #例如: [all] 或 [settings, timings]
- ignore: []
- level-settings:
- #默认生成的地图格式
- default-format: anvil
- #自动改变世界 TPS 以维持每秒 20 ticks(TPS:ticks per second)
- auto-tick-rate: true
- auto-tick-rate-limit: 20
- #设置基本 TPS(1 = 20TPS,2 = 10TPS,以此类推)
- base-tick-rate: 1
- #始终保持玩家Tick,即使其他选项不允许这么做
- always-tick-players: false
- chunk-sending:
- #每 tick 内发送给玩家区块的数量
- per-tick: 4
- #玩家附近的区块发送数量
- max-chunks: 192
- #玩家生成前需要的区块数量
- spawn-threshold: 56
- #在内存中存储一系列的区块复制以加快区块发送
- #在多玩家同时加入一个大多是静态的服务器时较有效
- cache-chunks: false
- chunk-ticking:
- #每 tick 中处理的区块数量
- per-tick: 40
- #玩家周围区块处理的半径
- tick-radius: 3
- light-updates: false
- clear-tick-list: false
- chunk-generation:
- #等待队列中,被生成的区块的数量上限
- queue-size: 8
- #等待队列中,被填充的区块的数量上限
- population-queue-size: 8
- ticks-per:
- animal-spawns: 400
- monster-spawns: 1
- autosave: 6000
- cache-cleanup: 900
- spawn-limits:
- #实体生成数量设置
- monsters: 70
- animals: 15
- water-animals: 5
- ambient: 15
-
- player:
- #决定服务器是否以 players/playername.dat 的形式保存玩家数据。默认 true 为保存。
- #如果设置为 false,nukkit 将不会保存玩家数据,这样一些与玩家数据有关的插件就可以大展身手了。
- save-player-data: true
-
- aliases:
- #指令别称
- #例如:
- #showtheversion: version
- #savestop: [save-all, stop]
- worlds:
- #这些设定将覆盖 server.properties 中的设定,并支持加载多世界
- #例如:
- #world:
- # seed: 404
- # generator: FLAT:2;7,59x1,3x3,2;1;decoration(treecount=80 grasscount=45)
基本命令
Commands
- version
- plugins
- seed
Version
说明:显示有关Nukkit的版本信息
命令: /version
别名: {ver, about}
权限: {nukkit.command.version}
Plugins
说明:显示当前安装的插件
命令: /plugins
别名: {pl}
权限: {nukkit.command.plugins}
Seed
说明:显示你所处的世界的种子
命令: /seed
权限: {nukkit.command.seed}
附加教程
a. 如何创建一个超平坦世界
在nukkit.yml的最后行
- worlds:
- world:
- seed: 404
- generator: FLAT:2;7,59x1,3x3,2;1;decoration(treecount=80 grasscount=45)
- worlds:
- test:
- seed: 404
- generator: FLAT:2;7,59x1,3x3,2;1;decoration(treecount=80 grasscount=45)
b. 如何将JE存档转为NK存档
1. Jar转换
目前暂时没有比较好的方法,目前的方法 Java2Nukkit-World-Converter
站内搬运:https://www.mcbbs.net/thread-890820-1-1.html
该方法已经遭到了很多反馈,无法使用,但仅仅是旧版,等待作者更新
或者可以自行前往 Github 构建最新版测试
2. 强制导入
需要插件:
DbLib
WorldEdit
MultiWorld
何为强制导入呢,就是删除地图文件中除 regin level.dat 以外的文件
将整体更名导入worlds,使用 MultiWorld 进行加载
/mw load 世界名 即可加载世界
为什么不直接把世界改成 world 导入 worlds?
因为直接导入 可能会导致无法进入游戏
进入该世界,用 WorldEdit 选取区域,使用命令
//replace ID 替换ID 将BUG方块替换为其他方块

这就是BUG方块了 你可用 //replace ID 替换ID 替换成任意方块已知BUG方块ID
ID 248 若没替换完则再用 249 再次替换
ID 126
c. 如何制作原版生存
目前使用Nukkit制作原版生存是很难做到的,毕竟Nukkit的特性还是比较少的,这时候就体现了跨服的用处
主要思路: 以Nukkit作为大厅,基岩版官服 BedRock 做生存进行跨服
我的跨服思路并不是使用其他核心而是插件 参考
准备插件 TransferCommand
使用客户端重定向进行跨服
我设置了Nukkit端口为19132 作为大厅
- server-port=19132
- server-port=19135

现在是Nukkit搭建的大厅

现在输入命令 /transfer IP 端口
由于我是本地 所以我填写的是 /transfer 127.0.0.1 19135



跨服成功 耗时6秒
项目介绍
Nemisys是什么?Nemisys是类似于BungeeCord属于Nukkit的跨服主体核心!
完全启动时:

安装设置
a. 设置server.properties中的配置
synapse-ip: 服务器IP
Synapse-port: SSR协议端口 (让Nemisys与所有子服通讯)
Password: SPP身份验证的密码
b. 其他设置
dynamic-player-count: 设置最大人数 ( 例如245/246 )
下载Synapse到你的子服plugins中,
SynapseAPI Nukkit使用
SynapsePM PocketMine使用
对Synapse配置进行修改
修改端口/密码
Nemisys配置
- #标语
- motd=Nemisys Proxy
- # 服务器IP
- server-ip=0.0.0.0
- # 服务器端口
- server-port=19132
- # 子服IP
- synapse-ip=0.0.0.0
- # 子服端口
- synapse-port=10305
- # 密码
- password=1234567890123456
- # 语言
- lang=eng
- # 异步工作
- async-workers=auto
- # 概况分析
- enable-profiling=off
- # 概况分析时间
- profile-report-trigger=20
- # 最大玩家数
- max-players=20
- # N+1玩家数
- plus-one-max-count=off
- # 动态玩家数
- dynamic-player-count=off
- # 玩家线程
- players-per-thread=50
- # 启用查询
- enable-query=on
- # 启用rcon
- enable-rcon=off
- # rcon密码
- rcon.password=lZmYxNDg3M
- debug=1
- # 启用Synapse线程
- enable-synapse-client=off
- # 标题显示统计信息
- display-stats-in-title=on
- # 配置Synapse
- disable-rak: false
- # 是否启用
- enable: true
- entries:
- # 服务器IP
- - server-ip: 127.0.0.1
- # 子服端口,请务必修改
- server-port: 10305
- # 是否为主服
- isMainServer: true
- # 是否为大厅服
- isLobbyServer: true
- # 是否关服后返回著大厅
- transferOnShutdown: true
- # SSP密码 在Nemisys中配置的密码
- password: must16keyslength
- # 描述
- description: Synapse Nukkit Server
- # 自动连接
- autoConnect: true
[groupid=1572]Nukkit Plugin Studio[/groupid]
