diff --git a/build.gradle.kts b/build.gradle.kts index 65747668..5bf148f4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ import java.text.SimpleDateFormat -version = "1.10.5-dev4" +version = "1.10.5-dev5" plugins { `java-library` @@ -31,7 +31,7 @@ repositories { dependencies { compileOnly("org.jetbrains:annotations:24.0.1") - compileOnly("io.papermc.paper:paper-api:1.20.6-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") compileOnly("pers.neige.neigeitems:NeigeItems:1.15.113") compileOnly("net.kyori:adventure-api:4.14.0") compileOnly("org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT") @@ -45,14 +45,16 @@ dependencies { compileOnly("io.lumine:MythicLib-dist:1.6.2-SNAPSHOT") compileOnly("net.Indyuce:MMOItems-API:6.9.5-SNAPSHOT") compileOnly("com.willfp:EcoEnchants:12.5.1") - implementation("com.crypticlib:CrypticLib:0.18.3") -// implementation("de.tr7zw:item-nbt-api:2.12.4") + implementation("com.crypticlib:bukkit:${rootProject.findProperty("crypticlibVer")}") + implementation("com.crypticlib:bukkit-ui:${rootProject.findProperty("crypticlibVer")}") + implementation("com.crypticlib:bukkit-i18n:${rootProject.findProperty("crypticlibVer")}") + implementation("com.crypticlib:bukkit-conversation:${rootProject.findProperty("crypticlibVer")}") } group = "com.github.yufiriamazenta" var pluginVersion: String = version.toString() + "-" + SimpleDateFormat("yyyyMMdd").format(System.currentTimeMillis()) -java.sourceCompatibility = JavaVersion.VERSION_21 -java.targetCompatibility = JavaVersion.VERSION_21 +java.sourceCompatibility = JavaVersion.VERSION_17 +java.targetCompatibility = JavaVersion.VERSION_17 publishing { publications.create("maven") { diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..2503b4ca --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +crypticlibVer=1.0.11 \ No newline at end of file diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/Craftorithm.java b/src/main/java/com/github/yufiriamazenta/craftorithm/Craftorithm.java index 9eadc9aa..8201dc72 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/Craftorithm.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/Craftorithm.java @@ -14,6 +14,9 @@ import com.github.yufiriamazenta.craftorithm.util.UpdateUtil; import crypticlib.BukkitPlugin; import crypticlib.CrypticLib; +import crypticlib.CrypticLibBukkit; +import crypticlib.MinecraftVersion; +import crypticlib.chat.BukkitMsgSender; import crypticlib.chat.MsgSender; import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; @@ -31,9 +34,9 @@ public Craftorithm() { @Override public void enable() { - if (CrypticLib.minecraftVersion() < 12005) { - MsgSender.info("&c[Craftorithm] Plugins can only be loaded in versions 1.20.5 and above"); - throw new UnsupportedVersionException(); + if (MinecraftVersion.current().before(MinecraftVersion.V1_19_4)) { + BukkitMsgSender.INSTANCE.info(Languages.UNSUPPORTED_VERSION.value()); + throw new UnsupportedVersionException(Languages.UNSUPPORTED_VERSION.value()); } ItemManager.INSTANCE.loadItemManager(); regListeners(); diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/ArcencielDispatcher.java b/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/ArcencielDispatcher.java index 13abea91..3cac0ee4 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/ArcencielDispatcher.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/ArcencielDispatcher.java @@ -7,6 +7,7 @@ import com.github.yufiriamazenta.craftorithm.arcenciel.obj.ReturnObj; import com.github.yufiriamazenta.craftorithm.arcenciel.token.*; import com.github.yufiriamazenta.craftorithm.util.PluginHookUtil; +import crypticlib.config.BukkitConfigWrapper; import crypticlib.config.ConfigWrapper; import org.bukkit.entity.Player; @@ -15,7 +16,7 @@ public enum ArcencielDispatcher implements IArcencielDispatcher { INSTANCE; - private ConfigWrapper functionFile; + private BukkitConfigWrapper functionFile; ArcencielDispatcher() { regDefScriptKeyword(); @@ -75,7 +76,7 @@ public List getFunc(String funcName) { public void loadFuncFile() { if (functionFile == null) - functionFile = new ConfigWrapper(Craftorithm.instance(), "function.yml"); + functionFile = new BukkitConfigWrapper(Craftorithm.instance(), "function.yml"); } } diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenConsole.java b/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenConsole.java index 3fbee399..dfa45645 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenConsole.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenConsole.java @@ -2,7 +2,7 @@ import com.github.yufiriamazenta.craftorithm.arcenciel.obj.ReturnObj; import com.github.yufiriamazenta.craftorithm.util.CollectionsUtil; -import crypticlib.chat.TextProcessor; +import crypticlib.chat.BukkitTextProcessor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -18,7 +18,7 @@ protected TokenConsole() { @Override public ReturnObj exec(Player player, List args) { - String command = TextProcessor.placeholder(player, CollectionsUtil.list2ArcencielBlock(args)); + String command = BukkitTextProcessor.placeholder(player, CollectionsUtil.list2ArcencielBlock(args)); return new ReturnObj<>(Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command)); } diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenPapi.java b/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenPapi.java index ef0d1b5f..a4afea8c 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenPapi.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenPapi.java @@ -3,7 +3,7 @@ import com.github.yufiriamazenta.craftorithm.arcenciel.obj.ReturnObj; import com.github.yufiriamazenta.craftorithm.util.CollectionsUtil; import com.github.yufiriamazenta.craftorithm.util.ScriptValueUtil; -import crypticlib.chat.TextProcessor; +import crypticlib.chat.BukkitTextProcessor; import org.bukkit.entity.Player; import java.util.List; @@ -21,14 +21,14 @@ public ReturnObj exec(Player player, List args) { String papiStr; if (args.size() > 2) { papiStr = args.get(0); - papiStr = TextProcessor.placeholder(player, papiStr); + papiStr = BukkitTextProcessor.placeholder(player, papiStr); String operator = args.get(1); String valueStr = CollectionsUtil.list2ArcencielBlock(args.subList(2, args.size())); return new ReturnObj<>(ScriptValueUtil.compare(papiStr, valueStr, operator)); } else { papiStr = CollectionsUtil.list2ArcencielBlock(args); - papiStr = TextProcessor.placeholder(player, papiStr); - return new ReturnObj<>(Boolean.parseBoolean(TextProcessor.placeholder(player, papiStr))); + papiStr = BukkitTextProcessor.placeholder(player, papiStr); + return new ReturnObj<>(Boolean.parseBoolean(BukkitTextProcessor.placeholder(player, papiStr))); } } diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenRunCmd.java b/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenRunCmd.java index 1ca400ff..1acfc9e8 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenRunCmd.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/arcenciel/token/TokenRunCmd.java @@ -2,7 +2,7 @@ import com.github.yufiriamazenta.craftorithm.arcenciel.obj.ReturnObj; import com.github.yufiriamazenta.craftorithm.util.CollectionsUtil; -import crypticlib.chat.TextProcessor; +import crypticlib.chat.BukkitTextProcessor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -18,7 +18,7 @@ protected TokenRunCmd() { @Override public ReturnObj exec(Player player, List args) { - String command = TextProcessor.placeholder(player, CollectionsUtil.list2ArcencielBlock(args)); + String command = BukkitTextProcessor.placeholder(player, CollectionsUtil.list2ArcencielBlock(args)); return new ReturnObj<>(Bukkit.dispatchCommand(player, command)); } } diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/bstat/Metrics.java b/src/main/java/com/github/yufiriamazenta/craftorithm/bstat/Metrics.java index 58ddf69e..0dc81fe4 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/bstat/Metrics.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/bstat/Metrics.java @@ -1,6 +1,7 @@ package com.github.yufiriamazenta.craftorithm.bstat; import crypticlib.CrypticLib; +import crypticlib.CrypticLibBukkit; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; @@ -78,7 +79,7 @@ public Metrics(JavaPlugin plugin, int serviceId) { enabled, this::appendPlatformData, this::appendServiceData, - submitDataTask -> CrypticLib.platform().scheduler().runTask(plugin, submitDataTask), + submitDataTask -> CrypticLibBukkit.scheduler().runTask(plugin, submitDataTask), plugin::isEnabled, (message, error) -> this.plugin.getLogger().log(Level.WARNING, message, error), (message) -> this.plugin.getLogger().log(Level.INFO, message), diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/CraftorithmCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/CraftorithmCommand.java new file mode 100644 index 00000000..4e20b419 --- /dev/null +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/CraftorithmCommand.java @@ -0,0 +1,61 @@ +package com.github.yufiriamazenta.craftorithm.cmd; + +import com.github.yufiriamazenta.craftorithm.cmd.sub.ReloadCommand; +import com.github.yufiriamazenta.craftorithm.cmd.sub.RunArcencielCmd; +import com.github.yufiriamazenta.craftorithm.cmd.sub.VersionCommand; +import com.github.yufiriamazenta.craftorithm.cmd.sub.item.ItemCommand; +import com.github.yufiriamazenta.craftorithm.cmd.sub.recipe.*; +import com.github.yufiriamazenta.craftorithm.config.Languages; +import com.github.yufiriamazenta.craftorithm.util.LangUtil; +import crypticlib.command.BukkitCommand; +import crypticlib.command.CommandInfo; +import crypticlib.command.annotation.Command; +import crypticlib.command.annotation.Subcommand; +import crypticlib.perm.PermInfo; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +@Command +public class CraftorithmCommand extends BukkitCommand { + + public static CraftorithmCommand INSTANCE = new CraftorithmCommand(); + + CraftorithmCommand() { + super(new CommandInfo("craftorithm", new PermInfo("craftorithm.command"), new String[]{"craft", "cra", "crafto"})); + } + + @Override + public void execute(@NotNull CommandSender sender, @NotNull List args) { + LangUtil.sendLang(sender, Languages.COMMAND_UNDEFINED_SUBCMD); + } + + @Subcommand + ReloadCommand reload = ReloadCommand.INSTANCE; + + @Subcommand + VersionCommand version = VersionCommand.INSTANCE; + + @Subcommand + RemoveRecipeCommand remove = RemoveRecipeCommand.INSTANCE; + + @Subcommand + ItemCommand item = ItemCommand.INSTANCE; + + @Subcommand + RunArcencielCmd runArcenciel = RunArcencielCmd.INSTANCE; + + @Subcommand + DisplayRecipeCommand display = DisplayRecipeCommand.INSTANCE; + + @Subcommand + DisableRecipeCommand disable = DisableRecipeCommand.INSTANCE; + + @Subcommand + RecipeListCommand recipeList = RecipeListCommand.INSTANCE; + + @Subcommand + CreateRecipeCommand create = CreateRecipeCommand.INSTANCE; + +} diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/PluginCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/PluginCommand.java deleted file mode 100644 index a6c84940..00000000 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/PluginCommand.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.github.yufiriamazenta.craftorithm.cmd; - -import com.github.yufiriamazenta.craftorithm.cmd.sub.ReloadCommand; -import com.github.yufiriamazenta.craftorithm.cmd.sub.RunArcencielCmd; -import com.github.yufiriamazenta.craftorithm.cmd.sub.VersionCommand; -import com.github.yufiriamazenta.craftorithm.cmd.sub.item.ItemCommand; -import com.github.yufiriamazenta.craftorithm.cmd.sub.recipe.*; -import com.github.yufiriamazenta.craftorithm.config.Languages; -import com.github.yufiriamazenta.craftorithm.util.CollectionsUtil; -import com.github.yufiriamazenta.craftorithm.util.LangUtil; -import crypticlib.command.CommandHandler; -import crypticlib.command.CommandInfo; -import crypticlib.command.SubcommandHandler; -import crypticlib.perm.PermInfo; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.jetbrains.annotations.NotNull; - -import java.util.Arrays; -import java.util.List; - -@crypticlib.command.annotation.Command -public class PluginCommand extends CommandHandler { - - PluginCommand() { - super(new CommandInfo("craftorithm", new PermInfo("craftorithm.command"), new String[]{"craft", "cra", "crafto"})); - regDefaultSubCommands(); - } - - @Override - public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) { - List argList = Arrays.asList(args); - if (argList.isEmpty()) { - LangUtil.sendLang(sender, Languages.COMMAND_NOT_ENOUGH_PARAM, CollectionsUtil.newStringHashMap("", String.valueOf(1))); - return true; - } - SubcommandHandler subCommand = subcommands().get(argList.get(0)); - if (subCommand != null) { - PermInfo perm = subCommand.permission(); - if (perm != null) { - if (!sender.hasPermission(perm.permission())) { - LangUtil.sendLang(sender, Languages.COMMAND_NO_PERM); - return true; - } - } - return subCommand.onCommand(sender, argList.subList(1, argList.size())); - } - else { - LangUtil.sendLang(sender, Languages.COMMAND_UNDEFINED_SUBCMD); - return true; - } - } - - private void regDefaultSubCommands() { - regSub(ReloadCommand.INSTANCE) - .regSub(VersionCommand.INSTANCE) - .regSub(RemoveRecipeCommand.INSTANCE) - .regSub(DisableRecipeCommand.INSTANCE) - .regSub(ItemCommand.INSTANCE) - .regSub(RunArcencielCmd.INSTANCE) - .regSub(CreateRecipeCommand.INSTANCE) - .regSub(RecipeListCommand.INSTANCE) - .regSub(DisplayRecipeCommand.INSTANCE); - } - -} diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/AbstractSubCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/AbstractSubCommand.java index 733e7c17..5f888e1d 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/AbstractSubCommand.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/AbstractSubCommand.java @@ -3,14 +3,14 @@ import com.github.yufiriamazenta.craftorithm.config.Languages; import com.github.yufiriamazenta.craftorithm.util.CollectionsUtil; import com.github.yufiriamazenta.craftorithm.util.LangUtil; -import crypticlib.command.SubcommandHandler; +import crypticlib.command.BukkitSubcommand; import crypticlib.perm.PermInfo; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import java.util.List; -public abstract class AbstractSubCommand extends SubcommandHandler { +public abstract class AbstractSubCommand extends BukkitSubcommand { protected AbstractSubCommand(String command, PermInfo permInfo) { super(command, permInfo); @@ -24,28 +24,6 @@ protected AbstractSubCommand(String command) { super(command); } - @Override - public boolean execute(CommandSender sender, List args) { - if (args.isEmpty()) { - sendNotEnoughCmdParamMsg(sender, 1); - return true; - } - SubcommandHandler subCommand = subcommands().get(args.get(0)); - if (subCommand == null) { - LangUtil.sendLang(sender, Languages.COMMAND_UNDEFINED_SUBCMD); - } else { - PermInfo perm = subCommand.permission(); - if (perm != null) { - if (!sender.hasPermission(perm.permission())) { - LangUtil.sendLang(sender, Languages.COMMAND_NO_PERM); - return true; - } - } - subCommand.onCommand(sender, args.subList(1, args.size())); - } - return true; - } - public void sendNotEnoughCmdParamMsg(CommandSender sender, int paramNum) { sendNotEnoughCmdParamMsg(sender, String.valueOf(paramNum)); } diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/ReloadCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/ReloadCommand.java index e078c202..e16307ef 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/ReloadCommand.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/ReloadCommand.java @@ -22,7 +22,7 @@ private ReloadCommand() { } @Override - public boolean execute(CommandSender sender, List args) { + public void execute(CommandSender sender, List args) { try { reloadPlugin(); LangUtil.sendLang(sender, Languages.COMMAND_RELOAD_SUCCESS); @@ -30,7 +30,6 @@ public boolean execute(CommandSender sender, List args) { e.printStackTrace(); LangUtil.sendLang(sender, Languages.COMMAND_RELOAD_EXCEPTION); } - return true; } public static void reloadPlugin() { diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/RunArcencielCmd.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/RunArcencielCmd.java index 4e71d198..59b41a01 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/RunArcencielCmd.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/RunArcencielCmd.java @@ -19,12 +19,12 @@ private RunArcencielCmd() { } @Override - public boolean execute(CommandSender sender, List args) { + public void execute(CommandSender sender, List args) { if (!checkSenderIsPlayer(sender)) - return true; + return; if (args.isEmpty()) { sendNotEnoughCmdParamMsg(sender, 1); - return true; + return; } long startTime = System.currentTimeMillis(); StringJoiner arcencielBlock = new StringJoiner(" "); @@ -34,6 +34,5 @@ public boolean execute(CommandSender sender, List args) { ArcencielDispatcher.INSTANCE.dispatchArcencielBlock((Player) sender, arcencielBlock.toString()); long execTime = System.currentTimeMillis() - startTime; LangUtil.sendLang(sender, Languages.COMMAND_RUN_ARCENCIEL_SUCCESS, CollectionsUtil.newStringHashMap("