Remove SimpAPI

This commit is contained in:
NotAlexNoyle committed 2026-02-18 08:06:51 -05:00
1 parent 99618a56ed
commit 23f76572fc
25 files changed
+933 -667

No files matched your search

Executable
+4
View File
@@ -0,0 +1,4 @@
#!/usr/bin/bash
# Fetch all submodule content.
git submodule update --force --recursive --init
+2 -2
View File
@@ -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
View File
@@ -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.
@@ -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!"));
}
@@ -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()));
}
}
}
@@ -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();
}
}
}
@@ -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();
}
}
}
@@ -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» &#2db300/" + 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» &#2db300/" + 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» &#2db300/" + 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» &#2db300/" + 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 {
}
}
}
@@ -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 {
}
}
}
@@ -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 {
}
}
}
@@ -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[" + "&#55a800Q" + "&#5ea800S" + "&#66a800F" + "&#6ea900i" + "&#76a900n"
+ "&#7da900d" + "&#84a900I" + "&#8ba900t" + "&#92a900e" + "&#98a900m" + "&#9ea900A" + "&#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 + "&#59b300Hey &#73e600"
+ player.getName() + "&#59b300! Plugin has an update... You are still on v"
+ FindItemAddOnOG.getInstance().getDescription().getVersion()));
player.sendMessage(ColorTranslator.translateColorCodes(
prefix + "&#59b300Download here: &#a3a3c2&nhttps://www.spigotmc.org/resources/"
+ FindItemAddOnOG.getPluginID() + "/"));
}
}
}
}
+57 -55
View File
@@ -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
-32
View File
@@ -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
+1
View File
@@ -0,0 +1 @@
[]