From 2a03b547c7714a130b2bc1407b12a8abd58a9069 Mon Sep 17 00:00:00 2001 From: Luck Date: Sat, 3 Aug 2019 22:04:20 +0100 Subject: Some more reorganising --- .../me/lucko/spark/bukkit/BukkitSparkPlugin.java | 124 +++++++++++++++++++++ .../java/me/lucko/spark/bukkit/CommandMapUtil.java | 9 +- .../me/lucko/spark/bukkit/SparkBukkitPlugin.java | 124 --------------------- 3 files changed, 130 insertions(+), 127 deletions(-) create mode 100644 spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java delete mode 100644 spark-bukkit/src/main/java/me/lucko/spark/bukkit/SparkBukkitPlugin.java (limited to 'spark-bukkit/src/main/java/me') diff --git a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java new file mode 100644 index 0000000..5920bd5 --- /dev/null +++ b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/BukkitSparkPlugin.java @@ -0,0 +1,124 @@ +/* + * This file is part of spark. + * + * Copyright (c) lucko (Luck) + * Copyright (c) contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package me.lucko.spark.bukkit; + +import me.lucko.spark.common.SparkPlatform; +import me.lucko.spark.common.SparkPlugin; +import me.lucko.spark.common.sampler.ThreadDumper; +import me.lucko.spark.common.sampler.TickCounter; +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.plugin.java.JavaPlugin; + +import java.nio.file.Path; +import java.util.List; +import java.util.stream.Stream; + +public class BukkitSparkPlugin extends JavaPlugin implements SparkPlugin { + + private CommandExecutor tpsCommand = null; + private SparkPlatform platform; + + @Override + public void onEnable() { + this.platform = new SparkPlatform(this); + this.platform.enable(); + + // override Spigot's TPS command with our own. + if (getConfig().getBoolean("override-tps-command", true)) { + this.tpsCommand = (sender, command, label, args) -> { + if (!sender.hasPermission("spark") && !sender.hasPermission("spark.tps") && !sender.hasPermission("bukkit.command.tps")) { + sender.sendMessage(ChatColor.RED + "You do not have permission to use this command."); + return true; + } + + BukkitCommandSender s = new BukkitCommandSender(sender) { + @Override + public boolean hasPermission(String permission) { + return true; + } + }; + this.platform.executeCommand(s, new String[]{"tps"}); + return true; + }; + CommandMapUtil.registerCommand(this, this.tpsCommand, "tps"); + } + } + + @Override + public void onDisable() { + this.platform.disable(); + if (this.tpsCommand != null) { + CommandMapUtil.unregisterCommand(this.tpsCommand); + } + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + this.platform.executeCommand(new BukkitCommandSender(sender), args); + return true; + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + return this.platform.tabCompleteCommand(new BukkitCommandSender(sender), args); + } + + @Override + public String getVersion() { + return getDescription().getVersion(); + } + + @Override + public Path getPluginDirectory() { + return getDataFolder().toPath(); + } + + @Override + public String getCommandName() { + return "spark"; + } + + @Override + public Stream getSendersWithPermission(String permission) { + return Stream.concat( + getServer().getOnlinePlayers().stream().filter(player -> player.hasPermission(permission)), + Stream.of(getServer().getConsoleSender()) + ).map(BukkitCommandSender::new); + } + + @Override + public void executeAsync(Runnable task) { + getServer().getScheduler().runTaskAsynchronously(BukkitSparkPlugin.this, task); + } + + @Override + public ThreadDumper getDefaultThreadDumper() { + return new ThreadDumper.Specific(new long[]{Thread.currentThread().getId()}); + } + + @Override + public TickCounter createTickCounter() { + return new BukkitTickCounter(this); + } +} diff --git a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/CommandMapUtil.java b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/CommandMapUtil.java index 66a1568..c65bc23 100644 --- a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/CommandMapUtil.java +++ b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/CommandMapUtil.java @@ -44,7 +44,7 @@ import java.util.Map; /** * Utility for interacting with the server's {@link CommandMap} instance. */ -public final class CommandMapUtil { +final class CommandMapUtil { private static final Constructor COMMAND_CONSTRUCTOR; private static final Field COMMAND_MAP_FIELD; @@ -96,8 +96,11 @@ public final class CommandMapUtil { PluginCommand cmd = COMMAND_CONSTRUCTOR.newInstance(alias, plugin); getCommandMap().register(plugin.getDescription().getName(), cmd); - getKnownCommandMap().put(plugin.getDescription().getName().toLowerCase() + ":" + alias.toLowerCase(), cmd); - getKnownCommandMap().put(alias.toLowerCase(), cmd); + + Map knownCommandMap = getKnownCommandMap(); + knownCommandMap.put(plugin.getDescription().getName().toLowerCase() + ":" + alias.toLowerCase(), cmd); + knownCommandMap.put(alias.toLowerCase(), cmd); + cmd.setLabel(alias.toLowerCase()); cmd.setExecutor(command); diff --git a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/SparkBukkitPlugin.java b/spark-bukkit/src/main/java/me/lucko/spark/bukkit/SparkBukkitPlugin.java deleted file mode 100644 index ebcc3e8..0000000 --- a/spark-bukkit/src/main/java/me/lucko/spark/bukkit/SparkBukkitPlugin.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * This file is part of spark. - * - * Copyright (c) lucko (Luck) - * Copyright (c) contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package me.lucko.spark.bukkit; - -import me.lucko.spark.common.SparkPlatform; -import me.lucko.spark.common.SparkPlugin; -import me.lucko.spark.common.sampler.ThreadDumper; -import me.lucko.spark.common.sampler.TickCounter; -import org.bukkit.ChatColor; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.plugin.java.JavaPlugin; - -import java.nio.file.Path; -import java.util.List; -import java.util.stream.Stream; - -public class SparkBukkitPlugin extends JavaPlugin implements SparkPlugin { - - private CommandExecutor tpsCommand = null; - private SparkPlatform platform; - - @Override - public void onEnable() { - this.platform = new SparkPlatform(this); - this.platform.enable(); - - // override Spigot's TPS command with our own. - if (getConfig().getBoolean("override-tps-command", true)) { - this.tpsCommand = (sender, command, label, args) -> { - if (!sender.hasPermission("spark") && !sender.hasPermission("spark.tps") && !sender.hasPermission("bukkit.command.tps")) { - sender.sendMessage(ChatColor.RED + "You do not have permission to use this command."); - return true; - } - - BukkitCommandSender s = new BukkitCommandSender(sender) { - @Override - public boolean hasPermission(String permission) { - return true; - } - }; - this.platform.executeCommand(s, new String[]{"tps"}); - return true; - }; - CommandMapUtil.registerCommand(this, this.tpsCommand, "tps"); - } - } - - @Override - public void onDisable() { - this.platform.disable(); - if (this.tpsCommand != null) { - CommandMapUtil.unregisterCommand(this.tpsCommand); - } - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - this.platform.executeCommand(new BukkitCommandSender(sender), args); - return true; - } - - @Override - public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - return this.platform.tabCompleteCommand(new BukkitCommandSender(sender), args); - } - - @Override - public String getVersion() { - return getDescription().getVersion(); - } - - @Override - public Path getPluginFolder() { - return getDataFolder().toPath(); - } - - @Override - public String getLabel() { - return "spark"; - } - - @Override - public Stream getSendersWithPermission(String permission) { - return Stream.concat( - getServer().getOnlinePlayers().stream().filter(player -> player.hasPermission(permission)), - Stream.of(getServer().getConsoleSender()) - ).map(BukkitCommandSender::new); - } - - @Override - public void runAsync(Runnable r) { - getServer().getScheduler().runTaskAsynchronously(SparkBukkitPlugin.this, r); - } - - @Override - public ThreadDumper getDefaultThreadDumper() { - return new ThreadDumper.Specific(new long[]{Thread.currentThread().getId()}); - } - - @Override - public TickCounter createTickCounter() { - return new BukkitTickCounter(this); - } -} -- cgit