This commit is contained in:
Daniel Mills 2020-09-10 00:23:33 -04:00
parent b0ee9b27a1
commit ed6fe5631a
4 changed files with 70 additions and 156 deletions

View File

@ -77,6 +77,7 @@ import com.volmit.iris.util.RegistryListDimension;
import com.volmit.iris.util.RegistryListEntity;
import com.volmit.iris.util.RegistryListFont;
import com.volmit.iris.util.RegistryListGenerator;
import com.volmit.iris.util.RegistryListItemType;
import com.volmit.iris.util.RegistryListLoot;
import com.volmit.iris.util.RegistryListObject;
import com.volmit.iris.util.RegistryListRegion;
@ -1120,6 +1121,11 @@ public class ProjectManager
prop.put("enum", new JSONArray(getBlockTypeList(dat)));
}
if(k.isAnnotationPresent(RegistryListItemType.class))
{
prop.put("enum", new JSONArray(getItemTypeList(dat)));
}
if(k.isAnnotationPresent(RegistryListEntity.class))
{
prop.put("enum", new JSONArray(getEntityList(dat)));
@ -1306,6 +1312,26 @@ public class ProjectManager
continue;
}
if(k.isAnnotationPresent(RegistryListItemType.class))
{
String name = "enitmty" + t.type().getSimpleName().toLowerCase();
if(!def.containsKey(name))
{
JSONObject deff = new JSONObject();
deff.put("type", tx);
deff.put("enum", new JSONArray(getItemTypeList(dat)));
def.put(name, deff);
}
JSONObject items = new JSONObject();
items.put("$ref", "#/definitions/" + name);
prop.put("items", items);
prop.put("description", tp + "\n\n" + k.getAnnotation(Desc.class).value());
prop.put("type", tp);
properties.put(k.getName(), prop);
continue;
}
if(k.isAnnotationPresent(RegistryListEntity.class))
{
String name = "enent" + t.type().getSimpleName().toLowerCase();
@ -1648,6 +1674,11 @@ public class ProjectManager
return B.getBlockTypes();
}
private String[] getItemTypeList(IrisDataManager data)
{
return B.getItemTypes();
}
private String[] getEntityList(IrisDataManager data)
{
return data.getEntityLoader().getPossibleKeys();

View File

@ -24,6 +24,7 @@ import com.volmit.iris.util.KList;
import com.volmit.iris.util.MaxNumber;
import com.volmit.iris.util.MinNumber;
import com.volmit.iris.util.RNG;
import com.volmit.iris.util.RegistryListItemType;
import com.volmit.iris.util.Required;
import lombok.AllArgsConstructor;
@ -103,6 +104,7 @@ public class IrisLoot
@Desc("Add lore to this item")
private KList<String> lore = new KList<>();
@RegistryListItemType
@Required
@DontObfuscate
@Desc("This is the item or block type. Does not accept minecraft:*. Only materials such as DIAMOND_SWORD or DIRT.")

View File

@ -104,6 +104,19 @@ public class B
return bt.toArray(new String[bt.size()]);
}
public static String[] getItemTypes()
{
KList<String> bt = new KList<String>();
for(Material i : Material.values())
{
String v = i.name().toLowerCase().trim();
bt.add(v);
}
return bt.toArray(new String[bt.size()]);
}
public static BlockData getBlockData(String bdxf, IrisDimension resolver)
{
try
@ -190,33 +203,8 @@ public class B
return true;
}
//@NoArgsConstructor
boolean str = mat.equals(B.mat("CHEST"))
|| mat.equals(B.mat("TRAPPED_CHEST"))
|| mat.equals(B.mat("SHULKER_BOX"))
|| mat.equals(B.mat("WHITE_SHULKER_BOX"))
|| mat.equals(B.mat("ORANGE_SHULKER_BOX"))
|| mat.equals(B.mat("MAGENTA_SHULKER_BOX"))
|| mat.equals(B.mat("LIGHT_BLUE_SHULKER_BOX"))
|| mat.equals(B.mat("YELLOW_SHULKER_BOX"))
|| mat.equals(B.mat("LIME_SHULKER_BOX"))
|| mat.equals(B.mat("PINK_SHULKER_BOX"))
|| mat.equals(B.mat("GRAY_SHULKER_BOX"))
|| mat.equals(B.mat("LIGHT_GRAY_SHULKER_BOX"))
|| mat.equals(B.mat("CYAN_SHULKER_BOX"))
|| mat.equals(B.mat("PURPLE_SHULKER_BOX"))
|| mat.equals(B.mat("BLUE_SHULKER_BOX"))
|| mat.equals(B.mat("BROWN_SHULKER_BOX"))
|| mat.equals(B.mat("GREEN_SHULKER_BOX"))
|| mat.equals(B.mat("RED_SHULKER_BOX"))
|| mat.equals(B.mat("BLACK_SHULKER_BOX"))
|| mat.equals(B.mat("BARREL"))
|| mat.equals(B.mat("DISPENSER"))
|| mat.equals(B.mat("DROPPER"))
|| mat.equals(B.mat("HOPPER"))
|| mat.equals(B.mat("FURNACE"))
|| mat.equals(B.mat("BLAST_FURNACE"))
|| mat.equals(B.mat("SMOKER"));
// @NoArgsConstructor
boolean str = mat.equals(B.mat("CHEST")) || mat.equals(B.mat("TRAPPED_CHEST")) || mat.equals(B.mat("SHULKER_BOX")) || mat.equals(B.mat("WHITE_SHULKER_BOX")) || mat.equals(B.mat("ORANGE_SHULKER_BOX")) || mat.equals(B.mat("MAGENTA_SHULKER_BOX")) || mat.equals(B.mat("LIGHT_BLUE_SHULKER_BOX")) || mat.equals(B.mat("YELLOW_SHULKER_BOX")) || mat.equals(B.mat("LIME_SHULKER_BOX")) || mat.equals(B.mat("PINK_SHULKER_BOX")) || mat.equals(B.mat("GRAY_SHULKER_BOX")) || mat.equals(B.mat("LIGHT_GRAY_SHULKER_BOX")) || mat.equals(B.mat("CYAN_SHULKER_BOX")) || mat.equals(B.mat("PURPLE_SHULKER_BOX")) || mat.equals(B.mat("BLUE_SHULKER_BOX")) || mat.equals(B.mat("BROWN_SHULKER_BOX")) || mat.equals(B.mat("GREEN_SHULKER_BOX")) || mat.equals(B.mat("RED_SHULKER_BOX")) || mat.equals(B.mat("BLACK_SHULKER_BOX")) || mat.equals(B.mat("BARREL")) || mat.equals(B.mat("DISPENSER")) || mat.equals(B.mat("DROPPER")) || mat.equals(B.mat("HOPPER")) || mat.equals(B.mat("FURNACE")) || mat.equals(B.mat("BLAST_FURNACE")) || mat.equals(B.mat("SMOKER"));
//@done
if(str)
@ -237,30 +225,8 @@ public class B
return true;
}
//@NoArgsConstructor
boolean str = mat.equals(B.mat("CHEST"))
|| mat.equals(B.mat("TRAPPED_CHEST"))
|| mat.equals(B.mat("SHULKER_BOX"))
|| mat.equals(B.mat("WHITE_SHULKER_BOX"))
|| mat.equals(B.mat("ORANGE_SHULKER_BOX"))
|| mat.equals(B.mat("MAGENTA_SHULKER_BOX"))
|| mat.equals(B.mat("LIGHT_BLUE_SHULKER_BOX"))
|| mat.equals(B.mat("YELLOW_SHULKER_BOX"))
|| mat.equals(B.mat("LIME_SHULKER_BOX"))
|| mat.equals(B.mat("PINK_SHULKER_BOX"))
|| mat.equals(B.mat("GRAY_SHULKER_BOX"))
|| mat.equals(B.mat("LIGHT_GRAY_SHULKER_BOX"))
|| mat.equals(B.mat("CYAN_SHULKER_BOX"))
|| mat.equals(B.mat("PURPLE_SHULKER_BOX"))
|| mat.equals(B.mat("BLUE_SHULKER_BOX"))
|| mat.equals(B.mat("BROWN_SHULKER_BOX"))
|| mat.equals(B.mat("GREEN_SHULKER_BOX"))
|| mat.equals(B.mat("RED_SHULKER_BOX"))
|| mat.equals(B.mat("BLACK_SHULKER_BOX"))
|| mat.equals(B.mat("BARREL"))
|| mat.equals(B.mat("DISPENSER"))
|| mat.equals(B.mat("DROPPER"))
|| mat.equals(B.mat("HOPPER"));
// @NoArgsConstructor
boolean str = mat.equals(B.mat("CHEST")) || mat.equals(B.mat("TRAPPED_CHEST")) || mat.equals(B.mat("SHULKER_BOX")) || mat.equals(B.mat("WHITE_SHULKER_BOX")) || mat.equals(B.mat("ORANGE_SHULKER_BOX")) || mat.equals(B.mat("MAGENTA_SHULKER_BOX")) || mat.equals(B.mat("LIGHT_BLUE_SHULKER_BOX")) || mat.equals(B.mat("YELLOW_SHULKER_BOX")) || mat.equals(B.mat("LIME_SHULKER_BOX")) || mat.equals(B.mat("PINK_SHULKER_BOX")) || mat.equals(B.mat("GRAY_SHULKER_BOX")) || mat.equals(B.mat("LIGHT_GRAY_SHULKER_BOX")) || mat.equals(B.mat("CYAN_SHULKER_BOX")) || mat.equals(B.mat("PURPLE_SHULKER_BOX")) || mat.equals(B.mat("BLUE_SHULKER_BOX")) || mat.equals(B.mat("BROWN_SHULKER_BOX")) || mat.equals(B.mat("GREEN_SHULKER_BOX")) || mat.equals(B.mat("RED_SHULKER_BOX")) || mat.equals(B.mat("BLACK_SHULKER_BOX")) || mat.equals(B.mat("BARREL")) || mat.equals(B.mat("DISPENSER")) || mat.equals(B.mat("DROPPER")) || mat.equals(B.mat("HOPPER"));
//@done
if(str)
@ -281,28 +247,8 @@ public class B
return true;
}
//@NoArgsConstructor
boolean str = mat.equals(B.mat("GLOWSTONE"))
|| mat.equals(B.mat("END_ROD"))
|| mat.equals(B.mat("SOUL_SAND"))
|| mat.equals(B.mat("TORCH"))
|| mat.equals(Material.REDSTONE_TORCH)
|| mat.equals(B.mat("SOUL_TORCH"))
|| mat.equals(Material.REDSTONE_WALL_TORCH)
|| mat.equals(Material.WALL_TORCH)
|| mat.equals(B.mat("SOUL_WALL_TORCH"))
|| mat.equals(B.mat("LANTERN"))
|| mat.equals(Material.JACK_O_LANTERN)
|| mat.equals(Material.REDSTONE_LAMP)
|| mat.equals(Material.MAGMA_BLOCK)
|| mat.equals(B.mat("SHROOMLIGHT"))
|| mat.equals(B.mat("SEA_LANTERN"))
|| mat.equals(B.mat("SOUL_LANTERN"))
|| mat.equals(Material.FIRE)
|| mat.equals(B.mat("SOUL_FIRE"))
|| mat.equals(B.mat("SEA_PICKLE"))
|| mat.equals(Material.BREWING_STAND)
|| mat.equals(Material.REDSTONE_ORE);
// @NoArgsConstructor
boolean str = mat.equals(B.mat("GLOWSTONE")) || mat.equals(B.mat("END_ROD")) || mat.equals(B.mat("SOUL_SAND")) || mat.equals(B.mat("TORCH")) || mat.equals(Material.REDSTONE_TORCH) || mat.equals(B.mat("SOUL_TORCH")) || mat.equals(Material.REDSTONE_WALL_TORCH) || mat.equals(Material.WALL_TORCH) || mat.equals(B.mat("SOUL_WALL_TORCH")) || mat.equals(B.mat("LANTERN")) || mat.equals(Material.JACK_O_LANTERN) || mat.equals(Material.REDSTONE_LAMP) || mat.equals(Material.MAGMA_BLOCK) || mat.equals(B.mat("SHROOMLIGHT")) || mat.equals(B.mat("SEA_LANTERN")) || mat.equals(B.mat("SOUL_LANTERN")) || mat.equals(Material.FIRE) || mat.equals(B.mat("SOUL_FIRE")) || mat.equals(B.mat("SEA_PICKLE")) || mat.equals(Material.BREWING_STAND) || mat.equals(Material.REDSTONE_ORE);
//@done
if(str)
{
@ -351,36 +297,8 @@ public class B
}
Material mat = d.getMaterial();
//@NoArgsConstructor
return mat.equals(Material.POPPY)
|| mat.equals(Material.DANDELION)
|| mat.equals(B.mat("CORNFLOWER"))
|| mat.equals(B.mat("SWEET_BERRY_BUSH"))
|| mat.equals(B.mat("CRIMSON_ROOTS"))
|| mat.equals(B.mat("WARPED_ROOTS"))
|| mat.equals(B.mat("NETHER_SPROUTS"))
|| mat.equals(B.mat("ALLIUM"))
|| mat.equals(B.mat("AZURE_BLUET"))
|| mat.equals(B.mat("BLUE_ORCHID"))
|| mat.equals(B.mat("POPPY"))
|| mat.equals(B.mat("DANDELION"))
|| mat.equals(B.mat("OXEYE_DAISY"))
|| mat.equals(B.mat("LILY_OF_THE_VALLEY"))
|| mat.equals(B.mat("WITHER_ROSE"))
|| mat.equals(Material.DARK_OAK_SAPLING)
|| mat.equals(Material.ACACIA_SAPLING)
|| mat.equals(Material.JUNGLE_SAPLING)
|| mat.equals(Material.BIRCH_SAPLING)
|| mat.equals(Material.SPRUCE_SAPLING)
|| mat.equals(Material.OAK_SAPLING)
|| mat.equals(Material.ORANGE_TULIP)
|| mat.equals(Material.PINK_TULIP)
|| mat.equals(Material.RED_TULIP)
|| mat.equals(Material.WHITE_TULIP)
|| mat.equals(Material.FERN)
|| mat.equals(Material.LARGE_FERN)
|| mat.equals(Material.GRASS)
|| mat.equals(Material.TALL_GRASS);
// @NoArgsConstructor
return mat.equals(Material.POPPY) || mat.equals(Material.DANDELION) || mat.equals(B.mat("CORNFLOWER")) || mat.equals(B.mat("SWEET_BERRY_BUSH")) || mat.equals(B.mat("CRIMSON_ROOTS")) || mat.equals(B.mat("WARPED_ROOTS")) || mat.equals(B.mat("NETHER_SPROUTS")) || mat.equals(B.mat("ALLIUM")) || mat.equals(B.mat("AZURE_BLUET")) || mat.equals(B.mat("BLUE_ORCHID")) || mat.equals(B.mat("POPPY")) || mat.equals(B.mat("DANDELION")) || mat.equals(B.mat("OXEYE_DAISY")) || mat.equals(B.mat("LILY_OF_THE_VALLEY")) || mat.equals(B.mat("WITHER_ROSE")) || mat.equals(Material.DARK_OAK_SAPLING) || mat.equals(Material.ACACIA_SAPLING) || mat.equals(Material.JUNGLE_SAPLING) || mat.equals(Material.BIRCH_SAPLING) || mat.equals(Material.SPRUCE_SAPLING) || mat.equals(Material.OAK_SAPLING) || mat.equals(Material.ORANGE_TULIP) || mat.equals(Material.PINK_TULIP) || mat.equals(Material.RED_TULIP) || mat.equals(Material.WHITE_TULIP) || mat.equals(Material.FERN) || mat.equals(Material.LARGE_FERN) || mat.equals(Material.GRASS) || mat.equals(Material.TALL_GRASS);
//@done
}
@ -452,59 +370,8 @@ public class B
return true;
}
//@NoArgsConstructor
boolean str = m.equals(Material.GRASS)
|| m.equals(Material.TALL_GRASS)
|| m.equals(B.mat("CORNFLOWER"))
|| m.equals(Material.SUNFLOWER)
|| m.equals(Material.CHORUS_FLOWER)
|| m.equals(Material.POPPY)
|| m.equals(Material.DANDELION)
|| m.equals(Material.OXEYE_DAISY)
|| m.equals(Material.ORANGE_TULIP)
|| m.equals(Material.PINK_TULIP)
|| m.equals(Material.RED_TULIP)
|| m.equals(Material.WHITE_TULIP)
|| m.equals(Material.LILAC)
|| m.equals(Material.DEAD_BUSH)
|| m.equals(B.mat("SWEET_BERRY_BUSH"))
|| m.equals(Material.ROSE_BUSH)
|| m.equals(B.mat("WITHER_ROSE"))
|| m.equals(Material.ALLIUM)
|| m.equals(Material.BLUE_ORCHID)
|| m.equals(B.mat("LILY_OF_THE_VALLEY"))
|| m.equals(B.mat("CRIMSON_FUNGUS"))
|| m.equals(B.mat("WARPED_FUNGUS"))
|| m.equals(Material.RED_MUSHROOM)
|| m.equals(Material.BROWN_MUSHROOM)
|| m.equals(B.mat("CRIMSON_ROOTS"))
|| m.equals(B.mat("AZURE_BLUET"))
|| m.equals(B.mat("WEEPING_VINES"))
|| m.equals(B.mat("WEEPING_VINES_PLANT"))
|| m.equals(B.mat("WARPED_ROOTS"))
|| m.equals(B.mat("NETHER_SPROUTS"))
|| m.equals(B.mat("TWISTING_VINES"))
|| m.equals(B.mat("TWISTING_VINES_PLANT"))
|| m.equals(Material.SUGAR_CANE)
|| m.equals(Material.WHEAT)
|| m.equals(Material.POTATOES)
|| m.equals(Material.CARROTS)
|| m.equals(Material.BEETROOTS)
|| m.equals(Material.NETHER_WART)
|| m.equals(B.mat("SEA_PICKLE"))
|| m.equals(B.mat("SEAGRASS"))
|| m.equals(B.mat("ACACIA_BUTTON"))
|| m.equals(B.mat("BIRCH_BUTTON"))
|| m.equals(B.mat("CRIMSON_BUTTON"))
|| m.equals(B.mat("DARK_OAK_BUTTON"))
|| m.equals(B.mat("JUNGLE_BUTTON"))
|| m.equals(B.mat("OAK_BUTTON"))
|| m.equals(B.mat("POLISHED_BLACKSTONE_BUTTON"))
|| m.equals(B.mat("SPRUCE_BUTTON"))
|| m.equals(B.mat("STONE_BUTTON"))
|| m.equals(B.mat("WARPED_BUTTON"))
|| m.equals(Material.TORCH)
|| m.equals(B.mat("SOUL_TORCH"));
// @NoArgsConstructor
boolean str = m.equals(Material.GRASS) || m.equals(Material.TALL_GRASS) || m.equals(B.mat("CORNFLOWER")) || m.equals(Material.SUNFLOWER) || m.equals(Material.CHORUS_FLOWER) || m.equals(Material.POPPY) || m.equals(Material.DANDELION) || m.equals(Material.OXEYE_DAISY) || m.equals(Material.ORANGE_TULIP) || m.equals(Material.PINK_TULIP) || m.equals(Material.RED_TULIP) || m.equals(Material.WHITE_TULIP) || m.equals(Material.LILAC) || m.equals(Material.DEAD_BUSH) || m.equals(B.mat("SWEET_BERRY_BUSH")) || m.equals(Material.ROSE_BUSH) || m.equals(B.mat("WITHER_ROSE")) || m.equals(Material.ALLIUM) || m.equals(Material.BLUE_ORCHID) || m.equals(B.mat("LILY_OF_THE_VALLEY")) || m.equals(B.mat("CRIMSON_FUNGUS")) || m.equals(B.mat("WARPED_FUNGUS")) || m.equals(Material.RED_MUSHROOM) || m.equals(Material.BROWN_MUSHROOM) || m.equals(B.mat("CRIMSON_ROOTS")) || m.equals(B.mat("AZURE_BLUET")) || m.equals(B.mat("WEEPING_VINES")) || m.equals(B.mat("WEEPING_VINES_PLANT")) || m.equals(B.mat("WARPED_ROOTS")) || m.equals(B.mat("NETHER_SPROUTS")) || m.equals(B.mat("TWISTING_VINES")) || m.equals(B.mat("TWISTING_VINES_PLANT")) || m.equals(Material.SUGAR_CANE) || m.equals(Material.WHEAT) || m.equals(Material.POTATOES) || m.equals(Material.CARROTS) || m.equals(Material.BEETROOTS) || m.equals(Material.NETHER_WART) || m.equals(B.mat("SEA_PICKLE")) || m.equals(B.mat("SEAGRASS")) || m.equals(B.mat("ACACIA_BUTTON")) || m.equals(B.mat("BIRCH_BUTTON")) || m.equals(B.mat("CRIMSON_BUTTON")) || m.equals(B.mat("DARK_OAK_BUTTON")) || m.equals(B.mat("JUNGLE_BUTTON")) || m.equals(B.mat("OAK_BUTTON")) || m.equals(B.mat("POLISHED_BLACKSTONE_BUTTON")) || m.equals(B.mat("SPRUCE_BUTTON")) || m.equals(B.mat("STONE_BUTTON")) || m.equals(B.mat("WARPED_BUTTON")) || m.equals(Material.TORCH) || m.equals(B.mat("SOUL_TORCH"));
//@done
if(str)

View File

@ -0,0 +1,14 @@
package com.volmit.iris.util;
import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Retention(RUNTIME)
@Target({PARAMETER, TYPE, FIELD})
public @interface RegistryListItemType
{
}