mirror of
https://github.com/kiranhart/Auction-House.git
synced 2025-02-22 20:21:44 +01:00
search functionality implemented
This commit is contained in:
parent
906f188c99
commit
72937db61f
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user