From f5c0174473da4f48293e32bb70f08d48a28558d2 Mon Sep 17 00:00:00 2001 From: dfsek Date: Tue, 9 Mar 2021 20:05:42 -0700 Subject: [PATCH] more command stuff --- .../api/command/TerraCommandManager.java | 16 +++-- .../command/exception/ExecutionException.java | 13 ++++ .../dfsek/terra/api/platform/world/World.java | 8 ++- .../dfsek/terra/api/util/ReflectionUtil.java | 8 +++ .../dfsek/terra/commands/AddonsCommand.java | 17 ++++++ .../com/dfsek/terra/commands/CommandUtil.java | 1 + .../structure/ScriptArgumentParser.java | 18 ++++++ .../commands/structure/ScriptCompleter.java | 21 +++++++ .../structure/StructureLoadCommand.java | 55 ++++++++++++++++- .../dfsek/terra/config/dummy/DummyWorld.java | 5 -- .../bukkit/command/command/AddonsCommand.java | 41 ------------- .../bukkit/command/command/ReloadCommand.java | 48 --------------- .../bukkit/command/command/TerraCommand.java | 60 ------------------- .../command/profile/ProfileCommand.java | 46 -------------- .../command/command/profile/QueryCommand.java | 46 -------------- .../command/command/profile/ResetCommand.java | 49 --------------- .../command/command/profile/StartCommand.java | 49 --------------- .../command/command/profile/StopCommand.java | 49 --------------- .../dfsek/terra/bukkit/world/BukkitWorld.java | 5 -- .../fabric/world/handles/FabricWorld.java | 5 -- .../world/FabricSeededWorldAccess.java | 5 -- .../handles/world/FabricWorldAccess.java | 5 -- .../com/dfsek/terra/platform/DirectWorld.java | 5 -- 23 files changed, 151 insertions(+), 424 deletions(-) create mode 100644 common/src/main/java/com/dfsek/terra/api/command/exception/ExecutionException.java create mode 100644 common/src/main/java/com/dfsek/terra/commands/AddonsCommand.java create mode 100644 common/src/main/java/com/dfsek/terra/commands/structure/ScriptArgumentParser.java create mode 100644 common/src/main/java/com/dfsek/terra/commands/structure/ScriptCompleter.java delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/AddonsCommand.java delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/ReloadCommand.java delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/TerraCommand.java delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/ProfileCommand.java delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/QueryCommand.java delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/ResetCommand.java delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/StartCommand.java delete mode 100644 platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/StopCommand.java diff --git a/common/src/main/java/com/dfsek/terra/api/command/TerraCommandManager.java b/common/src/main/java/com/dfsek/terra/api/command/TerraCommandManager.java index bc729e041..14bfb52c5 100644 --- a/common/src/main/java/com/dfsek/terra/api/command/TerraCommandManager.java +++ b/common/src/main/java/com/dfsek/terra/api/command/TerraCommandManager.java @@ -12,9 +12,11 @@ import com.dfsek.terra.api.command.annotation.type.PlayerCommand; import com.dfsek.terra.api.command.annotation.type.WorldCommand; import com.dfsek.terra.api.command.arg.ArgumentParser; import com.dfsek.terra.api.command.exception.CommandException; +import com.dfsek.terra.api.command.exception.ExecutionException; import com.dfsek.terra.api.command.exception.InvalidArgumentsException; import com.dfsek.terra.api.command.exception.MalformedCommandException; import com.dfsek.terra.api.command.exception.SwitchFormatException; +import com.dfsek.terra.api.command.tab.TabCompleter; import com.dfsek.terra.api.injection.Injector; import com.dfsek.terra.api.injection.exception.InjectionException; import com.dfsek.terra.api.platform.CommandSender; @@ -128,7 +130,7 @@ public class TerraCommandManager implements CommandManager { invoke(commandClass, state, commandHolder); } - private void invoke(Class clazz, ExecutionState state, CommandHolder holder) throws MalformedCommandException { + private void invoke(Class clazz, ExecutionState state, CommandHolder holder) throws CommandException { try { CommandTemplate template = clazz.getConstructor().newInstance(); @@ -166,7 +168,11 @@ public class TerraCommandManager implements CommandManager { } } - template.execute(state.getSender()); + try { + template.execute(state.getSender()); + } catch(Throwable e) { + throw new ExecutionException("Failed to execute command: ", e); + } } catch(InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException | InjectionException e) { throw new MalformedCommandException("Unable to reflectively instantiate command: ", e); } @@ -216,9 +222,11 @@ public class TerraCommandManager implements CommandManager { } try { if(args.size() <= holder.arguments.size()) { - completions.addAll(holder.arguments.get(args.size() - 1).tabCompleter().getConstructor().newInstance().complete(sender)); + TabCompleter completer = holder.arguments.get(args.size() - 1).tabCompleter().getConstructor().newInstance(); + pluginInjector.inject(completer); + completions.addAll(completer.complete(sender)); } - } catch(InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { + } catch(InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException | InjectionException e) { throw new MalformedCommandException("Unable to reflectively instantiate tab-completer: ", e); } return completions; diff --git a/common/src/main/java/com/dfsek/terra/api/command/exception/ExecutionException.java b/common/src/main/java/com/dfsek/terra/api/command/exception/ExecutionException.java new file mode 100644 index 000000000..061bfc64b --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/api/command/exception/ExecutionException.java @@ -0,0 +1,13 @@ +package com.dfsek.terra.api.command.exception; + +public class ExecutionException extends CommandException { + private static final long serialVersionUID = -6345523475880607959L; + + public ExecutionException(String message) { + super(message); + } + + public ExecutionException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/common/src/main/java/com/dfsek/terra/api/platform/world/World.java b/common/src/main/java/com/dfsek/terra/api/platform/world/World.java index 3a96ba1c5..1dbcd85a6 100644 --- a/common/src/main/java/com/dfsek/terra/api/platform/world/World.java +++ b/common/src/main/java/com/dfsek/terra/api/platform/world/World.java @@ -25,11 +25,17 @@ public interface World extends Handle { Chunk getChunkAt(int x, int z); + default Chunk getChunkAt(Location location) { + return getChunkAt(location.getBlockX() >> 4, location.getBlockZ() >> 4); + } + File getWorldFolder(); Block getBlockAt(int x, int y, int z); - Block getBlockAt(Location l); + default Block getBlockAt(Location l) { + return getBlockAt(l.getBlockX(), l.getBlockY(), l.getBlockZ()); + } Entity spawnEntity(Location location, EntityType entityType); diff --git a/common/src/main/java/com/dfsek/terra/api/util/ReflectionUtil.java b/common/src/main/java/com/dfsek/terra/api/util/ReflectionUtil.java index 74ee5fecd..34c70dae9 100644 --- a/common/src/main/java/com/dfsek/terra/api/util/ReflectionUtil.java +++ b/common/src/main/java/com/dfsek/terra/api/util/ReflectionUtil.java @@ -2,9 +2,12 @@ package com.dfsek.terra.api.util; import org.jetbrains.annotations.NotNull; +import java.lang.annotation.Annotation; +import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Arrays; +import java.util.function.Consumer; import java.util.stream.Stream; public class ReflectionUtil { @@ -25,4 +28,9 @@ public class ReflectionUtil { } return result; } + + public static void ifAnnotationPresent(AnnotatedElement element, Class annotation, Consumer operation) { + T a = element.getAnnotation(annotation); + if(a != null) operation.accept(a); + } } diff --git a/common/src/main/java/com/dfsek/terra/commands/AddonsCommand.java b/common/src/main/java/com/dfsek/terra/commands/AddonsCommand.java new file mode 100644 index 000000000..26a69caf6 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/commands/AddonsCommand.java @@ -0,0 +1,17 @@ +package com.dfsek.terra.commands; + +import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.command.CommandTemplate; +import com.dfsek.terra.api.injection.annotations.Inject; +import com.dfsek.terra.api.platform.CommandSender; + +public class AddonsCommand implements CommandTemplate { + @Inject + private TerraPlugin main; + + @Override + public void execute(CommandSender sender) { + sender.sendMessage("Installed Addons:"); + main.getAddons().forEach(addon -> sender.sendMessage(" - " + addon.getName() + " v" + addon.getVersion() + " by " + addon.getAuthor())); + } +} diff --git a/common/src/main/java/com/dfsek/terra/commands/CommandUtil.java b/common/src/main/java/com/dfsek/terra/commands/CommandUtil.java index 7da197051..c6157d439 100644 --- a/common/src/main/java/com/dfsek/terra/commands/CommandUtil.java +++ b/common/src/main/java/com/dfsek/terra/commands/CommandUtil.java @@ -9,5 +9,6 @@ public final class CommandUtil { manager.register("structure", StructureCommand.class); manager.register("profile", ProfileCommand.class); manager.register("reload", ReloadCommand.class); + manager.register("addons", AddonsCommand.class); } } diff --git a/common/src/main/java/com/dfsek/terra/commands/structure/ScriptArgumentParser.java b/common/src/main/java/com/dfsek/terra/commands/structure/ScriptArgumentParser.java new file mode 100644 index 000000000..3c34c74af --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/commands/structure/ScriptArgumentParser.java @@ -0,0 +1,18 @@ +package com.dfsek.terra.commands.structure; + +import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.command.arg.ArgumentParser; +import com.dfsek.terra.api.injection.annotations.Inject; +import com.dfsek.terra.api.platform.CommandSender; +import com.dfsek.terra.api.platform.entity.Player; +import com.dfsek.terra.api.structures.script.StructureScript; + +public class ScriptArgumentParser implements ArgumentParser { + @Inject + private TerraPlugin main; + + @Override + public StructureScript parse(CommandSender sender, String arg) { + return main.getWorld(((Player) sender).getWorld()).getConfig().getScriptRegistry().get(arg); + } +} diff --git a/common/src/main/java/com/dfsek/terra/commands/structure/ScriptCompleter.java b/common/src/main/java/com/dfsek/terra/commands/structure/ScriptCompleter.java new file mode 100644 index 000000000..c650ef685 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/commands/structure/ScriptCompleter.java @@ -0,0 +1,21 @@ +package com.dfsek.terra.commands.structure; + +import com.dfsek.terra.api.TerraPlugin; +import com.dfsek.terra.api.command.tab.TabCompleter; +import com.dfsek.terra.api.injection.annotations.Inject; +import com.dfsek.terra.api.platform.CommandSender; +import com.dfsek.terra.api.platform.entity.Player; +import com.dfsek.terra.api.structures.script.StructureScript; + +import java.util.List; +import java.util.stream.Collectors; + +public class ScriptCompleter implements TabCompleter { + @Inject + private TerraPlugin main; + + @Override + public List complete(CommandSender sender) { + return main.getWorld(((Player) sender).getWorld()).getConfig().getScriptRegistry().entries().stream().map(StructureScript::getId).collect(Collectors.toList()); + } +} diff --git a/common/src/main/java/com/dfsek/terra/commands/structure/StructureLoadCommand.java b/common/src/main/java/com/dfsek/terra/commands/structure/StructureLoadCommand.java index 3f8382588..b395b50b8 100644 --- a/common/src/main/java/com/dfsek/terra/commands/structure/StructureLoadCommand.java +++ b/common/src/main/java/com/dfsek/terra/commands/structure/StructureLoadCommand.java @@ -1,15 +1,35 @@ package com.dfsek.terra.commands.structure; +import com.dfsek.terra.api.TerraPlugin; import com.dfsek.terra.api.command.CommandTemplate; import com.dfsek.terra.api.command.annotation.Argument; import com.dfsek.terra.api.command.annotation.Command; import com.dfsek.terra.api.command.annotation.Switch; import com.dfsek.terra.api.command.annotation.inject.ArgumentTarget; +import com.dfsek.terra.api.command.annotation.inject.SwitchTarget; +import com.dfsek.terra.api.command.annotation.type.DebugCommand; +import com.dfsek.terra.api.command.annotation.type.PlayerCommand; +import com.dfsek.terra.api.command.annotation.type.WorldCommand; import com.dfsek.terra.api.command.arg.IntegerArgumentParser; +import com.dfsek.terra.api.injection.annotations.Inject; import com.dfsek.terra.api.platform.CommandSender; +import com.dfsek.terra.api.platform.entity.Player; +import com.dfsek.terra.api.structures.script.StructureScript; +import com.dfsek.terra.api.structures.structure.Rotation; +import com.dfsek.terra.api.util.FastRandom; +import java.util.concurrent.ThreadLocalRandom; + +@PlayerCommand +@DebugCommand +@WorldCommand @Command( arguments = { + @Argument( + value = "structure", + tabCompleter = ScriptCompleter.class, + argumentParser = ScriptArgumentParser.class + ), @Argument( value = "rotation", required = false, @@ -25,10 +45,43 @@ import com.dfsek.terra.api.platform.CommandSender; ) public class StructureLoadCommand implements CommandTemplate { @ArgumentTarget("rotation") - private Integer rotation; + private Integer rotation = 0; + + @SwitchTarget("chunk") + private boolean chunk; + + @ArgumentTarget("structure") + private StructureScript script; + + @Inject + private TerraPlugin main; @Override public void execute(CommandSender sender) { System.out.println(rotation); + + Player player = (Player) sender; + + long t = System.nanoTime(); + FastRandom random = new FastRandom(ThreadLocalRandom.current().nextLong()); + Rotation r; + try { + r = Rotation.fromDegrees(rotation); + } catch(Exception e) { + sender.sendMessage("Invalid rotation: " + rotation); + return; + } + if(script == null) { + sender.sendMessage("Invalid structure."); + return; + } + if(this.chunk) { + script.execute(player.getLocation(), player.getWorld().getChunkAt(player.getLocation()), random, r); + } else { + script.execute(player.getLocation(), random, r); + } + long l = System.nanoTime() - t; + + sender.sendMessage("Took " + ((double) l) / 1000000 + "ms"); } } diff --git a/common/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java b/common/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java index a71cb0867..06cd712fc 100644 --- a/common/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java +++ b/common/src/main/java/com/dfsek/terra/config/dummy/DummyWorld.java @@ -63,11 +63,6 @@ public class DummyWorld implements World { throw new UnsupportedOperationException("Cannot get block in DummyWorld"); } - @Override - public Block getBlockAt(Location l) { - throw new UnsupportedOperationException("Cannot get block in DummyWorld"); - } - @Override public Entity spawnEntity(Location location, EntityType entityType) { throw new UnsupportedOperationException("Cannot spawn entity in DummyWorld"); diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/AddonsCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/AddonsCommand.java deleted file mode 100644 index c7dba7e80..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/AddonsCommand.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.dfsek.terra.bukkit.command.command; - -import com.dfsek.terra.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; - -import java.util.Collections; -import java.util.List; - -public class AddonsCommand extends Command { - public AddonsCommand(Command parent) { - super(parent); - } - - @Override - public String getName() { - return "addons"; - } - - @Override - public List getSubCommands() { - return Collections.emptyList(); - } - - @Override - public boolean execute(@NotNull CommandSender sender, org.bukkit.command.@NotNull Command command, @NotNull String label, @NotNull String[] args) { - sender.sendMessage("Installed Addons:"); - getMain().getAddons().forEach(addon -> sender.sendMessage(" - " + addon.getName() + " v" + addon.getVersion() + " by " + addon.getAuthor())); - return true; - } - - @Override - public int arguments() { - return 0; - } - - @Override - public List getTabCompletions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) { - return Collections.emptyList(); - } -} diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/ReloadCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/ReloadCommand.java deleted file mode 100644 index 50e6a2cc9..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/ReloadCommand.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.dfsek.terra.bukkit.command.command; - - -import com.dfsek.terra.bukkit.BukkitCommandSender; -import com.dfsek.terra.bukkit.command.Command; -import com.dfsek.terra.bukkit.command.DebugCommand; -import com.dfsek.terra.config.lang.LangUtil; -import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; - -import java.util.Collections; -import java.util.List; - -public class ReloadCommand extends Command implements DebugCommand { - public ReloadCommand(Command parent) { - super(parent); - } - - @Override - public String getName() { - return "reload"; - } - - @Override - public List getSubCommands() { - return Collections.emptyList(); - } - - @Override - public boolean execute(@NotNull CommandSender sender, org.bukkit.command.@NotNull Command command, @NotNull String label, @NotNull String[] args) { - if(!getMain().reload()) { - LangUtil.send("command.reload-error", new BukkitCommandSender(sender)); - return true; - } - LangUtil.send("command.reload", new BukkitCommandSender(sender)); - return true; - } - - @Override - public int arguments() { - return 0; - } - - @Override - public List getTabCompletions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) { - return Collections.emptyList(); - } -} diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/TerraCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/TerraCommand.java deleted file mode 100644 index 639a63345..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/TerraCommand.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.dfsek.terra.bukkit.command.command; - -import com.dfsek.terra.api.TerraPlugin; -import com.dfsek.terra.bukkit.BukkitCommandSender; -import com.dfsek.terra.bukkit.command.Command; -import com.dfsek.terra.bukkit.command.command.biome.BiomeCommand; -import com.dfsek.terra.bukkit.command.command.geometry.GeometryCommand; -import com.dfsek.terra.bukkit.command.command.profile.ProfileCommand; -import com.dfsek.terra.bukkit.command.command.structure.StructureCommand; -import com.dfsek.terra.config.lang.LangUtil; -import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -public class TerraCommand extends Command { - private final List commands = Arrays.asList(new ReloadCommand(this), - new BiomeCommand(this), - new ProfileCommand(this), - new SaveDataCommand(this), - new StructureCommand(this), - new GeometryCommand(this), - new FixChunkCommand(this), - new VersionCommand(this), - new GetBlockCommand(this), - new PacksCommand(this), - new AddonsCommand(this)); - - public TerraCommand(TerraPlugin main) { - super(main); - } - - @Override - public String getName() { - return "terra"; - } - - @Override - public List getSubCommands() { - return commands; - } - - @Override - public boolean execute(@NotNull CommandSender sender, org.bukkit.command.@NotNull Command command, @NotNull String label, @NotNull String[] args) { - LangUtil.send("command.main-menu", new BukkitCommandSender(sender)); - return true; - } - - @Override - public int arguments() { - return 0; - } - - @Override - public List getTabCompletions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) { - return Collections.emptyList(); - } -} diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/ProfileCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/ProfileCommand.java deleted file mode 100644 index 5eb4b4ec1..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/ProfileCommand.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.dfsek.terra.bukkit.command.command.profile; - -import com.dfsek.terra.bukkit.BukkitCommandSender; -import com.dfsek.terra.bukkit.command.WorldCommand; -import com.dfsek.terra.config.lang.LangUtil; -import org.bukkit.World; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -public class ProfileCommand extends WorldCommand { - public ProfileCommand(com.dfsek.terra.bukkit.command.Command parent) { - super(parent); - } - - @Override - public boolean execute(@NotNull Player sender, @NotNull Command command, @NotNull String label, @NotNull String[] args, World w) { - LangUtil.send("command.profile.main-menu", new BukkitCommandSender(sender)); - return true; - } - - @Override - public String getName() { - return "profile"; - } - - @Override - public List getSubCommands() { - return Arrays.asList(new QueryCommand(this), new ResetCommand(this), new StartCommand(this), new StopCommand(this)); - } - - @Override - public int arguments() { - return 1; - } - - @Override - public List getTabCompletions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) { - return Collections.emptyList(); - } -} diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/QueryCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/QueryCommand.java deleted file mode 100644 index b958b83cb..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/QueryCommand.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.dfsek.terra.bukkit.command.command.profile; - -import com.dfsek.terra.bukkit.command.WorldCommand; -import com.dfsek.terra.bukkit.world.BukkitAdapter; -import com.dfsek.terra.profiler.WorldProfiler; -import org.bukkit.World; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.Collections; -import java.util.List; - -public class QueryCommand extends WorldCommand { - public QueryCommand(com.dfsek.terra.bukkit.command.Command parent) { - super(parent); - } - - @Override - public boolean execute(@NotNull Player sender, @NotNull Command command, @NotNull String label, @NotNull String[] args, World world) { - WorldProfiler profile = getMain().getWorld(BukkitAdapter.adapt(world)).getProfiler(); - sender.sendMessage(profile.getResultsFormatted()); - return true; - } - - @Override - public String getName() { - return "query"; - } - - @Override - public List getSubCommands() { - return Collections.emptyList(); - } - - @Override - public int arguments() { - return 0; - } - - @Override - public List getTabCompletions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) { - return Collections.emptyList(); - } -} diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/ResetCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/ResetCommand.java deleted file mode 100644 index 958b48eb4..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/ResetCommand.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.dfsek.terra.bukkit.command.command.profile; - -import com.dfsek.terra.bukkit.BukkitCommandSender; -import com.dfsek.terra.bukkit.command.WorldCommand; -import com.dfsek.terra.bukkit.world.BukkitAdapter; -import com.dfsek.terra.config.lang.LangUtil; -import com.dfsek.terra.profiler.WorldProfiler; -import org.bukkit.World; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.Collections; -import java.util.List; - -public class ResetCommand extends WorldCommand { - public ResetCommand(com.dfsek.terra.bukkit.command.Command parent) { - super(parent); - } - - @Override - public boolean execute(@NotNull Player sender, @NotNull Command command, @NotNull String label, @NotNull String[] args, World world) { - WorldProfiler profile = getMain().getWorld(BukkitAdapter.adapt(world)).getProfiler(); - profile.reset(); - LangUtil.send("command.profile.reset", new BukkitCommandSender(sender)); - return true; - } - - @Override - public String getName() { - return "reset"; - } - - @Override - public List getSubCommands() { - return Collections.emptyList(); - } - - @Override - public int arguments() { - return 0; - } - - @Override - public List getTabCompletions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) { - return Collections.emptyList(); - } -} diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/StartCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/StartCommand.java deleted file mode 100644 index bdd5055d4..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/StartCommand.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.dfsek.terra.bukkit.command.command.profile; - -import com.dfsek.terra.bukkit.BukkitCommandSender; -import com.dfsek.terra.bukkit.command.WorldCommand; -import com.dfsek.terra.bukkit.world.BukkitAdapter; -import com.dfsek.terra.config.lang.LangUtil; -import com.dfsek.terra.profiler.WorldProfiler; -import org.bukkit.World; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.Collections; -import java.util.List; - -public class StartCommand extends WorldCommand { - public StartCommand(com.dfsek.terra.bukkit.command.Command parent) { - super(parent); - } - - @Override - public boolean execute(@NotNull Player sender, @NotNull Command command, @NotNull String label, @NotNull String[] args, World world) { - WorldProfiler profile = getMain().getWorld(BukkitAdapter.adapt(world)).getProfiler(); - profile.setProfiling(true); - LangUtil.send("command.profile.start", new BukkitCommandSender(sender)); - return true; - } - - @Override - public String getName() { - return "start"; - } - - @Override - public List getSubCommands() { - return Collections.emptyList(); - } - - @Override - public int arguments() { - return 0; - } - - @Override - public List getTabCompletions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) { - return Collections.emptyList(); - } -} diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/StopCommand.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/StopCommand.java deleted file mode 100644 index 322cff032..000000000 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/command/command/profile/StopCommand.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.dfsek.terra.bukkit.command.command.profile; - -import com.dfsek.terra.bukkit.BukkitCommandSender; -import com.dfsek.terra.bukkit.command.WorldCommand; -import com.dfsek.terra.bukkit.world.BukkitAdapter; -import com.dfsek.terra.config.lang.LangUtil; -import com.dfsek.terra.profiler.WorldProfiler; -import org.bukkit.World; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; - -import java.util.Collections; -import java.util.List; - -public class StopCommand extends WorldCommand { - public StopCommand(com.dfsek.terra.bukkit.command.Command parent) { - super(parent); - } - - @Override - public boolean execute(@NotNull Player sender, @NotNull Command command, @NotNull String label, @NotNull String[] args, World world) { - WorldProfiler profile = getMain().getWorld(BukkitAdapter.adapt(world)).getProfiler(); - profile.setProfiling(false); - LangUtil.send("command.profile.stop", new BukkitCommandSender(sender)); - return true; - } - - @Override - public String getName() { - return "stop"; - } - - @Override - public List getSubCommands() { - return Collections.emptyList(); - } - - @Override - public int arguments() { - return 0; - } - - @Override - public List getTabCompletions(@NotNull CommandSender sender, @NotNull String alias, @NotNull String[] args) { - return Collections.emptyList(); - } -} diff --git a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java index 05a9fd982..294314cbf 100644 --- a/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java +++ b/platforms/bukkit/src/main/java/com/dfsek/terra/bukkit/world/BukkitWorld.java @@ -67,11 +67,6 @@ public class BukkitWorld implements World { return new BukkitBlock(delegate.getBlockAt(x, y, z)); } - @Override - public Block getBlockAt(Location l) { - return new BukkitBlock(delegate.getBlockAt(l.getBlockX(), l.getBlockY(), l.getBlockZ())); - } - @Override public Entity spawnEntity(Location location, EntityType entityType) { return new BukkitEntity(delegate.spawnEntity(BukkitAdapter.adapt(location), ((BukkitEntityType) entityType).getHandle())); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/FabricWorld.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/FabricWorld.java index 840559c83..097ddfcb1 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/FabricWorld.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/FabricWorld.java @@ -85,11 +85,6 @@ public class FabricWorld implements World, FabricWorldHandle { return ((ServerWorldAccess) ((FabricWorld) obj).delegate.world).toServerWorld().equals(((ServerWorldAccess) delegate.world).toServerWorld()); } - @Override - public Block getBlockAt(Location l) { - return getBlockAt(l.getBlockX(), l.getBlockY(), l.getBlockZ()); - } - @Override public Entity spawnEntity(Location location, EntityType entityType) { net.minecraft.entity.Entity entity = FabricAdapter.adapt(entityType).create(delegate.world); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/world/FabricSeededWorldAccess.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/world/FabricSeededWorldAccess.java index 3db150d99..05b1dbb1e 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/world/FabricSeededWorldAccess.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/world/FabricSeededWorldAccess.java @@ -73,11 +73,6 @@ public class FabricSeededWorldAccess implements World, FabricWorldHandle { return new FabricBlock(pos, handle.worldAccess); } - @Override - public Block getBlockAt(Location l) { - return getBlockAt(l.getBlockX(), l.getBlockY(), l.getBlockZ()); - } - @Override public Entity spawnEntity(Location location, EntityType entityType) { net.minecraft.entity.Entity entity = FabricAdapter.adapt(entityType).create((ServerWorld) handle.worldAccess); diff --git a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/world/FabricWorldAccess.java b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/world/FabricWorldAccess.java index 3bf422496..a8dfe28b1 100644 --- a/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/world/FabricWorldAccess.java +++ b/platforms/fabric/src/main/java/com/dfsek/terra/fabric/world/handles/world/FabricWorldAccess.java @@ -72,11 +72,6 @@ public class FabricWorldAccess implements World, FabricWorldHandle { return new FabricBlock(pos, delegate); } - @Override - public Block getBlockAt(Location l) { - return getBlockAt(l.getBlockX(), l.getBlockY(), l.getBlockZ()); - } - @Override public Entity spawnEntity(Location location, EntityType entityType) { net.minecraft.entity.Entity entity = FabricAdapter.adapt(entityType).create(((ServerWorldAccess) delegate).toServerWorld()); diff --git a/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java b/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java index 1fce4cd70..3aacfabb9 100644 --- a/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java +++ b/platforms/region/src/main/java/com/dfsek/terra/platform/DirectWorld.java @@ -82,11 +82,6 @@ public class DirectWorld implements World { return new DirectBlock(this, new Vector3(x, y, z)); } - @Override - public Block getBlockAt(Location l) { - return getBlockAt(l.getBlockX(), l.getBlockY(), l.getBlockZ()); - } - @Override public Entity spawnEntity(Location location, EntityType entityType) { return null;