From 07fe7de6ba69ecc713dde65b2cdd584fecca403f Mon Sep 17 00:00:00 2001 From: zhangyuheng Date: Mon, 22 Apr 2024 00:19:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=9C=88=E5=9C=B0=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 33 ++++++++++--------- pom.xml | 2 +- .../dominion/commands/DominionOperate.java | 4 +-- .../dominion/events/SelectPointEvents.java | 2 +- .../dominion/utils/ConfigManager.java | 16 +++++++++ src/main/resources/config.yml | 25 +++++++------- 6 files changed, 52 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 73736427..b59479eb 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ 领地有两种创建方式:1.手动选择区域创建;2.以操作者为中心自动创建。 -手动创建:需要使用箭矢作为选区工具,依次使用左键点选领地长方体区域的第一个点、右键点击长方体区域的第二个点。然后使用`/dominion create <领地名称>` +手动创建:需要使用圈地工具(默认为箭矢),依次使用左键点选领地长方体区域的第一个点、右键点击长方体区域的第二个点。然后使用`/dominion create <领地名称>` 创建领地,领地名称不可与其他领地重复。 自动创建:不需要选择对角线点,会以玩家为中心自动创建一定区域的领地。使用 `/dominion auto_create <领地名称>`即可自动创建领地区域。 @@ -183,24 +183,19 @@ Database: User: dominion Pass: dominion -# -1 表示不开启 -AutoCreateRadius: 10 +# 自动圈地大小 +AutoCreateRadius: 10 #-1 表示不开启 # -1 表示不限制 Limit: - MinY: -64 - MaxY: 320 - SizeX: 128 - SizeY: 64 - SizeZ: 128 - Amount: 10 + MinY: -64 # 最小Y坐标 + MaxY: 320 # 最大Y坐标 + SizeX: 128 # X方向最大长度 + SizeY: 64 # Y方向最大长度 + SizeZ: 128 # Z方向最大长度 + Amount: 10 # 最大领地数量 Depth: 3 # 子领地深度 0:不允许子领地 -1:不限制 - WorldBlackList: [ ] - -# -1 表示不开启 -AutoCleanAfterDays: 180 - -BlueMap: true + WorldBlackList: [] # 不允许领地的世界 Teleport: Enable: true @@ -209,6 +204,14 @@ Teleport: # 冷却时间 秒 CoolDown: 0 +# 自动清理长时间未上线玩家的领地 +AutoCleanAfterDays: 180 # -1 表示不开启 + +# 圈地工具 +Tool: ARROW + +BlueMap: true + CheckUpdate: true Debug: false diff --git a/pom.xml b/pom.xml index 37748964..a7c3e382 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.lunadeer Dominion - 1.18.3-beta + 1.19.0-beta jar Dominion diff --git a/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java b/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java index 7a323f43..59da299d 100644 --- a/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java +++ b/src/main/java/cn/lunadeer/dominion/commands/DominionOperate.java @@ -34,7 +34,7 @@ public static void createDominion(CommandSender sender, String[] args) { } Map points = Dominion.pointsSelect.get(player.getUniqueId()); if (points == null || points.get(0) == null || points.get(1) == null) { - Notification.error(sender, "请先使用箭矢选择领地的对角线两点,或使用 /dominion auto_create <领地名称> 创建自动领地"); + Notification.error(sender, "请先使用工具选择领地的对角线两点,或使用 /dominion auto_create <领地名称> 创建自动领地"); return; } String name = args[1]; @@ -61,7 +61,7 @@ public static void createSubDominion(CommandSender sender, String[] args) { } Map points = Dominion.pointsSelect.get(player.getUniqueId()); if (points == null || points.get(0) == null || points.get(1) == null) { - Notification.error(sender, "请先使用箭矢选择子领地的对角线两点,或使用 /dominion auto_create_sub <子领地名称> [父领地名称] 创建自动子领地"); + Notification.error(sender, "请先使用工具选择子领地的对角线两点,或使用 /dominion auto_create_sub <子领地名称> [父领地名称] 创建自动子领地"); return; } if (args.length == 2) { diff --git a/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java b/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java index a63374a7..3ff8ebd8 100644 --- a/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java +++ b/src/main/java/cn/lunadeer/dominion/events/SelectPointEvents.java @@ -23,7 +23,7 @@ public void selectPoint(PlayerInteractEvent event) { Player player = event.getPlayer(); ItemStack item = player.getInventory().getItemInMainHand(); - if (item.getType() != Material.ARROW) { + if (item.getType() != Dominion.config.getTool()) { return; } Block block = event.getClickedBlock(); diff --git a/src/main/java/cn/lunadeer/dominion/utils/ConfigManager.java b/src/main/java/cn/lunadeer/dominion/utils/ConfigManager.java index 2c6cd5c9..9382f319 100644 --- a/src/main/java/cn/lunadeer/dominion/utils/ConfigManager.java +++ b/src/main/java/cn/lunadeer/dominion/utils/ConfigManager.java @@ -1,6 +1,7 @@ package cn.lunadeer.dominion.utils; import cn.lunadeer.dominion.Dominion; +import org.bukkit.Material; import org.bukkit.configuration.file.FileConfiguration; import java.util.List; @@ -62,6 +63,11 @@ public void reload() { _tp_enable = _file.getBoolean("Teleport.Enable", false); _tp_delay = _file.getInt("Teleport.Delay", 0); _tp_cool_down = _file.getInt("Teleport.CoolDown", 0); + _tool = _file.getString("Tool", "ARROW"); + if (Material.getMaterial(_tool) == null) { + XLogger.err("工具名称设置错误,已重置为 ARROW"); + setTool("ARROW"); + } } public Boolean isDebug() { @@ -260,6 +266,15 @@ public void setTpCoolDown(Integer tp_cool_down) { _plugin.saveConfig(); } + public Material getTool() { + return Material.getMaterial(_tool); + } + + public void setTool(String tool) { + _tool = tool; + _file.set("Tool", tool); + _plugin.saveConfig(); + } private final Dominion _plugin; private FileConfiguration _file; @@ -290,4 +305,5 @@ public void setTpCoolDown(Integer tp_cool_down) { private Boolean _tp_enable; private Integer _tp_delay; private Integer _tp_cool_down; + private String _tool; } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 7a673772..37abd964 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -6,19 +6,19 @@ Database: User: dominion Pass: dominion -# -1 表示不开启 -AutoCreateRadius: 10 +# 自动圈地大小 +AutoCreateRadius: 10 #-1 表示不开启 # -1 表示不限制 Limit: - MinY: -64 - MaxY: 320 - SizeX: 128 - SizeY: 64 - SizeZ: 128 - Amount: 10 + MinY: -64 # 最小Y坐标 + MaxY: 320 # 最大Y坐标 + SizeX: 128 # X方向最大长度 + SizeY: 64 # Y方向最大长度 + SizeZ: 128 # Z方向最大长度 + Amount: 10 # 最大领地数量 Depth: 3 # 子领地深度 0:不允许子领地 -1:不限制 - WorldBlackList: [] + WorldBlackList: [] # 不允许领地的世界 Teleport: Enable: true @@ -27,8 +27,11 @@ Teleport: # 冷却时间 秒 CoolDown: 0 -# -1 表示不开启 -AutoCleanAfterDays: 180 +# 自动清理长时间未上线玩家的领地 +AutoCleanAfterDays: 180 # -1 表示不开启 + +# 圈地工具 +Tool: ARROW BlueMap: true