# 腐朽坟墓
- 保存玩家死亡后物品不会被删除!
- 无论如何死亡,物品都会被保存!
- 点击坟墓即可恢复物品
- 经过一段时间(默认为 5 分钟)后,坟墓会变成公共的(可突袭)
- 经过一段时间(默认为 30 分钟)后,坟墓会被删除,物品掉落到地上
## 默认配置
```toml
# irishgreencitrus' Sour Graves v2 配置
#
#
##############################################
# 此文件中的注释将被删除 #
##############################################
#
#
# v1 之后的重大更新:
# - 坟墓现在存储在 `graves.db` 而不是 `graves.json` 中。
# - 如果您有现有的 `graves.json`,则应将其转换为新格式。
# - PostgreSQL 和 MySQL 也支持作为外部数据库。
#
# 插件中的所有内容都可以配置。
# 如果您弄乱了文件,可以通过删除它来重置为默认值。
#
# 一些关键说明:
# - 玩家的物品栏没有物品将不会有坟墓生成。
# - 启用了keepInventory的玩家将不会有坟墓生成。
# - 清理任务实际上会删除坟墓,并将其物品保存到磁盘。
# 不应运行得太频繁,因为如果服务器崩溃,坟墓将无法保存。
# 默认值可能还可以,但可以根据需要提高或降低。
## 这里无需手动编辑,只是告诉插件是否在更新后重写配置。
configVersion = 2
# 经过多少分钟后,坟墓将对所有玩家开放。
# 设置为 `-1` 以禁用此功能。
publicInMinutes = 5
# 经过多少分钟后,坟墓将被删除。
# 设置为 `-1` 以禁用此功能。
deleteInMinutes = 30
# 玩家可以拥有的坟墓的最大数量。
# 达到此限制后,玩家最老的坟墓将被删除。
# 设置为 `-1` 以禁用此功能
maxGravesPerPlayer = 3
# 是否阻止 PvP 击杀创建坟墓
disableForPvpKills = false
# 当玩家超过最大坟墓数量时,是否掉落最旧坟墓的物品
dropItemsOnTooManyGraves = true
# 是否让刚被删除的坟墓掉落物品。如果为 false,物品则只是消失
dropItemsOnGraveDeletion = true
# 用于坟墓恢复动画的粒子
recoverParticle = "SOUL"
# 用于坟墓恢复动画的粒子数量
recoverParticleAmount = 1000
# 用于坟墓恢复时的声音
recoverSound = "minecraft:block.respawn_anchor.deplete"
# 第一次坟墓清理任务应该在服务器启动后多久运行
periodicCleanupDelayMinutes = 10
# 坟墓清理任务运行的频率
periodicCleanupPeriodMinutes = 5
# 玩家重生时是否发送他们的坟墓坐标
notifyCoordsOnRespawn = false
# 如果此值为 `true`,默认的右键单击将现在打开一个物品栏。
# 您可以使用 Shift+右键单击来以正常方式恢复坟墓。
allowChestLikeGraveAccess = false
# 当 `allowChestLikeGraveAccess` 为 `true` 时,交换普通点击和 Shift 点击的行为
chestAccessSwapNormalAndShift = false
# 是否使用基于 legacy JSON 的文件存储而不是新的 SQLite 数据库。
# 我无法想到启用此功能的原因,但该功能仍然存在,因此该选项也仍然存在。
# 覆盖 [sql] 中的任何设置。
forceLegacyFileStorage = false
# 世界列表,坟墓将*不会*在此世界中生成。
# 这将导致默认行为,即掉落物品。
# 示例值: ['world_nether']
disabledWorlds = [ ]
# 更改 [sql] 选项需要重新启动服务器。
# 注意:这仅控制支持的 SQL 服务器。
# SQLite 存储默认启用,无需任何配置。
[sql]
# 是否启用连接到 SQL 服务器来存储坟墓,而不是 JSON 文件。
# 适用于创建大量坟墓的大型服务器。
enable = false
# 支持的 SQL 服务器:MySQL 和 PostgreSQL
# 谷歌搜索 'jdbc 连接 URL' 以了解如何在此处输入内容
jdbcConnectionUri = "jdbc:postgres:admin@localhost/sourgraves"
username = "admin"
password = "changeme"
# 软删除意味着所有坟墓数据将保留在数据库中,并且仅以已删除的方式进行标记。
# 这提供额外的保护,防止物品丢失,并允许完全恢复。
# 禁用此功能不会反向应用,并且只是实际删除在更改后创建的坟墓。
softDeletion = true
alreadyConvertedFromJson = true
[economy]
# 是否启用此插件的经济功能(需要安装 VaultUnlocked)
enable = false
# 恢复一个自己的坟墓的费用
graveRecoverCost = 1.0
# 每个坟墓或每个物品堆栈的费用
graveRecoverPaymentType = "FLAT"
# 抢夺他人坟墓的费用
graveRobCost = 5.0
# 每个坟墓或每个物品堆栈的费用
graveRobPaymentType = "FLAT"
# 如果发现日志消息过于侵入,可以更改此处的内容。
# 最严重和警告消息的设计宗旨是不可以禁用的。
[logMessages]
# 是否启用右侧的 GitHub 和 Discord 消息。
startupMessage = true
# 是否每次清理任务运行时记录。Debug配置时很有用。
# 不建议长时间启用此功能。
cleanupTask = false
# 如果坟墓位置丢失,是否记录,可能会发生在 v1.5.0 之前的坟墓。
# 建议启用此功能,因为它只会打印一次。
graveMissingLocation = true
# 如果计划删除的坟墓已加载chunk,但盔甲架(玩家头)已被删除,则会发出警告。
# 这可能表明另一个插件正在删除盔甲架。
armourStandNotFoundOnGravePurge = true
# 如果您仍然使用 legacy JSON 存储并且有 100 多个坟墓,则在启动时会发出警告。
moreThan100GravesWarning = true
```
## 权限
```yml
sourgraves.admin.server:
description: 允许您使用 `/sourgraves disk` 和 `/sourgraves config`
default: op
sourgraves.admin.settings:
description: 允许你使用 `/sourgraves settings`
default: op
sourgraves.admin.give:
description: 允许你使用 `/sourgraves give`
default: op
sourgraves.player.graveaccess:
description: 具有此权限的玩家可以打开任何坟墓,无论它是否是公共的。
default: false
sourgraves.player.permaprivate:
description: 具有此权限的玩家将拥有一个永不变成公开的坟墓。
default: false
sourgraves.player.permagraves:
description: 具有此权限的玩家将拥有一个永不自行过期的坟墓。 这并不影响其他删除坟墓的情况。
default: false
sourgraves.utils.player:
description: 允许你使用 `/sourgraves player`
default: op
sourgraves.utils.locateown:
description: 允许你使用 `/sourgraves locate`
default: true
```
找到bug、有疑问或者功能请求?
加入右侧的 Discord 并给我发一条消息。