mirror of
https://github.com/kiranhart/Auction-House.git
synced 2025-02-27 21:31:33 +01:00
✨ start work on new category system ✨
Took 16 seconds
This commit is contained in:
parent
d7aa0e64a6
commit
896a2c2d83
@ -0,0 +1,10 @@
|
||||
package ca.tweetzy.auctionhouse.api.auction.category;
|
||||
|
||||
public interface CategoryCondition {
|
||||
|
||||
CategoryConditionType getType();
|
||||
|
||||
CategoryStringComparison getComparisonType();
|
||||
|
||||
String getValue();
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package ca.tweetzy.auctionhouse.api.auction.category;
|
||||
|
||||
public enum CategoryConditionType {
|
||||
|
||||
MATERIAL,
|
||||
NAME,
|
||||
LORE,
|
||||
ENCHANTMENT;
|
||||
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package ca.tweetzy.auctionhouse.api.auction.category;
|
||||
|
||||
public enum CategoryFieldCondition {
|
||||
|
||||
IS_EDIBLE,
|
||||
IS_BLOCK
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package ca.tweetzy.auctionhouse.api.auction.category;
|
||||
|
||||
public enum CategoryStringComparison {
|
||||
|
||||
STARTS_WITH,
|
||||
ENDS_WITH,
|
||||
CONTAINS,
|
||||
EQUALS
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package ca.tweetzy.auctionhouse.api.auction.category;
|
||||
|
||||
import ca.tweetzy.auctionhouse.api.sync.Identifiable;
|
||||
import ca.tweetzy.flight.comp.enums.CompMaterial;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
public interface ItemCategory extends Identifiable<String> {
|
||||
|
||||
ItemStack getIcon();
|
||||
|
||||
HashSet<CategoryFieldCondition> getFieldConditions();
|
||||
|
||||
List<CategoryCondition> getConditions();
|
||||
|
||||
List<CompMaterial> getMaterialList();
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package ca.tweetzy.auctionhouse.impl.category;
|
||||
|
||||
import ca.tweetzy.auctionhouse.api.auction.category.CategoryCondition;
|
||||
import ca.tweetzy.auctionhouse.api.auction.category.CategoryConditionType;
|
||||
import ca.tweetzy.auctionhouse.api.auction.category.CategoryStringComparison;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
||||
@AllArgsConstructor
|
||||
public final class AuctionCategoryCondition implements CategoryCondition {
|
||||
|
||||
private final CategoryConditionType conditionType;
|
||||
private final CategoryStringComparison stringComparison;
|
||||
private final String value;
|
||||
|
||||
@Override
|
||||
public CategoryConditionType getType() {
|
||||
return this.conditionType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CategoryStringComparison getComparisonType() {
|
||||
return this.stringComparison;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getValue() {
|
||||
return this.value;
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package ca.tweetzy.auctionhouse.impl.category;
|
||||
|
||||
import ca.tweetzy.auctionhouse.api.auction.category.CategoryCondition;
|
||||
import ca.tweetzy.auctionhouse.api.auction.category.CategoryFieldCondition;
|
||||
import ca.tweetzy.auctionhouse.api.auction.category.ItemCategory;
|
||||
import ca.tweetzy.flight.comp.enums.CompMaterial;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.NonNull;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
||||
@AllArgsConstructor
|
||||
public final class AuctionItemCategory implements ItemCategory {
|
||||
|
||||
private final String id;
|
||||
private final ItemStack icon;
|
||||
private final HashSet<CategoryFieldCondition> fieldConditions;
|
||||
private final List<CategoryCondition> conditions;
|
||||
private final List<CompMaterial> materials;
|
||||
|
||||
@Override
|
||||
public @NonNull String getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getIcon() {
|
||||
return this.icon;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashSet<CategoryFieldCondition> getFieldConditions() {
|
||||
return this.fieldConditions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CategoryCondition> getConditions() {
|
||||
return this.conditions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CompMaterial> getMaterialList() {
|
||||
return this.materials;
|
||||
}
|
||||
}
|
8
src/main/resources/categories.yml
Normal file
8
src/main/resources/categories.yml
Normal file
@ -0,0 +1,8 @@
|
||||
food:
|
||||
icon: BEEF
|
||||
enabled: true
|
||||
field requirement:
|
||||
- "is_edible"
|
||||
|
||||
material list:
|
||||
-
|
Loading…
Reference in New Issue
Block a user