CrazyAuctions/paper/src/main/java/com/badbones69/crazyauctions/paper/api/enums/Category.java

166 lines
5.2 KiB
Java
Raw Normal View History

2023-11-27 07:17:59 +01:00
package com.badbones69.crazyauctions.paper.api.enums;
import org.bukkit.Material;
2023-08-21 20:06:07 +02:00
import java.util.ArrayList;
2022-10-12 02:34:49 +02:00
2023-08-21 20:06:07 +02:00
public enum Category {
2020-01-04 02:47:42 +01:00
NONE("None", new ArrayList<>()),
OTHER("Other", getOthers()),
ARMOR("Armor", getArmor()),
WEAPONS("Weapons", getWeapons()),
TOOLS("Tools", getTools()),
FOOD("Food", getFood()),
POTIONS("Potions", getPotions()),
BLOCKS("Blocks", getBlocks());
2023-08-21 20:06:07 +02:00
2022-04-08 04:05:32 +02:00
private final String name;
private final ArrayList<Material> items;
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
/**
* @param name Name of the Shop Type.
*/
2023-08-21 20:06:07 +02:00
private Category(String name, ArrayList<Material> items) {
2022-04-08 04:05:32 +02:00
this.name = name;
this.items = items;
2020-01-04 02:47:42 +01:00
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
/**
* @param name Name of the Type you want.
2022-04-08 04:05:32 +02:00
* @return Returns the Type as an Enum.
2020-01-04 02:47:42 +01:00
*/
2023-08-21 20:06:07 +02:00
public static Category getFromName(String name) {
for (Category type : Category.values()) {
if (type.getName().equalsIgnoreCase(name)) {
return type;
}
2020-01-04 02:47:42 +01:00
}
return null;
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
private static ArrayList<Material> getArmor() {
ArrayList<Material> ma = new ArrayList<>();
2023-11-27 07:17:59 +01:00
ma.add(Material.GOLDEN_HELMET);
ma.add(Material.GOLDEN_CHESTPLATE);
ma.add(Material.GOLDEN_LEGGINGS);
ma.add(Material.GOLDEN_BOOTS);
2023-08-21 20:06:07 +02:00
ma.add(Material.DIAMOND_HELMET);
ma.add(Material.DIAMOND_CHESTPLATE);
ma.add(Material.DIAMOND_LEGGINGS);
ma.add(Material.DIAMOND_BOOTS);
2020-01-04 02:47:42 +01:00
ma.add(Material.CHAINMAIL_HELMET);
ma.add(Material.CHAINMAIL_CHESTPLATE);
ma.add(Material.CHAINMAIL_LEGGINGS);
ma.add(Material.CHAINMAIL_BOOTS);
ma.add(Material.IRON_HELMET);
ma.add(Material.IRON_CHESTPLATE);
ma.add(Material.IRON_LEGGINGS);
ma.add(Material.IRON_BOOTS);
ma.add(Material.DIAMOND_HELMET);
ma.add(Material.DIAMOND_CHESTPLATE);
ma.add(Material.DIAMOND_LEGGINGS);
ma.add(Material.DIAMOND_BOOTS);
2023-11-27 07:17:59 +01:00
ma.add(Material.NETHERITE_HELMET);
ma.add(Material.NETHERITE_CHESTPLATE);
ma.add(Material.NETHERITE_LEGGINGS);
ma.add(Material.NETHERITE_BOOTS);
2020-01-04 02:47:42 +01:00
return ma;
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
private static ArrayList<Material> getTools() {
ArrayList<Material> ma = new ArrayList<>();
2023-11-27 07:17:59 +01:00
ma.add(Material.WOODEN_PICKAXE);
ma.add(Material.WOODEN_AXE);
ma.add(Material.WOODEN_SHOVEL);
ma.add(Material.WOODEN_HOE);
ma.add(Material.GOLDEN_PICKAXE);
ma.add(Material.GOLDEN_AXE);
ma.add(Material.GOLDEN_SHOVEL);
ma.add(Material.GOLDEN_HOE);
ma.add(Material.STONE_SHOVEL);
ma.add(Material.IRON_SHOVEL);
ma.add(Material.DIAMOND_SHOVEL);
2020-01-04 02:47:42 +01:00
ma.add(Material.STONE_PICKAXE);
2022-10-12 02:34:49 +02:00
ma.add(Material.IRON_PICKAXE);
ma.add(Material.DIAMOND_PICKAXE);
2023-08-21 20:06:07 +02:00
ma.add(Material.STONE_AXE);
ma.add(Material.IRON_AXE);
2022-10-12 02:34:49 +02:00
ma.add(Material.DIAMOND_AXE);
2023-08-21 20:06:07 +02:00
ma.add(Material.STONE_HOE);
ma.add(Material.IRON_HOE);
2020-01-04 02:47:42 +01:00
ma.add(Material.DIAMOND_HOE);
2023-11-27 07:17:59 +01:00
ma.add(Material.NETHERITE_PICKAXE);
ma.add(Material.NETHERITE_AXE);
ma.add(Material.NETHERITE_HOE);
ma.add(Material.NETHERITE_SHOVEL);
2020-01-04 02:47:42 +01:00
return ma;
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
private static ArrayList<Material> getWeapons() {
ArrayList<Material> ma = new ArrayList<>();
2023-11-27 07:17:59 +01:00
ma.add(Material.GOLDEN_PICKAXE);
ma.add(Material.GOLDEN_AXE);
ma.add(Material.GOLDEN_SHOVEL);
ma.add(Material.GOLDEN_HOE);
2020-01-04 02:47:42 +01:00
ma.add(Material.STONE_SWORD);
2022-10-12 02:34:49 +02:00
ma.add(Material.IRON_SWORD);
ma.add(Material.DIAMOND_SWORD);
2023-08-21 20:06:07 +02:00
ma.add(Material.STONE_AXE);
ma.add(Material.IRON_AXE);
2020-01-04 02:47:42 +01:00
ma.add(Material.DIAMOND_AXE);
ma.add(Material.BOW);
2023-11-27 07:17:59 +01:00
ma.add(Material.NETHERITE_SWORD);
ma.add(Material.NETHERITE_AXE);
2020-01-04 02:47:42 +01:00
return ma;
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
private static ArrayList<Material> getFood() {
ArrayList<Material> ma = new ArrayList<>();
for (Material m : Material.values()) {
if (m.isEdible()) {
if (m != Material.POTION) ma.add(m);
}
}
return ma;
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
private static ArrayList<Material> getPotions() {
ArrayList<Material> ma = new ArrayList<>();
ma.add(Material.POTION);
2023-11-27 07:17:59 +01:00
ma.add(Material.SPLASH_POTION);
ma.add(Material.LINGERING_POTION);
2020-01-04 02:47:42 +01:00
return ma;
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
private static ArrayList<Material> getBlocks() {
ArrayList<Material> ma = new ArrayList<>();
for (Material m : Material.values()) {
2023-08-21 20:06:07 +02:00
if (m.isBlock()) {
ma.add(m);
}
2020-01-04 02:47:42 +01:00
}
return ma;
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
private static ArrayList<Material> getOthers() {
ArrayList<Material> ma = new ArrayList<>();
for (Material m : Material.values()) {
2023-08-21 20:06:07 +02:00
if (!(getArmor().contains(m) || getTools().contains(m) || getWeapons().contains(m) || getFood().contains(m) || getPotions().contains(m) || getBlocks().contains(m))) {
ma.add(m);
}
2020-01-04 02:47:42 +01:00
}
return ma;
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
/**
* @return Returns the type name as a string.
*/
public String getName() {
2022-04-08 04:05:32 +02:00
return name;
2020-01-04 02:47:42 +01:00
}
2023-08-21 20:06:07 +02:00
2020-01-04 02:47:42 +01:00
public ArrayList<Material> getItems() {
2022-04-08 04:05:32 +02:00
return items;
2020-01-04 02:47:42 +01:00
}
}