我的世界 基岩版:官方服务器配置与使用

» 官方免责声明:

  • 这是 Mojang 尚未完成的服务器版本(预览版)
  • 可能有严重的 bug
  • Mojang 随时都可以停止支持它

» 平台:

Linux:

  • 将压缩文件解压到一个空文件夹中
  • 使用以下命令启动服务器
1
setsid ./bedrock_server

Windows:

  • 将压缩文件解压到一个空文件夹中
  • 运行 bedrock_server.exe 文件启动服务器
  • 在某些系统上,当您希望使用运行在同一台计算机上的客户端连接到服务器时,服务器正在运行,您将需要去除 Minecraft 客户端 的 UWP 环回限制
1
CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-1958404141-86561845-1752920682-3514627264-368642714-62675701-733520436

» 配置文件:

  • 服务器将读取 server.properties 作为服务器的配置文件
  • 其中一些选项仅在创建新世界时读取
  • 其他一些选项在每次启动时都会读取
  • 该文件应包含一个列表,其中的键和值以等号分隔,每行一个
  • 可以使用以下选项。 如果值为括号中的数字,则可以使用该数字代替文本值
选项可用值默认值生效时间备注
gamemodesurvival (0)
creative (1)
adventure (2)
survival新玩家加入游戏模式
difficultypeaceful (0)
easy (1)
normal (2)
hard (3)
easy始终游戏难度
level-typeFLAT
LEGACY
DEFAULT
DEFAULT生成世界时生成世界的类型,建议不修改
server-name任何字符Dedicated Server始终游戏内服务器列表显示的名称
max-players任何正整数10始终服务器玩家上限
server-port0-6553519132始终ipv4 端口号
server-portv60-6553519133始终ipv6 端口号
level-name任何字符level始终/worlds 文件夹中的地图文件夹名称
level-seed任何字符生成世界时如果为空将在生成时使用随机种子
online-modetrue
false
true始终正版验证(登录Xbox账号)
white-listtrue
false
false始终开启白名单
allow-cheatstrue
false
false始终开启作弊(只限管理员)
view-distance任何正整数10始终玩家最大视距
player-idle-timeout任何正整数30始终挂机N秒后踢出服务器
max-threads任何正整数8始终服务器最大线程数
设置为0自动调整(不建议)
tick-distance4-12的整数4始终玩家周围加载区块的范围
值越大越影响服务器性能
default-player-permission-levelvisitor
member
operator
member始终新加入玩家的权限
texturepack-requiredtrue
false
false始终强制使用服务器的材质包

» 文件夹:

  • 解压后,您将看到一些文件夹和二进制可执行文件
  • 第一次启动服务器时,将创建一堆新(空)文件夹
  • 您应该关注的文件夹如下:
文件夹用途
behavior_packs这是可以安装新行为包的地方
目前没有实装,可以安装在地图里
resource_packs这是可以安装新资源包的地方
目前没有也没有实装,也可以安装在地图里
worlds如果该文件夹尚不存在,则将在启动时创建该文件夹
创建的每个世界都将有一个根据其命名的文件夹

» 白名单:

  • 如果在 server.propertieswhite-list 设置为 true

  • 服务器将只允许 whitelist.json 列表中的玩家进入服务器

  • 允许玩家进入服务器必须知道玩家的 游戏昵称(即登录 Xbox 后显示的名字)

  • 添加一名玩家进入白名单只需要执行命令 whitelist add <游戏昵称>

  • 从白名单中删除一名玩家只需要执行命令 whitelist remove <游戏昵称>

  • 每次修改白名单后都必须执行命令 whitelist reload 才会刷新白名单

  • whitelist.json 中参数如下

数据类型
name字符串玩家的游戏昵称
xuid字符串可选参数,一般填 name 的值这个就不用填了,该玩家登陆后会自动补充
ignoresPlayerLimit布尔值true:玩家在超过服务器人数上限时可以加入服务器
false:玩家不能在超过服务器人数上限时加入服务器
  • whitelist.json 文件示例:
1
2
3
4
5
6
7
8
9
10
11
[
{
"ignoresPlayerLimit": false,
"name": "MyPlayer"
},
{
"ignoresPlayerLimit": false,
"name": "AnotherPlayer",
"xuid": "274817248"
}
]

» 权限组:

  • 可以通过 permissions.json 给特定玩家分配特定的权限
  • 分配权限的玩家必须具有是登录Xbox账号进入服务器的玩家(因为需要他们的 xuid)
  • 可以使用 permissions list 命令罗列出所有拥有特殊权限的玩家
  • permissions.json 文件示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[
{
"permission": "operator",
"xuid": "451298348"
},
{
"permission": "member",
"xuid": "52819329"
},
{
"permission": "visitor",
"xuid": "234114123"
}
]

Commands
You can issue commands to the server by typing in the console. The following commands are available. < > means a parameter is required, [ ] means it’s optional and | denotes different allowed values. Strings can be enclosed in double quotes, “, if they contain spaces.

Command syntax Description
kickImmediately kicks a player. The reason will be shown on the kicked players screen.
stop Shuts down the server gracefully.
save <hold | resume | query> Used to make atomic backups while the server is running. See the backup section for more information.
whitelist <on | off | list | reload>
on and off turns the whitelist on and off. Note that this does not change the value in the server.properties file!

list prints the current whitelist used by the server

reload makes the server reload the whitelist from the file.

See the Whitelist section for more information.

whitelist <add | remove>Adds or removes a player from the whitelist file. The name parameter should be the Xbox Gamertag of the player you want to add or remove. You don’t need to specify a XUID here, it will be resolved the first time the player connects.

See the Whitelist section for more information.
permissions <list | reload>
list prints the current used operator list.

reload makes the server reload the operator list from the ops file.

See the Permissions section for more information.

op
Promote a player to operator. This will also persist in permissions.json if the player is authenticated to XBL. If permissions.json is missing it will be created. If the player is not connected to XBL, the player is promoted for the current server session and it will not be persisted on disk. Defualt server permission level will be assigned to the player after a server restart.

deop
Demote a player to member. This will also persist in permissions.json if the player is authenticated to XBL. If permissions.json is missing it will be created.

changesettingChanges a server setting without having to restart the server. Currently only two settings are supported to be changed, allow-cheats (true or false) and difficulty (0, peaceful, 1, easy, 2, normal, 3 or hard). They do not modify the value that’s specified in server.properties.
Backups
The server supports taking backups of the world files while the server is running. It’s not particularly friendly for taking manual backups, but works better when automated. The backup (from the servers perspective) consists of three commands.

Command Description
save hold This will ask the server to prepare for a backup. It’s asynchronous and will return immediately.
save query After calling save hold you should call this command repeatedly to see if the preparation has finished. When it returns a success it will return a file list (with lengths for each file) of the files you need to copy. The server will not pause while this is happening, so some files can be modified while the backup is taking place. As long as you only copy the files in the given file list and truncate the copied files to the specified lengths, then the backup should be valid.
save resume When you’re finished with copying the files you should call this to tell the server that it’s okay to remove old files again.