我的世界服务端开服基础大全

前言

  • 自己最近在从零开始搭建我的世界的服务端, 折腾了一下, 顺手把自己摸索的东西记录下来
  • 下面的内容都是针对 Java版(JE) 而非 基岩版(BE)

一. JDK下载

  1. Adoptium: https://adoptium.net/zh-CN/temurin/releases/
  2. Microsoft: https://learn.microsoft.com/zh-cn/java/openjdk/download
  3. Oracle: https://www.oracle.com/java/technologies/downloads/

二. 服务端选择

I. 纯净服

1. Mojang

Mojang官方开发团队开发的服务器核心, 是所有核心的源头,开服最简单,特性最完善的核心

适合生电和纯粹的生存游玩

优点:更新非常快,基本上和 Minecraft 客户端版本同时发布

缺点:不能安装模组和插件、跟Spigot一样性能要求高


2. Forge

目前 Minecraft 的主流 API 接口,目前有 50% 的模组都在使用 Forge,以易于与 Minecraft Java Edition 的驳接。

优点:

  • 更新快, 一般在 Minecraft 正式版本发布后的一天内更新,偶尔有出现因为一些测试需求在Minecraft快照发布后更新的(出现过适用于特定快照版本的FML)
  • Forge 是一个版本支持度极高的 API,远古版本 ~ 最新版本 均有支持。

缺点:

  • 好像没有?

3. Fabric

Fabric 是一个用于 Minecraft 1.14+ 的轻量 Mod Loader/API,Fabric 提供一些基础的接口,允许其它模组注册物品、方块、模型、界面等,也提供一些事件。它也允许模组通过 SpongePowered Mixin 注入并修改 Minecraft 源码。与 Minecraft Forge 的 coremod 系统相比,Mixin 可以更好地控制字节码改动,而且更安全。

优点:

  • Fabric 对跨版本模组开发兼容性很强,在不写 Mixin 的情况下,可以进行更新而不改动模组内部太多的代码;使用 Mixin 的情况下也只需要进行略微的修改排错。
  • Fabric 与 Minecraft Forge 不一样的是,并不采用 Mod Coder Pack (MCP)。它有自己的反混淆工程,名叫 Yarn(原名 pomf)。Yarn 是开源的,任何人可以贡献,开源协议是 CC0 1.0 Universal。因为 Mod Coder Pack 协议限制,给 Fabric 的贡献的内容不能来源于 Mod Coder Pack。开发者在开发模组时,除选择 Yarn 作为映射表外,还可以选用 Quilt Mappings 与 Mojmap 等项目作为映射表。一个项目可以堆叠多个映射表实用。
  • 它是少有的跟进快照版本开发的 Mod API

缺点:

  • 对低游戏版本支持不友好

4. 我的实际体验

我个人是比较倾向forge, 也不像网上的说的什么生电服必须fabric啥的, 我的实际体验是大多数的插件和mod, forge的兼容性就是比fabric好


II. 插件服

1. CraftBukkit (水桶端)

最为原始的插件服务端,并不支持添加Mod,但可以添加Bukkit插件, 不支持添加Mod

2. Spigot(水龙头端)

Spigot是CraftBukkit的孩子, 是Craftbukkit的优化版, 兼容Bukkit的插件, 不支持添加Mod

3. Paper (纸水龙头端)

Paper是Spigot的孩子, 基本是插件服的必选端, 优化强, 兼容上面的插件,在相关算法方面,较 Spigot 有所提高,优化 TPS 等,支持 CraftBukkit 和 Spigot 插件,API 没有太大修改。

在 1.9 版本之前都带有反作弊功能,1.9 之后的版本需要自行安装其他反作弊插件。

4. 我的实际体验

一个主线, 剩下全是分支衍生而来, 毫无疑问就是 选择 Paper


III.Mod服

1. Magma

Magma是基于Forge和Paper的开源服务端, 兼容Craftbukkit/Spigot/Paper的插件 和Forge的mods.

支持的最高版本1.18.2

官网: https://magmafoundation.org/

2. Mohist

Mohist是基于Forge和Paper的开源服务端, 兼容Craftbukkit/Spigot/Paper的插件 和Forge的mods.

支持的最高版本1.19.2 (基本与官方版本同步, 但是插件和mod的支持仅在低版本完美支持)

官网: https://mohistmc.com/

3. 我的实际体验

对比Magma和Mohist, 其实两者实现的功能是一样的, 性能都差不多


IV. 其他服务端

这些服务端由于我没实际体验过, 并不知道性能, 兼容性如何, 只做罗列处理

  • SpongeForge (海绵服, 拥有自己的插件体系,在1.8及以上版本能做到Mod与Sponge插件的共同使用)
  • Cauldron(即MCPC+,KCauldron)
  • Thermos (Cauldron的优化版)
  • Uranium (Cauldron的优化版,最高支持版本1.7.10)
  • Tacospigot (与paper一样,也是Spigot的优化版)
  • Torchspigot (Tacospigot的优化版)
  • Catserver (国人开发的1.12.2 Mod+Bukkit插件服务端)
  • Glowstone (一个完全开源的服务端,支持Bukkit插件。版本为1.12.2,中文介绍)
  • Sponge Vanilla ( 支持Sponge插件但不支持Mod的轻型核心)
  • Purpur
  • BungeeCord
  • DragonProxy
  • Geyser (JE与BE 互通)

三. 目录结构讲解

以Paper端来举例

I. 文件夹结构

Paper
├─cache //缓存文件夹
├─logs //存放服务端日志的文件夹
├─plugins //存放插件的文件夹
│  └─bStats //一些插件生成的文件夹,一般情况下存放着插件的配置文件
├─world //世界文件夹
│  ├─data //世界数据文件夹
│  │  ├─advancements
│  │  └─functions
│  ├─playerdata //存放了玩家数据
│  └─region
├─world_nether //地狱世界文件夹
│  ├─data
│  │  └─functions
│  ├─DIM-1
│  │  └─region
│  └─playerdata
└─world_the_end //末地世界文件夹
    ├─data
    │  └─functions
    ├─DIM1
    │  └─region
    └─playerdata

II. 文件结构

  • banned-ips.json

存放了被 ban IP 玩家的 UUID 及游戏名称等相关信息。

  • banned-players.json

存放了被 ban ID 玩家的 UUID 及游戏名称等相关信息。

  • bukkit.yml

由 Bukkit 派生得到的服务端都有的文件。保存着 Bukkit 所提供的最基本的设置选项。

  • commands.yml

它提供了一种快速而简单的方法来强制服务器使用Mojang提供的命令(而不是Bukkit中内置的命令)而不产生冲突。

  • eula.txt

在首次开服的时候,我们需要同意 EULA 协议。

  • help.yml

一些插件的帮助信息会出现在这里面,一般不需要进行什么修改。

  • ops.json

op们的游戏昵称 UUID 等信息会在这里出现。

  • paper.jar

这个叫什么名字无所谓,重要的是他的本质工作就是安安稳稳地当一个服务端核心。

  • paper.yml

这是 Paper 才有的配置文件,您一般不会在 Bukkit 或 Spigot 中看到它。

  • permissions.yml

是默认的权限定义YAML文件,在启动时自动生成。它的主要功能是将权限节点组合到一个文件中,以便权限插件(以及使用权限的插件)可以在整个系统中使用它。

  • server.properties

服务端的一些基本设置就在里面,如设置端口,设置游戏难度,设置游戏模式(生存、创造等)等。

  • spigot.yml

这是 Spigot 才有的配置文件,您一般不会在 Bukkit 中看到它。因为 Paper 是由 Spigot 派生而来的服务端,所以在 Paper 的服务端中,它也会出现。

  • usercache.json

储存着用户部分信息的缓存文件。

  • version_history

一些 Minecraft 和服务端核心的版本信息。

  • whitelist.json

白名单列表。(如果您在server.properties中开启了白名单,您就可以在该文件中添加和管理谁被允许或不被允许进入服务器。)

III.server.properties

enable-jmx-monitoring=false
# 暴露一个具有对象名net.minecraft.server:type=Server的MBean
rcon.port=25575
# 设置RCON远程访问的端口号。
level-seed=
# 地图种子
gamemode=survival
# 游戏模式: survival(生存),creative(创造),adventure(冒险)
enable-command-block=false
# 允许命令方块
enable-query=false
# 允许使用GameSpy4协议的服务器监听器。用于获取服务器信息。
generator-settings={}
# 本属性质用于自定义世界的生成。详见超平坦世界和自定义了解正确的设定及例子。
enforce-secure-profile=true
# 要求玩家必须具有Mojang签名的公钥才能进入服务器。
level-name=world
# 地图名称
motd=A Minecraft Server
# 服务器简介
query.port=25565
# 设置监听服务器的端口号
pvp=true
# 允许PVP
generate-structures=true
# 定义是否能生成结构(例如村庄)。
max-chained-neighbor-updates=1000000
# 限制连锁NC更新的数量,超过此数量的连锁NC更新会被跳过。若为负数则无限制。
difficulty=easy
# 游戏难度: peaceful(和平),easy(简单), normal(普通),hard(困难)
network-compression-threshold=256
# 默认会允许n-1字节的数据包正常发送, 如果数据包为n字节或更大时会进行压缩。所以,更低的数值会使得更多的数据包被压缩,但是如果被压缩的数据包字节太小将反而使压缩后字节更大。
max-tick-time=60000
# 设置每个tick花费的最大毫秒数。超过该毫秒数时,服务器看门狗将停止服务器程序
require-resource-pack=false
# 当此选项启用(设为true)时,玩家会被提示作出选择(是否启用服务器资源包)。如果玩家拒绝则会被服务器断开连接。
use-native-transport=true
# 是否使用针对Linux平台的数据包收发优化。此选项仅会在Linux平台上生成。
max-players=20
# 最大游戏人数
online-mode=true
# 正版验证
enable-status=true
# 使服务器在服务器列表中看起来是“在线”的。
allow-flight=false
# 允许飞行
initial-disabled-packs=
# 需要在创建世界过程中禁用的数据包名称,以逗号分隔。
broadcast-rcon-to-ops=true
# 向所有在线OP发送通过RCON执行的命令的输出。
view-distance=10
# 视距
server-ip=
# 服务端IP,不知道不要填
resource-pack-prompt=
# 可选,用于在使用require-resource-pack时在资源包提示界面显示自定义信息。
# 与聊天组件语法一致,可以包含多行文本。
allow-nether=true
# 允许地狱传送门
server-port=25565
# 服务端端口
enable-rcon=false
# 是否允许远程访问服务器控制台。
sync-chunk-writes=true
# 启用后区块文件以同步模式写入。
op-permission-level=4
# OP权限等级
prevent-proxy-connections=false
# 如果服务器发送的ISP/AS和Mojang的验证服务器的不一样,玩家将会被踢出。
hide-online-players=false
# 隐藏在线玩家
resource-pack=
# 可选选项,可输入指向一个资源包的URI。玩家可选择是否使用该资源包。
entity-broadcast-range-percentage=100
# 此选项控制实体需要距离玩家有多近才会将数据包发送给客户端。更高的数值意味着实体可以在更远的地方就被渲染,同时也可能提高增加延迟的概率。
simulation-distance=10
# 设置服务端可更新实体范围的最大值,即玩家各个方向上的区块数量(是以玩家为中心的半径,不是直径)。超出此范围的实体不会被更新,对玩家也不可见。
rcon.password=
# RCON密码
player-idle-timeout=0
# 单位为分钟。玩家空闲时间到达设定值后将被踢出,如果设置为0或被移除
force-gamemode=false
# 强制玩家加入时为默认游戏模式。
rate-limit=0
# 设置玩家被踢出服务器前,可以发送的数据包数量。
hardcore=false
# 如果设为 true,服务器难度的设置会被忽略并且设为 hard(困难),玩家在死后会自动切换至旁观模式。
white-list=false
# 白名单
broadcast-console-to-ops=true
# 向所有在线OP发送所执行命令的输出。
spawn-npcs=true
# 生成村民
spawn-animals=true
# 生成动物
function-permission-level=2
# 函数权限等级
initial-enabled-packs=vanilla
# 需要在创建世界过程中启用的数据包名称,以逗号分隔。特别地,功能数据包必须在此指定才能生效。
level-type=minecraft\:normal
# 将作为世界名称及其文件夹名。你也可以把你已生成的世界存档复制过来,然后让这个值与那个文件夹的名字保持一致,服务器就可以载入该存档。
text-filtering-config=
# 未知
spawn-monsters=true
# 生成怪物
enforce-whitelist=false
# 在服务器上强制执行白名单。
# 当启用后,不在白名单(前提是启用)中的用户将在服务器重新加载白名单文件后从服务器踢出。
spawn-protection=16
# 通过将该值进行2x+1的运算来决定出生点的保护半径。设置为1会保护以出生点为中心的3×3方块的区域,2会保护5×5方块的区域,3会保护7×7方块的区域,以此类推。这个选项不在第一次服务器启动时生成,只会在第一个玩家加入服务器时出现。如果服务器没有设置OP,这个选项会自动禁用。
resource-pack-sha1=
# 资源包的SHA-1值,必须为小写十六进制,建议填写它。这还没有用于验证资源包的完整性,但是它提高了资源包缓存的有效性和可靠性
max-world-size=29999984
# 设置可让世界边界获得的最大半径值,单位为方块。通过成功执行的命令能把世界边界设置得更大,但不会超过这里设置的最大方块限制。如果设置的 max-world-size 超过默认值的大小,那将不会起任何效果。

IV.bukkit.yml

settings:
  allow-end: true
  # 开放末地
  warn-on-overload: true
  # 显示有关[WARN]过载的日志
  permissions-file: permissions.yml
  # 权限文件
  update-folder: update
  # 更新文件夹
  plugin-profiling: false
  # 允许使用 /timings
  connection-throttle: 4000
  # 与服务器连接时需要等待的时间(单位:ms), 类似于防DDOS, 需等待4秒才能连接到服务器
  query-plugins: true
  # 使用rcon远程查询时返回插件列表
  deprecated-verbose: default
  # 是否检查插件过旧与当前服务端版本不符, 并在日志输出, 可以设置成true/false
  # deprecated-verbose: default
  # - 跳过的插件名称
  shutdown-message: Server closed
  # 当服务器停止时向客户端发送的信息
  minimum-api: none
  # 防止加载不兼容的API插件
  use-map-color-cache: true
  # 使用地图颜色缓存
spawn-limits: # 区块生物数量限制
  monsters: 30
  # 怪物数量
  animals: 10
  # 动物数量
  water-animals: 5
  # 水中动物数量
  water-ambient: 20
  # 水中环境生物(生物或者怪物自行繁殖衍生出来)
  water-underground-creature: 5
  # 水下生物
  axolotls: 5
  # 这个好像是蝾螈?
  ambient: 15
  # 环境生物(生物或者怪物自行繁殖衍生出来), 官方说是蝙蝠
chunk-gc:
  period-in-ticks: 600
  # 每隔多少tick,区块回收器会回收一次区块。设为0将禁用区块回收器。
ticks-per: # 每个tick生成对应的生物数量
  animal-spawns: 400
  monster-spawns: 1
  water-spawns: 1
  water-ambient-spawns: 1
  water-underground-creature-spawns: 1
  axolotl-spawns: 1
  ambient-spawns: 1
  autosave: 1000
  # 每隔多久自动存档(6000=5分钟)
aliases: now-in-commands.yml
# 已弃用

V. spigot.ml

# This is the main configuration file for Spigot.
# As you can see, there's tons to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
# For a reference for any variable inside this file, check out the Spigot wiki at
# http://www.spigotmc.org/wiki/spigot-configuration/
#
# If you need help with the configuration or have any questions related to Spigot,
# join us at the Discord or drop by our forums and leave a post.
#
# Discord: https://www.spigotmc.org/go/discord
# Forums: http://www.spigotmc.org/

settings:
  debug: false
  # 调试
  sample-count: 12
  # 在多人游戏菜单,当鼠标移动到服务器人数上时,随机挑选几名玩家,将其名字显示出来
  timeout-time: 60
  # 设置连接超时时间
  restart-on-crash: true
  # 崩溃是否重启
  restart-script: ./start.sh
  # 重启脚本
  bungeecord: false
  # 开关蹦极端特性(群组服模式)。包括IP白名单(千万别把这个当最终解决方案,这只是个额外保护措施,你依旧需要设置IPTables!)和IP传递(子服可以得到玩家真实IP)
  player-shuffle: 0
  # 防止玩家出于不断退出重进服务器——服务器处理玩家发包的优先级是按玩家登录顺序来的,后登录的玩家的发包会被优先处理。设为20就是每秒钟洗牌一次玩家发包处理优先级
  user-cache-size: 1000
  # 在usercache.json文件中存储多少玩家的信息
  save-user-cache-on-stop-only: false
  # 是否只在服务关闭的时候存储玩家信息
  moved-wrongly-threshold: 0.0625
  # 设置“错误移动”的判决门限。这个值设置得较高可以减少服务器的检测,但是可能遭到玩家滥用(例如作弊穿墙等等)
  # [player] moved wrongly
  moved-too-quickly-multiplier: 10.0
  # 设置“速度过快”的判决门限.这个值设置了玩家实际最大的移动速度能高于服务器规定的多少(百分比)。部分情况下会出问题,比如人间TNT大炮。
  netty-threads: 4
  # 控制Netty执行联网任务的线程的数量。
  attribute: # /attribute 命令 (修改属性)
    maxHealth: # 最大生命
      max: 2048.0
    movementSpeed: # 移动速度
      max: 2048.0
    attackDamage:
      max: 2048.0
  ## 将自己的基础盔甲值设定为5
  ## /attribute @s minecraft:generic.armor base set 5
  log-villager-deaths: true
  # 是否记录村民的死亡信息
  log-named-deaths: true
  # 是否记录被命名牌命名的死亡信息
messages:
  whitelist: You are not whitelisted on this server!
  unknown-command: Unknown command. Type "/help" for help.
  server-full: The server is full!
  outdated-client: Outdated client! Please use {
    
    0}
  outdated-server: Outdated server! I'm still on {
    
    0}
  restart: Server is restarting
advancements:
  disable-saving: false
  # 如果启用,服务器将不会保存1.12引入的进度系统的信息。
  disabled:
  # 禁用进度列表。这个列表中的进度将无法取得,且不会显示在成就GUI里,进度GUI就是那个按Esc键后出现的“进度”按钮点进去或者按下“进度”按键(默认是L键)出现的窗口。如果列表中禁用的进度有子进度没有一起被禁用的话,控制台就会刷报错。下面那个列表是所有进度,复制粘贴这个列表可以禁用所有进度。
  - minecraft:story/disabled
  # 所有进度可以查看: https://minecraft.fandom.com/zh/wiki/%E8%BF%9B%E5%BA%A6?variant=zh
commands:
  spam-exclusions:
  - /skill
  silent-commandblock-console: false
  replace-commands:
  - setblock
  - summon
  - testforblock
  - tellraw
  log: true
  tab-complete: 0
  send-namespaced: true
players:
  disable-saving: false
world-settings:
  default:
    below-zero-generation-in-existing-chunks: true
    merge-radius:
      item: 2.5 # 设置多少格内的掉落在地的经验球会合并到一起
      exp: 3.0 # 设置多少格内的掉落在地的同类物品会合并到一起
    item-despawn-rate: 6000
    # 控制掉落物会在多少游戏刻之后消失。降低这个数值会让地上的物品更快消失(6000=5分钟)
    view-distance: default
    # 设为default时,服务器会采用server.properties文件中的设置。
    simulation-distance: default
    # 设为default时,服务器会采用server.properties文件中的设置。
    # 超出Simulation Distance范围的实体不会被更新
    thunder-chance: 100000
    # 闪电概率
    enable-zombie-pigmen-portal-spawns: true
    # 设为false后,下界门将不会刷猪人。这个选项可以用于整治大型下界门刷金塔,同时不会影响包括猪人在内的实体穿越下界门来到另一个世界
    wither-spawn-sound-radius: 0
    # 凋灵音效半径
    hanging-tick-frequency: 100
    # 悬挂起来的实体(画、物品展示框、拴绳等等)的刷新间隔
    arrow-despawn-rate: 1200
    # 控制所需的tick次数,箭自然会消失。降低此值使消失更快(能使服务器节省资源,因为会少加载很多实体
    trident-despawn-rate: 1200
    # 同上,三叉戟
    zombie-aggressive-towards-villager: true
    # 当设置为false, 僵尸不再杀死村民, 可以减少卡顿
    nerf-spawner-mobs: false
    # 设置为true时, 怪物降维打击
    mob-spawn-range: 8
    # 怪物生成范围
    end-portal-sound-radius: 0
    # 末地传送门音效半径
    growth: # 作物成长速度
      cactus-modifier: 100
      cane-modifier: 100
      melon-modifier: 100
      mushroom-modifier: 100
      pumpkin-modifier: 100
      sapling-modifier: 100
      beetroot-modifier: 100
      carrot-modifier: 100
      potato-modifier: 100
      wheat-modifier: 100
      netherwart-modifier: 100
      vine-modifier: 100
      cocoa-modifier: 100
      bamboo-modifier: 100
      sweetberry-modifier: 100
      kelp-modifier: 100
      twistingvines-modifier: 100
      weepingvines-modifier: 100
      cavevines-modifier: 100
      glowberry-modifier: 100
    entity-activation-range: # 实体活动范围
      animals: 32
      monsters: 32
      raiders: 48
      misc: 16 # 掉落物
      water: 16
      villagers: 32
      flying-monsters: 32
      wake-up-inactive:
        animals-max-per-tick: 4
        animals-every: 1200
        animals-for: 100
        monsters-max-per-tick: 8
        monsters-every: 400
        monsters-for: 100
        villagers-max-per-tick: 4
        villagers-every: 600
        villagers-for: 100
        flying-monsters-max-per-tick: 8
        flying-monsters-every: 200
        flying-monsters-for: 100
      villagers-work-immunity-after: 100
      villagers-work-immunity-for: 20
      villagers-active-for-panic: true
      tick-inactive-villagers: true
      ignore-spectators: false
    entity-tracking-range: # 设置实体在客户端的“可见”距离,这个距离外的实体将不会被客户端渲染
      players: 48
      animals: 48
      monsters: 48
      misc: 32
      other: 64
    ticks-per:
      hopper-transfer: 8 # 当漏斗 传送/吸取/放入 物品之后多久 传送/吸取 下一个物品
      hopper-check: 1 # 漏斗距离上次尝试 传送/吸取 物品多久之后再尝试一次
    hopper-amount: 1 # 控制每次漏斗活动时最多可以传输/吸取的物品数
    hopper-can-load-chunks: false
    dragon-death-sound-radius: 0
    # 末影龙死亡音效半径
    seed-village: 10387312
    seed-desert: 14357617
    seed-igloo: 14357618
    seed-jungle: 14357619
    seed-swamp: 14357620
    seed-monument: 10387313
    seed-shipwreck: 165745295
    seed-ocean: 14357621
    seed-outpost: 165745296
    seed-endcity: 10387313
    seed-slime: 987234911
    seed-nether: 30084232
    seed-mansion: 10387319
    seed-fossil: 14357921
    seed-portal: 34222645
    seed-stronghold: default
    # 以上是地图种子
    hunger: # 执行下面的行为减少的饥饿值
      jump-walk-exhaustion: 0.05 # 行走时跳跃
      jump-sprint-exhaustion: 0.2 # 冲刺时跳跃
      combat-exhaustion: 0.1 # 战斗
      regen-exhaustion: 6.0 # 回血
      swim-multiplier: 0.01 # 游泳时额外消耗倍率
      sprint-multiplier: 0.1 # 冲刺时额外消耗倍率
      other-multiplier: 0.0 # 其他行动额外消耗倍率
    max-tnt-per-tick: 100
    # 每个区块的TNT最大爆炸数量
    max-tick-time:
      tile: 50
      entity: 50
    # 单位毫秒。在服务器跳过实体和tile的任务之前,这些实体和tile最多可以花费多少时间。
    verbose: false
    # 服务器启动时是否显示所有的配置信息到日志。
config-version: 12
# 当前游戏配置文件的版本号,
stats:
  disable-saving: false
  # 设为true时服务器将不会记录玩家的统计信息和成就信息。
  forced-stats: {
    
    }
  # 强制设置stats的值的查找表

VI.paper-global.yml

# This is the global configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
# 
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
# 
# The world configuration options have been moved inside
# their respective world folder. The files are named paper-world.yml
# 
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/
# https://docs.papermc.io/paper/reference/global-configuration

_version: 28
async-chunks:
  threads: -1
  # 服务器存档与区块加载线程数量,设置为-1,系统一般的线程都用来加载区块
chunk-loading:
  autoconfig-send-distance: false
  # 是否将客户端的视距设置同步到服务器的区块加载
  # 设为true时,客户端要多少,服务端就发送多少
  enable-frustum-priority: false
  # 是否先加载玩家面前的区块,在加载其他方位的区块,一般设置为false
  global-max-chunk-load-rate: -1.0
  # 服务器每秒加载的最大区块,优先级大于 player-max-chunk-load-rate
  global-max-chunk-send-rate: -1.0
  # 服务器每秒传送的最大区块
  global-max-concurrent-loads: 500.0
  # 服务器同时加载的最大区块数
  max-concurrent-sends: 2
  # 服务器同时发送的最大区块数
  min-load-radius: 2
  # 以玩家为圆心的区块加载半径
  player-max-chunk-load-rate: -1.0
  # 玩家每秒加载的最大区块
  player-max-concurrent-loads: 20.0
  # 玩家每秒加载的最大区块数
  target-player-chunk-send-rate: 100.0
  # 一秒内发送给单个玩家的最大区块数
collisions:
  enable-player-collisions: true
  # 是否允许玩家之间碰撞, 优先级低于scoreboard插件
  send-full-pos-for-hard-colliding-entities: true
  # 船 或者 矿车 之间的碰撞一般都会导致客户端与服务端数据不一致
  # 启用该选项可以在一定程度上避免,不过会消耗多点带宽
commands:
  fix-target-selector-tag-completion: true
  # 
  suggest-player-names-when-null-tab-completions: true
  time-command-affects-all-worlds: false
console:
  enable-brigadier-completions: true
  enable-brigadier-highlighting: true
  has-all-permissions: false
item-validation:
  book:
    author: 8192
    page: 16384
    title: 8192
  book-size:
    page-max: 2560
    total-multiplier: 0.98
  display-name: 8192
  lore-line: 8192
  resolve-selectors-in-books: false
logging:
  deobfuscate-stacktraces: true
  log-player-ip-addresses: true
  use-rgb-for-named-text-colors: true
messages:
  kick:
    authentication-servers-down: <lang:multiplayer.disconnect.authservers_down>
    connection-throttle: Connection throttled! Please wait before reconnecting.
    flying-player: <lang:multiplayer.disconnect.flying>
    flying-vehicle: <lang:multiplayer.disconnect.flying>
  no-permission: <red>I'm sorry, but you do not have permission to perform this command.
    Please contact the server administrators if you believe that this is in error.
  use-display-name-in-quit-message: false
misc:
  fix-entity-position-desync: true
  lag-compensate-block-breaking: true
  load-permissions-yml-before-plugins: true
  max-joins-per-tick: 3
  region-file-cache-size: 256
  strict-advancement-dimension-check: false
  use-alternative-luck-formula: false
  use-dimension-type-for-custom-spawners: false
packet-limiter:
  all-packets:
    action: KICK
    interval: 7.0
    max-packet-rate: 500.0
  kick-message: <red><lang:disconnect.exceeded_packet_rate>
  overrides:
    ServerboundPlaceRecipePacket:
      action: DROP
      interval: 4.0
      max-packet-rate: 5.0
player-auto-save:
  max-per-tick: -1
  rate: -1
proxies:
  bungee-cord:
    online-mode: true
  proxy-protocol: false
  velocity:
    enabled: false
    online-mode: false
    secret: ''
scoreboards:
  save-empty-scoreboard-teams: false
  track-plugin-scoreboards: false
spam-limiter:
  incoming-packet-threshold: 300
  recipe-spam-increment: 1
  recipe-spam-limit: 20
  tab-spam-increment: 1
  tab-spam-limit: 500
timings:
  enabled: true
  hidden-config-entries:
  - database
  - proxies.velocity.secret
  history-interval: 300
  history-length: 3600
  server-name: Unknown Server
  server-name-privacy: false
  url: https://timings.aikar.co/
  verbose: true
  # 日志输出
unsupported-settings:
  allow-headless-pistons: false
  allow-permanent-block-break-exploits: false
  allow-piston-duplication: false
  perform-username-validation: true
watchdog:
  early-warning-delay: 10000
  early-warning-every: 5000

VII.paper-world-defaults.yml

# This is the world defaults configuration file for Paper.
# As you can see, there's a lot to configure. Some options may impact gameplay, so use
# with caution, and make sure you know what each option does before configuring.
# 
# If you need help with the configuration or have any questions related to Paper,
# join us in our Discord or check the docs page.
# 
# Configuration options here apply to all worlds, unless you specify overrides inside
# the world-specific config file inside each world folder.
# 
# Docs: https://docs.papermc.io/
# Discord: https://discord.gg/papermc
# Website: https://papermc.io/

_version: 28
anticheat:
  anti-xray: # 防止矿物透视
    enabled: true #启用
    engine-mode: 1 #
    hidden-blocks:
    # 隐藏的矿物
    - copper_ore
    - deepslate_copper_ore
    - gold_ore
    - deepslate_gold_ore
    - iron_ore
    - deepslate_iron_ore
    - coal_ore
    - deepslate_coal_ore
    - lapis_ore
    - deepslate_lapis_ore
    - mossy_cobblestone
    - obsidian
    - chest
    - diamond_ore
    - deepslate_diamond_ore
    - redstone_ore
    - deepslate_redstone_ore
    - clay
    - emerald_ore
    - deepslate_emerald_ore
    - ender_chest
    lava-obscures: false
    #
    max-block-height: 64
    # 叠方块的最高高度
    replacement-blocks: # 用来替代隐藏矿物的方块
    - stone
    - oak_planks
    - deepslate
    update-radius: 2
    use-permission: false
  obfuscation:
    items:
      hide-durability: false
      hide-itemmeta: false
chunks:
  auto-save-interval: default
  delay-chunk-unloads-by: 10s
  entity-per-chunk-save-limit:
    arrow: -1
    ender_pearl: -1
    experience_orb: -1
    fireball: -1
    small_fireball: -1
    snowball: -1
  fixed-chunk-inhabited-time: -1
  max-auto-save-chunks-per-tick: 24
  prevent-moving-into-unloaded-chunks: false
collisions:
  allow-player-cramming-damage: false
  allow-vehicle-collisions: true
  fix-climbing-bypassing-cramming-rule: false
  max-entity-collisions: 8
  only-players-collide: false
entities:
  armor-stands:
    do-collision-entity-lookups: true
    tick: true
  behavior:
    baby-zombie-movement-modifier: 0.5
    disable-chest-cat-detection: false
    disable-creeper-lingering-effect: false
    disable-player-crits: false
    door-breaking-difficulty:
      husk:
      - HARD
      vindicator:
      - NORMAL
      - HARD
      zombie:
      - HARD
      zombie_villager:
      - HARD
      zombified_piglin:
      - HARD
    ender-dragons-death-always-places-dragon-egg: false
    experience-merge-max-value: -1
    mobs-can-always-pick-up-loot:
      skeletons: false
      zombies: false
    nerf-pigmen-from-nether-portals: false
    parrots-are-unaffected-by-player-movement: false
    phantoms-do-not-spawn-on-creative-players: true
    phantoms-only-attack-insomniacs: true
    piglins-guard-chests: true
    pillager-patrols:
      disable: false
      spawn-chance: 0.2
      spawn-delay:
        per-player: false
        ticks: 12000
      start:
        day: 5
        per-player: false
    should-remove-dragon: false
    spawner-nerfed-mobs-should-jump: false
    zombie-villager-infection-chance: -1.0
    zombies-target-turtle-eggs: true
  entities-target-with-follow-range: false
  mob-effects:
    immune-to-wither-effect:
      wither: true
      wither-skeleton: true
    spiders-immune-to-poison-effect: true
    undead-immune-to-certain-effects: true
  spawning:
    all-chunks-are-slime-chunks: false
    alt-item-despawn-rate:
      enabled: false
      items:
        cobblestone: 300
    count-all-mobs-for-spawning: false
    creative-arrow-despawn-rate: default
    despawn-ranges:
      ambient:
        hard: 128
        soft: 32
      axolotls:
        hard: 128
        soft: 32
      creature:
        hard: 128
        soft: 32
      misc:
        hard: 128
        soft: 32
      monster:
        hard: 128
        soft: 32
      underground_water_creature:
        hard: 128
        soft: 32
      water_ambient:
        hard: 64
        soft: 32
      water_creature:
        hard: 128
        soft: 32
    disable-mob-spawner-spawn-egg-transformation: false
    duplicate-uuid:
      mode: SAFE_REGEN
      safe-regen-delete-range: 32
    filter-nbt-data-from-spawn-eggs-and-related: true
    iron-golems-can-spawn-in-air: false
    monster-spawn-max-light-level: -1
    non-player-arrow-despawn-rate: default
    per-player-mob-spawns: true
    scan-for-legacy-ender-dragon: true
    skeleton-horse-thunder-spawn-chance: default
    slime-spawn-height:
      slime-chunk:
        maximum: 40.0
      surface-biome:
        maximum: 70.0
        minimum: 50.0
    spawn-limits:
      ambient: -1
      axolotls: -1
      creature: -1
      monster: -1
      underground_water_creature: -1
      water_ambient: -1
      water_creature: -1
    wandering-trader:
      spawn-chance-failure-increment: 25
      spawn-chance-max: 75
      spawn-chance-min: 25
      spawn-day-length: 24000
      spawn-minute-length: 1200
    wateranimal-spawn-height:
      maximum: default
      minimum: default
environment:
  disable-explosion-knockback: false
  disable-ice-and-snow: false
  disable-teleportation-suffocation-check: false
  disable-thunder: false
  frosted-ice:
    delay:
      max: 40
      min: 20
    enabled: true
  generate-flat-bedrock: false
  nether-ceiling-void-damage-height: 0
  optimize-explosions: false
  portal-create-radius: 16
  portal-search-radius: 128
  portal-search-vanilla-dimension-scaling: true
  treasure-maps:
    enabled: true
    find-already-discovered:
      loot-tables: default
      villager-trade: false
  water-over-lava-flow-speed: 5
feature-seeds:
  generate-random-seeds-for-all: false
fishing-time-range:
  maximum: 600
  minimum: 100
fixes:
  disable-unloaded-chunk-enderpearl-exploit: true
  falling-block-height-nerf: 0
  fix-curing-zombie-villager-discount-exploit: true
  fix-items-merging-through-walls: false
  prevent-tnt-from-moving-in-water: false
  split-overstacked-loot: true
  tnt-entity-height-nerf: 0
hopper:
  cooldown-when-full: true
  disable-move-event: false
  ignore-occluding-blocks: false
lootables:
  auto-replenish: false
  max-refills: -1
  refresh-max: 2d
  refresh-min: 12h
  reset-seed-on-fill: true
  restrict-player-reloot: true
maps:
  item-frame-cursor-limit: 128
  item-frame-cursor-update-interval: 10
max-growth-height:
  bamboo:
    max: 16
    min: 11
  cactus: 3
  reeds: 3
misc:
  disable-end-credits: false
  disable-relative-projectile-velocity: false
  disable-sprint-interruption-on-attack: false
  light-queue-size: 20
  max-leash-distance: 10.0
  redstone-implementation: VANILLA
  shield-blocking-delay: 5
  show-sign-click-command-failure-msgs-to-player: false
  update-pathfinding-on-block-update: true
scoreboards:
  allow-non-player-entities-on-scoreboards: false
  use-vanilla-world-scoreboard-name-coloring: false
spawn:
  allow-using-signs-inside-spawn-protection: false
  keep-spawn-loaded: true
  keep-spawn-loaded-range: 10
tick-rates:
  behavior:
    villager:
      validatenearbypoi: -1
  container-update: 1
  grass-spread: 1
  mob-spawner: 1
  sensor:
    villager:
      secondarypoisensor: 40
unsupported-settings:
  fix-invulnerable-end-crystal-exploit: true


四. 启动脚本

I. Windows

保存为bat文件运行

@echo OFF
@set a=0
:Menu
color F
@title 重启次数[%a%]
@echo ================================================
@echo 重启次数: %a% 
@echo 友情提示:关服请输入stop关闭
@echo 避免出现玩家数据丢失
@echo ================================================
java -server -d64 -Xmx2G -Xms1G -jar paper.1.19.2.jar nogui
@echo 已关闭,将于15秒后重启
@ping -n 15 127.0.0.1>nul
@set /a a=%a%+1
@goto Menu
pause

II. Linux

#!/bin/bash

while true
do
	java -server -d64 -Xmx2G -Xms1G -jar paper.1.19.2.jar nogui
	sleep 15
done

III. JVM 参数选项

-Xmx2G :设置JVM最大堆内存为2G。

-Xms3550M :设置JVM初始堆内存为3550M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-XX:+UseParNewGC :为年轻代对象使用并发回收,会缩短年轻代对象的回收时间

-XX:+UseConcMarkSweepGC :为年老代使用并发回收

-XX:+UseParallelGC :该收集器和 UseConcMarkSweepGC 是互相排斥的,为新生代使用并行清除,年老代使用单线程Mark-Sweep-Compact的垃圾收集器。


五. 插件介绍

前言

下面推荐的插件针对于1.19.2版本开展, 旧版本可能有变动, 下载链接不一定正确

I. 管理类

1. Authme Reloaded

可以防止在未登录的情况下放置方块、移动、使用其他命令,或者查看当前的在线玩家数。只有输入正确的密码才能正常登陆。特别是防止被盗号,自动通过UUID更新ID。登陆失败可能是你没有在指定时间内登陆。

下载地址: https://www.spigotmc.org/resources/authme-reloaded.6269

2. EssentialsX

EssentialsX 是一个基于 Spigot 服务端的基础插件,为从大到小的服务器提供核心功能。这些功能包括: * 玩家可以自由设置家 * 服务器传送或给玩家提供物品套组,可以设置跨世界或单独世界。 * 玩家与玩家间的私有消息,传送,发送传送请求 * 玩家自定义昵称 * 很多的管理员工具包括踢出服务器,临时禁止登陆服务器、禁言与监禁 * 内建经济系统,包括木牌商店、付费执行命令和完全的 Vault 支持

  • EssentialsX Spawn
  • EssentialsX Spawn 让你可以控制玩家出生点,玩家在第一次加入服务器或死亡后都会在这里出生。你可以使用游戏内的 /setspawn 指令来为为你服务器中的每个人或某个用户组设置特定的出生点。
  • 还有其他插件

下载地址: https://essentialsx.net/downloads.html

3. LuckPerms

权限管理插件, 与EssentialsX搭配食用更加

下载地址: https://www.spigotmc.org/resources/luckperms.28140/

4. PlaceholderAPI

PlaceholderAPI是一个开源的Spigot插件, 通过hook的方式, 让一些插件的数据变成全局变量, 哪里都能使用, 它支持各种插件, 常见的有Essentials, Factions, LuckPerms, 和 Vault.

下载地址: https://www.spigotmc.org/resources/placeholderapi.6245/


II. 经济类

1. Vault

Vault 插件是一个关于权限、聊天以及经济插件的前置插件,他能让这些插件快速地与Vault插件挂钩而不需要依赖于其他个别插件。

  • 金币系统
  • 仍可以在1.19.2版本运行

项目地址: https://github.com/MilkBowl/Vault/

下载地址: https://www.curseforge.com/minecraft/bukkit-plugins/vault

2. PlayerPoints

独立于其他经济插件的点券插件,可作为服务器第二款代币。

  • 前置插件: Vault (可选)

下载地址: https://www.spigotmc.org/resources/playerpoints.80745/

3. QuickShop

QuickShop是一个商店插件, 不需要使用命令, 玩家可以直接用箱子来售卖物品, 也可以简单的输入要购买的数量。

  • 前置插件: Vault (必须)

下载地址: https://www.spigotmc.org/resources/quickshop.18676/

4. Crazy Auctions Plus

  • 自定义商品分类,物品的类型(武器、方块、食物等),以及商品的类型(出售,收购,拍卖)
  • 支持自定义上架商品时的税收
  • 物品黑名单,禁止玩家在市场上出售特殊的物品
  • 物品标签黑名单,禁止玩家在市场上出售带有特殊Lore的物品(例如绑定的物品)
  • 支持对商品进行重定价
  • 自定义拍卖流程信息提示,让拍卖过程变得更加有趣吧
  • 牌子商店,可以打开指定玩家的个人商店(类似于淘宝的店铺)
  • 命令简化(例如可以设置 /全球市场 来打开市场的GUI)
  • 80% 的内容可以通过配置文件进行自定义。 (提示信息,权限,GUI设置等)
  • 自定义权限组,给拥有指定权限的玩家进行分类,限制可以上架的最大商品数量
  • 更多介绍: https://www.mcbbs.net/thread-974759-1-1.html
  • 前置插件: Vault

下载地址: https://www.spigotmc.org/resources/crazy-auctions-plus-1-8-1-19-global-market-auction-highly-customizable-mysql-free.75655/

5. LiteSignin

LiteSignin 是一个使用门槛低、不需要编辑一堆花里胡哨选项的签到插件,虽然叫做简易签到,但它的功能也不少,麻雀虽小五脏俱全。它能保存玩家的签到记录,并且在玩家进行签到的同时给予玩家特定的奖励。 奖励的内容可自定义,并且拥有多种模式,例如连续签到时的奖励、签到总次数达到一定数值时的奖励、指定日期签到时的奖励等。插件拥有一个长得像日历一样的箱子GUI作为签到菜单,所有的权限节点、消息提示、以及GUI内的按钮和功能等均可自定义。


III. 物品类

1. BanItem

不想让玩家使用模组中的物品,如机器人,采石场?BanItem可以根据你的选择禁止任何物品!只需要将物品添加到黑名单中即可实现! 此插件可以在Tekkit或是其它模组服务器上运行,可以用于封禁含有BUG的物品、无视房屋保护机制的物品,服主也可以根据需要对物品进行不同程度的解禁!

  • 上面插件不可以禁用NBT数据, 可以替换为BanIt
  • https://www.mcbbs.net/forum.php?mod=viewthread&tid=1174236

下载地址: https://www.spigotmc.org/resources/banitem-1-7-1-19.67701/

2. ItemNBTEdit

用命令查看或编辑物品的NBT

下载地址: https://www.mcbbs.net/forum.php?mod=viewthread&tid=1286823

3. ItemJoin

ItemJoin 可以有一个带有命令绑定的项目来打开这些菜单或在指南针上执行命令来扭曲玩家到特定位置。可以跟一些菜单插件搭配食用更佳, 例如 DeluxeMenus.

下载地址: https://www.curseforge.com/minecraft/bukkit-plugins/itemjoin/


IV. 世界类

1. WorldGuard

WorldGuard是一款对服务器管理员,地图制作者,生存服务器等提供许多功能的一个插件。

  • 在你创造区域后,只会允许有权限的玩家和一些插件去改变区域。
  • 你可以在你的区域里设置一些标记,如(取消 凋零伤害 掉落伤害 等)
  • 同时在特殊的世界的区域中你也可以改变一些标记,如(饱食度回复 生命值回复 PVP的开关 TNT 怪物伤害)
  • 黑名单包括了玩家不能使用的物品和方块
  • 可以记录服务器的统计和信息 (/wg report -p)
  • 可以管理服务器的CPU(/wg profile -p)
  • 增加例如停止所有火焰传播的指令 “STOP ALL FIRE SPREAD” .
  • 可以与其他的Bukkit插件进行交♂易
  • 保护与防止许多事件 (树长大 TNT爆炸 药水机器 等)
  • 某些触发事件也可以修改 (门 拉杆 等)
  • 开源,是Minecraft的最老的插件之一(比Bukkit还老)
  • 启用你想要的特性!**默认所有都是关闭的。**你可以先安装WG,然后再配置它。

下载地址: https://www.curseforge.com/minecraft/bukkit-plugins/worldguard/files

2. WorldEdit

WorldEdit,简称WE,常被称为创世神,是Minecraft的常用插件和mod,且已兼容Forge和Fabric。

快速创建某个刷怪塔 或者 其他机器等, 甚至地形

下载地址: https://www.curseforge.com/minecraft/bukkit-plugins/worldedit

3. Multiverse-Core

Multiverse-Core 提供创建世界的功能。它可以控制怪物的生成,环境的种类,启用自定义的地形生成器,当然功能有更多。

下载地址: https://www.spigotmc.org/resources/multiverse-core.390/

4. WorldSchematics2

WorldSchematics2 允许自定义建筑 (.schematic后缀的文件) 在新区块生成时随机生成,就像原版的村庄、女巫小屋、金字塔之类的建筑生成。允许您通过添加自己的建筑并选择其产生的方式来使任何世界变得有趣。如果你不知道怎样创建schematics,你需要 Worldedit,来运行你创建 .schematic后缀的文件。Schematic后缀的文件也可以用MCedit创建。

  • 前置插件: WorldEdit

下载地址: https://www.spigotmc.org/resources/worldschematics2.28411/

白嫖地址: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrn 密码: hbrn


V. 领地类

1. PlotSquared

PlotSquared 是个可高度自定义的地形管理插件,你可以用其在已建立的世界上划分地皮区域或创建一个地皮世界

下载地址1: https://www.curseforge.com/minecraft/bukkit-plugins/plotsquared

下载地址2: https://www.spigotmc.org/resources/plotsquared-v6.77506/

白嫖地址: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrn 密码: hbrn

2. GriefDefender

GriefDefender 是一款高定制化的领地插件

下载地址: https://www.spigotmc.org/resources/1-12-2-1-19-2-griefdefender-claim-plugin-grief-prevention-protection.68900/

白嫖地址: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrn 密码: hbrn

3. Residence

Residence 与 GriefDefender 一样, 也是一款领地插件

下载地址: https://www.spigotmc.org/resources/residence-1-7-10-up-to-1-19.11480/

白嫖地址: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrn 密码: hbrn

VI. 增强类

1. DeluxeMenus

DeluxeMenus 是一款高定制化菜单插件, 内含多种命令与配置提供服务端使用, 并且支持GUI显示的. 可以搭配上面的各种插件使用

下载地址: https://www.spigotmc.org/resources/deluxemenus.11734/

2. Fcommand

让F键执行某个命令, 搭配 DeluxeMenus 可以打开菜单

下载地址: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrn 密码: hbrn

3. EClean / ClearLagg

定时清理 掉落物/生物/实体

  • 下载地址:

EClean: https://github.com/4o4E/EClean/releases

ClearLagg: https://www.curseforge.com/minecraft/bukkit-plugins/clearlagg/files

4. PlugManX

PlugManX 基于 PlugMan 支持高版本MC的插件管理

  • 可以从游戏内或控制台丨启动丨关闭丨查看丨重启丨加载丨卸载丨任何插件
  • 可以列出插件所注册的所有指令列表
  • 可以获取插件的 丨信息丨作者丨指令丨版本丨 等内容

下载地址: https://www.spigotmc.org/resources/plugmanx.88135/

5. CommandTimer

CommandTimer 是一款可以定时执行命令的插件

下载地址: https://github.com/titivermeesch/CommandTimer/releases

6. UltimateTimber

UltimateTimber 是一款真实的一键砍树插件, 可以设置砍完自动种植, 树苗或苹果掉落的掉落

下载链接: https://marketplace.songoda.com/marketplace/product/ultimatetimber-the-realistic-tree-chopper.18


六. MOD介绍

扩展模组太多了, 直接去MC百科吧

https://www.mcmod.cn/

一些mod是不需要在服务端安装的, 比如辅助mod, 还有一些mod与mod之间是会冲突的, 避免同时安装


七. NBT

NBT标签是我的世界的一大特色, 可以自定义物品的数据, 比如玩家的头, 玩家的血量, 装备的护甲什么的

定义

NBT(二进制命名标签Named Binary Tags**)** 格式为Minecraft中用于向文件中存储数据的一种存储格式。Notch在一份规范[1]中为此格式作了简略的介绍。NBT格式以树形结构并配以许多标签的形式存储数据。所有的标签都有一个独立的ID和名称。最早的已知NBT格式版本是Java版Beta 1.3中引入的19132;随着Anvil文件格式的引入,增加了一个整型数组变量,版本号也随之更新至19133。NBT标签的历史最早可以追溯到Indev,当时只有0到10这11个标签可用。

另一种玩家更熟悉的NBT是纯文本形式的,通常在命令里使用。这种格式常被称为SNBT字符串化的二进制命名标签Stringified NBT)。它与JSON格式不同,因此所有在NBT中使用的JSON(例如原始JSON文本)都必须放到字符串标签中。

文件格式

NBT文件是经过压缩的复合标签,其中包括名称和标签ID。压缩文件必须以复合标签的字节开始。在Minecraft中使用的某些文件有可能未经压缩,但是大多数文件仍然遵循Notch最初的叙述以GZip压缩。

应用

  • level.dat以压缩后的NBT格式存储。
  • .dat以压缩后的NBT格式存储。
  • idcounts.dat以压缩后的NBT格式存储。
  • map_<#>.dat以压缩后的NBT格式存储。
  • servers.dat以未压缩的NBT格式存储多人服务器列表。
  • 区块以压缩后的NBT格式存储区域文件。
  • scoreboard.dat以压缩后的NBT格式存储。
  • 生成结构以压缩后的NBT格式存储。
  • 保存的结构以压缩后的NBT格式存储。

八. /give 命令

/give是服务端常用命令之一, 简单的用法就不讲了, 下面讲与NBT联动的用法

1.19.2版本: /give <name> <item> <amount> <meta>

1.12.2版本: /give <name> <item> <amount> <id> <meta>

下面的给予人都拿NueXini举例, 命令方块:@a全部玩家, @p最近玩家, @r随机玩家 , @s自己, @e全部实体

  1. 给一个僵尸村民刷怪蛋
  • 1.19.2*(注: minecraft:zombie_villager_spawn_egg 也可以简写成 zombie_villager_spawn_egg , 适用于任何版本)*
/give NueXini minecraft:zombie_villager_spawn_egg 1
  • 1.12.2
/give NueXini spawn_egg 1 0 {
    
    EntityTag:{
    
    id:Zombie_Villager}}
  1. 给一本无限经验修补的附魔书
  • 1.19.2
/give NueXini enchanted_book 1 {
    
    StoredEnchantments:[{
    
    id:"minecraft:infinity",lvl:1},{
    
    id:"minecraft:mending",lvl:1s}]}
  • 1.12.2
/give NueXini enchanted_book 1 0 {
    
    StoredEnchantments:[{
    
    id:infinity,lvl:1},{
    
    id:mending,lvl:1}]}
  1. 给一本效率V的钻石镐子
  • 1.19.2
/give NueXini diamond_pickaxe 1 {
    
    Enchantments:[{
    
    id:"minecraft:efficiency",lvl:5}]}
  • 1.22.2
/give NueXini minecraft:diamond_pickaxe 1 0 {
    
    ench:[{
    
    id:32,lvl:5}]}

这个就讲这么多, NBT类似json, 又不同于json, 还有就是这些NBT数据在哪里找 ? 下面贴链接

https://zhuanlan.zhihu.com/p/103522706

https://minecraft.fandom.com/zh/wiki/NBT%E6%A0%BC%E5%BC%8F

https://minecraft.fandom.com/zh/wiki/%E6%95%99%E7%A8%8B/NBT%E5%91%BD%E4%BB%A4%E6%A0%87%E7%AD%BE

懒人的话就用生成器一键生成

https://www.mcmod.cn/tools/cbcreator/

https://www.gamergeeks.net/apps/minecraft/give-command-generator


后话

目前想到的只有这么多, 后面有时间的话可以写个各种插件的使用教程, 喜欢本文的话可以点个关注!

enjoy ~

猜你喜欢

转载自blog.csdn.net/a924282761/article/details/128281038