Skip to content

Commit

Permalink
新增自定义圈地工具
Browse files Browse the repository at this point in the history
  • Loading branch information
ColdeZhang committed Apr 21, 2024
1 parent 28735ef commit 07fe7de
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 30 deletions.
33 changes: 18 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@

领地有两种创建方式:1.手动选择区域创建;2.以操作者为中心自动创建。

手动创建:需要使用箭矢作为选区工具,依次使用左键点选领地长方体区域的第一个点、右键点击长方体区域的第二个点。然后使用`/dominion create <领地名称>`
手动创建:需要使用圈地工具(默认为箭矢),依次使用左键点选领地长方体区域的第一个点、右键点击长方体区域的第二个点。然后使用`/dominion create <领地名称>`
创建领地,领地名称不可与其他领地重复。

自动创建:不需要选择对角线点,会以玩家为中心自动创建一定区域的领地。使用 `/dominion auto_create <领地名称>`即可自动创建领地区域。
Expand Down Expand Up @@ -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
Expand All @@ -209,6 +204,14 @@ Teleport:
# 冷却时间 秒
CoolDown: 0

# 自动清理长时间未上线玩家的领地
AutoCleanAfterDays: 180 # -1 表示不开启

# 圈地工具
Tool: ARROW

BlueMap: true

CheckUpdate: true

Debug: false
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>cn.lunadeer</groupId>
<artifactId>Dominion</artifactId>
<version>1.18.3-beta</version>
<version>1.19.0-beta</version>
<packaging>jar</packaging>

<name>Dominion</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public static void createDominion(CommandSender sender, String[] args) {
}
Map<Integer, Location> 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];
Expand All @@ -61,7 +61,7 @@ public static void createSubDominion(CommandSender sender, String[] args) {
}
Map<Integer, Location> 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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/cn/lunadeer/dominion/utils/ConfigManager.java
Original file line number Diff line number Diff line change
@@ -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;
Expand Down Expand Up @@ -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() {
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
}
25 changes: 14 additions & 11 deletions src/main/resources/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -27,8 +27,11 @@ Teleport:
# 冷却时间 秒
CoolDown: 0

# -1 表示不开启
AutoCleanAfterDays: 180
# 自动清理长时间未上线玩家的领地
AutoCleanAfterDays: 180 # -1 表示不开启

# 圈地工具
Tool: ARROW

BlueMap: true

Expand Down

0 comments on commit 07fe7de

Please sign in to comment.