• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~
PotatoPeeler - 移除 Minecraft JE 世界中无用区块的工具,可节省硬盘空间

软件资源 PotatoPeeler - 移除 Minecraft JE 世界中无用区块的工具,可节省硬盘空间 1.1.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>,...]
[--server-jar <serverJarPath>]
[--min-inhabited <ticks>]
[--help]
[--cool-down <minutes>]
[--threads-num <number>]
[--verbose]
[--skip-peeler]
[additionalOptions...]
```

[/MD]

以下为参数说明截图:

1723565472656.png


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

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-例子
作者
SomeBottle
下载
272
查看
424
首次发布
最后更新

评分

0.00 星 0 次评分

SomeBottle 的其他资源

最新更新

  1. PotatoPeeler 1.1.0

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

    兼容 Java 8 。 日志格式化时,输出级别不再采用 localizedName。
后退
顶部 底部