diff --git a/build.gradle.kts b/build.gradle.kts index 057abb8..f9f1fea 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ plugins { } group = "cn.hamster3.mc.plugin" -version = "1.1.0" +version = "1.1.1" subprojects { apply { diff --git a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/CoreBukkitUtils.java b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/CoreBukkitUtils.java index c4d4756..e070c36 100644 --- a/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/CoreBukkitUtils.java +++ b/core-bukkit/src/main/java/cn/hamster3/mc/plugin/core/bukkit/util/CoreBukkitUtils.java @@ -13,10 +13,12 @@ import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.World; import org.bukkit.block.Block; +import org.bukkit.command.CommandException; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Entity; import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.SkullMeta; @@ -382,6 +384,32 @@ public final class CoreBukkitUtils { ); } + @SuppressWarnings("CallToPrintStackTrace") + public static void executeCommand(@NotNull Player player, @NotNull String command) { + String[] split = command.split(":", 2); + try { + switch (split[0]) { + case "player": { + Bukkit.dispatchCommand(player, split[1]); + break; + } + case "console": { + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), split[1]); + break; + } + case "op": { + boolean op = player.isOp(); + player.setOp(true); + Bukkit.dispatchCommand(player, split[1]); + player.setOp(op); + break; + } + } + } catch (CommandException e) { + e.printStackTrace(); + } + } + @NotNull public static CompletableFuture getPlayerChat(HumanEntity player) { return CallbackListener.CHATS.computeIfAbsent(player.getUniqueId(), o -> new CompletableFuture<>());