foreword
- Recently, I was building the server side of Minecraft from scratch, and after tossing a bit, I recorded what I was groping for
- The following content is for Java Edition (JE) not Bedrock Edition (BE)
1. JDK download
- Adoptium: https://adoptium.net/zh-CN/temurin/releases/
- Microsoft: https://learn.microsoft.com/zh-cn/java/openjdk/download
- Oracle: https://www.oracle.com/java/technologies/downloads/
2. Server selection
I. Pure clothing
1. Mojang
The server core developed by Mojang's official development team is the source of all cores, the core with the easiest server opening and the most complete features
Good for power generation and pure survival play
Advantages: The update is very fast, basically released at the same time as the Minecraft client version
Disadvantages: Cannot install modules and plug-ins, high performance requirements like Spigot
2. Forge
Currently Minecraft's mainstream API interface, currently 50% of the mods are using Forge to facilitate the connection with Minecraft Java Edition.
advantage:
- Fast update, generally updated within one day after the release of the official version of Minecraft, occasionally due to some test requirements updated after the release of the Minecraft snapshot (there has been an FML suitable for a specific snapshot version)
- Forge is an API with extremely high version support, from the ancient version to the latest version.
shortcoming:
- Maybe not?
3. Fabric
Fabric is a lightweight Mod Loader/API for Minecraft 1.14+. Fabric provides some basic interfaces, allowing other mods to register items, blocks, models, interfaces, etc., and also provides some events. It also allows mods to inject and modify the Minecraft source code via the SpongePowered Mixin. Mixins allow better control over bytecode changes than Minecraft Forge's coremod system, and are more secure.
advantage:
- Fabric is very compatible with cross-version module development. Without writing Mixin, it can be updated without changing too much code inside the module; when using Mixin, only a slight modification is required to troubleshoot.
- Unlike Minecraft Forge, Fabric does not use the Mod Coder Pack (MCP). It has its own deobfuscation project called Yarn (formerly pomf). Yarn is open source, anyone can contribute, the open source agreement is CC0 1.0 Universal. Due to the Mod Coder Pack agreement restriction, the content contributed to Fabric cannot originate from the Mod Coder Pack. When developing modules, besides choosing Yarn as the mapping table, developers can also choose Quilt Mappings and Mojmap as the mapping table. A project can stack multiple mapping tables for utility.
- It is one of the few Mod APIs developed after the snapshot version
shortcoming:
- Not friendly to low game version support
4. My actual experience
Personally, I am more inclined to forge, and it is not like the online saying that the electronic suit must be made of fabric. My actual experience is that most of the plug-ins and mods, the compatibility of forge is better than fabric
II. Plug-in server
1. CraftBukkit (bucket end)
The most original plug-in server does not support adding mods, but it can add Bukkit plug-ins, which do not support adding mods
2. Spigot (faucet end)
Spigot is a child of CraftBukkit, an optimized version of Craftbukkit, compatible with Bukkit plug-ins, does not support adding Mods
3. Paper (paper faucet end)
Paper is a child of Spigot. It is basically a must-selected end of the plug-in server. It has strong optimization and is compatible with the above plug-ins. In terms of related algorithms, it has improved compared with Spigot, optimized TPS, etc., supports CraftBukkit and Spigot plug-ins, and the API has not been greatly modified.
Before version 1.9, there is an anti-cheat function, and the version after 1.9 needs to install other anti-cheat plug-ins by itself.
4. My actual experience
One main line, the rest are derived from branches, there is no doubt that it is to choose Paper
III.Mod clothes
1. Magma
Magma is an open source server based on Forge and Paper, compatible with Craftbukkit/Spigot/Paper plugins and Forge mods.
The highest version supported is 1.18.2
Official website: https://magmafoundation.org/
2. Mohist
Mohist is an open source server based on Forge and Paper, compatible with Craftbukkit/Spigot/Paper plugins and Forge mods.
The highest supported version is 1.19.2 (basically synchronized with the official version, but the support for plug-ins and mods is only perfectly supported in lower versions)
Official website: https://mohistmc.com/
3. My actual experience
Comparing Magma and Mohist, in fact, the functions implemented by the two are the same, and the performance is similar
IV. Other Servers
Since I haven't actually experienced these servers, I don't know the performance and compatibility, so I only list them
- SpongeForge (sponge suit, has its own plug-in system, and can be used together with Mod and Sponge plug-ins in version 1.8 and above)
- Cauldron(即MCPC+,KCauldron)
- Thermos (optimized version of Cauldron)
- Uranium (optimized version of Cauldron, up to version 1.7.10)
- Tacospigot (like paper, it is also an optimized version of Spigot)
- Torchspigot (optimized version of Tacospigot)
- Catserver (1.12.2 Mod+Bukkit plug-in server developed by Chinese)
- Glowstone (a completely open source server that supports Bukkit plug-ins. The version is 1.12.2, introduced in Chinese)
- Sponge Vanilla (light core that supports Sponge plugins but not mods)
- purple
- BungeeCord
- DragonProxy
- Geyser (JE and BE interchange)
3. Explanation of directory structure
Take Paper as an example
I. Folder structure
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. File structure
banned-ips.json
It stores related information such as the UUID and game name of the banned IP player.
banned-players.json
It stores related information such as the UUID and game name of the banned ID player.
bukkit.yml
Files available on all servers derived from Bukkit. Holds the most basic setting options provided by Bukkit.
commands.yml
It provides a quick and easy way to force the server to use commands provided by Mojang (rather than those built into Bukkit) without conflicts.
eula.txt
When opening the server for the first time, we need to agree to the EULA agreement.
help.yml
The help information of some plug-ins will appear here, and generally no modification is required.
ops.json
Ops' game nickname UUID and other information will appear here.
paper.jar
It doesn't matter what the name is, the important thing is that his essential job is to be a server core safely and steadily.
paper.yml
This is a Paper-only configuration file, you generally won't see it in Bukkit or Spigot.
permissions.yml
Is the default permission definition YAML file, which is automatically generated at startup. Its main function is to combine permission nodes into a single file so that permission plugins (and plugins that use permissions) can use it across the system.
server.properties
Some basic settings of the server are inside, such as setting the port, setting the difficulty of the game, setting the game mode (survival, creation, etc.) and so on.
spigot.yml
This is a Spigot-only configuration file, you generally won't see it in Bukkit. Because Paper is a server derived from Spigot, it will also appear in Paper's server.
usercache.json
A cache file that stores some user information.
version_history
Some Minecraft and server core version information.
whitelist.json
Whitelist list. (If you server.properties
have enabled whitelisting in this file, you can add and manage who is or isn't allowed on the server.)
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
4. Startup script
I. Windows
Save as a bat file and run
@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 parameter options
-Xmx2G : Set the maximum heap memory of the JVM to 2G.
-Xms3550M : Set the JVM initial heap memory to 3550M. This value can be set the same as -Xmx to avoid the JVM to reallocate memory every time garbage collection is done.
-XX:+UseParNewGC : Use concurrent collection for young generation objects, which will shorten the collection time of young generation objects
-XX:+UseConcMarkSweepGC : Use concurrent collection for the old generation
-XX:+UseParallelGC : This collector and UseConcMarkSweepGC are mutually exclusive, use parallel clearing for the new generation, and use the single-threaded Mark-Sweep-Compact garbage collector for the old generation.
5. Plug-in introduction
foreword
The plug-ins recommended below are developed for version 1.19.2, the old version may be changed, and the download link may not be correct
I. Management
1. Authme Reloaded
Prevents placing blocks, moving, using other commands, or seeing the current number of players online without being logged in. Only by entering the correct password can you log in normally. Especially to prevent account theft, automatically update ID through UUID. The login failure may be that you did not log in within the specified time.
Download address: https://www.spigotmc.org/resources/authme-reloaded.6269
2. EssentialsX
EssentialsX is a basic plug-in based on the Spigot server, providing core functions for servers from large to small. These features include: * Players can freely set home * Server transmission or provide players with item sets , which can be set across worlds or separate worlds. * Player-to-player private messages, teleportation, sending teleportation requests * User-defined nicknames * Many administrator tools including kicking servers, temporary bans from logging in to servers, banning and jailing * Built-in economic system, including wooden sign shop, Paid execution commands and full Vault support
- EssentialsX Spawn
- EssentialsX Spawn lets you control player spawn points, where players spawn when they first join a server or after they die. You can use the in-game
/setspawn
command to set specific spawn points for everyone on your server or for a group of users. - and other plugins
Download link: https://essentialsx.net/downloads.html
3. LuckPerms
Rights management plug-in, it EssentialsX
is more convenient to use with
Download link: https://www.spigotmc.org/resources/luckperms.28140/
4. PlaceholderAPI
PlaceholderAPI is an open source Spigot plug-in. Through the hook method, the data of some plug-ins can be turned into global variables, which can be used anywhere. It supports various plug-ins, and the common ones are Essentials, Factions, LuckPerms, and Vault.
Download address: https://www.spigotmc.org/resources/placeholderapi.6245/
II. Economic class
1. Vault
The Vault plugin is a pre-plugin for permissions, chat and economic plugins, which allows these plugins to quickly hook up with the Vault plugin without depending on other individual plugins.
- Gold coin system
- Still works on version 1.19.2
Project address: https://github.com/MilkBowl/Vault/
Download link: https://www.curseforge.com/minecraft/bukkit-plugins/vault
2. PlayerPoints
The coupon plug-in independent of other economic plug-ins can be used as the second token of the server.
- Pre-plugin: Vault (optional)
Download address: https://www.spigotmc.org/resources/playerpoints.80745/
3. QuickShop
QuickShop is a shop plug-in, without using commands, players can directly use boxes to sell items, or simply enter the quantity to buy.
- Pre-plugin: Vault (required)
Download address: https://www.spigotmc.org/resources/quickshop.18676/
4. Crazy Auctions Plus
- Custom product classification, type of item (weapon, block, food, etc.), and type of product (sale, purchase, auction)
- Support for customizing the tax when listing products
- Item blacklist, prohibiting players from selling special items in the market
- Item tag blacklist, prohibiting players from selling items with a special Lore (such as bound items) on the market
- Support for repricing items
- Customize the auction process information prompt to make the auction process more interesting
- Brand store, you can open the designated player's personal store (similar to Taobao's store)
- Command simplification (e.g. you can set /global market to open market GUI)
- 80% of the content can be customized through configuration files. (prompt information, permissions, GUI settings, etc.)
- Customize the permission group, classify players with specified permissions, and limit the maximum number of products that can be put on the shelves
- More introduction: https://www.mcbbs.net/thread-974759-1-1.html
- Pre-plugin: Vault
Download address: https://www.spigotmc.org/resources/crazy-auctions-plus-1-8-1-19-global-market-auction-highly-customizable-mysql-free.75655/
5. LiteSignin
LiteSignin is a sign-in plugin with a low barrier to use and no need to edit a bunch of bells and whistles. Although it is called simple sign-in, it has many functions. Although the sparrow is small, it has all the internal organs. It can save the player's check-in record, and give the player specific rewards when the player checks in. The content of rewards can be customized, and there are many modes, such as rewards for continuous check-ins, rewards when the total number of check-ins reaches a certain value, rewards for check-ins on a specified date, etc. The plugin has a calendar-like box GUI as a check-in menu, and all permission nodes, message prompts, buttons and functions in the GUI can be customized.
- More introduction: https://www.mcbbs.net/thread-1056080-1-1.html
III. Item category
1. BanItem
Don't want players to use mod items like robots, quarries? BanItem can ban any item according to your choice! Just add items to the blacklist! This plugin can run on Tekkit or other mod servers, and can be used to ban items that contain bugs and items that ignore the house protection mechanism. Items are unlocked to varying degrees!
- The above plugin cannot disable NBT data, it can be replaced by BanIt
- https://www.mcbbs.net/forum.php?mod=viewthread&tid=1174236
Download address: https://www.spigotmc.org/resources/banitem-1-7-1-19.67701/
2. ItemNBTEdit
View or edit an item's NBT with the command
Download URL: https://www.mcbbs.net/forum.php?mod=viewthread&tid=1286823
3. ItemJoin
ItemJoin can have an item with command bindings to open those menus or execute commands on the compass to warp the player to a specific position. It can be used better with some menu plugins, such as DeluxeMenus.
Download link: https://www.curseforge.com/minecraft/bukkit-plugins/itemjoin/
IV. World class
1. WorldGuard
WorldGuard is a plugin that provides many features for server administrators, map makers, survival servers, etc.
- After you create the area, only authorized players and some plugins are allowed to change the area.
- You can set some markers in your area, such as (cancel wither damage fall damage, etc.)
- At the same time, in the special world area, you can also change some marks, such as (Satiety, HP, PVP switch, TNT monster damage)
- The blacklist contains items and blocks that the player cannot use
- Can record server statistics and information (/wg report -p)
- Can manage the CPU of the server (/wg profile -p)
- Added commands such as "STOP ALL FIRE SPREAD" to stop all fire spread.
- Can trade with other Bukkit plugins
- Protection and prevention of many events (tree growth TNT explosive potion machines etc.)
- Certain trigger events can also be modified (door lever, etc.)
- Open source, one of the oldest plugins for Minecraft (older than Bukkit)
- Enable the features you want! **By default all are off. **You can install WG first, then configure it.
Download link: https://www.curseforge.com/minecraft/bukkit-plugins/worldguard/files
2. WorldEdit
WorldEdit , WE for short , is often referred to as Chuangshi Shen . It is a common plug-in and mod for Minecraft, and it is compatible with Forge and Fabric.
Quickly create a monster spawning tower or other machines, etc., or even terrain
Download link: https://www.curseforge.com/minecraft/bukkit-plugins/worldedit
3. Multiverse-Core
Multiverse-Core provides functionality for creating worlds. It can control the spawning of monsters, the type of environment, enable custom terrain generators, and of course much more.
- This is the core of the Multiverse plug-in series, and there are more derivative functions. The following derivative plug-ins require Core as a front
- For example:
- Backpack Isolation: https://www.curseforge.com/minecraft/bukkit-plugins/multiverse-inventories/files
- More plugins: https://github.com/Multiverse/Multiverse-Core/wiki
Download link: https://www.spigotmc.org/resources/multiverse-core.390/
4. WorldSchematics2
WorldSchematics2 allows custom buildings (files with a .schematic suffix) to be randomly generated when new blocks are generated, just like the original villages, witch huts, pyramids and other buildings. Allows you to spice up any world by adding your own buildings and choosing how they spawn. If you don't know how to create schematics, you need Worldedit to run the files you create with the .schematic extension. Files with the Schematic suffix can also be created with MCedit.
- Pre-plugin: WorldEdit
Download link: https://www.spigotmc.org/resources/worldschematics2.28411/
White whoring address: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrnPassword : hbrn
V. Territory class
1. PlotSquared
PlotSquared is a highly customizable terrain management plugin that you can use to divide plot areas in an established world or create a plot world
Download address 1: https://www.curseforge.com/minecraft/bukkit-plugins/plotsquared
Download address 2: https://www.spigotmc.org/resources/plotsquared-v6.77506/
White whoring address: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrnPassword : hbrn
2. GriefDefender
GriefDefender is a highly customized territory plugin
- rely:
LuckPerms
- More introduction: https://www.mcbbs.net/thread-1275237-1-1.html
Download address: https://www.spigotmc.org/resources/1-12-2-1-19-2-griefdefender-claim-plugin-grief-prevention-protection.68900/
White whoring address: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrnPassword : hbrn
3. Residence
Residence, like GriefDefender, is also a territory plugin
- Depends on: CMLIB
Download address: https://www.spigotmc.org/resources/residence-1-7-10-up-to-1-19.11480/
White whoring address: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrnPassword : hbrn
VI. Enhanced classes
1. DeluxeMenus
DeluxeMenus is a highly customized menu plug-in, which contains a variety of commands and configurations for server use, and supports GUI display. It can be used with various plug-ins above
Download link: https://www.spigotmc.org/resources/deluxemenus.11734/
2. Fcommand
Let the F key execute a command, and use it with DeluxeMenus to open the menu
Download address: https://nuexini.lanzoue.com/b00qgbqqb?password=hbrnPassword : hbrn
3. EClean / ClearLagg
Periodically clean up drops/creatures/entities
- download link:
EClean: https://github.com/4o4E/EClean/releases
ClearLagg: https://www.curseforge.com/minecraft/bukkit-plugins/clearlagg/files
4. PlugManX
PlugManX supports plug-in management of high version MC based on PlugMan
- It can be started from the game or console丨Start丨close丨view丨restart丨load丨unload丨any plugin
- A list of all commands registered by the plugin can be listed
- You can get the plugin's丨information丨author丨command丨version丨etc.
Download link: https://www.spigotmc.org/resources/plugmanx.88135/
5. CommandTimer
CommandTimer is a plug-in that can execute commands regularly
Download address: https://github.com/titivermeesch/CommandTimer/releases
6. UltimateTimber
UltimateTimber is a real one-click tree-cutting plug-in, which can be set to automatically plant after cutting, and the saplings or apples will fall when they fall
Download link: https://marketplace.songoda.com/marketplace/product/ultimatetimber-the-realistic-tree-chopper.18
6. MOD Introduction
There are too many expansion modules, go directly to MC Encyclopedia
- Auxiliary mod can refer to: https://www.mcmod.cn/post/2609.html
- Precautions
Some mods do not need to be installed on the server, such as auxiliary mods, and some mods will conflict with each other, so avoid installing them at the same time
7. NBT
NBT tags are a major feature of Minecraft. You can customize the data of items, such as the player's head, the player's blood volume, the armor of the equipment, etc.
definition
The NBT (Named Binary Tags ** ) format is a storage format used to store data in files in Minecraft . Notch gives a brief introduction to this format in a specification [ 1] . The NBT format stores data in a tree structure with many tags . All tags have an individual ID and name. The earliest known version of the NBT format is 19132 introduced in Java Edition Beta 1.3 ; with the introduction of the Anvil file format , an integer array variable was added, and the version number was updated to 19133. The history of NBT tags can be traced back to Indev , when only 11 tags from 0 to 10 were available.
Another type of NBT that players are more familiar with is plain text, usually used in commands . This format is often called SNBT ( Stringified Binary Named Tags , Stringified NBT ). It is not the same format as JSON , so all JSON used in NBT (such as raw JSON text ) must be put into string tags.
file format
NBT files are compressed composite tags that include a name and a tag ID. Compressed files must start with a composite tag byte. Some files used in Minecraft may be uncompressed, but most files are still compressed with GZip following Notch's original description.
application
- level.dat is stored in compressed NBT format.
- .dat is stored in compressed NBT format.
- idcounts.dat is stored in compressed NBT format.
- map_<#>.dat is stored in compressed NBT format.
- servers.dat stores multiplayer server list in uncompressed NBT format.
- Chunks store zone files in compressed NBT format .
- scoreboard.dat is stored in compressed NBT format.
- The generated structure is stored in compressed NBT format.
- Saved structures are stored in compressed NBT format.
Eight. /give command
/give
It is one of the commonly used commands on the server side. I won’t talk about the simple usage. Let’s talk about the usage linked with NBT
Version 1.19.2:/give <name> <item> <amount> <meta>
Version 1.12.2:/give <name> <item> <amount> <id> <meta>
The following givers take NueXini
examples, command blocks: @a
All Players, @p
Recent Players, @r
Random Players, @s
Self, @e
All Entities
- Spawn egg for a zombie villager
- 1.19.2*(Note: minecraft:zombie_villager_spawn_egg can also be abbreviated as zombie_villager_spawn_egg, applicable to any version)*
/give NueXini minecraft:zombie_villager_spawn_egg 1
- 1.12.2
/give NueXini spawn_egg 1 0 {
EntityTag:{
id:Zombie_Villager}}
- Gives an enchanted book of
无限
and经验修补
- 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}]}
效率V
diamond pickaxe for book
- 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}]}
That’s all for now, NBT is similar to json, but different from json, and where can I find these NBT data? Links are posted below
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
If you are lazy, use the generator to generate it with one click
https://www.mcmod.cn/tools/cbcreator/
https://www.gamergeeks.net/apps/minecraft/give-command-generator
Afterword
There are only so many I can think of at the moment. If you have time later, you can write a tutorial on the use of various plug-ins. If you like this article, you can pay attention!
enjoy ~