PotatoPeeler - 移除 Minecraft JE 世界中无用区块的工具,可节省硬盘空间

软件资源 PotatoPeeler - 移除 Minecraft JE 世界中无用区块的工具,可节省硬盘空间 1.3.0

完成注册/登录后下载
版权类型
原创
版权链接
#
语言支持
English
前置组件
Java 运行环境(按理来说大家应该都已经安装了)
详细的说明请见 Github 仓库 :https://github.com/Bottle-M/PotatoPeeler , 欢迎点 Star。

以下为精简介绍。

[MD] 这是一个简单的小工具,用于移除 Minecraft **Java 版**存档中的无用区块,以腾出部分硬盘空间。 * 可以看作是 Java 语言实现的 [Thanos](https://github.com/aternosorg/thanos)。 * 仅支持 [Anvil](https://minecraft.wiki/w/Anvil_file_format) 文件格式(自 Minecraft JE 1.2.1 起)。 * 较好的情况下可以把游戏存档的硬盘占用减少**超过 50%**。 * 支持用区块坐标、区块坐标范围(支持通配符)配置每个世界的**受保护区块**,阻止某些区块被移除。 ## 基本工作原理 区块存储在 [Anvil](https://minecraft.wiki/w/Anvil_file_format) 文件内,Minecraft Java 版会为每个区块存储一个字段 `InhabitedTime`,以记录玩家在这个区块内停留的累计时间刻(tick)数。 本工具通过 `InhabitedTime` 值筛选出玩家几乎没有停留的的区块,以进行移除。其既可以在本地游戏存档上使用,也可以在服务器存档上使用。 ## 使用前一定要注意 1. 如果你采用的是 Paper 端,或者是以 Paper 为上游的服务端(比如 Purpur),请**不要**在 Paper 的世界配置文件中把 `fixed-chunk-inhabited-time`([详见文档](https://docs.papermc.io/paper/reference/world-configuration#chunks_fixed_chunk_inhabited_time))这一项设置为 >= 0 的值,否则区块的 `InhabitedTime` 会被固定,从而影响工具功能。 2. 如果你的存档是通过**模组 / 外部软件**编辑得到的,而不是人为建造的,其中的区块的 `InhabitedTime` 值难以预料,这种情况下不建议使用本工具。(当然,你也可以配置受保护的区块以防止某些区块被移除。) 3. 本工具可以对区域区块 Anvil 文件进行**原地处理**,原地写入每个文件前会进行备份,若写入出错则会自动还原。尽管如此,还是建议时不时对存档做一下手动备份。 ## 使用 你可以在命令行运行此工具程序: ```bash java [jvmOptions...] -jar PotatoPeeler*.jar [--world-dirs <worldPath1>,<worldPath2>,...] [--output-dirs <outputWorldPath1>,<outputWorldPath2>,...] [--server-jar <serverJarPath>] [--min-inhabited <ticks>] [--help] [--cool-down <minutes>] [--threads-num <number>] [--max-log-size <size>] [--retain-log-files <number>] [--verbose] [--dry-run] [--skip-peeler] [additionalOptions...] ``` [/MD]

以下为参数说明截图:

1745888803829.webp


关于受保护区块的配置请见原文档:

https://github.com/Bottle-M/PotatoPeeler/blob/main/README.zh_CN.md#5-受保护的区块

受保护的区块不会被移除。

[MD] ## 使用示例 ### 作为独立工具使用 ```bash # 从指定的三个世界中移除掉玩家总停留时间 <= 5 秒的区块 java -jar PotatoPeeler*.jar --min-inhabited 100 --world-dirs world,world_nether,/opt/server/world_the_end # 或者可以更简单点,只指定世界路径。默认情况下只移除玩家总停留时间 = 0 秒的区块 java -jar PotatoPeeler*.jar --world-dirs world,world_nether,/opt/server/world_the_end ``` ### 作为服务端前置程序使用 ```bash # 从指定的两个世界中移除掉玩家总停留时间 <= 5 秒的区块 # 移除完成后会在当前 JVM 中启动 purpur.jar # JVM 参数 -Xms1G -Xmx4G 会被沿用 # 其他参数 / 标志 --nogui --forceUpgrade 会被传递给 purpur.jar java -Xms1G -Xmx4G -jar PotatoPeeler*.jar --min-inhabited 100 --world-dirs world,world_nether --server-jar purpur.jar --nogui --forceUpgrade ``` [/MD]

更多示例见原文档:

https://github.com/Bottle-M/PotatoPeeler/blob/main/README.zh_CN.md#7-例子
  • 1723565472656.png
    1723565472656.png
    294 KB · 查看: 256
作者
SomeBottle
下载
342
查看
1,697
首次发布
最后更新

评分

0.00 星 0 次评分

SomeBottle 的其他资源

最新更新

  1. PotatoPeeler 1.3.0

    * 支持 Minecraft JE 26.1 起的新存档结构,详见 [Java版存档格式 - Minecraft...
  2. PotatoPeeler 1.2.0

    Github Release: https://github.com/Bottle-M/PotatoPeeler/releases/tag/1.2.0 新增 --dry-run 选项...
  3. PotatoPeeler 1.1.0

    支持从 Minecraft JE 1.21.5 的区块标签文件中读取强制加载区块,详见区块标签存储格式 - Minecraft Wiki 注:PotatoPeeler 1.1.0...
后退
顶部 底部