diff --git a/pom.xml b/pom.xml
index 812a81c..35929a1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,20 +73,9 @@
io.papermc.paper
paper-api
- 1.17.1-R0.1-SNAPSHOT
- provided
-
-
- com.comphenix.protocol
- ProtocolLib
- 4.7.0
- provided
-
-
- io.netty
- netty-all
- 4.1.5.Final
+ 1.19.3-R0.1-SNAPSHOT
provided
+
diff --git a/src/main/java/me/youhavetrouble/blockedit/BEPlayer.java b/src/main/java/me/youhavetrouble/blockedit/BEPlayer.java
index d4d8734..b895773 100644
--- a/src/main/java/me/youhavetrouble/blockedit/BEPlayer.java
+++ b/src/main/java/me/youhavetrouble/blockedit/BEPlayer.java
@@ -1,6 +1,5 @@
package me.youhavetrouble.blockedit;
-import me.youhavetrouble.blockedit.optionals.SelectionHighlight;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.entity.Player;
diff --git a/src/main/java/me/youhavetrouble/blockedit/BlockEdit.java b/src/main/java/me/youhavetrouble/blockedit/BlockEdit.java
index b842a75..8aa60bb 100644
--- a/src/main/java/me/youhavetrouble/blockedit/BlockEdit.java
+++ b/src/main/java/me/youhavetrouble/blockedit/BlockEdit.java
@@ -3,6 +3,7 @@ package me.youhavetrouble.blockedit;
import me.youhavetrouble.blockedit.api.BlockEditWands;
import me.youhavetrouble.blockedit.commands.*;
import me.youhavetrouble.blockedit.wands.SelectionWand;
+import org.bukkit.command.Command;
import org.bukkit.command.PluginCommand;
import org.bukkit.command.TabExecutor;
import org.bukkit.plugin.java.JavaPlugin;
@@ -21,12 +22,12 @@ public final class BlockEdit extends JavaPlugin {
BlockEditWands.registerWand(selectionWand);
getServer().getPluginManager().registerEvents(selectionWand, this);
- registerCommand("/wand", new WandCommand());
- registerCommand("/set", new SetCommand());
- registerCommand("/replace", new ReplaceCommand());
- registerCommand("/pos1", new Pos1Command());
- registerCommand("/pos2", new Pos2Command());
- registerCommand("/desel", new DeselCommand());
+ registerCommand(new WandCommand());
+ registerCommand(new SetCommand());
+ registerCommand(new ReplaceCommand());
+ registerCommand(new DeselCommand());
+ registerCommand(new Pos1Command());
+ registerCommand(new Pos2Command());
}
@@ -35,11 +36,7 @@ public final class BlockEdit extends JavaPlugin {
return plugin;
}
- private void registerCommand(String command, TabExecutor executor) {
- PluginCommand bukkitReplaceCommand = getCommand(command);
- if (bukkitReplaceCommand != null) {
- bukkitReplaceCommand.setExecutor(executor);
- bukkitReplaceCommand.setTabCompleter(executor);
- }
+ private void registerCommand(Command command) {
+ getServer().getCommandMap().register("blockedit", command);
}
}
diff --git a/src/main/java/me/youhavetrouble/blockedit/commands/DeselCommand.java b/src/main/java/me/youhavetrouble/blockedit/commands/DeselCommand.java
index 94edae4..625ac1f 100644
--- a/src/main/java/me/youhavetrouble/blockedit/commands/DeselCommand.java
+++ b/src/main/java/me/youhavetrouble/blockedit/commands/DeselCommand.java
@@ -1,31 +1,24 @@
package me.youhavetrouble.blockedit.commands;
import me.youhavetrouble.blockedit.BEPlayer;
-import me.youhavetrouble.blockedit.BlockEdit;
-import me.youhavetrouble.blockedit.optionals.SelectionHighlight;
import net.kyori.adventure.text.Component;
-import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-import java.util.List;
+public class DeselCommand extends Command {
+ public DeselCommand() {
+ super("desel");
+ setPermission("blockedit.command.desel");
+ }
-public class DeselCommand implements TabExecutor {
@Override
- public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
+ public boolean execute(@NotNull CommandSender sender, @NotNull String label, @NotNull String[] args) {
if (!(sender instanceof Player player)) return true;
BEPlayer.getByPlayer(player).resetSelection();
- Bukkit.getScheduler().runTaskAsynchronously(BlockEdit.getPlugin(),() -> SelectionHighlight.sendStop(player));
player.sendMessage(Component.text("You have reset your selection"));
return true;
}
- @Override
- public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
- return null;
- }
}
diff --git a/src/main/java/me/youhavetrouble/blockedit/commands/Pos1Command.java b/src/main/java/me/youhavetrouble/blockedit/commands/Pos1Command.java
index 1a163d6..6961b4b 100644
--- a/src/main/java/me/youhavetrouble/blockedit/commands/Pos1Command.java
+++ b/src/main/java/me/youhavetrouble/blockedit/commands/Pos1Command.java
@@ -4,16 +4,17 @@ import me.youhavetrouble.blockedit.BEPlayer;
import net.kyori.adventure.text.Component;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-import java.util.List;
+public class Pos1Command extends Command {
+ public Pos1Command() {
+ super("pos1");
+ setPermission("blockedit.command.pos");
+ }
-public class Pos1Command implements TabExecutor {
@Override
- public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
+ public boolean execute(@NotNull CommandSender sender, @NotNull String label, @NotNull String[] args) {
if (!(sender instanceof Player player)) return true;
BEPlayer bePlayer = BEPlayer.getByPlayer(player);
bePlayer.setSelectionPoint1(player.getLocation().toBlockLocation());
@@ -21,8 +22,4 @@ public class Pos1Command implements TabExecutor {
return true;
}
- @Override
- public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
- return null;
- }
}
diff --git a/src/main/java/me/youhavetrouble/blockedit/commands/Pos2Command.java b/src/main/java/me/youhavetrouble/blockedit/commands/Pos2Command.java
index a785639..7cc8f50 100644
--- a/src/main/java/me/youhavetrouble/blockedit/commands/Pos2Command.java
+++ b/src/main/java/me/youhavetrouble/blockedit/commands/Pos2Command.java
@@ -4,25 +4,21 @@ import me.youhavetrouble.blockedit.BEPlayer;
import net.kyori.adventure.text.Component;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-import java.util.List;
+public class Pos2Command extends Command {
-public class Pos2Command implements TabExecutor {
+ public Pos2Command() {
+ super("pos2");
+ setPermission("blockedit.command.pos");
+ }
@Override
- public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
+ public boolean execute(@NotNull CommandSender sender, @NotNull String label, @NotNull String[] args) {
if (!(sender instanceof Player player)) return true;
BEPlayer bePlayer = BEPlayer.getByPlayer(player);
bePlayer.setSelectionPoint2(player.getLocation().toBlockLocation());
player.sendMessage(Component.text("Second point set at your location"));
return true;
}
-
- @Override
- public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
- return null;
- }
}
diff --git a/src/main/java/me/youhavetrouble/blockedit/commands/ReplaceCommand.java b/src/main/java/me/youhavetrouble/blockedit/commands/ReplaceCommand.java
index dcb0d89..f27f684 100644
--- a/src/main/java/me/youhavetrouble/blockedit/commands/ReplaceCommand.java
+++ b/src/main/java/me/youhavetrouble/blockedit/commands/ReplaceCommand.java
@@ -9,21 +9,37 @@ import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.bukkit.util.BoundingBox;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
-public class ReplaceCommand implements TabExecutor {
+public class ReplaceCommand extends Command {
+
+ public ReplaceCommand() {
+ super("replace");
+ setPermission("blockedit.command.replace");
+ }
@Override
- public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
- if (!(sender instanceof Player player)) return true;
+ public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) {
+ if (args.length == 1 || args.length == 2) {
+ ArrayList suggestions = new ArrayList<>();
+ for (Material material : Material.values()) {
+ if (material.isBlock())
+ suggestions.add(material.name().toLowerCase());
+ }
+ return StringUtil.copyPartialMatches(args[args.length-1], suggestions, new ArrayList<>());
+ }
+ return new ArrayList<>();
+ }
+
+ @Override
+ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, @NotNull String[] args) {
+ if (!(commandSender instanceof Player player)) return true;
if (args.length == 0) {
player.sendMessage(Component.text("You need to provide block type"));
return true;
@@ -54,18 +70,4 @@ public class ReplaceCommand implements TabExecutor {
BlockEditAPI.runOperation(new Selection(selection, bePlayer.getSelectionWorld()), 1, new ReplaceOperation(blockData, blockDataToReplaceWith));
return true;
}
-
- @Override
- public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
- if (args.length == 1 || args.length == 2) {
- ArrayList suggestions = new ArrayList<>();
- for (Material material : Material.values()) {
- if (material.isBlock())
- suggestions.add(material.name().toLowerCase());
- }
- return StringUtil.copyPartialMatches(args[args.length-1], suggestions, new ArrayList<>());
- }
- return null;
- }
-
}
diff --git a/src/main/java/me/youhavetrouble/blockedit/commands/SetCommand.java b/src/main/java/me/youhavetrouble/blockedit/commands/SetCommand.java
index a7c12b1..79449b6 100644
--- a/src/main/java/me/youhavetrouble/blockedit/commands/SetCommand.java
+++ b/src/main/java/me/youhavetrouble/blockedit/commands/SetCommand.java
@@ -1,7 +1,6 @@
package me.youhavetrouble.blockedit.commands;
import me.youhavetrouble.blockedit.BEPlayer;
-import me.youhavetrouble.blockedit.WorkSplitter;
import me.youhavetrouble.blockedit.api.BlockEditAPI;
import me.youhavetrouble.blockedit.operations.SetOperation;
import me.youhavetrouble.blockedit.util.Selection;
@@ -10,20 +9,38 @@ import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.bukkit.util.BoundingBox;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
-public class SetCommand implements TabExecutor {
+public class SetCommand extends Command {
+
+ public SetCommand() {
+ super("set");
+ setPermission("blockedit.command.set");
+ }
+
@Override
- public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
- if (!(sender instanceof Player player)) return true;
+ public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) {
+ if (args.length == 1) {
+ ArrayList suggestions = new ArrayList<>();
+ for (Material material : Material.values()) {
+ if (material.isBlock())
+ suggestions.add(material.name().toLowerCase());
+ }
+ return StringUtil.copyPartialMatches(args[0], suggestions, new ArrayList<>());
+ }
+ return new ArrayList<>();
+ }
+
+
+ @Override
+ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, @NotNull String[] args) {
+ if (!(commandSender instanceof Player player)) return true;
if (args.length == 0) {
player.sendMessage(Component.text("You need to provide block type"));
return true;
@@ -44,19 +61,4 @@ public class SetCommand implements TabExecutor {
}
return true;
}
-
- @Override
- public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
- if (args.length == 1) {
- ArrayList suggestions = new ArrayList<>();
- for (Material material : Material.values()) {
- if (material.isBlock())
- suggestions.add(material.name().toLowerCase());
- }
- return StringUtil.copyPartialMatches(args[0], suggestions, new ArrayList<>());
- }
- return null;
- }
-
-
}
diff --git a/src/main/java/me/youhavetrouble/blockedit/commands/WandCommand.java b/src/main/java/me/youhavetrouble/blockedit/commands/WandCommand.java
index e3dfcab..1a346ac 100644
--- a/src/main/java/me/youhavetrouble/blockedit/commands/WandCommand.java
+++ b/src/main/java/me/youhavetrouble/blockedit/commands/WandCommand.java
@@ -4,21 +4,24 @@ import me.youhavetrouble.blockedit.api.BlockEditWands;
import net.kyori.adventure.text.Component;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabExecutor;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.util.StringUtil;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
-public class WandCommand implements TabExecutor {
+public class WandCommand extends Command {
+
+ public WandCommand() {
+ super("wand");
+ setPermission("blockedit.command.wand");
+ }
@Override
- public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
- if (!(sender instanceof Player player)) return true;
+ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, @NotNull String[] args) {
+ if (!(commandSender instanceof Player player)) return true;
ItemStack wand;
if (args.length == 0) {
wand = BlockEditWands.getWand("select");
@@ -34,11 +37,11 @@ public class WandCommand implements TabExecutor {
return true;
}
-
@Override
- public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
+ public @NotNull List tabComplete(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) {
if (args.length == 1)
return StringUtil.copyPartialMatches(args[0], BlockEditWands.getWandIds(), new ArrayList<>());
- return null;
+ return new ArrayList<>();
}
+
}
diff --git a/src/main/java/me/youhavetrouble/blockedit/optionals/SelectionHighlight.java b/src/main/java/me/youhavetrouble/blockedit/optionals/SelectionHighlight.java
deleted file mode 100644
index e4b48f3..0000000
--- a/src/main/java/me/youhavetrouble/blockedit/optionals/SelectionHighlight.java
+++ /dev/null
@@ -1,106 +0,0 @@
-package me.youhavetrouble.blockedit.optionals;
-
-import com.comphenix.protocol.PacketType;
-import com.comphenix.protocol.ProtocolLibrary;
-import com.comphenix.protocol.events.PacketContainer;
-import com.comphenix.protocol.utility.MinecraftReflection;
-import com.comphenix.protocol.wrappers.MinecraftKey;
-import io.netty.buffer.ByteBuf;
-import io.netty.buffer.Unpooled;
-import me.youhavetrouble.blockedit.BlockEdit;
-import org.bukkit.Location;
-import org.bukkit.entity.Player;
-
-import java.awt.*;
-import java.lang.reflect.InvocationTargetException;
-import java.nio.charset.StandardCharsets;
-
-/*
- * Highlighting selection blocks thanks to https://github.com/ArtFect/BlockHighlight
- *
- * MIT License
- *
- * Copyright (c) 2021 ArtFect
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-public class SelectionHighlight {
-
- public static void highlightBlock(Player player, Location location, String color, String text, int time) {
- if (location == null) return;
- if (BlockEdit.getPlugin().getServer().getPluginManager().isPluginEnabled("ProtocolLib")) {
- sendBlockHighlight(player, location, color, text, time);
- }
- }
-
- public static void sendStop(Player pl) {
- sendPayload(pl, "debug/game_test_clear", Unpooled.wrappedBuffer(new byte[0]));
- }
-
- private static void sendBlockHighlight(Player player, Location location, String hex, String text, int time) {
- ByteBuf packet = Unpooled.buffer();
- packet.writeLong(blockPosToLong((int)location.getX(), (int)location.getY(), (int)location.getZ()));
- int color = hex2Rgb(hex, 100).getRGB();
- packet.writeInt(color);
- writeString(packet, text);
- packet.writeInt(time);
- sendPayload(player, "debug/game_test_add_marker", packet);
- }
-
- private static long blockPosToLong(int x, int y, int z) {
- return ((long) x & 67108863L) << 38 | (long) y & 4095L | ((long) z & 67108863L) << 12;
- }
-
- private static void writeBytes(ByteBuf packet, int i) {
- while ((i & -128) != 0) {
- packet.writeByte(i & 127 | 128);
- i >>>= 7;
- }
- packet.writeByte(i);
- }
-
- private static void writeString(ByteBuf packet, String s) {
- byte[] abyte = s.getBytes(StandardCharsets.UTF_8);
- writeBytes(packet, abyte.length);
- packet.writeBytes(abyte);
- }
-
- private static void sendPayload(Player receiver, String channel, ByteBuf bytes) {
- PacketContainer handle = new PacketContainer(PacketType.Play.Server.CUSTOM_PAYLOAD);
- handle.getMinecraftKeys().write(0, new MinecraftKey(channel));
-
- Object serializer = MinecraftReflection.getPacketDataSerializer(bytes);
- handle.getModifier().withType(ByteBuf.class).write(0, serializer);
-
- try {
- ProtocolLibrary.getProtocolManager().sendServerPacket(receiver, handle);
- } catch (InvocationTargetException e) {
- throw new RuntimeException("Unable to send the packet", e);
- }
- }
-
- //https://stackoverflow.com/questions/4129666/how-to-convert-hex-to-rgb-using-java/4129692
- private static Color hex2Rgb(String colorStr, int transparency) {
- return new Color(
- Integer.valueOf(colorStr.substring(1, 3), 16),
- Integer.valueOf(colorStr.substring(3, 5), 16),
- Integer.valueOf(colorStr.substring(5, 7), 16), transparency);
- }
-
-}
diff --git a/src/main/java/me/youhavetrouble/blockedit/wands/SelectionWand.java b/src/main/java/me/youhavetrouble/blockedit/wands/SelectionWand.java
index 4360971..f660b38 100644
--- a/src/main/java/me/youhavetrouble/blockedit/wands/SelectionWand.java
+++ b/src/main/java/me/youhavetrouble/blockedit/wands/SelectionWand.java
@@ -1,14 +1,10 @@
package me.youhavetrouble.blockedit.wands;
import me.youhavetrouble.blockedit.BEPlayer;
-import me.youhavetrouble.blockedit.BlockEdit;
import me.youhavetrouble.blockedit.api.BlockEditWand;
import me.youhavetrouble.blockedit.api.BlockEditWands;
-import me.youhavetrouble.blockedit.optionals.SelectionHighlight;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -52,42 +48,15 @@ public class SelectionWand implements Listener, BlockEditWand {
if (action.equals(Action.LEFT_CLICK_BLOCK)) {
event.setCancelled(true);
BEPlayer.getByPlayer(player).setSelectionPoint1(block.getLocation());
- highlightPoints(player);
player.sendMessage(Component.text("First point set"));
return;
}
if (action.equals(Action.RIGHT_CLICK_BLOCK)) {
event.setCancelled(true);
BEPlayer.getByPlayer(player).setSelectionPoint2(block.getLocation());
- highlightPoints(player);
player.sendMessage(Component.text("Second point set"));
return;
}
}
- private void highlightPoints(Player player) {
- Bukkit.getScheduler().runTaskAsynchronously(BlockEdit.getPlugin(), () -> {
- BEPlayer bePlayer = BEPlayer.getByPlayer(player);
- SelectionHighlight.sendStop(player);
-
- Location selection1 = bePlayer.getSelectionPoint1();
- Location selection2 = bePlayer.getSelectionPoint2();
-
- if (selection1 != null && selection1.equals(selection2)) {
- SelectionHighlight.highlightBlock(player, bePlayer.getSelectionPoint1(), "#ffffff", "Selection Points", 10000);
- return;
- }
- if (selection1 != null && !selection1.equals(selection2)) {
- SelectionHighlight.highlightBlock(player, bePlayer.getSelectionPoint1(), "#ffffff", "Selection Point 1", 10000);
- }
- if (selection2 != null && !selection2.equals(selection1)) {
- SelectionHighlight.highlightBlock(player, bePlayer.getSelectionPoint2(), "#ffffff", "Selection Point 2", 10000);
- }
-
-
-
-
-
- });
- }
}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/paper-plugin.yml
similarity index 97%
rename from src/main/resources/plugin.yml
rename to src/main/resources/paper-plugin.yml
index 649b9d3..70a3b27 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/paper-plugin.yml
@@ -1,7 +1,7 @@
name: BlockEdit
version: ${project.version}
main: me.youhavetrouble.blockedit.BlockEdit
-api-version: 1.17
+api-version: 1.19
authors: [ YouHaveTrouble ]
description: Modern WorldEdit alternative
website: youhavetrouble.me
diff --git a/src/test/java/WorkSplitterTest.java b/src/test/java/WorkSplitterTest.java
deleted file mode 100644
index ff80b10..0000000
--- a/src/test/java/WorkSplitterTest.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import me.youhavetrouble.blockedit.WorkSplitter;
-import me.youhavetrouble.blockedit.util.ChunkWork;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-
-public class WorkSplitterTest {
-
-
-}