Remove SimpAPI
This commit is contained in:
1 parent
99618a56ed
commit
23f76572fc
25 files changed
+933
-667
No files matched your search
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Fetch all submodule content.
|
||||
git submodule update --force --recursive --init
|
||||
+2
-2
@@ -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")
|
||||
|
||||
+13
-1
@@ -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.
|
||||
|
||||
+15
-14
@@ -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<Player> {
|
||||
|
||||
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<Player> {
|
||||
|
||||
} 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!"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
+13
-13
@@ -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<Player> {
|
||||
|
||||
@@ -55,8 +56,8 @@ public class FindItemCmdReremakeImpl implements CommandHandler<Player> {
|
||||
|
||||
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<Player> {
|
||||
|
||||
} 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!"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String> itemsList = new ArrayList<>();
|
||||
@@ -52,28 +55,24 @@ public class BuySubCmd extends SubCommand {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
|
||||
return buySubCommand;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> 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<String> getSubcommandArguments(Player player, String[] args) {
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
|
||||
List<String> 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()));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+14
-15
@@ -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<String> 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<String> getSubcommandArguments(Player player, String[] strings) {
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
|
||||
return null;
|
||||
return List.of();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<String> 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<String> getSubcommandArguments(Player player, String[] strings) {
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
|
||||
return null;
|
||||
return List.of();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+13
-14
@@ -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<String> 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<String> getSubcommandArguments(Player player, String[] strings) {
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
|
||||
return null;
|
||||
return List.of();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+14
-15
@@ -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<String> 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<String> getSubcommandArguments(Player player, String[] strings) {
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
|
||||
return null;
|
||||
return List.of();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<String> itemsList = new ArrayList<>();
|
||||
@@ -50,28 +53,24 @@ public class SellSubCmd extends SubCommand {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
|
||||
return sellSubCommand;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> 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<String> getSubcommandArguments(Player player, String[] args) {
|
||||
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
|
||||
|
||||
List<String> 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()));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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<String> FIND_ITEM_COMMAND_ALIAS = (List<String>) ConfigSetup.get()
|
||||
.getList("find-item-command.command-alias");
|
||||
public final String FIND_ITEM_TO_BUY_AUTOCOMPLETE = ConfigSetup.get()
|
||||
|
||||
@@ -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<String> 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<String> 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<PluginCommand> 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<String> aliases) implements CommandExecutor, TabCompleter {
|
||||
|
||||
private FindCommandExecutor(List<String> 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<String> 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<Object> 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<String> aliases) implements CommandExecutor, TabCompleter {
|
||||
|
||||
private FindItemAdminCommandExecutor(List<String> 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<String> 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<Object> 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<String> invokeTabComplete(Object subCommand, CommandSender sender, Command command,
|
||||
String label, String[] args)
|
||||
{
|
||||
|
||||
if (subCommand instanceof TabCompleter) {
|
||||
|
||||
final List<String> 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<String> res = (List<String>) 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<String> partialMatches(String token, List<String> 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 {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+74
-86
@@ -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<FoundShopItemModel> searchResultList = FindItemAddOnOG.getQsApiInstance()
|
||||
final List<FoundShopItemModel> 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));
|
||||
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+102
-96
@@ -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<FoundShopItemModel> 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<String> 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<String> 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<String> lore;
|
||||
lore = new ArrayList<>();
|
||||
if (meta == null) {
|
||||
|
||||
guiSlotCounter++;
|
||||
continue;
|
||||
|
||||
}
|
||||
|
||||
final List<Component> 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<Component> existingLore = foundMeta.lore();
|
||||
if (existingLore != null && !existingLore.isEmpty()) {
|
||||
|
||||
lore.add(ColorTranslator.translateColorCodes(s));
|
||||
lore.addAll(existingLore);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
final List<String> 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(),
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+3
-7
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String> 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() + "/"));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
[]
|
||||
Reference in new issue
Block a user