mirror of
https://github.com/kiranhart/Auction-House.git
synced 2025-02-23 20:31:30 +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.Date;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The current file has been created by Kiran Hart
|
* The current file has been created by Kiran Hart
|
||||||
@ -214,4 +216,10 @@ public class AuctionAPI {
|
|||||||
e.printStackTrace();
|
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;
|
package ca.tweetzy.auctionhouse.commands;
|
||||||
|
|
||||||
|
import ca.tweetzy.auctionhouse.AuctionHouse;
|
||||||
|
import ca.tweetzy.auctionhouse.guis.GUIAuctionHouse;
|
||||||
import ca.tweetzy.core.commands.AbstractCommand;
|
import ca.tweetzy.core.commands.AbstractCommand;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -20,6 +23,14 @@ public class CommandSearch extends AbstractCommand {
|
|||||||
@Override
|
@Override
|
||||||
protected ReturnType runCommand(CommandSender sender, String... args) {
|
protected ReturnType runCommand(CommandSender sender, String... args) {
|
||||||
if (args.length <= 0) return ReturnType.SYNTAX_ERROR;
|
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;
|
return ReturnType.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package ca.tweetzy.auctionhouse.guis;
|
package ca.tweetzy.auctionhouse.guis;
|
||||||
|
|
||||||
import ca.tweetzy.auctionhouse.AuctionHouse;
|
import ca.tweetzy.auctionhouse.AuctionHouse;
|
||||||
|
import ca.tweetzy.auctionhouse.api.AuctionAPI;
|
||||||
import ca.tweetzy.auctionhouse.auction.*;
|
import ca.tweetzy.auctionhouse.auction.*;
|
||||||
import ca.tweetzy.auctionhouse.guis.transaction.GUITransactionList;
|
import ca.tweetzy.auctionhouse.guis.transaction.GUITransactionList;
|
||||||
import ca.tweetzy.auctionhouse.helpers.ConfigurationItemHelper;
|
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.TextUtils;
|
||||||
import ca.tweetzy.core.utils.items.TItemBuilder;
|
import ca.tweetzy.core.utils.items.TItemBuilder;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
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) {
|
public GUIAuctionHouse(AuctionPlayer auctionPlayer, AuctionItemCategory filterCategory, AuctionSaleType filterAuctionType) {
|
||||||
this(auctionPlayer);
|
this(auctionPlayer);
|
||||||
this.filterCategory = filterCategory;
|
this.filterCategory = filterCategory;
|
||||||
|
Loading…
Reference in New Issue
Block a user