Skip to content

Commit

Permalink
实现了单独对世界设置圈地规则功能 #10
Browse files Browse the repository at this point in the history
  • Loading branch information
ColdeZhang committed Sep 6, 2024
1 parent 40d4ede commit 989cad0
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ public void saveAll() {
_file.set("Limit.OpByPass", _limit_op_bypass);
_file.setInlineComments("Limit.OpByPass", List.of(Translation.Config_Comment_OpBypass.trans()));
_file.set("Limit.WorldSettings", groupLimits.get("default").getWorldSettings());
_file.setInlineComments("Limit.WorldSettings", List.of(Translation.Config_Comment_WorldSettings.trans()));

_file.set("Teleport.Enable", _tp_enable);
_file.set("Teleport.Delay", _tp_delay);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,7 @@ private void saveAll() {
this.config.setInlineComments("Refund", List.of(Translation.Config_Comment_Refund.trans()));

this.config.set("WorldSettings", getWorldSettings());
this.config.setInlineComments("WorldSettings", List.of(Translation.Config_Comment_WorldSettings.trans()));

try {
this.config.save(this.file_path);
Expand Down
36 changes: 10 additions & 26 deletions core/src/main/java/cn/lunadeer/dominion/managers/Translation.java
Original file line number Diff line number Diff line change
Expand Up @@ -833,39 +833,21 @@ public class Translation extends Localization {
public static i18n Config_Check_AutoCleanAfterDaysError;
@i18nField(defaultValue = "工具名称设置错误,已重置为 ARROW")
public static i18n Config_Check_ToolNameError;
@i18nField(defaultValue = "Limit.SizeX 尺寸不能小于 4,已重置为 128")
public static i18n Config_Check_LimitSizeXError;
@i18nField(defaultValue = "Limit.SizeY 尺寸不能小于 4,已重置为 64")
public static i18n Config_Check_LimitSizeYError;
@i18nField(defaultValue = "Limit.SizeZ 尺寸不能小于 4,已重置为 128")
public static i18n Config_Check_LimitSizeZError;
@i18nField(defaultValue = "Limit.MinY 不能大于或等于 Limit.MaxY,已重置为 -64 320")
public static i18n Config_Check_LimitMinYError;
@i18nField(defaultValue = "Economy.Refund 设置不合法,已重置为 0.85")
public static i18n Config_Check_RefundError;
@i18nField(defaultValue = "Economy.Price 设置不合法,已重置为 10.0")
public static i18n Config_Check_PriceError;
@i18nField(defaultValue = "启用 Limit.Vert 时 Limit.SizeY 不能小于 Limit.MaxY - Limit.MinY,已自动调整为 %d")
public static i18n Config_Check_LimitSizeYAutoAdjust;
@i18nField(defaultValue = "Limit.Amount 设置不合法,已重置为 10")
public static i18n Config_Check_AmountError;
@i18nField(defaultValue = "Limit.Depth 设置不合法,已重置为 3")
public static i18n Config_Check_DepthError;
@i18nField(defaultValue = "权限组 %s 的 MinY 不能大于等于 MaxY,已重置为 -64 和 320")
@i18nField(defaultValue = "%s 的 MinY 不能大于等于 MaxY,已重置为 -64 和 320")
public static i18n Config_Check_GroupMinYError;
@i18nField(defaultValue = "权限组 %s 的 SizeX 设置过小,已重置为 128")
@i18nField(defaultValue = "%s 的 SizeX 设置过小,已重置为 128")
public static i18n Config_Check_GroupSizeXError;
@i18nField(defaultValue = "权限组 %s 的 SizeY 设置过小,已重置为 64")
@i18nField(defaultValue = "%s 的 SizeY 设置过小,已重置为 64")
public static i18n Config_Check_GroupSizeYError;
@i18nField(defaultValue = "权限组 %s 的 SizeZ 设置过小,已重置为 128")
@i18nField(defaultValue = "%s 的 SizeZ 设置过小,已重置为 128")
public static i18n Config_Check_GroupSizeZError;
@i18nField(defaultValue = "权限组 %s 的 Amount 设置不合法,已重置为 10")
@i18nField(defaultValue = "%s 的 Amount 设置不合法,已重置为 10")
public static i18n Config_Check_GroupAmountError;
@i18nField(defaultValue = "权限组 %s 的 Depth 设置不合法,已重置为 3")
@i18nField(defaultValue = "%s 的 Depth 设置不合法,已重置为 3")
public static i18n Config_Check_GroupDepthError;
@i18nField(defaultValue = "权限组 %s 的 Price 设置不合法,已重置为 10.0")
@i18nField(defaultValue = "%s 的 Price 设置不合法,已重置为 10.0")
public static i18n Config_Check_GroupPriceError;
@i18nField(defaultValue = "权限组 %s 的 Refund 设置不合法,已重置为 0.85")
@i18nField(defaultValue = "%s 的 Refund 设置不合法,已重置为 0.85")
public static i18n Config_Check_GroupRefundError;
@i18nField(defaultValue = "读取权限配置失败:%s")
public static i18n Config_Check_LoadFlagError;
Expand Down Expand Up @@ -906,6 +888,8 @@ public class Translation extends Localization {
public static i18n Config_Comment_Vert;
@i18nField(defaultValue = "是否允许OP无视领地限制")
public static i18n Config_Comment_OpBypass;
@i18nField(defaultValue = "单独设置某个世界的圈地规则(如不设置则使用以上规则)")
public static i18n Config_Comment_WorldSettings;
@i18nField(defaultValue = "传送延迟 秒")
public static i18n Config_Comment_TpDelay;
@i18nField(defaultValue = "传送冷却 秒")
Expand Down
26 changes: 19 additions & 7 deletions docs/zh-cn/operator/config.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,18 @@ Limit:
Amount: 10 # 最大领地数量-1表示不限制
Depth: 3 # 子领地深度0表示不开启-1表示不限制
Vert: false # 是否自动延伸到 MaxY 和 MinY
WorldBlackList: # 不允许圈地的世界列表
- some_world
OpByPass: true # 是否允许OP无视领地限制
WorldSettings:
some_world_name:
MinY: -64
MaxY: 320
SizeX: 128
SizeY: 64
SizeZ: 128
Amount: 10
Depth: 3
Vert: false
Allow: false

Teleport:
Enable: true
Expand Down Expand Up @@ -102,13 +111,16 @@ Timer: false # 性能测试计时器
- SpawnProtection:出生点半径保护,此半径范围内普通玩家无法创建领地
- MinY:领地的最小Y坐标
- MaxY:领地的最大Y坐标
- SizeX:X方向最大长度
- SizeY:Y方向最大长度
- SizeZ:Z方向最大长度
- Amount:每个玩家拥有的最大领地数量
- SizeX:X方向最大长度 1表示不限制
- SizeY:Y方向最大长度 1表示不限制
- SizeZ:Z方向最大长度 1表示不限制
- Amount:每个玩家拥有的最大领地数量 1表示不限制
- Depth:子领地深度、0表示不允许子领地、 -1表示不限制
- WorldBlackList:不允许创建领地的世界
- Vert:当设置为 `true` 时,玩家选择区域创建或者自动创建领地,会自动将Y向下向上延伸到MinY和MaxY。**同时也会根据 MinY 和 MaxY 的设置自动调整 SizeY 的配置保证数值逻辑一致。**
- WorldSettings:单独设置某个世界的圈地规则(如不设置则使用上述默认规则)
- Allow:是否允许在此世界圈地

> 您服务器世界的名称应该避免使用 `default` 这样的特殊单词,否则会导致不可预料的意外错误。

### Teleport

Expand Down
9 changes: 8 additions & 1 deletion docs/zh-cn/operator/privilege.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@

假设你现在想为赞助玩家提供优惠,打开 `plugins/Dominion/groups/sponsor.yml` 文件。修改里面的设置为你期望的数值,保存文件。

假如你想再为 VIP 玩家提供更丰厚的优惠,你可以复制一份 `sponsor.yml` 重命名为 `vip.yml` ,然后编辑里面的数值。(这个文件的名称你可以自定义,但是请不要使用中文、特殊字符、空格等)
假如你想再为 VIP 玩家提供更丰厚的优惠,你可以复制一份 `sponsor.yml` 重命名为 `vip.yml`
,然后编辑里面的数值。(这个文件的名称你可以自定义,但是请不要使用中文、特殊字符、空格等)

## 加载配置

Expand All @@ -27,3 +28,9 @@

最后保存 LuckPerms 配置,即可生效。

## 注意事项

`groups` 中的 `WorldSettings``config.yml` 中的是独立的。
例如:你不希望任何玩家在下届顶层圈地(包括 `sponsor`),你已经在 `config.yml` 中设置了下届的 `MinY``MaxY`
如果你不在 `sponsor.yml` 中进行同样的设置的话,那么 `sponsor` 玩家就不会收到这个限制。

0 comments on commit 989cad0

Please sign in to comment.