diff --git a/pom.xml b/pom.xml
index 9d3e98b..3635943 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
site.deercloud
LiteWorldEdit
- 1.6.4
+ 2.0.0
jar
LiteWorldEdit
diff --git a/src/main/java/site/deercloud/liteworldedit/Commands.java b/src/main/java/site/deercloud/liteworldedit/Commands.java
index 61902de..417a087 100644
--- a/src/main/java/site/deercloud/liteworldedit/Commands.java
+++ b/src/main/java/site/deercloud/liteworldedit/Commands.java
@@ -25,167 +25,210 @@ public class Commands implements TabExecutor {
return true;
}
if (Objects.equals(args[0], "point") || Objects.equals(args[0], "p")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- if (args.length == 5) {
- try {
- Integer index = Integer.parseInt(args[1]);
- int x = Integer.parseInt(args[2]);
- int y = Integer.parseInt(args[3]);
- int z = Integer.parseInt(args[4]);
- // 选择的点不允许超过128格范围
- if (!Job.in_range(player, new Location(player.getWorld(), x, y, z))) {
- return true;
- }
- Point point = new Point(x, y, z, player);
- if (!LiteWorldEdit.instance.getCache().addPoint(player, index, point)) {
- sender.sendMessage("点的数量不允许超过20,请使用已有点序号覆盖已有点。");
- return true;
- }
- sender.sendMessage("点 " + index + " 已设置为 " + x + ", " + y + ", " + z + "。");
- } catch (NumberFormatException e) {
- sender.sendMessage("参数错误。");
- }
- } else {
- sender.sendMessage("参数错误。");
- }
- } else {
- sender.sendMessage("该命令只能由玩家执行。");
- }
+ return addPoint(sender, args);
} else if (Objects.equals(args[0], "points")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- Map points = LiteWorldEdit.instance.getCache().getPoints(player);
- if (points != null) {
- sender.sendMessage("你创建的点:");
- for (Map.Entry entry : points.entrySet()) {
- Point point = entry.getValue();
- sender.sendMessage(entry.getKey() + ": " + point.x + ", " + point.y + ", " + point.z);
- }
- } else {
- sender.sendMessage("你没有设置任何点。");
- }
- } else {
- sender.sendMessage("该命令只能由玩家执行。");
- }
+ listPoints(sender);
+ return true;
} else if (Objects.equals(args[0], "fill")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- if (args.length == 3) {
- try {
- Integer indexA = Integer.parseInt(args[1]);
- Integer indexB = Integer.parseInt(args[2]);
- Map points = LiteWorldEdit.instance.getCache().getPoints(player);
- if (points == null) {
- sender.sendMessage("你没有设置任何点。");
- return true;
- }
- Point pointA = points.get(indexA);
- Point pointB = points.get(indexB);
- if (pointA == null || pointB == null) {
- sender.sendMessage("点不存在。");
- return true;
- }
- if (out_of_region(pointA, pointB)) {
- sender.sendMessage("选择的区域不可以超过 " + LiteWorldEdit.instance.getConfigMgr().getXMax() + "x" + LiteWorldEdit.instance.getConfigMgr().getYMax() + "x" + LiteWorldEdit.instance.getConfigMgr().getZMax() + "。");
- return true;
- }
- ItemStack items_in_hand = player.getInventory().getItemInMainHand();
- if (!items_in_hand.getType().isBlock() || items_in_hand.getType() == Material.AIR) {
- sender.sendMessage("你手上没有方块。");
- return true;
- }
- Material material = Material.getMaterial(items_in_hand.getType().name());
- Fill.fill(player, player.getWorld(), pointA, pointB, material);
- sender.sendMessage("已添加任务。");
- return true;
- } catch (NumberFormatException e) {
- sender.sendMessage("参数错误。");
- }
- } else {
- sender.sendMessage("参数错误。");
- }
- } else {
- sender.sendMessage("该命令只能由玩家执行。");
- }
+ return fillTask(sender, args);
} else if (Objects.equals(args[0], "empty")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- if (args.length == 3) {
- try {
- Integer indexA = Integer.parseInt(args[1]);
- Integer indexB = Integer.parseInt(args[2]);
- Map points = LiteWorldEdit.instance.getCache().getPoints(player);
- if (points == null) {
- sender.sendMessage("你没有设置任何点。");
- return true;
- }
- Point pointA = points.get(indexA);
- Point pointB = points.get(indexB);
- if (pointA != null && pointB != null) {
- if (out_of_region(pointA, pointB)) {
- sender.sendMessage("选择的区域不可以超过 " + LiteWorldEdit.instance.getConfigMgr().getXMax() + "x" + LiteWorldEdit.instance.getConfigMgr().getYMax() + "x" + LiteWorldEdit.instance.getConfigMgr().getZMax() + "。");
- return true;
- }
- Empty.empty(player, player.getWorld(), pointA, pointB);
- sender.sendMessage("已添加任务。");
- } else {
- sender.sendMessage("点不存在。");
- }
- } catch (NumberFormatException e) {
- sender.sendMessage("参数错误。");
- }
- } else {
- sender.sendMessage("参数错误。");
- }
- } else {
- sender.sendMessage("该命令只能由玩家执行。");
- }
+ return emptyTask(sender, args);
} else if (Objects.equals(args[0], "help")) {
print_help(sender);
+ return true;
} else if (Objects.equals(args[0], "cancel")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- LiteWorldEdit.instance.getCache().getQueueOf(player).cancel();
- sender.sendMessage("已取消。");
- } else {
- sender.sendMessage("该命令只能由玩家执行。");
- }
+ cancerJobs(sender);
+ return true;
} else if (Objects.equals(args[0], "reload")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- if (!player.isOp()) {
- sender.sendMessage("你没有权限。");
- } else {
- LiteWorldEdit.instance.reloadConfig();
- sender.sendMessage("已重载配置文件。");
- }
- } else {
- LiteWorldEdit.instance.reloadConfig();
- sender.sendMessage("已重载配置文件。");
- }
+ reloadConfigs(sender);
+ return true;
} else if (Objects.equals(args[0], "pause")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- LiteWorldEdit.instance.getCache().getQueueOf(player).pause();
- sender.sendMessage("已暂停。");
- } else {
- sender.sendMessage("该命令只能由玩家执行。");
- }
+ pauseJobs(sender);
+ return true;
} else if (Objects.equals(args[0], "resume")) {
- if (sender instanceof Player) {
- Player player = (Player) sender;
- LiteWorldEdit.instance.getCache().getQueueOf(player).resume();
- sender.sendMessage("已恢复。");
- } else {
- sender.sendMessage("该命令只能由玩家执行。");
- }
+ resumeJobs(sender);
+ return true;
} else {
sender.sendMessage("参数错误。");
}
return true;
}
+ private static void resumeJobs(CommandSender sender) {
+ if (sender instanceof Player) {
+ Player player = (Player) sender;
+ LiteWorldEdit.instance.getCache().getQueueOf(player).resume();
+ sender.sendMessage("已恢复。");
+ } else {
+ sender.sendMessage("该命令只能由玩家执行。");
+ }
+ }
+
+ private static void pauseJobs(CommandSender sender) {
+ if (sender instanceof Player) {
+ Player player = (Player) sender;
+ LiteWorldEdit.instance.getCache().getQueueOf(player).pause();
+ sender.sendMessage("已暂停。");
+ } else {
+ sender.sendMessage("该命令只能由玩家执行。");
+ }
+ }
+
+ private static void reloadConfigs(CommandSender sender) {
+ if (sender instanceof Player) {
+ Player player = (Player) sender;
+ if (!player.isOp()) {
+ sender.sendMessage("你没有权限。");
+ } else {
+ LiteWorldEdit.instance.reloadConfig();
+ sender.sendMessage("已重载配置文件。");
+ }
+ } else {
+ LiteWorldEdit.instance.reloadConfig();
+ sender.sendMessage("已重载配置文件。");
+ }
+ }
+
+ private static void cancerJobs(CommandSender sender) {
+ if (sender instanceof Player) {
+ Player player = (Player) sender;
+ LiteWorldEdit.instance.getCache().getQueueOf(player).cancel();
+ sender.sendMessage("已取消。");
+ } else {
+ sender.sendMessage("该命令只能由玩家执行。");
+ }
+ }
+
+ private static boolean emptyTask(CommandSender sender, String[] args) {
+ if (!(sender instanceof Player)) {
+ sender.sendMessage("该命令只能由玩家执行。");
+ return true;
+ }
+ Player player = (Player) sender;
+ if (args.length == 3) {
+ try {
+ Vector2 diagonalPoint = getVector2(sender, args, player);
+ if (diagonalPoint == null) return true;
+ Empty.empty(player, player.getWorld(), diagonalPoint.pointA, diagonalPoint.pointB);
+ sender.sendMessage("已添加任务。");
+
+ } catch (NumberFormatException e) {
+ sender.sendMessage("参数错误。");
+ }
+ } else {
+ sender.sendMessage("参数错误。");
+ }
+ return false;
+ }
+
+ private static boolean fillTask(CommandSender sender, String[] args) {
+ if (!(sender instanceof Player)) {
+ sender.sendMessage("该命令只能由玩家执行。");
+ return true;
+ }
+ Player player = (Player) sender;
+ if (args.length == 3) {
+ try {
+ Vector2 diagonalPoint = getVector2(sender, args, player);
+ if (diagonalPoint == null) return true;
+ ItemStack items_in_hand = player.getInventory().getItemInMainHand();
+ if (!items_in_hand.getType().isBlock() || items_in_hand.getType() == Material.AIR) {
+ sender.sendMessage("你手上没有方块。");
+ return true;
+ }
+ Material material = Material.getMaterial(items_in_hand.getType().name());
+ Fill.fill(player, player.getWorld(), diagonalPoint.pointA, diagonalPoint.pointB, material);
+ sender.sendMessage("已添加任务。");
+ return true;
+ } catch (NumberFormatException e) {
+ sender.sendMessage("参数错误。");
+ }
+ } else {
+ sender.sendMessage("参数错误。");
+ }
+ return false;
+ }
+
+ private static Vector2 getVector2(CommandSender sender, String[] args, Player player) {
+ Integer indexA = Integer.parseInt(args[1]);
+ Integer indexB = Integer.parseInt(args[2]);
+ Map points = LiteWorldEdit.instance.getCache().getPoints(player);
+ if (points == null) {
+ sender.sendMessage("你没有设置任何点。");
+ return null;
+ }
+ Point pointA = points.get(indexA);
+ Point pointB = points.get(indexB);
+ if (pointA == null || pointB == null) {
+ sender.sendMessage("点不存在。");
+ return null;
+ }
+ if (out_of_region(pointA, pointB)) {
+ sender.sendMessage("选择的区域不可以超过 " + LiteWorldEdit.instance.getConfigMgr().getXMax() + "x" + LiteWorldEdit.instance.getConfigMgr().getYMax() + "x" + LiteWorldEdit.instance.getConfigMgr().getZMax() + "。");
+ return null;
+ }
+ return new Vector2(pointA, pointB);
+ }
+
+ private static class Vector2 {
+ public final Point pointA;
+ public final Point pointB;
+
+ public Vector2(Point pointA, Point pointB) {
+ this.pointA = pointA;
+ this.pointB = pointB;
+ }
+ }
+
+ private static void listPoints(CommandSender sender) {
+ if (!(sender instanceof Player)) {
+ sender.sendMessage("该命令只能由玩家执行。");
+ return;
+ }
+ Player player = (Player) sender;
+ Map points = LiteWorldEdit.instance.getCache().getPoints(player);
+ if (points != null) {
+ sender.sendMessage("你创建的点:");
+ for (Map.Entry entry : points.entrySet()) {
+ Point point = entry.getValue();
+ sender.sendMessage(entry.getKey() + ": " + point.x + ", " + point.y + ", " + point.z);
+ }
+ } else {
+ sender.sendMessage("你没有设置任何点。");
+ }
+ }
+
+ private static boolean addPoint(CommandSender sender, String[] args) {
+ if (!(sender instanceof Player)) {
+ sender.sendMessage("该命令只能由玩家执行。");
+ return true;
+ }
+ Player player = (Player) sender;
+ if (args.length == 5) {
+ try {
+ Integer index = Integer.parseInt(args[1]);
+ int x = Integer.parseInt(args[2]);
+ int y = Integer.parseInt(args[3]);
+ int z = Integer.parseInt(args[4]);
+ // 选择的点不允许超过128格范围
+ if (!Job.in_range(player, new Location(player.getWorld(), x, y, z))) {
+ return true;
+ }
+ Point point = new Point(x, y, z, player);
+ if (!LiteWorldEdit.instance.getCache().addPoint(player, index, point)) {
+ sender.sendMessage("点的数量不允许超过20,请使用已有点序号覆盖已有点。");
+ return true;
+ }
+ sender.sendMessage("点 " + index + " 已设置为 " + x + ", " + y + ", " + z + "。");
+ } catch (NumberFormatException e) {
+ sender.sendMessage("参数错误。");
+ }
+ } else {
+ sender.sendMessage("参数错误。");
+ }
+ return false;
+ }
+
@Override
public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
if (args.length == 1) {
diff --git a/src/main/java/site/deercloud/liteworldedit/Managers/ConfigManager.java b/src/main/java/site/deercloud/liteworldedit/Managers/ConfigManager.java
index a702a52..32c2c16 100644
--- a/src/main/java/site/deercloud/liteworldedit/Managers/ConfigManager.java
+++ b/src/main/java/site/deercloud/liteworldedit/Managers/ConfigManager.java
@@ -1,6 +1,5 @@
package site.deercloud.liteworldedit.Managers;
-import com.sun.org.apache.xpath.internal.operations.Bool;
import org.bukkit.configuration.file.FileConfiguration;
import site.deercloud.liteworldedit.LiteWorldEdit;
diff --git a/src/main/java/site/deercloud/liteworldedit/Managers/ProgressBar.java b/src/main/java/site/deercloud/liteworldedit/Managers/ProgressBar.java
deleted file mode 100644
index e119dff..0000000
--- a/src/main/java/site/deercloud/liteworldedit/Managers/ProgressBar.java
+++ /dev/null
@@ -1,205 +0,0 @@
-package site.deercloud.liteworldedit.Managers;
-
-import org.bukkit.boss.BarColor;
-import org.bukkit.boss.BarFlag;
-import org.bukkit.boss.BarStyle;
-import org.bukkit.boss.BossBar;
-import org.bukkit.entity.Player;
-
-import java.util.List;
-
-public class ProgressBar implements BossBar {
-
- /**
- * Returns the title of this boss bar
- *
- * @return the title of the bar
- */
- @Override
- public String getTitle() {
- return null;
- }
-
- /**
- * Sets the title of this boss bar
- *
- * @param title the title of the bar
- */
- @Override
- public void setTitle(String title) {
-
- }
-
- /**
- * Returns the color of this boss bar
- *
- * @return the color of the bar
- */
- @Override
- public BarColor getColor() {
- return null;
- }
-
- /**
- * Sets the color of this boss bar.
- *
- * @param color the color of the bar
- */
- @Override
- public void setColor(BarColor color) {
-
- }
-
- /**
- * Returns the style of this boss bar
- *
- * @return the style of the bar
- */
- @Override
- public BarStyle getStyle() {
- return null;
- }
-
- /**
- * Sets the bar style of this boss bar
- *
- * @param style the style of the bar
- */
- @Override
- public void setStyle(BarStyle style) {
-
- }
-
- /**
- * Remove an existing flag on this boss bar
- *
- * @param flag the existing flag to remove
- */
- @Override
- public void removeFlag(BarFlag flag) {
-
- }
-
- /**
- * Add an optional flag to this boss bar
- *
- * @param flag an optional flag to set on the boss bar
- */
- @Override
- public void addFlag(BarFlag flag) {
-
- }
-
- /**
- * Returns whether this boss bar as the passed flag set
- *
- * @param flag the flag to check
- * @return whether it has the flag
- */
- @Override
- public boolean hasFlag(BarFlag flag) {
- return false;
- }
-
- /**
- * Sets the progress of the bar. Values should be between 0.0 (empty) and
- * 1.0 (full)
- *
- * @param progress the progress of the bar
- */
- @Override
- public void setProgress(double progress) {
-
- }
-
- /**
- * Returns the progress of the bar between 0.0 and 1.0
- *
- * @return the progress of the bar
- */
- @Override
- public double getProgress() {
- return 0;
- }
-
- /**
- * Adds the player to this boss bar causing it to display on their screen.
- *
- * @param player the player to add
- */
- @Override
- public void addPlayer(Player player) {
-
- }
-
- /**
- * Removes the player from this boss bar causing it to be removed from their
- * screen.
- *
- * @param player the player to remove
- */
- @Override
- public void removePlayer(Player player) {
-
- }
-
- /**
- * Removes all players from this boss bar
- *
- * @see #removePlayer(Player)
- */
- @Override
- public void removeAll() {
-
- }
-
- /**
- * Returns all players viewing this boss bar
- *
- * @return a immutable list of players
- */
- @Override
- public List getPlayers() {
- return null;
- }
-
- /**
- * Set if the boss bar is displayed to attached players.
- *
- * @param visible visible status
- */
- @Override
- public void setVisible(boolean visible) {
-
- }
-
- /**
- * Return if the boss bar is displayed to attached players.
- *
- * @return visible status
- */
- @Override
- public boolean isVisible() {
- return false;
- }
-
- /**
- * Shows the previously hidden boss bar to all attached players
- *
- * @deprecated {@link #setVisible(boolean)}
- */
- @Override
- public void show() {
-
- }
-
- /**
- * Hides this boss bar from all attached players
- *
- * @deprecated {@link #setVisible(boolean)}
- */
- @Override
- public void hide() {
-
- }
-}