diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 0000000..46a1e94 --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,4 @@ +#!/usr/bin/bash + +# Fetch all submodule content. +git submodule update --force --recursive --init diff --git a/build.gradle.kts b/build.gradle.kts index c1f630d..aad74e4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,7 +25,7 @@ java { /* ----------------------------- Metadata ------------------------------ */ group = "io.myzticbean.FindItemAddOnOG" // Declare bundle identifier. -version = "1.0" // Declare plugin version (will be in .jar). +version = "1.0.1" // Declare plugin version (will be in .jar). val apiVersion = "1.19" // Declare minecraft server target version. val platformApi = "org.purpurmc.purpur:purpur-api:1.19.4-R0.1-SNAPSHOT" @@ -85,6 +85,7 @@ dependencies { exclude(group = "me.xanium", module = "GemsEconomy") } compileOnly(platformApi) // Declare Purpur API version to be packaged. + compileOnlyApi(project(":libs:Utilities-OG")) // Import TrueOG Network Utilities-OG Java API (from source). compileOnly("com.ghostchu:quickshop-api:5.2.0.7") { // Import QuickShop-Hikari Core API. exclude(group = "org.jetbrains", module = "annotations") exclude(group = "net.kyori", module = "adventure-platform-bukkit") @@ -96,7 +97,6 @@ dependencies { compileOnly("com.github.true-og.OpenInv:openinvapi:a85e8ebc28") compileOnly("org.maxgamer:QuickShop:5.1.2.5-SNAPSHOT") { isTransitive = false } implementation("io.papermc:paperlib:1.0.7") - implementation("com.github.KodySimpson:SimpAPI:4.6.1") compileOnly("net.essentialsx:EssentialsX:2.19.4") { isTransitive = false } compileOnly("com.sk89q.worldguard:worldguard-bukkit:7.0.8") { // Import WorldGuard API. exclude(group = "com.google.code.findbugs", module = "annotations") diff --git a/settings.gradle.kts b/settings.gradle.kts index f9eb9ef..ea10532 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,7 +1,19 @@ rootProject.name = "QSFindItemAddOn-OG" +ProcessBuilder("sh", "bootstrap.sh").directory(rootDir).inheritIO().start().let { + if (it.waitFor() != 0) throw GradleException("bootstrap.sh failed") +} + +file("libs") + .listFiles() + ?.filter { it.isDirectory && !it.name.startsWith(".") } + ?.forEach { dir -> + include(":libs:${dir.name}") + project(":libs:${dir.name}").projectDir = dir + } + dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) /* ---------------------------- Repos ---------------------------------- */ repositories { mavenCentral() // Import the Maven Central Maven Repository. diff --git a/src/main/java/io/myzticbean/finditemaddon/Commands/QSSubCommands/FindItemCmdHikariImpl.java b/src/main/java/io/myzticbean/finditemaddon/Commands/QSSubCommands/FindItemCmdHikariImpl.java index 008d48c..40c25f9 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Commands/QSSubCommands/FindItemCmdHikariImpl.java +++ b/src/main/java/io/myzticbean/finditemaddon/Commands/QSSubCommands/FindItemCmdHikariImpl.java @@ -1,18 +1,20 @@ package io.myzticbean.finditemaddon.Commands.QSSubCommands; -import com.ghostchu.quickshop.api.command.CommandHandler; -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; -import io.myzticbean.finditemaddon.Utils.Defaults.PlayerPerms; -import me.kodysimpson.simpapi.colors.ColorTranslator; +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.lang3.StringUtils; import org.bukkit.Material; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.ArrayList; -import java.util.List; +import com.ghostchu.quickshop.api.command.CommandHandler; + +import io.myzticbean.finditemaddon.FindItemAddOnOG; +import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; +import io.myzticbean.finditemaddon.Utils.Defaults.PlayerPerms; +import net.trueog.utilitiesog.UtilitiesOG; /** * @author myzticbean @@ -58,8 +60,8 @@ public class FindItemCmdHikariImpl implements CommandHandler { if (args.length == 0) { - commandSender.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cIncorrect usage!")); + commandSender.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cIncorrect usage!")); } else if (args.length == 1) { @@ -75,16 +77,15 @@ public class FindItemCmdHikariImpl implements CommandHandler { } else { - commandSender.sendMessage(ColorTranslator.translateColorCodes( - FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cIncorrect usage!")); + commandSender.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cIncorrect usage!")); } } else { - commandSender.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + "&cYou don't have permission to use that!")); + commandSender.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + "&cYou don't have permission to use that!")); } diff --git a/src/main/java/io/myzticbean/finditemaddon/Commands/QSSubCommands/FindItemCmdReremakeImpl.java b/src/main/java/io/myzticbean/finditemaddon/Commands/QSSubCommands/FindItemCmdReremakeImpl.java index 640c73e..9203673 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Commands/QSSubCommands/FindItemCmdReremakeImpl.java +++ b/src/main/java/io/myzticbean/finditemaddon/Commands/QSSubCommands/FindItemCmdReremakeImpl.java @@ -1,9 +1,8 @@ package io.myzticbean.finditemaddon.Commands.QSSubCommands; -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; -import io.myzticbean.finditemaddon.Utils.Defaults.PlayerPerms; -import me.kodysimpson.simpapi.colors.ColorTranslator; +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.lang3.StringUtils; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -11,8 +10,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.maxgamer.quickshop.api.command.CommandHandler; -import java.util.ArrayList; -import java.util.List; +import io.myzticbean.finditemaddon.FindItemAddOnOG; +import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; +import io.myzticbean.finditemaddon.Utils.Defaults.PlayerPerms; +import net.trueog.utilitiesog.UtilitiesOG; public class FindItemCmdReremakeImpl implements CommandHandler { @@ -55,8 +56,8 @@ public class FindItemCmdReremakeImpl implements CommandHandler { if (args.length == 0) { - commandSender.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cIncorrect usage!")); + commandSender.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cIncorrect usage!")); } else if (args.length == 1) { @@ -72,16 +73,15 @@ public class FindItemCmdReremakeImpl implements CommandHandler { } else { - commandSender.sendMessage(ColorTranslator.translateColorCodes( - FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cIncorrect usage!")); + commandSender.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cIncorrect usage!")); } } else { - commandSender.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + "&cYou don't have permission to use that!")); + commandSender.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + "&cYou don't have permission to use that!")); } diff --git a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/BuySubCmd.java b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/BuySubCmd.java index 21cebb0..9212675 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/BuySubCmd.java +++ b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/BuySubCmd.java @@ -1,23 +1,26 @@ package io.myzticbean.finditemaddon.Commands.SAPICommands; -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; -import me.kodysimpson.simpapi.colors.ColorTranslator; -import me.kodysimpson.simpapi.command.SubCommand; -import org.apache.commons.lang3.StringUtils; -import org.bukkit.Material; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.StringUtils; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + +import io.myzticbean.finditemaddon.FindItemAddOnOG; +import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; +import net.trueog.utilitiesog.UtilitiesOG; /** * Sub Command Handler for /find TO_BUY * * @author myzticbean */ -public class BuySubCmd extends SubCommand { +public class BuySubCmd implements CommandExecutor, TabCompleter { private final String buySubCommand; private final List itemsList = new ArrayList<>(); @@ -52,28 +55,24 @@ public class BuySubCmd extends SubCommand { } - @Override public String getName() { return buySubCommand; } - @Override public List getAliases() { return null; } - @Override public String getDescription() { return "Find shops that buy a specific item"; } - @Override public String getSyntax() { return "/find " + buySubCommand + " {item type | item name}"; @@ -81,33 +80,52 @@ public class BuySubCmd extends SubCommand { } @Override - public void perform(CommandSender commandSender, String[] args) { + public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) { - if (args.length != 2) - commandSender - .sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INCORRECT_USAGE_MSG)); - else - cmdExecutor.handleShopSearch(buySubCommand, commandSender, args[1]); + final String itemArg; + if (args.length == 1) { + + itemArg = args[0]; + + } else if (args.length == 2 && buySubCommand.equalsIgnoreCase(args[0])) { + + itemArg = args[1]; + + } else { + + commandSender.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INCORRECT_USAGE_MSG)); + return true; + + } + + cmdExecutor.handleShopSearch(buySubCommand, commandSender, itemArg); + return true; } @Override - public List getSubcommandArguments(Player player, String[] args) { + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - List result = new ArrayList<>(); - for (String a : itemsList) { + final String token; + if (args.length == 1) { - if (a.toLowerCase().startsWith(args[1].toLowerCase())) { + token = args[0]; - result.add(a); + } else if (args.length == 2 && buySubCommand.equalsIgnoreCase(args[0])) { - } + token = args[1]; + + } else { + + return List.of(); } - return result; + final String lower = token == null ? "" : token.toLowerCase(); + return new ArrayList<>( + itemsList.stream().filter(a -> a.toLowerCase().startsWith(lower)).collect(Collectors.toList())); } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/HideShopSubCmd.java b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/HideShopSubCmd.java index 6ca39aa..712aa19 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/HideShopSubCmd.java +++ b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/HideShopSubCmd.java @@ -1,20 +1,22 @@ package io.myzticbean.finditemaddon.Commands.SAPICommands; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + import io.myzticbean.finditemaddon.FindItemAddOnOG; import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; -import me.kodysimpson.simpapi.command.SubCommand; -import org.apache.commons.lang3.StringUtils; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.List; /** * Sub Command Handler for /find hideshop * * @author myzticbean */ -public class HideShopSubCmd extends SubCommand { +public class HideShopSubCmd implements CommandExecutor, TabCompleter { private final String hideSubCommand; private final CmdExecutorHandler cmdExecutor; @@ -35,21 +37,18 @@ public class HideShopSubCmd extends SubCommand { } - @Override public String getName() { return hideSubCommand; } - @Override public List getAliases() { return null; } - @Override public String getDescription() { return "Run this command while looking at the shop (NOT the shop sign) you wish to hide and it will no" @@ -57,7 +56,6 @@ public class HideShopSubCmd extends SubCommand { } - @Override public String getSyntax() { return "/find " + hideSubCommand; @@ -65,17 +63,18 @@ public class HideShopSubCmd extends SubCommand { } @Override - public void perform(CommandSender commandSender, String[] args) { + public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) { cmdExecutor.handleHideShop(commandSender); + return true; } @Override - public List getSubcommandArguments(Player player, String[] strings) { + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - return null; + return List.of(); } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/ReloadSubCmd.java b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/ReloadSubCmd.java index b1bc18f..ceec5b8 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/ReloadSubCmd.java +++ b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/ReloadSubCmd.java @@ -1,18 +1,20 @@ package io.myzticbean.finditemaddon.Commands.SAPICommands; -import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; -import me.kodysimpson.simpapi.command.SubCommand; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - import java.util.List; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + +import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; + /** * Sub Command Handler for /finditemadmin reload * * @author myzticbean */ -public class ReloadSubCmd extends SubCommand { +public class ReloadSubCmd implements CommandExecutor, TabCompleter { private final CmdExecutorHandler cmdExecutor; @@ -22,28 +24,24 @@ public class ReloadSubCmd extends SubCommand { } - @Override public String getName() { return "reload"; } - @Override public List getAliases() { return null; } - @Override public String getDescription() { return "Reloads config.yml"; } - @Override public String getSyntax() { return "/finditemadmin reload"; @@ -51,17 +49,18 @@ public class ReloadSubCmd extends SubCommand { } @Override - public void perform(CommandSender commandSender, String[] strings) { + public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) { cmdExecutor.handlePluginReload(commandSender); + return true; } @Override - public List getSubcommandArguments(Player player, String[] strings) { + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - return null; + return List.of(); } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/RestartSubCmd.java b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/RestartSubCmd.java index fc2cec1..fd11ac4 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/RestartSubCmd.java +++ b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/RestartSubCmd.java @@ -1,12 +1,14 @@ package io.myzticbean.finditemaddon.Commands.SAPICommands; -import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; -import me.kodysimpson.simpapi.command.SubCommand; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - import java.util.List; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + +import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; + /** * Sub Command Handler for /find restart * @@ -14,7 +16,7 @@ import java.util.List; * @author myzticbean */ @Deprecated -public class RestartSubCmd extends SubCommand { +public class RestartSubCmd implements CommandExecutor, TabCompleter { private final CmdExecutorHandler cmdExecutor; @@ -24,28 +26,24 @@ public class RestartSubCmd extends SubCommand { } - @Override public String getName() { return "restart"; } - @Override public List getAliases() { return null; } - @Override public String getDescription() { return "Restarts the plugin (NOT recommended in most cases, restart server if necessary)"; } - @Override public String getSyntax() { return "/finditemadmin restart"; @@ -53,17 +51,18 @@ public class RestartSubCmd extends SubCommand { } @Override - public void perform(CommandSender commandSender, String[] args) { + public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) { cmdExecutor.handlePluginRestart(commandSender); + return true; } @Override - public List getSubcommandArguments(Player player, String[] strings) { + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - return null; + return List.of(); } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/RevealShopSubCmd.java b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/RevealShopSubCmd.java index c3e6598..e056fd0 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/RevealShopSubCmd.java +++ b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/RevealShopSubCmd.java @@ -1,20 +1,22 @@ package io.myzticbean.finditemaddon.Commands.SAPICommands; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + import io.myzticbean.finditemaddon.FindItemAddOnOG; import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; -import me.kodysimpson.simpapi.command.SubCommand; -import org.apache.commons.lang3.StringUtils; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import java.util.List; /** * Sub Command Handler for /finditemadmin revealshop * * @author myzticbean */ -public class RevealShopSubCmd extends SubCommand { +public class RevealShopSubCmd implements CommandExecutor, TabCompleter { private final String revealShopSubCommand; private final CmdExecutorHandler cmdExecutor; @@ -37,28 +39,24 @@ public class RevealShopSubCmd extends SubCommand { } - @Override public String getName() { return revealShopSubCommand; } - @Override public List getAliases() { return null; } - @Override public String getDescription() { return "Run this command while looking at a hidden shop to make it public again"; } - @Override public String getSyntax() { return "/find " + revealShopSubCommand; @@ -66,17 +64,18 @@ public class RevealShopSubCmd extends SubCommand { } @Override - public void perform(CommandSender commandSender, String[] args) { + public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) { cmdExecutor.handleRevealShop(commandSender); + return true; } @Override - public List getSubcommandArguments(Player player, String[] strings) { + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - return null; + return List.of(); } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/SellSubCmd.java b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/SellSubCmd.java index a3d5fe4..b27d0df 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/SellSubCmd.java +++ b/src/main/java/io/myzticbean/finditemaddon/Commands/SAPICommands/SellSubCmd.java @@ -1,23 +1,26 @@ package io.myzticbean.finditemaddon.Commands.SAPICommands; -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; -import me.kodysimpson.simpapi.colors.ColorTranslator; -import me.kodysimpson.simpapi.command.SubCommand; -import org.apache.commons.lang3.StringUtils; -import org.bukkit.Material; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; + +import org.apache.commons.lang3.StringUtils; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.command.TabCompleter; + +import io.myzticbean.finditemaddon.FindItemAddOnOG; +import io.myzticbean.finditemaddon.Handlers.CommandHandler.CmdExecutorHandler; +import net.trueog.utilitiesog.UtilitiesOG; /** * Sub Command Handler for /find TO_SELL * * @author myzticbean */ -public class SellSubCmd extends SubCommand { +public class SellSubCmd implements CommandExecutor, TabCompleter { private final String sellSubCommand; private final List itemsList = new ArrayList<>(); @@ -50,28 +53,24 @@ public class SellSubCmd extends SubCommand { } - @Override public String getName() { return sellSubCommand; } - @Override public List getAliases() { return null; } - @Override public String getDescription() { return "Find shops that sell a specific item"; } - @Override public String getSyntax() { return "/find " + sellSubCommand + " {item type | item name}"; @@ -79,33 +78,52 @@ public class SellSubCmd extends SubCommand { } @Override - public void perform(CommandSender commandSender, String[] args) { + public boolean onCommand(CommandSender commandSender, Command command, String label, String[] args) { - if (args.length != 2) - commandSender - .sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INCORRECT_USAGE_MSG)); - else - cmdExecutor.handleShopSearch(sellSubCommand, commandSender, args[1]); + final String itemArg; + if (args.length == 1) { + + itemArg = args[0]; + + } else if (args.length == 2 && sellSubCommand.equalsIgnoreCase(args[0])) { + + itemArg = args[1]; + + } else { + + commandSender.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INCORRECT_USAGE_MSG)); + return true; + + } + + cmdExecutor.handleShopSearch(sellSubCommand, commandSender, itemArg); + return true; } @Override - public List getSubcommandArguments(Player player, String[] args) { + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - List result = new ArrayList<>(); - for (String a : itemsList) { + final String token; + if (args.length == 1) { - if (a.toLowerCase().startsWith(args[1].toLowerCase())) { + token = args[0]; - result.add(a); + } else if (args.length == 2 && sellSubCommand.equalsIgnoreCase(args[0])) { - } + token = args[1]; + + } else { + + return List.of(); } - return result; + final String lower = token == null ? "" : token.toLowerCase(); + return new ArrayList<>( + itemsList.stream().filter(a -> a.toLowerCase().startsWith(lower)).collect(Collectors.toList())); } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/ConfigUtil/ConfigProvider.java b/src/main/java/io/myzticbean/finditemaddon/ConfigUtil/ConfigProvider.java index b0a1a8f..7cb673a 100644 --- a/src/main/java/io/myzticbean/finditemaddon/ConfigUtil/ConfigProvider.java +++ b/src/main/java/io/myzticbean/finditemaddon/ConfigUtil/ConfigProvider.java @@ -1,17 +1,18 @@ package io.myzticbean.finditemaddon.ConfigUtil; -import io.myzticbean.finditemaddon.Utils.LoggerUtils; -import me.kodysimpson.simpapi.colors.ColorTranslator; -import org.bukkit.Bukkit; -import org.bukkit.World; - import java.util.ArrayList; import java.util.List; +import org.bukkit.Bukkit; +import org.bukkit.World; + +import io.myzticbean.finditemaddon.Utils.LoggerUtils; +import net.kyori.adventure.text.TextComponent; +import net.trueog.utilitiesog.UtilitiesOG; + public class ConfigProvider { - public final String PLUGIN_PREFIX = ColorTranslator - .translateColorCodes(ConfigSetup.get().getString("plugin-prefix")); + public final TextComponent PLUGIN_PREFIX = UtilitiesOG.trueogColorize(ConfigSetup.get().getString("plugin-prefix")); public final List FIND_ITEM_COMMAND_ALIAS = (List) ConfigSetup.get() .getList("find-item-command.command-alias"); public final String FIND_ITEM_TO_BUY_AUTOCOMPLETE = ConfigSetup.get() diff --git a/src/main/java/io/myzticbean/finditemaddon/FindItemAddOnOG.java b/src/main/java/io/myzticbean/finditemaddon/FindItemAddOnOG.java index 1d2226b..8dac909 100644 --- a/src/main/java/io/myzticbean/finditemaddon/FindItemAddOnOG.java +++ b/src/main/java/io/myzticbean/finditemaddon/FindItemAddOnOG.java @@ -1,11 +1,20 @@ package io.myzticbean.finditemaddon; +import java.lang.reflect.Constructor; +import java.lang.reflect.Method; import java.util.Arrays; +import java.util.Collections; import java.util.HashMap; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandMap; +import org.bukkit.command.CommandSender; +import org.bukkit.command.PluginCommand; +import org.bukkit.command.TabCompleter; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; @@ -22,18 +31,15 @@ import io.myzticbean.finditemaddon.Dependencies.WGPlugin; import io.myzticbean.finditemaddon.Handlers.GUIHandler.PlayerMenuUtility; import io.myzticbean.finditemaddon.Listeners.MenuListener; import io.myzticbean.finditemaddon.Listeners.PlayerCommandSendEventListener; -import io.myzticbean.finditemaddon.Listeners.PlayerJoinEventListener; import io.myzticbean.finditemaddon.Listeners.PluginEnableEventListener; import io.myzticbean.finditemaddon.QuickShopHandler.QSApi; import io.myzticbean.finditemaddon.QuickShopHandler.QSHikariAPIHandler; import io.myzticbean.finditemaddon.QuickShopHandler.QSReremakeAPIHandler; import io.myzticbean.finditemaddon.ScheduledTasks.Task15MinInterval; import io.myzticbean.finditemaddon.Utils.LoggerUtils; -import io.myzticbean.finditemaddon.Utils.UpdateChecker; import io.myzticbean.finditemaddon.Utils.Defaults.PlayerPerms; import io.myzticbean.finditemaddon.Utils.JsonStorageUtils.ShopSearchActivityStorageUtil; -import me.kodysimpson.simpapi.colors.ColorTranslator; -import me.kodysimpson.simpapi.command.CommandManager; +import net.trueog.utilitiesog.UtilitiesOG; public final class FindItemAddOnOG extends JavaPlugin { @@ -55,7 +61,7 @@ public final class FindItemAddOnOG extends JavaPlugin { private static final int SPIGOT_PLUGIN_ID = 95104; private static final int REPEATING_TASK_SCHEDULE_MINS = 15 * 60 * 20; private static ConfigProvider configProvider; - private static boolean isPluginOutdated = false; + private static final boolean isPluginOutdated = false; private static boolean qSReremakeInstalled = false; private static boolean qSHikariInstalled = false; @SuppressWarnings("rawtypes") @@ -207,32 +213,6 @@ public final class FindItemAddOnOG extends JavaPlugin { Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Task15MinInterval(), 0, REPEATING_TASK_SCHEDULE_MINS); - // Check for plugin updates - new UpdateChecker(SPIGOT_PLUGIN_ID).getLatestVersion(version -> { - - if (this.getPluginMeta().getVersion().equalsIgnoreCase(version)) { - - LoggerUtils.logInfo("Oh awesome! Plugin is up to date"); - - } else { - - isPluginOutdated = true; - if (version.toLowerCase().contains("snapshot")) { - - LoggerUtils.logWarning("Plugin has a new snapshot version available! (Version: " + version + ")"); - - } else { - - LoggerUtils.logWarning("Plugin has a new update available! (Version: " + version + ")"); - - } - - LoggerUtils.logWarning("Download here: https://www.spigotmc.org/resources/" + SPIGOT_PLUGIN_ID + "/"); - - } - - }); - } private void initCommands() { @@ -249,7 +229,6 @@ public final class FindItemAddOnOG extends JavaPlugin { this.getServer().getPluginManager().registerEvents(new PluginEnableEventListener(), this); this.getServer().getPluginManager().registerEvents(new PlayerCommandSendEventListener(), this); this.getServer().getPluginManager().registerEvents(new MenuListener(), this); - this.getServer().getPluginManager().registerEvents(new PlayerJoinEventListener(), this); } @@ -309,83 +288,450 @@ public final class FindItemAddOnOG extends JavaPlugin { } - // Register the subcommands under a core command - try { - - CommandManager.createCoreCommand(this, "find", "Search for items from all shops using an interactive GUI", - "/find", (commandSender, subCommandList) -> - { - - commandSender.sendMessage(ColorTranslator.translateColorCodes("")); - commandSender.sendMessage(ColorTranslator.translateColorCodes("&7------------------------")); - commandSender.sendMessage(ColorTranslator.translateColorCodes("&6&lShop Search Commands")); - commandSender.sendMessage(ColorTranslator.translateColorCodes("&7------------------------")); - subCommandList.forEach( - subCommand -> commandSender.sendMessage(ColorTranslator.translateColorCodes("&#ff9933" - + subCommand.getSyntax() + " &#a3a3c2" + subCommand.getDescription()))); - - commandSender.sendMessage(ColorTranslator.translateColorCodes("")); - commandSender.sendMessage(ColorTranslator.translateColorCodes("&#b3b300Command alias:")); - alias.forEach(alias_i -> commandSender - .sendMessage(ColorTranslator.translateColorCodes("&8&l» db300/" + alias_i))); - commandSender.sendMessage(ColorTranslator.translateColorCodes("")); - - }, alias, SellSubCmd.class, BuySubCmd.class, HideShopSubCmd.class, RevealShopSubCmd.class); - LoggerUtils.logInfo("Registered /find command"); - - } catch (NoSuchFieldException | IllegalAccessException error) { - - LoggerUtils.logError(error.getMessage()); - error.printStackTrace(); - - } + LoggerUtils.logInfo("Registering /find command"); + registerBukkitCommand("find", alias, "Search for items from all shops using an interactive GUI", "/find", + new FindCommandExecutor(alias), new FindCommandExecutor(alias)); + LoggerUtils.logInfo("Registered /find command"); } private void initFindItemAdminCmd() { final List alias = List.of("fiadmin"); - try { + LoggerUtils.logInfo("Registering /finditemadmin command"); + registerBukkitCommand("finditemadmin", alias, "Admin command for Shop Search addon", "/finditemadmin", + new FindItemAdminCommandExecutor(alias), new FindItemAdminCommandExecutor(alias)); + LoggerUtils.logInfo("Registered /finditemadmin command"); - CommandManager.createCoreCommand(this, "finditemadmin", "Admin command for Shop Search addon", - "/finditemadmin", (commandSender, subCommandList) -> - { + } - if ((commandSender.isOp()) || (!commandSender.isOp() - && (commandSender.hasPermission(PlayerPerms.FINDITEM_ADMIN.value()) - || commandSender.hasPermission(PlayerPerms.FINDITEM_RELOAD.value())))) - { + private void registerBukkitCommand(String name, List aliases, String description, String usage, + CommandExecutor executor, TabCompleter completer) + { - commandSender.sendMessage(ColorTranslator.translateColorCodes("")); - commandSender.sendMessage( - ColorTranslator.translateColorCodes("&7-----------------------------")); - commandSender - .sendMessage(ColorTranslator.translateColorCodes("&6&lShop Search Admin Commands")); - commandSender.sendMessage( - ColorTranslator.translateColorCodes("&7-----------------------------")); + PluginCommand cmd = this.getCommand(name); + if (cmd == null) { - subCommandList.forEach(subCommand -> commandSender - .sendMessage(ColorTranslator.translateColorCodes("&#ff1a1a" + subCommand.getSyntax() - + " &#a3a3c2" + subCommand.getDescription()))); - - commandSender.sendMessage(ColorTranslator.translateColorCodes("")); - commandSender.sendMessage(ColorTranslator.translateColorCodes("&#b3b300Command alias:")); - alias.forEach(alias_i -> commandSender - .sendMessage(ColorTranslator.translateColorCodes("&8&l» db300/" + alias_i))); - commandSender.sendMessage(ColorTranslator.translateColorCodes("")); - - } - - }, alias, ReloadSubCmd.class); - LoggerUtils.logInfo("Registered /finditemadmin command"); - - } catch (NoSuchFieldException | IllegalAccessException error) { - - LoggerUtils.logError(error.getMessage()); - error.printStackTrace(); + cmd = registerDynamicPluginCommand(name); } + if (cmd == null) { + + LoggerUtils.logError("Failed to register command: " + name); + return; + + } + + cmd.setDescription(description); + cmd.setUsage(usage); + + if (aliases != null) { + + cmd.setAliases(aliases); + + } + + cmd.setExecutor(executor); + cmd.setTabCompleter(completer); + + } + + private PluginCommand registerDynamicPluginCommand(String name) { + + try { + + final CommandMap commandMap = getCommandMap(); + if (commandMap == null) { + + return null; + + } + + final Constructor ctor = PluginCommand.class.getDeclaredConstructor(String.class, + Plugin.class); + ctor.setAccessible(true); + + final PluginCommand cmd = ctor.newInstance(name, this); + commandMap.register(this.getPluginMeta().getName(), cmd); + return cmd; + + } catch (Throwable t) { + + LoggerUtils.logError(t.getMessage()); + t.printStackTrace(); + return null; + + } + + } + + private CommandMap getCommandMap() { + + try { + + final Method m = Bukkit.getServer().getClass().getMethod("getCommandMap"); + return (CommandMap) m.invoke(Bukkit.getServer()); + + } catch (Throwable t) { + + LoggerUtils.logError(t.getMessage()); + t.printStackTrace(); + return null; + + } + + } + + private record FindCommandExecutor(List aliases) implements CommandExecutor, TabCompleter { + + private FindCommandExecutor(List aliases) { + + this.aliases = aliases == null ? Collections.emptyList() : aliases; + + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + if (args.length == 0 || "help".equalsIgnoreCase(args[0])) { + + sendHelp(sender); + return true; + + } + + final String sub = args[0].toLowerCase(); + final String[] subArgs = Arrays.copyOfRange(args, 1, args.length); + + if ("sell".equals(sub)) { + + return invokeSubCommand(new SellSubCmd(), sender, command, label, subArgs); + + } + + if ("buy".equals(sub)) { + + return invokeSubCommand(new BuySubCmd(), sender, command, label, subArgs); + + } + + if ("hide".equals(sub) || "hideshop".equals(sub)) { + + return invokeSubCommand(new HideShopSubCmd(), sender, command, label, subArgs); + + } + + if ("reveal".equals(sub) || "revealshop".equals(sub)) { + + return invokeSubCommand(new RevealShopSubCmd(), sender, command, label, subArgs); + + } + + sendHelp(sender); + return true; + + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + + if (args.length == 1) { + + return partialMatches(args[0], Arrays.asList("sell", "buy", "hide", "reveal", "help")); + + } + + if (args.length >= 2) { + + final String sub = args[0].toLowerCase(); + final String[] subArgs = Arrays.copyOfRange(args, 1, args.length); + + if ("sell".equals(sub)) { + + return invokeTabComplete(new SellSubCmd(), sender, command, alias, subArgs); + + } + + if ("buy".equals(sub)) { + + return invokeTabComplete(new BuySubCmd(), sender, command, alias, subArgs); + + } + + if ("hide".equals(sub) || "hideshop".equals(sub)) { + + return invokeTabComplete(new HideShopSubCmd(), sender, command, alias, subArgs); + + } + + if ("reveal".equals(sub) || "revealshop".equals(sub)) { + + return invokeTabComplete(new RevealShopSubCmd(), sender, command, alias, subArgs); + + } + + } + + return Collections.emptyList(); + + } + + private void sendHelp(CommandSender commandSender) { + + commandSender.sendMessage(UtilitiesOG.trueogColorize("")); + commandSender.sendMessage(UtilitiesOG.trueogColorize("&7------------------------")); + commandSender.sendMessage(UtilitiesOG.trueogColorize("&6&lShop Search Commands")); + commandSender.sendMessage(UtilitiesOG.trueogColorize("&7------------------------")); + + final List subCommands = Arrays.asList(new SellSubCmd(), new BuySubCmd(), new HideShopSubCmd(), + new RevealShopSubCmd()); + + subCommands.forEach(subCommand -> commandSender.sendMessage(UtilitiesOG.trueogColorize("&#ff9933" + + getSubCommandSyntax(subCommand) + " &#a3a3c2" + getSubCommandDescription(subCommand)))); + + commandSender.sendMessage(UtilitiesOG.trueogColorize("")); + commandSender.sendMessage(UtilitiesOG.trueogColorize("&#b3b300Command alias:")); + aliases.forEach( + alias_i -> commandSender.sendMessage(UtilitiesOG.trueogColorize("&8&l» db300/" + alias_i))); + commandSender.sendMessage(UtilitiesOG.trueogColorize("")); + + } + + } + + private record FindItemAdminCommandExecutor(List aliases) implements CommandExecutor, TabCompleter { + + private FindItemAdminCommandExecutor(List aliases) { + + this.aliases = aliases == null ? Collections.emptyList() : aliases; + + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + + if (!((sender.isOp()) || (!sender.isOp() && (sender.hasPermission(PlayerPerms.FINDITEM_ADMIN.value()) + || sender.hasPermission(PlayerPerms.FINDITEM_RELOAD.value()))))) + { + + return true; + + } + + if (args.length == 0 || "help".equalsIgnoreCase(args[0])) { + + sendHelp(sender); + return true; + + } + + final String sub = args[0].toLowerCase(); + final String[] subArgs = Arrays.copyOfRange(args, 1, args.length); + + if ("reload".equals(sub)) { + + return invokeSubCommand(new ReloadSubCmd(), sender, command, label, subArgs); + + } + + sendHelp(sender); + return true; + + } + + @Override + public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { + + if (!((sender.isOp()) || (!sender.isOp() && (sender.hasPermission(PlayerPerms.FINDITEM_ADMIN.value()) + || sender.hasPermission(PlayerPerms.FINDITEM_RELOAD.value()))))) + { + + return Collections.emptyList(); + + } + + if (args.length == 1) { + + return partialMatches(args[0], Arrays.asList("reload", "help")); + + } + + if (args.length >= 2) { + + final String sub = args[0].toLowerCase(); + final String[] subArgs = Arrays.copyOfRange(args, 1, args.length); + + if ("reload".equals(sub)) { + + return invokeTabComplete(new ReloadSubCmd(), sender, command, alias, subArgs); + + } + + } + + return Collections.emptyList(); + + } + + private void sendHelp(CommandSender commandSender) { + + commandSender.sendMessage(UtilitiesOG.trueogColorize("")); + commandSender.sendMessage(UtilitiesOG.trueogColorize("&7-----------------------------")); + commandSender.sendMessage(UtilitiesOG.trueogColorize("&6&lShop Search Admin Commands")); + commandSender.sendMessage(UtilitiesOG.trueogColorize("&7-----------------------------")); + + final List subCommands = Collections.singletonList(new ReloadSubCmd()); + + subCommands.forEach(subCommand -> commandSender.sendMessage(UtilitiesOG.trueogColorize("&#ff1a1a" + + getSubCommandSyntax(subCommand) + " &#a3a3c2" + getSubCommandDescription(subCommand)))); + + commandSender.sendMessage(UtilitiesOG.trueogColorize("")); + commandSender.sendMessage(UtilitiesOG.trueogColorize("&#b3b300Command alias:")); + aliases.forEach( + alias_i -> commandSender.sendMessage(UtilitiesOG.trueogColorize("&8&l» db300/" + alias_i))); + commandSender.sendMessage(UtilitiesOG.trueogColorize("")); + + } + + } + + private static boolean invokeSubCommand(Object subCommand, CommandSender sender, Command command, String label, + String[] args) + { + + if (subCommand instanceof CommandExecutor) { + + return ((CommandExecutor) subCommand).onCommand(sender, command, label, args); + + } + + try { + + final Method m = subCommand.getClass().getMethod("execute", CommandSender.class, String[].class); + final Object res = m.invoke(subCommand, sender, args); + if (res instanceof Boolean) { + + return (Boolean) res; + + } + + return true; + + } catch (Throwable ignored) { + + } + + try { + + final Method m = subCommand.getClass().getMethod("execute", CommandSender.class, Command.class, + String.class, String[].class); + final Object res = m.invoke(subCommand, sender, command, label, args); + if (res instanceof Boolean) { + + return (Boolean) res; + + } + + return true; + + } catch (Throwable ignored) { + + } + + try { + + final Method m = subCommand.getClass().getMethod("onCommand", CommandSender.class, Command.class, + String.class, String[].class); + final Object res = m.invoke(subCommand, sender, command, label, args); + if (res instanceof Boolean) { + + return (Boolean) res; + + } + + return true; + + } catch (Throwable t) { + + LoggerUtils.logError(t.getMessage()); + t.printStackTrace(); + return true; + + } + + } + + private static List invokeTabComplete(Object subCommand, CommandSender sender, Command command, + String label, String[] args) + { + + if (subCommand instanceof TabCompleter) { + + final List res = ((TabCompleter) subCommand).onTabComplete(sender, command, label, args); + return res == null ? Collections.emptyList() : res; + + } + + try { + + final Method m = subCommand.getClass().getMethod("onTabComplete", CommandSender.class, Command.class, + String.class, String[].class); + @SuppressWarnings("unchecked") + final List res = (List) m.invoke(subCommand, sender, command, label, args); + return res == null ? Collections.emptyList() : res; + + } catch (Throwable ignored) { + + } + + return Collections.emptyList(); + + } + + private static String getSubCommandSyntax(Object subCommand) { + + try { + + final Method m = subCommand.getClass().getMethod("getSyntax"); + final Object res = m.invoke(subCommand); + return res == null ? "" : String.valueOf(res); + + } catch (Throwable ignored) { + + } + + return ""; + + } + + private static String getSubCommandDescription(Object subCommand) { + + try { + + final Method m = subCommand.getClass().getMethod("getDescription"); + final Object res = m.invoke(subCommand); + return res == null ? "" : String.valueOf(res); + + } catch (Throwable ignored) { + + } + + return ""; + + } + + private static List partialMatches(String token, List options) { + + if (token == null || token.isEmpty()) { + + return options; + + } + + final String lower = token.toLowerCase(); + return options.stream().filter(s -> s.toLowerCase().startsWith(lower)).toList(); + } public static boolean isQSReremakeInstalled() { @@ -419,4 +765,4 @@ public final class FindItemAddOnOG extends JavaPlugin { } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/Handlers/CommandHandler/CmdExecutorHandler.java b/src/main/java/io/myzticbean/finditemaddon/Handlers/CommandHandler/CmdExecutorHandler.java index 9d8fcc2..307f3b1 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Handlers/CommandHandler/CmdExecutorHandler.java +++ b/src/main/java/io/myzticbean/finditemaddon/Handlers/CommandHandler/CmdExecutorHandler.java @@ -1,14 +1,7 @@ package io.myzticbean.finditemaddon.Handlers.CommandHandler; -import io.myzticbean.finditemaddon.ConfigUtil.ConfigSetup; -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Handlers.GUIHandler.Menus.FoundShopsMenu; -import io.myzticbean.finditemaddon.Models.FoundShopItemModel; -import io.myzticbean.finditemaddon.Utils.Defaults.PlayerPerms; -import io.myzticbean.finditemaddon.Utils.JsonStorageUtils.HiddenShopStorageUtil; -import io.myzticbean.finditemaddon.Utils.LoggerUtils; -import io.myzticbean.finditemaddon.Utils.WarpUtils.WarpUtils; -import me.kodysimpson.simpapi.colors.ColorTranslator; +import java.util.List; + import org.apache.commons.lang3.StringUtils; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -18,7 +11,15 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.maxgamer.quickshop.api.shop.Shop; -import java.util.List; +import io.myzticbean.finditemaddon.FindItemAddOnOG; +import io.myzticbean.finditemaddon.ConfigUtil.ConfigSetup; +import io.myzticbean.finditemaddon.Handlers.GUIHandler.Menus.FoundShopsMenu; +import io.myzticbean.finditemaddon.Models.FoundShopItemModel; +import io.myzticbean.finditemaddon.Utils.LoggerUtils; +import io.myzticbean.finditemaddon.Utils.Defaults.PlayerPerms; +import io.myzticbean.finditemaddon.Utils.JsonStorageUtils.HiddenShopStorageUtil; +import io.myzticbean.finditemaddon.Utils.WarpUtils.WarpUtils; +import net.trueog.utilitiesog.UtilitiesOG; /** * Handler for different parameters of /find command @@ -47,9 +48,8 @@ public class CmdExecutorHandler { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_SEARCH_LOADING_MSG)) { - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().SHOP_SEARCH_LOADING_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().SHOP_SEARCH_LOADING_MSG)); } @@ -87,8 +87,8 @@ public class CmdExecutorHandler { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().NO_SHOP_FOUND_MSG)) { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().NO_SHOP_FOUND_MSG)); } @@ -97,18 +97,18 @@ public class CmdExecutorHandler { } else { - Material mat = Material.getMaterial(itemArg.toUpperCase()); + final Material mat = Material.getMaterial(itemArg.toUpperCase()); if (mat != null) { LoggerUtils.logDebugInfo("Material found: " + mat.toString()); - List searchResultList = FindItemAddOnOG.getQsApiInstance() + final List searchResultList = FindItemAddOnOG.getQsApiInstance() .findItemBasedOnTypeFromAllShops(new ItemStack(mat), isBuying, player); if (searchResultList.size() > 0) { Bukkit.getScheduler().runTaskAsynchronously(FindItemAddOnOG.getInstance(), () -> { - FoundShopsMenu menu = new FoundShopsMenu(FindItemAddOnOG.getPlayerMenuUtility(player), - searchResultList); + final FoundShopsMenu menu = new FoundShopsMenu( + FindItemAddOnOG.getPlayerMenuUtility(player), searchResultList); Bukkit.getScheduler().runTask(FindItemAddOnOG.getInstance(), () -> menu.open(searchResultList)); @@ -118,8 +118,8 @@ public class CmdExecutorHandler { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().NO_SHOP_FOUND_MSG)) { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().NO_SHOP_FOUND_MSG)); } @@ -135,8 +135,8 @@ public class CmdExecutorHandler { Bukkit.getScheduler().runTaskAsynchronously(FindItemAddOnOG.getInstance(), () -> { - FoundShopsMenu menu = new FoundShopsMenu(FindItemAddOnOG.getPlayerMenuUtility(player), - searchResultList); + final FoundShopsMenu menu = new FoundShopsMenu( + FindItemAddOnOG.getPlayerMenuUtility(player), searchResultList); Bukkit.getScheduler().runTask(FindItemAddOnOG.getInstance(), () -> menu.open(searchResultList)); @@ -144,12 +144,12 @@ public class CmdExecutorHandler { } else { - // Invalid Material + // Invalid Material. if (!StringUtils .isEmpty(FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INVALID_MATERIAL_MSG)) { - player.sendMessage(ColorTranslator.translateColorCodes( + player.sendMessage(UtilitiesOG.trueogColorize( FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG .getConfigProvider().FIND_ITEM_CMD_INVALID_MATERIAL_MSG)); @@ -163,8 +163,8 @@ public class CmdExecutorHandler { } else { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); + player.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); } @@ -202,8 +202,8 @@ public class CmdExecutorHandler { } else { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); + player.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); } @@ -241,8 +241,8 @@ public class CmdExecutorHandler { } else { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); + player.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); } @@ -262,9 +262,9 @@ public class CmdExecutorHandler { * Player player = (Player) commandSender; * if(player.hasPermission(PlayerPerms.FINDITEM_ADMIN.toString())) { * HiddenShopStorageUtil.saveHiddenShopsToFile(); - * player.sendMessage(ColorTranslator.translateColorCodes( + * player.sendMessage(UtilitiesOG.trueogColorize( * FindItemAddOn.getConfigProvider().PLUGIN_PREFIX + "&aSaved hidden shops!")); - * } else { player.sendMessage( ColorTranslator.translateColorCodes( + * } else { player.sendMessage( UtilitiesOG.trueogColorize( * FindItemAddOn.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); } } } */ @@ -280,9 +280,9 @@ public class CmdExecutorHandler { * Player player = (Player) commandSender; * if(player.hasPermission(PlayerPerms.FINDITEM_ADMIN.toString())) { * HiddenShopStorageUtil.loadHiddenShopsFromFile(); - * player.sendMessage(ColorTranslator.translateColorCodes( + * player.sendMessage(UtilitiesOG.trueogColorize( * FindItemAddOn.getConfigProvider().PLUGIN_PREFIX + "&aSaved hidden shops!")); - * } else { player.sendMessage( ColorTranslator.translateColorCodes( + * } else { player.sendMessage( UtilitiesOG.trueogColorize( * FindItemAddOn.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); } } } */ @@ -324,20 +324,18 @@ public class CmdExecutorHandler { ConfigSetup.checkForMissingProperties(); ConfigSetup.saveConfig(); FindItemAddOnOG.initConfigProvider(); - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&aConfig reloaded!")); - List allServerShops = FindItemAddOnOG.getQsApiInstance().getAllShops(); + player.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&aConfig reloaded!")); + final List allServerShops = FindItemAddOnOG.getQsApiInstance().getAllShops(); if (allServerShops.size() == 0) { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG - .getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&6Found &e0 &6shops on the server. If you ran &e/qs reload &6recently, please restart your server!")); } else { - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + "&aFound &e" + allServerShops.size() + " &ashops on the server.")); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + "&aFound &e" + allServerShops.size() + " &ashops on the server.")); } @@ -345,8 +343,8 @@ public class CmdExecutorHandler { } else { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); + player.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); } @@ -387,27 +385,25 @@ public class CmdExecutorHandler { Bukkit.getPluginManager().disablePlugin(FindItemAddOnOG.getInstance()); Bukkit.getPluginManager().enablePlugin(FindItemAddOnOG.getPlugin(FindItemAddOnOG.class)); - player.sendMessage(ColorTranslator.translateColorCodes( - FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&aPlugin restarted!")); + player.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&aPlugin restarted!")); List allServerShops = FindItemAddOnOG.getQsApiInstance().getAllShops(); if (allServerShops.size() == 0) { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG - .getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&6Found &e0 &6shops on the server. If you ran &e/qs reload &6recently, please restart your server!")); } else { - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + "&aFound &e" + allServerShops.size() + " &ashops on the server.")); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + "&aFound &e" + allServerShops.size() + " &ashops on the server.")); } } else { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); + player.sendMessage(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + "&cNo permission!")); } @@ -431,28 +427,26 @@ public class CmdExecutorHandler { if (!HiddenShopStorageUtil.isShopHidden(shop)) { HiddenShopStorageUtil.handleShopSearchVisibilityAsync(shop, true); - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_HIDE_SUCCESS_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_HIDE_SUCCESS_MSG)); } else { - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_ALREADY_HIDDEN_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_ALREADY_HIDDEN_MSG)); } } else { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_HIDING_SHOP_OWNER_INVALID_MSG)); } } else { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INVALID_SHOP_BLOCK_MSG)); } @@ -475,28 +469,26 @@ public class CmdExecutorHandler { if (!HiddenShopStorageUtil.isShopHidden(shop)) { HiddenShopStorageUtil.handleShopSearchVisibilityAsync(shop, true); - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_HIDE_SUCCESS_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_HIDE_SUCCESS_MSG)); } else { - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_ALREADY_HIDDEN_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_ALREADY_HIDDEN_MSG)); } } else { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_HIDING_SHOP_OWNER_INVALID_MSG)); } } else { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INVALID_SHOP_BLOCK_MSG)); } @@ -519,28 +511,26 @@ public class CmdExecutorHandler { if (HiddenShopStorageUtil.isShopHidden(shop)) { HiddenShopStorageUtil.handleShopSearchVisibilityAsync(shop, false); - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_REVEAL_SUCCESS_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_REVEAL_SUCCESS_MSG)); } else { - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_ALREADY_PUBLIC_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_ALREADY_PUBLIC_MSG)); } } else { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_HIDING_SHOP_OWNER_INVALID_MSG)); } } else { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INVALID_SHOP_BLOCK_MSG)); } @@ -563,28 +553,26 @@ public class CmdExecutorHandler { if (HiddenShopStorageUtil.isShopHidden(shop)) { HiddenShopStorageUtil.handleShopSearchVisibilityAsync(shop, false); - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_REVEAL_SUCCESS_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_REVEAL_SUCCESS_MSG)); } else { - player.sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_ALREADY_PUBLIC_MSG)); + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_SHOP_ALREADY_PUBLIC_MSG)); } } else { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_HIDING_SHOP_OWNER_INVALID_MSG)); } } else { - player.sendMessage(ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().FIND_ITEM_CMD_INVALID_SHOP_BLOCK_MSG)); } diff --git a/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/Menu.java b/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/Menu.java index e454722..92f27dd 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/Menu.java +++ b/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/Menu.java @@ -1,7 +1,7 @@ package io.myzticbean.finditemaddon.Handlers.GUIHandler; -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Models.FoundShopItemModel; +import java.util.List; + import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.event.inventory.InventoryClickEvent; @@ -11,7 +11,10 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; -import java.util.List; +import io.myzticbean.finditemaddon.FindItemAddOnOG; +import io.myzticbean.finditemaddon.Models.FoundShopItemModel; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; /** * Based on an awesome tutorial from https://www.youtube.com/watch?v=xebH6M_7k18 @@ -38,14 +41,14 @@ public abstract class Menu implements InventoryHolder { } GUI_FILLER_ITEM = new ItemStack(fillerMaterial); - ItemMeta FILLER_GLASS_meta = this.GUI_FILLER_ITEM.getItemMeta(); + final ItemMeta FILLER_GLASS_meta = this.GUI_FILLER_ITEM.getItemMeta(); assert FILLER_GLASS_meta != null; - FILLER_GLASS_meta.setDisplayName(" "); + FILLER_GLASS_meta.displayName(Component.text(" ")); this.GUI_FILLER_ITEM.setItemMeta(FILLER_GLASS_meta); } - public abstract String getMenuName(); + public abstract TextComponent getMenuName(); public abstract int getSlots(); @@ -79,4 +82,4 @@ public abstract class Menu implements InventoryHolder { } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/Menus/FoundShopsMenu.java b/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/Menus/FoundShopsMenu.java index 9adb9ea..3e78a63 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/Menus/FoundShopsMenu.java +++ b/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/Menus/FoundShopsMenu.java @@ -34,7 +34,9 @@ import io.myzticbean.finditemaddon.Utils.JsonStorageUtils.ShopSearchActivityStor import io.myzticbean.finditemaddon.Utils.WarpUtils.EssentialWarpsUtil; import io.myzticbean.finditemaddon.Utils.WarpUtils.WGRegionUtils; import io.papermc.lib.PaperLib; -import me.kodysimpson.simpapi.colors.ColorTranslator; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; +import net.trueog.utilitiesog.UtilitiesOG; /** * Handler class for FoundShops GUI @@ -45,7 +47,6 @@ public class FoundShopsMenu extends PaginatedMenu { private final String NO_WARP_NEAR_SHOP_ERROR_MSG = "No Warp near this shop"; private final String NO_WG_REGION_NEAR_SHOP_ERROR_MSG = "No WG Region near this shop"; - String nearestEWarp; public FoundShopsMenu(PlayerMenuUtility playerMenuUtility, List searchResult) { @@ -54,15 +55,15 @@ public class FoundShopsMenu extends PaginatedMenu { } @Override - public String getMenuName() { + public TextComponent getMenuName() { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_SEARCH_GUI_TITLE)) { - return ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().SHOP_SEARCH_GUI_TITLE); + return UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().SHOP_SEARCH_GUI_TITLE); } else { - return ColorTranslator.translateColorCodes("&l» &rShops"); + return UtilitiesOG.trueogColorize("&l» &rShops"); } @@ -108,72 +109,88 @@ public class FoundShopsMenu extends PaginatedMenu { event.getWhoClicked().closeInventory(); - } else if (event.getCurrentItem().getType().equals(Material.AIR)) { - - // do nothing - LoggerUtils.logDebugInfo(event.getWhoClicked().getName() + " just clicked on AIR!"); - } else { - Player player = (Player) event.getWhoClicked(); - ItemStack item = event.getCurrentItem(); - ItemMeta meta = item.getItemMeta(); - NamespacedKey key = new NamespacedKey(FindItemAddOnOG.getInstance(), "locationData"); + final ItemStack clicked = event.getCurrentItem(); + if (clicked == null || clicked.getType() == Material.AIR) { + + LoggerUtils.logDebugInfo(event.getWhoClicked().getName() + " just clicked on AIR!"); + return; + + } + + final Player player = (Player) event.getWhoClicked(); + final ItemMeta meta = clicked.getItemMeta(); + if (meta == null) { + + LoggerUtils.logError("Clicked item has no ItemMeta!"); + return; + + } + + final NamespacedKey key = new NamespacedKey(FindItemAddOnOG.getInstance(), "locationData"); if (!meta.getPersistentDataContainer().isEmpty() && meta.getPersistentDataContainer().has(key, PersistentDataType.STRING)) { - String locData = meta.getPersistentDataContainer().get(key, PersistentDataType.STRING); - List locDataList = Arrays.asList(locData.split("\\s*,\\s*")); + final String locData = meta.getPersistentDataContainer().get(key, PersistentDataType.STRING); + if (locData == null) { + + LoggerUtils.logError("PersistentDataContainer locationData is null!"); + return; + + } + + final List locDataList = Arrays.asList(locData.split("\\s*,\\s*")); if (FindItemAddOnOG.getConfigProvider().TP_PLAYER_DIRECTLY_TO_SHOP) { if (playerMenuUtility.getOwner().hasPermission(PlayerPerms.FINDITEM_SHOPTP.value())) { - World world = Bukkit.getWorld(locDataList.get(0)); - int locX = Integer.parseInt(locDataList.get(1)); - int locY = Integer.parseInt(locDataList.get(2)); - int locZ = Integer.parseInt(locDataList.get(3)); - Location shopLocation = new Location(world, locX, locY, locZ); - UUID shopOwner = ShopSearchActivityStorageUtil.getShopOwnerUUID(shopLocation); + final World world = Bukkit.getWorld(locDataList.get(0)); + if (world == null) { + + LoggerUtils.logError("World not found: " + locDataList.get(0)); + return; + + } + + final int locX = Integer.parseInt(locDataList.get(1)); + final int locY = Integer.parseInt(locDataList.get(2)); + final int locZ = Integer.parseInt(locDataList.get(3)); + final Location shopLocation = new Location(world, locX, locY, locZ); + final UUID shopOwner = ShopSearchActivityStorageUtil.getShopOwnerUUID(shopLocation); if (player.getUniqueId().equals(shopOwner) && !PlayerPerms.canPlayerTpToOwnShop(player)) { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().SHOP_TP_NO_PERMISSION_MSG)); } - Location locToTeleport = LocationUtils.findSafeLocationAroundShop(shopLocation); + final Location locToTeleport = LocationUtils.findSafeLocationAroundShop(shopLocation); if (locToTeleport != null) { - // Add Player Visit Entry ShopSearchActivityStorageUtil.addPlayerVisitEntryAsync(shopLocation, player); - // Add Short Blindness effect... maybe? - // TODO: 16/06/22 Make this an option in config -> player.addPotionEffect(new - // PotionEffect(PotionEffectType.BLINDNESS, 10, 0, false, false, false)); - - // If EssentialsX is enabled, register last location before teleporting to make - // /back work if (EssentialsXPlugin.isEnabled()) { EssentialsXPlugin.getAPI().getUser(player).setLastLocation(); } - // Check for TP delay if (StringUtils.isNumeric(FindItemAddOnOG.getConfigProvider().TP_DELAY_IN_SECONDS) && !"0".equals(FindItemAddOnOG.getConfigProvider().TP_DELAY_IN_SECONDS) && !PlayerPerms.hasShopTpDelayBypassPermOrAdmin(player)) { - long delay = Long.parseLong(FindItemAddOnOG.getConfigProvider().TP_DELAY_IN_SECONDS); + final long delay = Long + .parseLong(FindItemAddOnOG.getConfigProvider().TP_DELAY_IN_SECONDS); LoggerUtils.logDebugInfo("Teleporting delay is set to: " + delay); - String tpDelayMsg = FindItemAddOnOG.getConfigProvider().TP_DELAY_MESSAGE; + final String tpDelayMsg = FindItemAddOnOG.getConfigProvider().TP_DELAY_MESSAGE; if (!StringUtils.isEmpty(tpDelayMsg)) { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + replaceDelayPlaceholder(tpDelayMsg, delay))); } @@ -194,8 +211,8 @@ public class FoundShopsMenu extends PaginatedMenu { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().UNSAFE_SHOP_AREA_MSG)) { - player.sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + player.sendMessage( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().UNSAFE_SHOP_AREA_MSG)); } @@ -206,10 +223,9 @@ public class FoundShopsMenu extends PaginatedMenu { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_TP_NO_PERMISSION_MSG)) { - playerMenuUtility.getOwner() - .sendMessage(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX - + FindItemAddOnOG.getConfigProvider().SHOP_TP_NO_PERMISSION_MSG)); + playerMenuUtility.getOwner().sendMessage( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + + FindItemAddOnOG.getConfigProvider().SHOP_TP_NO_PERMISSION_MSG)); event.getWhoClicked().closeInventory(); } @@ -218,12 +234,9 @@ public class FoundShopsMenu extends PaginatedMenu { player.closeInventory(); - } else if (FindItemAddOnOG.getConfigProvider().TP_PLAYER_TO_NEAREST_WARP - // if list size = 1, it contains Warp name - && locDataList.size() == 1) - { + } else if (FindItemAddOnOG.getConfigProvider().TP_PLAYER_TO_NEAREST_WARP && locDataList.size() == 1) { - String warpName = locDataList.get(0); + final String warpName = locDataList.get(0); if (FindItemAddOnOG.getConfigProvider().NEAREST_WARP_MODE == 1) { Bukkit.dispatchCommand(player, "essentials:warp " + warpName); @@ -254,8 +267,8 @@ public class FoundShopsMenu extends PaginatedMenu { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_NAV_LAST_PAGE_ALERT_MSG)) { - event.getWhoClicked().sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + event.getWhoClicked() + .sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().SHOP_NAV_LAST_PAGE_ALERT_MSG)); } @@ -270,8 +283,8 @@ public class FoundShopsMenu extends PaginatedMenu { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_NAV_FIRST_PAGE_ALERT_MSG)) { - event.getWhoClicked().sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + event.getWhoClicked() + .sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().SHOP_NAV_FIRST_PAGE_ALERT_MSG)); } @@ -291,8 +304,8 @@ public class FoundShopsMenu extends PaginatedMenu { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_NAV_FIRST_PAGE_ALERT_MSG)) { - event.getWhoClicked().sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + event.getWhoClicked() + .sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().SHOP_NAV_FIRST_PAGE_ALERT_MSG)); } @@ -330,8 +343,8 @@ public class FoundShopsMenu extends PaginatedMenu { if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_NAV_LAST_PAGE_ALERT_MSG)) { - event.getWhoClicked().sendMessage( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + event.getWhoClicked() + .sendMessage(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().PLUGIN_PREFIX + FindItemAddOnOG.getConfigProvider().SHOP_NAV_LAST_PAGE_ALERT_MSG)); } @@ -377,30 +390,40 @@ public class FoundShopsMenu extends PaginatedMenu { if (foundShops.get(index) != null) { - // Place Search Results here final FoundShopItemModel foundShop_i = foundShops.get(index); final NamespacedKey key = new NamespacedKey(FindItemAddOnOG.getInstance(), "locationData"); final ItemStack item = new ItemStack(foundShop_i.getItem().getType()); + ItemMeta meta = item.getItemMeta(); - final List lore; - lore = new ArrayList<>(); + if (meta == null) { + + guiSlotCounter++; + continue; + + } + + final List lore = new ArrayList<>(); if (foundShop_i.getItem().hasItemMeta()) { - meta = foundShop_i.getItem().getItemMeta(); - if (foundShop_i.getItem().getItemMeta().hasLore()) { + final ItemMeta foundMeta = foundShop_i.getItem().getItemMeta(); + if (foundMeta != null) { - foundShop_i.getItem().getItemMeta().getLore().forEach(s -> { + meta = foundMeta; + final List existingLore = foundMeta.lore(); + if (existingLore != null && !existingLore.isEmpty()) { - lore.add(ColorTranslator.translateColorCodes(s)); + lore.addAll(existingLore); - }); + } } } final List shopItemLore = FindItemAddOnOG.getConfigProvider().SHOP_GUI_ITEM_LORE; - shopItemLore.forEach(shopItemLore_i -> { + String nearestEWarp = null; + + for (String shopItemLore_i : shopItemLore) { if (shopItemLore_i.contains(ShopLorePlaceholders.NEAREST_WARP.value())) { @@ -408,49 +431,41 @@ public class FoundShopsMenu extends PaginatedMenu { case 1 -> { - // EssentialWarp: Check nearest warp + String replacement = NO_WARP_NEAR_SHOP_ERROR_MSG; if (EssentialsXPlugin.isEnabled()) { nearestEWarp = new EssentialWarpsUtil() .findNearestWarp(foundShop_i.getShopLocation()); if (nearestEWarp != null && !StringUtils.isEmpty(nearestEWarp)) { - lore.add(ColorTranslator.translateColorCodes(shopItemLore_i - .replace(ShopLorePlaceholders.NEAREST_WARP.value(), nearestEWarp))); - - } else { - - lore.add(ColorTranslator.translateColorCodes( - shopItemLore_i.replace(ShopLorePlaceholders.NEAREST_WARP.value(), - NO_WARP_NEAR_SHOP_ERROR_MSG))); + replacement = nearestEWarp; } } + lore.add(UtilitiesOG.trueogColorize(shopItemLore_i + .replace(ShopLorePlaceholders.NEAREST_WARP.value(), replacement))); + } case 2 -> { - // WG Region: Check nearest WG Region + String replacement = NO_WG_REGION_NEAR_SHOP_ERROR_MSG; if (WGPlugin.isEnabled()) { final String nearestWGRegion = new WGRegionUtils() .findNearestWGRegion((foundShop_i.getShopLocation())); if (nearestWGRegion != null && !StringUtils.isEmpty(nearestWGRegion)) { - lore.add(ColorTranslator.translateColorCodes(shopItemLore_i - .replace(ShopLorePlaceholders.NEAREST_WARP.value(), nearestWGRegion))); - - } else { - - lore.add(ColorTranslator.translateColorCodes( - shopItemLore_i.replace(ShopLorePlaceholders.NEAREST_WARP.value(), - NO_WG_REGION_NEAR_SHOP_ERROR_MSG))); + replacement = nearestWGRegion; } } + lore.add(UtilitiesOG.trueogColorize(shopItemLore_i + .replace(ShopLorePlaceholders.NEAREST_WARP.value(), replacement))); + } default -> LoggerUtils.logDebugInfo("Invalid value in 'nearest-warp-mode' in config.yml!"); @@ -458,28 +473,23 @@ public class FoundShopsMenu extends PaginatedMenu { } else { - lore.add(ColorTranslator - .translateColorCodes(replaceLorePlaceholders(shopItemLore_i, foundShop_i))); + lore.add(UtilitiesOG.trueogColorize(replaceLorePlaceholders(shopItemLore_i, foundShop_i))); } - }); + } if (FindItemAddOnOG.getConfigProvider().TP_PLAYER_DIRECTLY_TO_SHOP && playerMenuUtility.getOwner().hasPermission(PlayerPerms.FINDITEM_SHOPTP.value())) { - lore.add(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().CLICK_TO_TELEPORT_MSG)); + lore.add(UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().CLICK_TO_TELEPORT_MSG)); } - assert meta != null; - meta.setLore(lore); + meta.lore(lore); - // storing location data in item persistent storage String locData = StringUtils.EMPTY; - // store the coordinates if (FindItemAddOnOG.getConfigProvider().TP_PLAYER_DIRECTLY_TO_SHOP) { locData = Objects.requireNonNull(foundShop_i.getShopLocation().getWorld()).getName() + "," @@ -491,7 +501,6 @@ public class FoundShopsMenu extends PaginatedMenu { final boolean condition = FindItemAddOnOG.getConfigProvider().NEAREST_WARP_MODE == 1 && nearestEWarp != null; - // if Nearest Warp is set to EssentialsX Warps, store the warp name if (condition) { locData = nearestEWarp; @@ -502,7 +511,6 @@ public class FoundShopsMenu extends PaginatedMenu { meta.getPersistentDataContainer().set(key, PersistentDataType.STRING, locData); - // handling custom model data if (Objects.requireNonNull(foundShop_i.getItem().getItemMeta()).hasCustomModelData()) { meta.setCustomModelData(foundShop_i.getItem().getItemMeta().getCustomModelData()); @@ -559,7 +567,6 @@ public class FoundShopsMenu extends PaginatedMenu { } else { - // set a generic name for shops with no owner name text = text.replace(ShopLorePlaceholders.SHOP_OWNER.value(), "Admin"); } @@ -580,7 +587,6 @@ public class FoundShopsMenu extends PaginatedMenu { } - // Added in v2.0 if (text.contains(ShopLorePlaceholders.SHOP_VISITS.value())) { text = text.replace(ShopLorePlaceholders.SHOP_VISITS.value(), diff --git a/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/PaginatedMenu.java b/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/PaginatedMenu.java index d8ed34b..da5bcab 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/PaginatedMenu.java +++ b/src/main/java/io/myzticbean/finditemaddon/Handlers/GUIHandler/PaginatedMenu.java @@ -1,17 +1,18 @@ package io.myzticbean.finditemaddon.Handlers.GUIHandler; -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Models.FoundShopItemModel; -import io.myzticbean.finditemaddon.Utils.LoggerUtils; -import me.kodysimpson.simpapi.colors.ColorTranslator; +import java.util.List; +import java.util.UUID; + import org.apache.commons.lang3.StringUtils; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import java.util.List; -import java.util.UUID; +import io.myzticbean.finditemaddon.FindItemAddOnOG; +import io.myzticbean.finditemaddon.Models.FoundShopItemModel; +import io.myzticbean.finditemaddon.Utils.LoggerUtils; +import net.trueog.utilitiesog.UtilitiesOG; public abstract class PaginatedMenu extends Menu { @@ -88,8 +89,8 @@ public abstract class PaginatedMenu extends Menu { assert backButtonMeta != null; if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_GUI_BACK_BUTTON_TEXT)) { - backButtonMeta.setDisplayName( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().SHOP_GUI_BACK_BUTTON_TEXT)); + backButtonMeta.displayName( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().SHOP_GUI_BACK_BUTTON_TEXT)); } @@ -103,7 +104,7 @@ public abstract class PaginatedMenu extends Menu { } - } catch (NumberFormatException e) { + } catch (NumberFormatException eror) { LoggerUtils.logDebugInfo("Invalid Custom Model Data for Back Button in config.yml"); @@ -131,8 +132,8 @@ public abstract class PaginatedMenu extends Menu { assert nextButtonMeta != null; if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_GUI_NEXT_BUTTON_TEXT)) { - nextButtonMeta.setDisplayName( - ColorTranslator.translateColorCodes(FindItemAddOnOG.getConfigProvider().SHOP_GUI_NEXT_BUTTON_TEXT)); + nextButtonMeta.displayName( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().SHOP_GUI_NEXT_BUTTON_TEXT)); } @@ -146,7 +147,7 @@ public abstract class PaginatedMenu extends Menu { } - } catch (NumberFormatException e) { + } catch (NumberFormatException error) { LoggerUtils.logDebugInfo("Invalid Custom Model Data for Next Button in config.yml"); @@ -167,8 +168,8 @@ public abstract class PaginatedMenu extends Menu { ItemMeta firstPageButtonMeta = firstPageButton.getItemMeta(); if (firstPageButtonMeta != null && !StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_GUI_GOTO_FIRST_PAGE_BUTTON_TEXT)) - firstPageButtonMeta.setDisplayName(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().SHOP_GUI_GOTO_FIRST_PAGE_BUTTON_TEXT)); + firstPageButtonMeta.displayName(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().SHOP_GUI_GOTO_FIRST_PAGE_BUTTON_TEXT)); int firstPageButtonCMD; try { @@ -182,7 +183,7 @@ public abstract class PaginatedMenu extends Menu { } - } catch (NumberFormatException e) { + } catch (NumberFormatException error) { LoggerUtils.logDebugInfo("Invalid Custom Model Data for Goto First Page Button in config.yml"); @@ -203,8 +204,8 @@ public abstract class PaginatedMenu extends Menu { ItemMeta lastPageButtonMeta = lastPageButton.getItemMeta(); if (lastPageButtonMeta != null && !StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_GUI_GOTO_LAST_PAGE_BUTTON_TEXT)) - lastPageButtonMeta.setDisplayName(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().SHOP_GUI_GOTO_LAST_PAGE_BUTTON_TEXT)); + lastPageButtonMeta.displayName(UtilitiesOG + .trueogColorize(FindItemAddOnOG.getConfigProvider().SHOP_GUI_GOTO_LAST_PAGE_BUTTON_TEXT)); int lastPageButtonCMD; try { @@ -218,7 +219,7 @@ public abstract class PaginatedMenu extends Menu { } - } catch (NumberFormatException e) { + } catch (NumberFormatException error) { LoggerUtils.logDebugInfo("Invalid Custom Model Data for Goto Last Page Button in config.yml"); @@ -243,8 +244,8 @@ public abstract class PaginatedMenu extends Menu { assert closeInvMeta != null; if (!StringUtils.isEmpty(FindItemAddOnOG.getConfigProvider().SHOP_GUI_CLOSE_BUTTON_TEXT)) { - closeInvMeta.setDisplayName(ColorTranslator - .translateColorCodes(FindItemAddOnOG.getConfigProvider().SHOP_GUI_CLOSE_BUTTON_TEXT)); + closeInvMeta.displayName( + UtilitiesOG.trueogColorize(FindItemAddOnOG.getConfigProvider().SHOP_GUI_CLOSE_BUTTON_TEXT)); } @@ -258,7 +259,7 @@ public abstract class PaginatedMenu extends Menu { } - } catch (NumberFormatException e) { + } catch (NumberFormatException error) { LoggerUtils.logDebugInfo("Invalid Custom Model Data for Close Button in config.yml"); diff --git a/src/main/java/io/myzticbean/finditemaddon/Listeners/PlayerJoinEventListener.java b/src/main/java/io/myzticbean/finditemaddon/Listeners/PlayerJoinEventListener.java deleted file mode 100644 index c035dad..0000000 --- a/src/main/java/io/myzticbean/finditemaddon/Listeners/PlayerJoinEventListener.java +++ /dev/null @@ -1,18 +0,0 @@ -package io.myzticbean.finditemaddon.Listeners; - -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Utils.UpdateChecker; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; - -public class PlayerJoinEventListener implements Listener { - - @EventHandler - public void onPlayerJoin(PlayerJoinEvent event) { - - new UpdateChecker(FindItemAddOnOG.getPluginID()).notifyPlayerAboutUpdateOnJoin(event); - - } - -} diff --git a/src/main/java/io/myzticbean/finditemaddon/Utils/CommonUtils.java b/src/main/java/io/myzticbean/finditemaddon/Utils/CommonUtils.java index 75554e2..b12bf34 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Utils/CommonUtils.java +++ b/src/main/java/io/myzticbean/finditemaddon/Utils/CommonUtils.java @@ -1,28 +1,28 @@ package io.myzticbean.finditemaddon.Utils; -import me.kodysimpson.simpapi.colors.ColorTranslator; -import net.md_5.bungee.api.ChatMessageType; -import org.bukkit.ChatColor; import org.bukkit.entity.Player; +import net.kyori.adventure.text.Component; +import net.trueog.utilitiesog.UtilitiesOG; + public class CommonUtils { - public static String parseColors(String msg) { - - return ChatColor.translateAlternateColorCodes('&', msg); - - } - public static void sendPlayerActionBar(Player player, String msg) { - player.spigot().sendMessage(ChatMessageType.ACTION_BAR, - ColorTranslator.translateColorCodesToTextComponent(msg)); + if (player == null || msg == null) { + + return; + + } + + final Component component = UtilitiesOG.trueogColorize(msg); + player.sendActionBar(component); } public static String capitalizeFirstLetters(String str) { - char[] array = str.toCharArray(); + final char[] array = str.toCharArray(); // Uppercase first letter. array[0] = Character.toUpperCase(array[0]); @@ -54,4 +54,4 @@ public class CommonUtils { } -} +} \ No newline at end of file diff --git a/src/main/java/io/myzticbean/finditemaddon/Utils/JsonStorageUtils/ShopSearchActivityStorageUtil.java b/src/main/java/io/myzticbean/finditemaddon/Utils/JsonStorageUtils/ShopSearchActivityStorageUtil.java index fdbcbf6..c7a7fc2 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Utils/JsonStorageUtils/ShopSearchActivityStorageUtil.java +++ b/src/main/java/io/myzticbean/finditemaddon/Utils/JsonStorageUtils/ShopSearchActivityStorageUtil.java @@ -36,7 +36,6 @@ import io.myzticbean.finditemaddon.Models.PlayerShopVisitModel; import io.myzticbean.finditemaddon.Models.ShopSearchActivityModel; import io.myzticbean.finditemaddon.Utils.LoggerUtils; import lombok.Getter; -import me.kodysimpson.simpapi.colors.ColorTranslator; public class ShopSearchActivityStorageUtil { @@ -105,14 +104,12 @@ public class ShopSearchActivityStorageUtil { if (isCooldownTimeElapsed) { - LoggerUtils.logDebugInfo( - ColorTranslator.translateColorCodes("&6" + player.getName() + " is out of cooldown")); + LoggerUtils.logDebugInfo(("&6" + player.getName() + " is out of cooldown")); return true; } else { - LoggerUtils.logDebugInfo( - ColorTranslator.translateColorCodes("&6" + player.getName() + " still has cooldown")); + LoggerUtils.logDebugInfo(("&6" + player.getName() + " still has cooldown")); return false; } @@ -121,8 +118,7 @@ public class ShopSearchActivityStorageUtil { } - LoggerUtils.logDebugInfo( - ColorTranslator.translateColorCodes("&6Shop not found, returning false for cooldown check")); + LoggerUtils.logDebugInfo(("&6Shop not found, returning false for cooldown check")); return false; } diff --git a/src/main/java/io/myzticbean/finditemaddon/Utils/LoggerUtils.java b/src/main/java/io/myzticbean/finditemaddon/Utils/LoggerUtils.java index 7d856be..3d6e841 100644 --- a/src/main/java/io/myzticbean/finditemaddon/Utils/LoggerUtils.java +++ b/src/main/java/io/myzticbean/finditemaddon/Utils/LoggerUtils.java @@ -1,8 +1,7 @@ package io.myzticbean.finditemaddon.Utils; import io.myzticbean.finditemaddon.FindItemAddOnOG; -import me.kodysimpson.simpapi.colors.ColorTranslator; -import org.bukkit.Bukkit; +import net.trueog.utilitiesog.UtilitiesOG; public class LoggerUtils { @@ -10,7 +9,7 @@ public class LoggerUtils { if (FindItemAddOnOG.getConfigProvider().DEBUG_MODE) { - Bukkit.getLogger().warning(ColorTranslator.translateColorCodes("[QSFindItemAddOn-DebugLog] " + text)); + UtilitiesOG.logToConsole("[QSFindItemAddOn-OG] Debug:", text); } @@ -18,20 +17,19 @@ public class LoggerUtils { public static void logInfo(String text) { - Bukkit.getLogger().info(ColorTranslator.translateColorCodes("[QSFindItemAddOn] " + text)); + UtilitiesOG.logToConsole("[QSFindItemAddOn-OG] Info:", text); } public static void logError(String text) { - Bukkit.getLogger().severe(ColorTranslator.translateColorCodes("[QSFindItemAddOn] " + text)); + UtilitiesOG.logToConsole("[QSFindItemAddOn-OG] Error:", text); } public static void logWarning(String text) { -// Bukkit.getConsoleSender().sendMessage(ColorTranslator.translateColorCodes("[QSFindItemAddOn] &6" + text)); - Bukkit.getLogger().warning(ColorTranslator.translateColorCodes("[QSFindItemAddOn] " + text)); + UtilitiesOG.logToConsole("[QSFindItemAddOn-OG] Warning:", text); } diff --git a/src/main/java/io/myzticbean/finditemaddon/Utils/UpdateChecker.java b/src/main/java/io/myzticbean/finditemaddon/Utils/UpdateChecker.java deleted file mode 100644 index d6aeb8d..0000000 --- a/src/main/java/io/myzticbean/finditemaddon/Utils/UpdateChecker.java +++ /dev/null @@ -1,75 +0,0 @@ -package io.myzticbean.finditemaddon.Utils; - -import io.myzticbean.finditemaddon.FindItemAddOnOG; -import io.myzticbean.finditemaddon.Utils.Defaults.PlayerPerms; -import me.kodysimpson.simpapi.colors.ColorTranslator; -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.player.PlayerJoinEvent; - -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.util.Scanner; -import java.util.function.Consumer; - -public class UpdateChecker { - - private final String prefix = "&8[" + "7a800Q" + "ea800S" + "Ba800F" + "ea900i" + "La900n" - + "da900d" + "Ta900I" + "ba900t" + "\a900e" + "ba900m" + " ea900A" + "&#a4a900d" - + "&#aaa800d" + "&#b0a800O" + "&#b6a800n" + "&8] "; - private final int resourceId; - - public UpdateChecker(int resourceId) { - - this.resourceId = resourceId; - - } - - public void getLatestVersion(Consumer consumer) { - - Bukkit.getScheduler().runTaskAsynchronously(FindItemAddOnOG.getInstance(), () -> { - - try (InputStream inputStream = new URL( - "https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceId).openStream(); - Scanner scanner = new Scanner(inputStream)) - { - - if (scanner.hasNext()) { - - consumer.accept(scanner.next()); - - } - - } catch (IOException exception) { - - LoggerUtils.logError("Update checker is broken, can't find an update!" + exception.getMessage()); - - } - - }); - - } - - public void notifyPlayerAboutUpdateOnJoin(PlayerJoinEvent event) { - - Player player = event.getPlayer(); - if (player.isOp() || player.hasPermission(PlayerPerms.FINDITEM_ADMIN.value())) { - - if (FindItemAddOnOG.getPluginOutdated()) { - - player.sendMessage(ColorTranslator.translateColorCodes(prefix + ";b300Hey Ie600" - + player.getName() + ";b300! Plugin has an update... You are still on v" - + FindItemAddOnOG.getInstance().getDescription().getVersion())); - - player.sendMessage(ColorTranslator.translateColorCodes( - prefix + ";b300Download here: &#a3a3c2&nhttps://www.spigotmc.org/resources/" - + FindItemAddOnOG.getPluginID() + "/")); - - } - - } - - } - -} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 3249cca..75284a3 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -4,74 +4,76 @@ # PLEASE refer the below link to understand the meaning of all the fields and sample data: # https://github.com/myzticbean/QSFindItemAddOn/wiki/Sample-config.yml -plugin-prefix: "&8[&a&lShop Search&8] &r" +plugin-prefix: '&8[&a&lShop Search&8] &r' find-item-command: command-alias: - - "searchshop" - - "shopsearch" - - "searchitem" - incorrect-usage-message: "&cIncorrect usage! Try &e/find &a{TO-BUY | TO-SELL} &6{item type | item name}" - invalid-material-message: "&cEither no shops were found or you provided an invalid item! &fTry selecting from autofill." - shop-search-loading-message: "&7Searching..." - no-shop-found-message: "&7No shops found!" - find-item-command-no-permission-message: "&cNo permission!" - to-buy-autocomplete: "TO_BUY" - to-sell-autocomplete: "TO_SELL" - hideshop-autocomplete: "hideshop" - revealshop-autocomplete: "revealshop" - shop-hide-success-message: "&aShop is now hidden from search list!" - shop-reveal-success-message: "&aShop is no longer hidden from search list!" - shop-already-hidden-message: "&cThis shop is already hidden!" - shop-already-public-message: "&cThis shop is already public!" - invalid-shop-block-message: "&cThe block you are looking at is not a shop!" - hiding-shop-owner-invalid-message: "&cThat shop is not yours!" + - searchshop + - shopsearch + - searchitem + incorrect-usage-message: '&cIncorrect usage! Try &e/find &a{TO-BUY | TO-SELL} &6{item + type | item name}' + invalid-material-message: '&cEither no shops were found or you provided an invalid + item! &fTry selecting from autofill.' + shop-search-loading-message: '&7Searching...' + no-shop-found-message: '&7No shops found!' + find-item-command-no-permission-message: '&cNo permission!' + to-buy-autocomplete: TO_BUY + to-sell-autocomplete: TO_SELL + hideshop-autocomplete: hideshop + revealshop-autocomplete: revealshop + shop-hide-success-message: '&aShop is now hidden from search list!' + shop-reveal-success-message: '&aShop is no longer hidden from search list!' + shop-already-hidden-message: '&cThis shop is already hidden!' + shop-already-public-message: '&cThis shop is already public!' + invalid-shop-block-message: '&cThe block you are looking at is not a shop!' + hiding-shop-owner-invalid-message: '&cThat shop is not yours!' shop-sorting-method: 2 search-loaded-shops-only: false -shop-search-gui-title: "&l» &rShops" +shop-search-gui-title: '&l» &rShops' nearest-warp-mode: 1 shop-gui-item-lore: - - "" - - "&fPrice: &a${ITEM_PRICE}" - - "&fStock: &7{SHOP_STOCK}" - - "&fOwner: &7{SHOP_OWNER}" - - "&fLocation: &7{SHOP_LOC}" - - "&fWorld: &7{SHOP_WORLD}" - - "&fWarp: &7{NEAREST_WARP}" - - "&fShop Visits: &7{SHOP_VISITS}" - - "" +- '' +- '&fPrice: &a${ITEM_PRICE}' +- '&fStock: &7{SHOP_STOCK}' +- '&fOwner: &7{SHOP_OWNER}' +- '&fLocation: &7{SHOP_LOC}' +- '&fWorld: &7{SHOP_WORLD}' +- '&fWarp: &7{NEAREST_WARP}' +- '&fShop Visits: &7{SHOP_VISITS}' +- '' player-shop-teleportation: direct-shop-tp-mode: - tp-player-directly-to-shop: true - click-to-teleport-message: "&6&lClick to teleport to the shop!" - shop-tp-no-permission-message: "&cYou don't have permission to teleport to shop!" - unsafe-shop-area-message: "&cThe area around the shop is unsafe!" + tp-player-directly-to-shop: false + click-to-teleport-message: '&6&lClick to teleport to the shop!' + shop-tp-no-permission-message: '&cYou don''t have permission to teleport to shop!' + unsafe-shop-area-message: '&cThe area around the shop is unsafe!' tp-delay-in-seconds: 0 - tp-delay-message: "&6You will be teleported in &c{DELAY} &6seconds..." - tp-to-own-shop-no-permission-message: "&cYou cannot teleport to your own shop!" + tp-delay-message: '&6You will be teleported in &c{DELAY} &6seconds...' + tp-to-own-shop-no-permission-message: '&cYou cannot teleport to your own shop!' nearest-warp-tp-mode: tp-player-to-nearest-warp: false -shop-gui-back-button-material: "" -shop-gui-back-button-text: "&7&l« &cBack" -shop-gui-next-button-material: "" -shop-gui-next-button-text: "&aNext &7&l»" -shop-gui-filler-item: "GRAY_STAINED_GLASS_PANE" -shop-gui-close-button-material: "BARRIER" -shop-gui-close-button-text: "&fClose Search" -shop-gui-goto-first-page-button-material: "" -shop-gui-goto-first-page-button-text: "&7&l« &cGo to First Page" -shop-gui-goto-last-page-button-material: "" -shop-gui-goto-last-page-button-text: "&aGo to Last Page &7&l»" -shop-gui-back-button-custom-model-data: "" -shop-gui-next-button-custom-model-data: "" -shop-gui-goto-first-page-button-custom-model-data: "" -shop-gui-goto-last-page-button-custom-model-data: "" -shop-gui-close-button-custom-model-data: "" -shop-navigation-first-page-alert-message: "&cYou are already on first page!" -shop-navigation-last-page-alert-message: "&cYou are already on last page!" +shop-gui-back-button-material: '' +shop-gui-back-button-text: '&7&l« &cBack' +shop-gui-next-button-material: '' +shop-gui-next-button-text: '&aNext &7&l»' +shop-gui-filler-item: GRAY_STAINED_GLASS_PANE +shop-gui-close-button-material: BARRIER +shop-gui-close-button-text: '&fClose Search' +shop-gui-goto-first-page-button-material: '' +shop-gui-goto-first-page-button-text: '&7&l« &cGo to First Page' +shop-gui-goto-last-page-button-material: '' +shop-gui-goto-last-page-button-text: '&aGo to Last Page &7&l»' +shop-gui-back-button-custom-model-data: '' +shop-gui-next-button-custom-model-data: '' +shop-gui-goto-first-page-button-custom-model-data: '' +shop-gui-goto-last-page-button-custom-model-data: '' +shop-gui-close-button-custom-model-data: '' +shop-navigation-first-page-alert-message: '&cYou are already on first page!' +shop-navigation-last-page-alert-message: '&cYou are already on last page!' shop-player-visit-cooldown-in-minutes: 5 ignore-empty-chests: true blacklisted-worlds: - - "world_number_1" - - "world_number_2" +- world_number_1 +- world_number_2 debug-mode: false config-version: 13 diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml deleted file mode 100644 index fbb3dba..0000000 --- a/src/main/resources/plugin.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: QSFindItemAddOn-OG -version: ${version} -main: io.myzticbean.finditemaddon.FindItemAddOnOG -api-version: 1.19 -authors: [ myzticbean, NotAlexNoyle ] -softdepend: - - QuickShop-OG - - WorldGuard - - Essentials - -permissions: - finditem.use: - description: Enables players to use the /find command - default: true - finditem.hideshop: - description: Enables players to use the /find hideshop & /find revealshop - default: true - finditem.reload: - description: For OP. Enables use of '/finditemadmin reload' to reload the config - default: op - finditem.admin: - description: For OP. Enables use of all admin commands - default: op - finditem.shoptp: - description: If 'allow-direct-shop-tp' is enabled in config, players require this permission to be able to teleport - default: op - finditem.shoptp.own: - description: Allows teleporting to own shops - default: true - finditem.shoptp-delay.bypass: - description: Bypass the TP delay for teleporting to shop - default: op diff --git a/src/main/resources/shops.json b/src/main/resources/shops.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/src/main/resources/shops.json @@ -0,0 +1 @@ +[] \ No newline at end of file