start work on new category system

Took 16 seconds
This commit is contained in:
Kiran Hart 2024-06-09 14:44:41 -04:00
parent d7aa0e64a6
commit 896a2c2d83
No known key found for this signature in database
GPG Key ID: 5F36C7BC79D3EBC3
8 changed files with 139 additions and 0 deletions

View File

@ -0,0 +1,10 @@
package ca.tweetzy.auctionhouse.api.auction.category;
public interface CategoryCondition {
CategoryConditionType getType();
CategoryStringComparison getComparisonType();
String getValue();
}

View File

@ -0,0 +1,10 @@
package ca.tweetzy.auctionhouse.api.auction.category;
public enum CategoryConditionType {
MATERIAL,
NAME,
LORE,
ENCHANTMENT;
}

View File

@ -0,0 +1,7 @@
package ca.tweetzy.auctionhouse.api.auction.category;
public enum CategoryFieldCondition {
IS_EDIBLE,
IS_BLOCK
}

View File

@ -0,0 +1,9 @@
package ca.tweetzy.auctionhouse.api.auction.category;
public enum CategoryStringComparison {
STARTS_WITH,
ENDS_WITH,
CONTAINS,
EQUALS
}

View File

@ -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();
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -0,0 +1,8 @@
food:
icon: BEEF
enabled: true
field requirement:
- "is_edible"
material list:
-