diff --git a/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java b/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java index f2a0a88..7b5919b 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java +++ b/src/main/java/ca/tweetzy/auctionhouse/api/AuctionAPI.java @@ -19,6 +19,8 @@ import java.util.Base64; import java.util.Date; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * The current file has been created by Kiran Hart @@ -214,4 +216,10 @@ public class AuctionAPI { e.printStackTrace(); } } + + public boolean match(String pattern, String sentence) { + Pattern patt = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); + Matcher matcher = patt.matcher(sentence); + return matcher.find(); + } } diff --git a/src/main/java/ca/tweetzy/auctionhouse/commands/CommandSearch.java b/src/main/java/ca/tweetzy/auctionhouse/commands/CommandSearch.java index 3155518..982be9e 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/commands/CommandSearch.java +++ b/src/main/java/ca/tweetzy/auctionhouse/commands/CommandSearch.java @@ -1,7 +1,10 @@ package ca.tweetzy.auctionhouse.commands; +import ca.tweetzy.auctionhouse.AuctionHouse; +import ca.tweetzy.auctionhouse.guis.GUIAuctionHouse; import ca.tweetzy.core.commands.AbstractCommand; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import java.util.List; @@ -20,6 +23,14 @@ public class CommandSearch extends AbstractCommand { @Override protected ReturnType runCommand(CommandSender sender, String... args) { if (args.length <= 0) return ReturnType.SYNTAX_ERROR; + Player player = (Player) sender; + + StringBuilder builder = new StringBuilder(); + for (String arg : args) { + builder.append(arg).append(" "); + } + + AuctionHouse.getInstance().getGuiManager().showGUI(player, new GUIAuctionHouse(AuctionHouse.getInstance().getAuctionPlayerManager().getPlayer(player.getUniqueId()), builder.toString().trim())); return ReturnType.SUCCESS; } diff --git a/src/main/java/ca/tweetzy/auctionhouse/guis/GUIAuctionHouse.java b/src/main/java/ca/tweetzy/auctionhouse/guis/GUIAuctionHouse.java index 56ae001..058637d 100644 --- a/src/main/java/ca/tweetzy/auctionhouse/guis/GUIAuctionHouse.java +++ b/src/main/java/ca/tweetzy/auctionhouse/guis/GUIAuctionHouse.java @@ -1,6 +1,7 @@ package ca.tweetzy.auctionhouse.guis; import ca.tweetzy.auctionhouse.AuctionHouse; +import ca.tweetzy.auctionhouse.api.AuctionAPI; import ca.tweetzy.auctionhouse.auction.*; import ca.tweetzy.auctionhouse.guis.transaction.GUITransactionList; import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper; @@ -10,6 +11,7 @@ import ca.tweetzy.core.gui.Gui; import ca.tweetzy.core.utils.TextUtils; import ca.tweetzy.core.utils.items.TItemBuilder; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import java.util.Comparator; import java.util.HashMap; @@ -46,6 +48,12 @@ public class GUIAuctionHouse extends Gui { } } + public GUIAuctionHouse(AuctionPlayer auctionPlayer, String phrase) { + this(auctionPlayer); + // re-fetch the auction items since we wanna filter out any items that match the phrase + this.items = this.items.stream().filter(auctionItem -> AuctionAPI.getInstance().match(phrase, ChatColor.stripColor(auctionItem.getItemName())) || AuctionAPI.getInstance().match(phrase, auctionItem.getCategory().getType()) || AuctionAPI.getInstance().match(phrase, Bukkit.getOfflinePlayer(auctionItem.getOwner()).getName())).collect(Collectors.toList()); + } + public GUIAuctionHouse(AuctionPlayer auctionPlayer, AuctionItemCategory filterCategory, AuctionSaleType filterAuctionType) { this(auctionPlayer); this.filterCategory = filterCategory;