diff --git a/pom.xml b/pom.xml index ce5e289e..a18ba9b1 100644 --- a/pom.xml +++ b/pom.xml @@ -119,12 +119,6 @@ a2c4b6d provided - - org.jetbrains - annotations - LATEST - compile - io.github.mooy1 InfinityLib diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/CrystamaeHistoria.java b/src/main/java/io/github/sefiraat/crystamaehistoria/CrystamaeHistoria.java index 5e448e26..0ef8c79a 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/CrystamaeHistoria.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/CrystamaeHistoria.java @@ -2,6 +2,7 @@ import de.slikey.effectlib.EffectManager; import io.github.mooy1.infinitylib.core.AbstractAddon; +import io.github.sefiraat.crystamaehistoria.commands.GetRanks; import io.github.sefiraat.crystamaehistoria.commands.OpenSpellCompendium; import io.github.sefiraat.crystamaehistoria.commands.OpenStoryCompendium; import io.github.sefiraat.crystamaehistoria.commands.TestSpell; @@ -13,6 +14,7 @@ import io.github.sefiraat.crystamaehistoria.magic.spells.spellobjects.MagicFallingBlock; import io.github.sefiraat.crystamaehistoria.magic.spells.spellobjects.MagicProjectile; import io.github.sefiraat.crystamaehistoria.magic.spells.spellobjects.MagicSummon; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; import io.github.sefiraat.crystamaehistoria.runnables.RunnableManager; import io.github.sefiraat.crystamaehistoria.runnables.spells.SpellTickRunnable; import io.github.sefiraat.crystamaehistoria.slimefun.Gadgets; @@ -22,7 +24,6 @@ import io.github.sefiraat.crystamaehistoria.slimefun.Tools; import io.github.sefiraat.crystamaehistoria.stories.BlockDefinition; import io.github.sefiraat.crystamaehistoria.stories.StoriesManager; -import io.github.sefiraat.crystamaehistoria.utils.PlayerStatUtils; import io.github.thebusybiscuit.slimefun4.libraries.dough.collections.Pair; import org.apache.commons.lang.Validate; import org.bstats.bukkit.Metrics; @@ -157,6 +158,7 @@ public void enable() { getAddonCommand().addSub(new TestSpell()); getAddonCommand().addSub(new OpenSpellCompendium()); getAddonCommand().addSub(new OpenStoryCompendium()); + getAddonCommand().addSub(new GetRanks()); } private void setupBstats() { @@ -178,7 +180,7 @@ private void setupBstats() { int timesCast = 0; for (String string : CrystamaeHistoria.getConfigManager().getPlayerStats().getKeys(false)) { UUID uuid = UUID.fromString(string); - timesCast += PlayerStatUtils.getUsages(uuid, spellType); + timesCast += PlayerStatistics.getUsages(uuid, spellType); } values.put(spell.getId(), timesCast); } @@ -191,7 +193,7 @@ private void setupBstats() { int timesChronicled = 0; for (String string : CrystamaeHistoria.getConfigManager().getPlayerStats().getKeys(false)) { UUID uuid = UUID.fromString(string); - timesChronicled += PlayerStatUtils.getChronicle(uuid, definition); + timesChronicled += PlayerStatistics.getChronicle(uuid, definition); } values.put(definition.getMaterial().toString(), timesChronicled); } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/commands/GetRanks.java b/src/main/java/io/github/sefiraat/crystamaehistoria/commands/GetRanks.java new file mode 100644 index 00000000..eccb9bb8 --- /dev/null +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/commands/GetRanks.java @@ -0,0 +1,32 @@ +package io.github.sefiraat.crystamaehistoria.commands; + +import io.github.mooy1.infinitylib.commands.SubCommand; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import javax.annotation.ParametersAreNonnullByDefault; +import java.util.List; + +public class GetRanks extends SubCommand { + + public GetRanks() { + super("rank", "Displays your Crystamae ranks", false); + } + + @Override + @ParametersAreNonnullByDefault + protected void execute(CommandSender sender, String[] args) { + if (sender instanceof Player) { + Player player = (Player) sender; + player.sendMessage(PlayerStatistics.getSpellRankString(player.getUniqueId())); + player.sendMessage(PlayerStatistics.getStoryRankString(player.getUniqueId())); + } + } + + @Override + @ParametersAreNonnullByDefault + protected void complete(CommandSender commandSender, String[] strings, List list) { + // Not required + } +} \ No newline at end of file diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/config/ConfigManager.java b/src/main/java/io/github/sefiraat/crystamaehistoria/config/ConfigManager.java index 9092d379..593951e2 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/config/ConfigManager.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/config/ConfigManager.java @@ -9,8 +9,11 @@ import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; +import java.io.BufferedReader; import java.io.File; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; @Getter public class ConfigManager { @@ -22,35 +25,42 @@ public class ConfigManager { private final FileConfiguration spells; public ConfigManager() { - this.blocks = getConfig("blocks.yml"); - this.blocks.options().copyDefaults(true); - this.stories = getConfig("generic-stories.yml"); - this.stories.options().copyDefaults(true); - this.playerStats = getConfig("player_stats.yml"); - this.playerStats.options().copyDefaults(true); - this.blockColors = getConfig("block_colors.yml"); - this.blockColors.options().copyDefaults(true); - this.spells = getConfig("spells.yml"); - this.spells.options().copyDefaults(true); + this.blocks = getConfig("blocks.yml", true); + this.stories = getConfig("generic-stories.yml", true); + this.playerStats = getConfig("player_stats.yml", false); + this.blockColors = getConfig("block_colors.yml", false); + this.spells = getConfig("spells.yml", false); } /** * @noinspection ResultOfMethodCallIgnored */ - private FileConfiguration getConfig(String fileName) { - CrystamaeHistoria plugin = CrystamaeHistoria.getInstance(); - File file = new File(plugin.getDataFolder(), fileName); + private FileConfiguration getConfig(String fileName, boolean updateWithDefaults) { + final CrystamaeHistoria plugin = CrystamaeHistoria.getInstance(); + final File file = new File(plugin.getDataFolder(), fileName); if (!file.exists()) { file.getParentFile().mkdirs(); plugin.saveResource(fileName, true); } - YamlConfiguration yaml = new YamlConfiguration(); + final FileConfiguration config = new YamlConfiguration(); try { - yaml.load(file); + config.load(file); + if (updateWithDefaults) { + updateConfig(config, file, fileName); + } } catch (IOException | InvalidConfigurationException e) { e.printStackTrace(); } - return yaml; + return config; + } + + private void updateConfig(FileConfiguration config, File file, String fileName) throws IOException { + final InputStream inputStream = CrystamaeHistoria.getInstance().getResource(fileName); + final BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); + final YamlConfiguration defaults = YamlConfiguration.loadConfiguration(reader); + config.addDefaults(defaults); + config.options().copyDefaults(true); + config.save(file); } public boolean spellEnabled(Spell spell) { diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/CrystalBreakListener.java b/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/CrystalBreakListener.java index 351cabbc..d7321a23 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/CrystalBreakListener.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/CrystalBreakListener.java @@ -11,12 +11,13 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.BlockBreakEvent; public class CrystalBreakListener implements Listener { - @EventHandler + @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onBreakCrystal(BlockBreakEvent event) { Block block = event.getBlock(); if (block.getType() == Material.LARGE_AMETHYST_BUD) { diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/DisplayItemListener.java b/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/DisplayItemListener.java index 4f2bc1dc..87359a10 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/DisplayItemListener.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/DisplayItemListener.java @@ -4,14 +4,23 @@ import io.github.thebusybiscuit.slimefun4.libraries.dough.data.persistent.PersistentDataAPI; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.entity.ItemDespawnEvent; import org.bukkit.event.inventory.InventoryPickupItemEvent; public class DisplayItemListener implements Listener { @EventHandler - public void onArmorStandManipulate(InventoryPickupItemEvent e) { + public void onItemPickup(InventoryPickupItemEvent e) { if (PersistentDataAPI.hasBoolean(e.getItem(), Keys.PDC_IS_DISPLAY_ITEM)) { e.setCancelled(true); } } + + @EventHandler + public void onItemDespawn(ItemDespawnEvent e) { + if (PersistentDataAPI.hasBoolean(e.getEntity(), Keys.PDC_IS_DISPLAY_ITEM)) { + e.setCancelled(true); + e.getEntity().setTicksLived(1); + } + } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/MiscListener.java b/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/MiscListener.java index 452be015..0d1f816f 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/MiscListener.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/MiscListener.java @@ -1,13 +1,19 @@ package io.github.sefiraat.crystamaehistoria.listeners; import io.github.sefiraat.crystamaehistoria.slimefun.gadgets.MysteriousTicker; +import io.github.sefiraat.crystamaehistoria.utils.GeneralUtils; +import io.github.sefiraat.crystamaehistoria.utils.StoryUtils; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; import me.mrCookieSlime.Slimefun.api.BlockStorage; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; +import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; public class MiscListener implements Listener { @@ -21,4 +27,24 @@ public void onDontTouchMyCrap(PlayerInteractEvent e) { } } } + + @EventHandler + public void onPlaceStoriedBlock(BlockPlaceEvent e) { + ItemStack itemStack = e.getItemInHand(); + if (StoryUtils.isStoried(itemStack)) { + e.setCancelled(true); + } + } + + @EventHandler(priority = EventPriority.LOWEST) + public void checkCooldown(PlayerInteractEvent event) { + ItemStack itemStack = event.getPlayer().getInventory().getItemInMainHand(); + if (itemStack.getType() != Material.AIR + && (event.getAction() == Action.RIGHT_CLICK_AIR + || event.getAction() == Action.RIGHT_CLICK_BLOCK) + && GeneralUtils.isOnCooldown(itemStack) + ) { + event.setCancelled(true); + } + } } \ No newline at end of file diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/RefractingLensListener.java b/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/RefractingLensListener.java index 3fca8279..86909692 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/RefractingLensListener.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/listeners/RefractingLensListener.java @@ -6,6 +6,7 @@ import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.liquefactionbasin.LiquefactionBasin; import io.github.sefiraat.crystamaehistoria.slimefun.tools.RefactingLens; import io.github.sefiraat.crystamaehistoria.stories.definition.StoryType; +import io.github.sefiraat.crystamaehistoria.utils.GeneralUtils; import io.github.sefiraat.crystamaehistoria.utils.ParticleUtils; import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; @@ -18,6 +19,7 @@ import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; @@ -28,7 +30,7 @@ public class RefractingLensListener implements Listener { - @EventHandler + @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onInteract(PlayerInteractEvent e) { final Player player = e.getPlayer(); final SlimefunItem slimefunItem = SlimefunItem.getByItem(player.getInventory().getItemInMainHand()); @@ -38,6 +40,7 @@ public void onInteract(PlayerInteractEvent e) { && slimefunItem instanceof RefactingLens ) { e.setCancelled(true); + GeneralUtils.putOnCooldown(player.getInventory().getItemInMainHand(), 3); SlimefunItem item = BlockStorage.check(block); if (item instanceof LiquefactionBasin) { liquefactionBasin(player, item, block); diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/SpellType.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/SpellType.java index e28f9614..637e3db3 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/SpellType.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/SpellType.java @@ -1,6 +1,5 @@ package io.github.sefiraat.crystamaehistoria.magic; -import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; import io.github.sefiraat.crystamaehistoria.magic.spells.core.Spell; import io.github.sefiraat.crystamaehistoria.magic.spells.tier1.AbstractVoid; import io.github.sefiraat.crystamaehistoria.magic.spells.tier1.AirNova; @@ -71,7 +70,6 @@ import io.github.sefiraat.crystamaehistoria.magic.spells.tier1.Tracer; import io.github.sefiraat.crystamaehistoria.magic.spells.tier1.Vacuum; import io.github.sefiraat.crystamaehistoria.magic.spells.tier1.WitherWeather; -import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.liquefactionbasin.LiquefactionBasinCache; import lombok.Getter; import javax.annotation.Nonnull; @@ -175,6 +173,12 @@ public static Spell getById(String id) { return null; } + public static void setupEnabledSpells() { + enabledSpells = Arrays.stream(values()) + .filter(spellType -> spellType.getSpell().isEnabled()) + .toArray(SpellType[]::new); + } + @Nonnull public String getId() { return spell.getId(); @@ -190,10 +194,4 @@ public void cast(CastInformation castInformation) { this.spell.castSpell(castInformation); } - public static void setupEnabledSpells() { - enabledSpells = Arrays.stream(values()) - .filter(spellType -> spellType.getSpell().isEnabled()) - .toArray(SpellType[]::new); - } - } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/core/InstancePlate.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/core/InstancePlate.java index e76822cb..23b5eb92 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/core/InstancePlate.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/core/InstancePlate.java @@ -4,7 +4,7 @@ import io.github.sefiraat.crystamaehistoria.magic.CastInformation; import io.github.sefiraat.crystamaehistoria.magic.CastResult; import io.github.sefiraat.crystamaehistoria.magic.SpellType; -import io.github.sefiraat.crystamaehistoria.utils.PlayerStatUtils; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; import lombok.Getter; import lombok.Setter; @@ -80,7 +80,7 @@ public CastResult tryCastSpell(CastInformation castInformation) { this.crysta -= crystaCost; final long cdSeconds = (long) (spell.getCooldownSeconds(castInformation) * 1000); this.cooldown = System.currentTimeMillis() + cdSeconds; - PlayerStatUtils.addUsage(castInformation.getCaster(), storedSpell); + PlayerStatistics.addUsage(castInformation.getCaster(), storedSpell); return CastResult.CAST_SUCCESS; } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AbstractVoid.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AbstractVoid.java index 5626454e..45211896 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AbstractVoid.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AbstractVoid.java @@ -11,7 +11,6 @@ import org.bukkit.Material; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import java.util.ArrayList; @@ -70,7 +69,7 @@ public Material getMaterial() { return Material.GREEN_DYE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AirNova.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AirNova.java index 7856c82d..48c0425c 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AirNova.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AirNova.java @@ -14,7 +14,6 @@ import org.bukkit.Particle; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -83,7 +82,7 @@ public Material getMaterial() { return Material.FEATHER; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AirSprite.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AirSprite.java index dd53e400..49096e33 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AirSprite.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AirSprite.java @@ -13,7 +13,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.EntityType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -74,7 +73,7 @@ public Material getMaterial() { return Material.VEX_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AncientDefence.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AncientDefence.java index 3f739697..6e02a175 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AncientDefence.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AncientDefence.java @@ -10,7 +10,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -66,7 +65,7 @@ public Material getMaterial() { return Material.CRYING_OBSIDIAN; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Animaniacs.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Animaniacs.java index eee78c38..54a56c6c 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Animaniacs.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Animaniacs.java @@ -14,7 +14,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -107,7 +106,7 @@ public Material getMaterial() { return Material.AXOLOTL_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AntiPrism.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AntiPrism.java index 951e5fb0..b2df84e6 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AntiPrism.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/AntiPrism.java @@ -16,7 +16,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -97,7 +96,7 @@ public Material getMaterial() { return Material.POTION; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/BatteringRam.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/BatteringRam.java index a52710c4..227c7715 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/BatteringRam.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/BatteringRam.java @@ -13,7 +13,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Mob; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -70,7 +69,7 @@ public Material getMaterial() { return Material.GOAT_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/BloodMagics.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/BloodMagics.java index cc576d76..0088b71c 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/BloodMagics.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/BloodMagics.java @@ -13,7 +13,6 @@ import org.bukkit.Particle; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -81,7 +80,7 @@ public Material getMaterial() { return Material.RED_DYE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Bobulate.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Bobulate.java index 855d8d26..cbe9ebf2 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Bobulate.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Bobulate.java @@ -19,7 +19,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.material.Colorable; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -134,7 +133,7 @@ public Material getMaterial() { return Material.CYAN_WOOL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Break.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Break.java index 4ad21b30..5e5e0d2f 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Break.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Break.java @@ -9,7 +9,6 @@ import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -49,7 +48,7 @@ public Material getMaterial() { return Material.CRACKED_STONE_BRICKS; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Bright.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Bright.java index aa1e7280..f2d81223 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Bright.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Bright.java @@ -11,7 +11,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -55,7 +54,7 @@ public Material getMaterial() { return Material.SUNFLOWER; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/CallLightning.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/CallLightning.java index 897e9591..94d22395 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/CallLightning.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/CallLightning.java @@ -13,7 +13,6 @@ import org.bukkit.entity.LightningStrike; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -76,7 +75,7 @@ public Material getMaterial() { return Material.LIGHTNING_ROD; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Cascada.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Cascada.java index 490d9f34..43ecc54c 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Cascada.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Cascada.java @@ -16,7 +16,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -95,7 +94,7 @@ public Material getMaterial() { return Material.PODZOL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Chaos.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Chaos.java index 219bffd3..ec8f74e7 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Chaos.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Chaos.java @@ -13,10 +13,10 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Particle; +import org.bukkit.block.Block; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -52,10 +52,13 @@ public void cast(CastInformation castInformation) { .add(new Vector(x, y, 0)) .rotateAroundY(-(location.getYaw() * alessioMath)); final Location pointLocation = location.clone().add(pointVector); - if (location.getBlock().isEmpty()) { + final Block block = pointLocation.getBlock(); + if (pointLocation.getBlock().isEmpty()) { final MagicProjectile projectile = SpellUtils.summonMagicProjectile(castInformation, EntityType.SPECTRAL_ARROW, pointLocation, this::onTick); projectile.getProjectile().setGravity(false); projectile.setVelocity(caster.getEyeLocation().getDirection(), 1); + } else { + GeneralUtils.tryBreakBlock(castInformation.getCaster(), block); } } } @@ -100,7 +103,7 @@ public Material getMaterial() { return Material.SOUL_LANTERN; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/ChillWind.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/ChillWind.java index 6fae0340..d3447235 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/ChillWind.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/ChillWind.java @@ -12,7 +12,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -81,7 +80,7 @@ public Material getMaterial() { return Material.BLUE_ICE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Compass.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Compass.java index ce63a2de..f4213701 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Compass.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Compass.java @@ -14,7 +14,6 @@ import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -91,7 +90,7 @@ public Material getMaterial() { return Material.COMPASS; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/CurificationRitual.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/CurificationRitual.java index 51281c89..c542b23c 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/CurificationRitual.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/CurificationRitual.java @@ -13,7 +13,6 @@ import org.bukkit.entity.Player; import org.bukkit.entity.Zombie; import org.bukkit.entity.ZombieVillager; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -72,7 +71,7 @@ public Material getMaterial() { return Material.GOLDEN_APPLE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Deity.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Deity.java index 1a8873a3..abefb373 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Deity.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Deity.java @@ -12,7 +12,6 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -68,7 +67,7 @@ public Material getMaterial() { return Material.END_CRYSTAL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EarthNova.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EarthNova.java index 2663706a..12bd034f 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EarthNova.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EarthNova.java @@ -15,7 +15,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -82,7 +81,7 @@ public Material getMaterial() { return Material.CLAY_BALL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EasterEgg.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EasterEgg.java index 89775bff..a4d2dd98 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EasterEgg.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EasterEgg.java @@ -15,7 +15,6 @@ import org.bukkit.Particle; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -74,7 +73,7 @@ public Material getMaterial() { return Material.ZOGLIN_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EndermansVeil.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EndermansVeil.java index 5e8b5386..83c7cd04 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EndermansVeil.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EndermansVeil.java @@ -12,7 +12,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -93,7 +92,7 @@ public Material getMaterial() { return Material.ENDER_PEARL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EscapeRope.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EscapeRope.java index 4f9ff202..f18a8543 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EscapeRope.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EscapeRope.java @@ -10,7 +10,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -54,7 +53,7 @@ public Material getMaterial() { return Material.LEAD; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EtherealFlow.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EtherealFlow.java index dd500d95..eadfa3d9 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EtherealFlow.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/EtherealFlow.java @@ -8,7 +8,6 @@ import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -49,7 +48,7 @@ public Material getMaterial() { return Material.CLOCK; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FanOfArrows.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FanOfArrows.java index 5953af9f..9ba451d1 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FanOfArrows.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FanOfArrows.java @@ -11,7 +11,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.EntityType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -40,8 +39,10 @@ public void fireProjectiles(CastInformation castInformation) { int dz = (int) (sizeEnd * Math.sin(angle)); Location spawn = middle.clone().add(sx, 0, sz); Location destination = middle.clone().add(dx, 5, dz); - MagicProjectile magicProjectile = SpellUtils.summonMagicProjectile(castInformation, EntityType.ARROW, spawn); - magicProjectile.setVelocity(destination, 1); + if (spawn.getBlock().isEmpty()) { + MagicProjectile magicProjectile = SpellUtils.summonMagicProjectile(castInformation, EntityType.ARROW, spawn); + magicProjectile.setVelocity(destination, 1); + } } } @@ -71,7 +72,7 @@ public Material getMaterial() { return Material.SPECTRAL_ARROW; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FireNova.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FireNova.java index cc6ab5b5..a5722327 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FireNova.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FireNova.java @@ -14,7 +14,6 @@ import org.bukkit.Particle; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -82,7 +81,7 @@ public Material getMaterial() { return Material.FIRE_CHARGE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Fireball.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Fireball.java index cdaca26a..a30f1035 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Fireball.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Fireball.java @@ -12,7 +12,6 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -76,7 +75,7 @@ public Material getMaterial() { return Material.FIRE_CHARGE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FlameSprite.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FlameSprite.java index 7b177af7..7de168d4 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FlameSprite.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FlameSprite.java @@ -13,7 +13,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.EntityType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -74,7 +73,7 @@ public Material getMaterial() { return Material.BLAZE_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FrostNova.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FrostNova.java index b7c80164..a336b6a1 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FrostNova.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/FrostNova.java @@ -14,7 +14,6 @@ import org.bukkit.Particle; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -79,7 +78,7 @@ public Material getMaterial() { return Material.SNOWBALL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Gravity.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Gravity.java index 42f72d56..12b7c9bd 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Gravity.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Gravity.java @@ -11,7 +11,6 @@ import org.bukkit.Particle; import org.bukkit.entity.Player; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -63,7 +62,7 @@ public Material getMaterial() { return Material.FIREWORK_STAR; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/GrowUp.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/GrowUp.java index 4c8c8cb1..0c67b29d 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/GrowUp.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/GrowUp.java @@ -13,7 +13,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Phantom; import org.bukkit.entity.Slime; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -67,7 +66,7 @@ public Material getMaterial() { return Material.SLIME_BLOCK; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Gyroscopic.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Gyroscopic.java index 3656762a..5fc06ac9 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Gyroscopic.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Gyroscopic.java @@ -13,7 +13,6 @@ import org.bukkit.Particle; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -76,7 +75,7 @@ public Material getMaterial() { return Material.MUSIC_DISC_CAT; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HarmonysSonata.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HarmonysSonata.java index c5d5c772..77a0a872 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HarmonysSonata.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HarmonysSonata.java @@ -16,7 +16,6 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.data.Bisected; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -92,7 +91,7 @@ public Material getMaterial() { return Material.GRASS; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HarvestMoon.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HarvestMoon.java index db911ec4..e48ae651 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HarvestMoon.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HarvestMoon.java @@ -12,7 +12,6 @@ import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -77,7 +76,7 @@ public Material getMaterial() { return Material.WHEAT; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Heal.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Heal.java index 3f61c7c3..c47f6915 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Heal.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Heal.java @@ -11,7 +11,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -52,7 +51,7 @@ public Material getMaterial() { return Material.POTION; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HealingMist.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HealingMist.java index 49229e8b..3ed15dc4 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HealingMist.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HealingMist.java @@ -12,7 +12,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -61,7 +60,7 @@ public Material getMaterial() { return Material.GOLDEN_APPLE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Hearthstone.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Hearthstone.java index 576d6263..cfb4f7f6 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Hearthstone.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Hearthstone.java @@ -12,7 +12,6 @@ import org.bukkit.Particle; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerTeleportEvent; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -74,7 +73,7 @@ public Material getMaterial() { return Material.RED_BED; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Hellscape.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Hellscape.java index 8d9c6a2e..bbc10a8b 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Hellscape.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Hellscape.java @@ -14,7 +14,6 @@ import org.bukkit.Particle; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -93,7 +92,7 @@ public Material getMaterial() { return Material.FLINT_AND_STEEL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HolyCow.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HolyCow.java index b32d35e8..f842341f 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HolyCow.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/HolyCow.java @@ -13,7 +13,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.EntityType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -74,7 +73,7 @@ public Material getMaterial() { return Material.COW_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/ImbueVoid.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/ImbueVoid.java index 08648347..a7258373 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/ImbueVoid.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/ImbueVoid.java @@ -11,7 +11,6 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -70,7 +69,7 @@ public Material getMaterial() { return Material.ENDERMITE_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/KnowledgeShare.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/KnowledgeShare.java index 451ec017..d02425a5 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/KnowledgeShare.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/KnowledgeShare.java @@ -12,7 +12,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.ExperienceOrb; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -73,7 +72,7 @@ public Material getMaterial() { return Material.EXPERIENCE_BOTTLE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Launch.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Launch.java index 7e0f7d24..d26b4e98 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Launch.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Launch.java @@ -7,7 +7,6 @@ import io.github.sefiraat.crystamaehistoria.stories.definition.StoryType; import org.bukkit.Material; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -49,7 +48,7 @@ public Material getMaterial() { return Material.BRAIN_CORAL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LavaLake.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LavaLake.java index dfe0c4ba..aae391a4 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LavaLake.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LavaLake.java @@ -10,7 +10,6 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -70,7 +69,7 @@ public Material getMaterial() { return Material.LAVA_BUCKET; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LeechBomb.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LeechBomb.java index f2f4a47a..10730204 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LeechBomb.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LeechBomb.java @@ -17,7 +17,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Mob; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -96,7 +95,7 @@ public Material getMaterial() { return Material.CARVED_PUMPKIN; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LovePotion.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LovePotion.java index 2b2080ce..b46e612e 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LovePotion.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/LovePotion.java @@ -12,7 +12,6 @@ import org.bukkit.entity.Animals; import org.bukkit.entity.Breedable; import org.bukkit.entity.Entity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -58,7 +57,7 @@ public Material getMaterial() { return Material.POTION; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Oviparous.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Oviparous.java index a5a2b271..58b66acf 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Oviparous.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Oviparous.java @@ -17,7 +17,6 @@ import org.bukkit.entity.Turtle; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -83,7 +82,7 @@ public Material getMaterial() { return Material.EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PhantomsFlight.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PhantomsFlight.java index b633e1fb..9cc033bf 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PhantomsFlight.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PhantomsFlight.java @@ -14,7 +14,6 @@ import org.bukkit.Particle; import org.bukkit.entity.Bat; import org.bukkit.entity.EntityType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -78,7 +77,7 @@ public Material getMaterial() { return Material.DRAGON_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PhilosophersStone.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PhilosophersStone.java index 6791d8c9..823e4e63 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PhilosophersStone.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PhilosophersStone.java @@ -18,7 +18,6 @@ import org.bukkit.Tag; import org.bukkit.block.Block; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -102,7 +101,7 @@ public Material getMaterial() { return Material.GOLD_BLOCK; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PlutosDecent.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PlutosDecent.java index d3371609..718c57ad 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PlutosDecent.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PlutosDecent.java @@ -13,7 +13,6 @@ import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import java.util.ArrayList; @@ -131,7 +130,7 @@ public Material getMaterial() { return Material.COBBLED_DEEPSLATE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PoisonNova.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PoisonNova.java index 30e08629..37f6afaf 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PoisonNova.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/PoisonNova.java @@ -16,7 +16,6 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -97,7 +96,7 @@ public Material getMaterial() { return Material.SLIME_BALL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Prism.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Prism.java index 93377da3..a8eeadea 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Prism.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Prism.java @@ -12,7 +12,6 @@ import org.bukkit.Particle; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -74,7 +73,7 @@ public Material getMaterial() { return Material.POTION; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Protectorate.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Protectorate.java index a5c264da..87b9e3fd 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Protectorate.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Protectorate.java @@ -13,7 +13,6 @@ import org.bukkit.Particle; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -73,7 +72,7 @@ public Material getMaterial() { return Material.SHIELD; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Push.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Push.java index 49531e22..6101a063 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Push.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Push.java @@ -12,7 +12,6 @@ import org.bukkit.Particle; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -70,7 +69,7 @@ public Material getMaterial() { return Material.PISTON; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Quake.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Quake.java index bd784946..d59e6c27 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Quake.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Quake.java @@ -13,7 +13,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -80,7 +79,7 @@ public Material getMaterial() { return Material.CRACKED_DEEPSLATE_BRICKS; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/RainOfFire.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/RainOfFire.java index c7e3546e..a0335248 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/RainOfFire.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/RainOfFire.java @@ -12,7 +12,6 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -95,7 +94,7 @@ public Material getMaterial() { return Material.FIRE_CHARGE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Ravage.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Ravage.java index 82acc924..a0aa01c5 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Ravage.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Ravage.java @@ -14,7 +14,6 @@ import org.bukkit.Particle; import org.bukkit.entity.EntityType; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -80,7 +79,7 @@ public Material getMaterial() { return Material.RAVAGER_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/RemnantOfWar.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/RemnantOfWar.java index 1c6884d6..3774fac0 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/RemnantOfWar.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/RemnantOfWar.java @@ -16,7 +16,6 @@ import org.bukkit.entity.Zombie; import org.bukkit.inventory.EntityEquipment; import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -130,7 +129,7 @@ public Material getMaterial() { return Material.ZOMBIE_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Shroud.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Shroud.java index 6065d5bb..d60156c6 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Shroud.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Shroud.java @@ -12,7 +12,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -64,7 +63,7 @@ public Material getMaterial() { return Material.BLACK_CANDLE; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/SpawnFiends.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/SpawnFiends.java index 83f622bf..4b0aa88c 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/SpawnFiends.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/SpawnFiends.java @@ -11,7 +11,6 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.entity.Phantom; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -69,7 +68,7 @@ public Material getMaterial() { return Material.PHANTOM_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Squall.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Squall.java index 4a68c060..739850e7 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Squall.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Squall.java @@ -11,7 +11,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -56,7 +55,7 @@ public Material getMaterial() { return Material.BUCKET; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/StarFall.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/StarFall.java index b55d7010..34b34b76 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/StarFall.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/StarFall.java @@ -15,7 +15,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -102,7 +101,7 @@ public Material getMaterial() { return Material.NETHER_STAR; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/StripMine.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/StripMine.java index beafbe9d..eb4cfb60 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/StripMine.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/StripMine.java @@ -10,7 +10,6 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -72,7 +71,7 @@ public Material getMaterial() { return Material.MINECART; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/SummonGolem.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/SummonGolem.java index c0de1f14..468f92c2 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/SummonGolem.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/SummonGolem.java @@ -16,7 +16,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Mob; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -84,7 +83,7 @@ public Material getMaterial() { return Material.CARVED_PUMPKIN; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Teleport.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Teleport.java index 52110666..399089b6 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Teleport.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Teleport.java @@ -12,7 +12,6 @@ import org.bukkit.Material; import org.bukkit.Particle; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -87,7 +86,7 @@ public Material getMaterial() { return Material.ENDER_PEARL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Tempest.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Tempest.java index d086339a..cf691820 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Tempest.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Tempest.java @@ -10,7 +10,6 @@ import org.bukkit.Material; import org.bukkit.entity.LightningStrike; import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -86,7 +85,7 @@ public Material getMaterial() { return Material.END_ROD; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TimeCompression.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TimeCompression.java index e260539f..1b6f62cf 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TimeCompression.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TimeCompression.java @@ -13,7 +13,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -79,7 +78,7 @@ public Material getMaterial() { return Material.WAXED_CUT_COPPER; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TimeDilation.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TimeDilation.java index b1948de1..7806a3eb 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TimeDilation.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TimeDilation.java @@ -13,7 +13,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -79,7 +78,7 @@ public Material getMaterial() { return Material.CUT_COPPER; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Tracer.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Tracer.java index e7c9c23e..c1f79b33 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Tracer.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Tracer.java @@ -19,7 +19,6 @@ import org.bukkit.entity.NPC; import org.bukkit.entity.Player; import org.bukkit.entity.WaterMob; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -109,7 +108,7 @@ public Material getMaterial() { return Material.LEAD; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TunnelBore.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TunnelBore.java index 57a0ec79..cf5a52f3 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TunnelBore.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/TunnelBore.java @@ -13,7 +13,6 @@ import org.bukkit.entity.EntityType; import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -75,7 +74,7 @@ public Material getMaterial() { return Material.GOAT_SPAWN_EGG; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Vacuum.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Vacuum.java index 2965a525..7b559785 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Vacuum.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/Vacuum.java @@ -14,7 +14,6 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -67,13 +66,13 @@ public String[] getLore() { }; } - @NotNull + @Nonnull @Override public Material getMaterial() { return Material.FISHING_ROD; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/WitherWeather.java b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/WitherWeather.java index 728bcea1..33ef2018 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/WitherWeather.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/magic/spells/tier1/WitherWeather.java @@ -11,7 +11,6 @@ import org.bukkit.Material; import org.bukkit.entity.EntityType; import org.bukkit.entity.WitherSkeleton; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -65,7 +64,7 @@ public Material getMaterial() { return Material.WITHER_SKELETON_SKULL; } - @NotNull + @Nonnull @Override public RecipeSpell getRecipe() { return new RecipeSpell( diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/player/BlockRank.java b/src/main/java/io/github/sefiraat/crystamaehistoria/player/BlockRank.java new file mode 100644 index 00000000..87ff61a4 --- /dev/null +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/player/BlockRank.java @@ -0,0 +1,45 @@ +package io.github.sefiraat.crystamaehistoria.player; + +import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; +import lombok.Getter; + +public enum BlockRank { + + SME(100, ThemeType.RANK_BLOCK_SME), + MASTER_OF(90, ThemeType.RANK_BLOCK_MASTER_OF), + EXPERT_OF(70, ThemeType.RANK_BLOCK_EXPERT_OF), + RESEARCHED(50, ThemeType.RANK_BLOCK_RESEARCHED), + DETAILED(30, ThemeType.RANK_BLOCK_DETAILED), + KNOWN(20, ThemeType.RANK_BLOCK_KNOWN), + HEARD_OF(10, ThemeType.RANK_BLOCK_HEARD_OF), + UNKNOWN(0, ThemeType.RANK_BLOCK_UNKNOWN); + + private final double numberRequired; + @Getter + private final ThemeType theme; + + BlockRank(double numberRequired, ThemeType themeType) { + this.numberRequired = numberRequired; + this.theme = themeType; + } + + public static BlockRank getByAmount(double percent) { + if (percent >= SME.numberRequired) { + return SME; + } else if (percent >= MASTER_OF.numberRequired) { + return MASTER_OF; + } else if (percent >= EXPERT_OF.numberRequired) { + return EXPERT_OF; + } else if (percent >= RESEARCHED.numberRequired) { + return RESEARCHED; + } else if (percent >= DETAILED.numberRequired) { + return DETAILED; + } else if (percent >= KNOWN.numberRequired) { + return KNOWN; + } else if (percent >= HEARD_OF.numberRequired) { + return HEARD_OF; + } else { + return UNKNOWN; + } + } +} diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/player/PlayerStatistics.java b/src/main/java/io/github/sefiraat/crystamaehistoria/player/PlayerStatistics.java new file mode 100644 index 00000000..71003b08 --- /dev/null +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/player/PlayerStatistics.java @@ -0,0 +1,194 @@ +package io.github.sefiraat.crystamaehistoria.player; + +import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; +import io.github.sefiraat.crystamaehistoria.magic.SpellType; +import io.github.sefiraat.crystamaehistoria.stories.BlockDefinition; +import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; +import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.entity.Player; + +import javax.annotation.Nonnull; +import javax.annotation.ParametersAreNonnullByDefault; +import java.text.MessageFormat; +import java.util.UUID; + +public class PlayerStatistics { + + public static void unlockSpell(Player player, SpellType spellType) { + unlockSpell(player.getUniqueId(), spellType); + } + + public static void unlockSpell(UUID player, SpellType spellType) { + String path = MessageFormat.format("{0}.{1}.{2}.UNLOCKED", player, StatType.SPELL, spellType.getId()); + CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, true); + } + + public static boolean hasUnlockedSpell(Player player, SpellType spellType) { + return hasUnlockedSpell(player.getUniqueId(), spellType); + } + + public static boolean hasUnlockedSpell(UUID player, SpellType spellType) { + String path = MessageFormat.format("{0}.{1}.{2}.UNLOCKED", player, StatType.SPELL, spellType.getId()); + return CrystamaeHistoria.getConfigManager().getPlayerStats().getBoolean(path); + } + + public static void addUsage(Player player, SpellType spellType) { + addUsage(player.getUniqueId(), spellType); + } + + public static void addUsage(UUID player, SpellType spellType) { + int uses = getUsages(player, spellType); + uses++; + String path = MessageFormat.format("{0}.{1}.{2}.TIMES_CAST", player, StatType.SPELL, spellType.getId()); + CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, uses); + } + + public static int getUsages(Player player, SpellType spellType) { + return getUsages(player.getUniqueId(), spellType); + } + + public static int getUsages(UUID player, SpellType spellType) { + String path = MessageFormat.format("{0}.{1}.{2}.TIMES_CAST", player, StatType.SPELL, spellType.getId()); + return CrystamaeHistoria.getConfigManager().getPlayerStats().getInt(path); + } + + public static void unlockUniqueStory(Player player, BlockDefinition definition) { + unlockUniqueStory(player.getUniqueId(), definition); + } + + public static void unlockUniqueStory(UUID player, BlockDefinition definition) { + String path = MessageFormat.format("{0}.{1}.{2}.UNLOCKED", player, StatType.STORY, definition.getMaterial()); + CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, true); + } + + public static boolean hasUnlockedUniqueStory(Player player, BlockDefinition definition) { + return hasUnlockedUniqueStory(player.getUniqueId(), definition); + } + + public static boolean hasUnlockedUniqueStory(UUID player, BlockDefinition definition) { + return hasUnlockedUniqueStory(player, definition.getMaterial()); + } + + public static boolean hasUnlockedUniqueStory(UUID player, Material material) { + String path = MessageFormat.format("{0}.{1}.{2}.UNLOCKED", player, StatType.STORY, material); + return CrystamaeHistoria.getConfigManager().getPlayerStats().getBoolean(path); + } + + public static void addChronicle(Player player, BlockDefinition definition) { + addChronicle(player.getUniqueId(), definition); + } + + public static void addChronicle(UUID player, BlockDefinition definition) { + int uses = getChronicle(player, definition); + uses++; + String path = MessageFormat.format("{0}.{1}.{2}.TIMES_CHRONICLED", player, StatType.STORY, definition.getMaterial()); + CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, uses); + } + + public static int getChronicle(Player player, BlockDefinition definition) { + return getChronicle(player.getUniqueId(), definition); + } + + public static int getChronicle(UUID player, BlockDefinition definition) { + String path = MessageFormat.format("{0}.{1}.{2}.TIMES_CHRONICLED", player, StatType.STORY, definition.getMaterial()); + return CrystamaeHistoria.getConfigManager().getPlayerStats().getInt(path); + } + + public static void addRealisation(Player player, BlockDefinition definition) { + addChronicle(player.getUniqueId(), definition); + } + + public static void addRealisation(UUID player, BlockDefinition definition) { + int uses = getRealisation(player, definition); + uses++; + String path = MessageFormat.format("{0}.{1}.{2}.TIMES_REALISED", player, StatType.STORY, definition.getMaterial()); + CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, uses); + } + + public static int getRealisation(Player player, BlockDefinition definition) { + return getChronicle(player.getUniqueId(), definition); + } + + public static int getRealisation(UUID player, BlockDefinition definition) { + String path = MessageFormat.format("{0}.{1}.{2}.TIMES_REALISED", player, StatType.STORY, definition.getMaterial()); + return CrystamaeHistoria.getConfigManager().getPlayerStats().getInt(path); + } + + @ParametersAreNonnullByDefault + public static BlockRank getBlockRank(UUID uuid, BlockDefinition definition) { + final int chronicleAmount = Math.min(getChronicle(uuid, definition), 100); + final int realisedAmount = Math.min(getRealisation(uuid, definition), 100); + final int blockValue = (chronicleAmount + realisedAmount) / 2; + return BlockRank.getByAmount(blockValue); + } + + + public static int getStoriesUnlocked(@Nonnull UUID uuid) { + String path = MessageFormat.format("{0}.{1}", uuid, StatType.STORY); + ConfigurationSection section = CrystamaeHistoria.getConfigManager().getPlayerStats().getConfigurationSection(path); + int unlocked = 0; + for (String story : section.getKeys(false)) { + String storyPath = MessageFormat.format("{0}.{1}.{2}.UNLOCKED", uuid, StatType.STORY, story); + if (CrystamaeHistoria.getConfigManager().getPlayerStats().getBoolean(storyPath)) unlocked++; + } + return unlocked; + } + + public static StoryRank getStoryRank(@Nonnull UUID uuid) { + int total = CrystamaeHistoria.getStoriesManager().getBlockDefinitionMap().size(); + final int unlocked = getStoriesUnlocked(uuid); + return StoryRank.getByPercent(((double) unlocked / total) * 100); + } + + public static String getStoryRankString(@Nonnull UUID uuid) { + int total = CrystamaeHistoria.getStoriesManager().getBlockDefinitionMap().size(); + int unlocked = getStoriesUnlocked(uuid); + StoryRank storyRank = StoryRank.getByPercent(((double) unlocked / total) * 100); + return MessageFormat.format( + "{0}Chronicler Rank: {1}{2}{0} ({3}/{4})", + ThemeType.PASSIVE.getColor(), + storyRank.getTheme().getColor(), + storyRank.getTheme().getLoreLine(), + unlocked, + total + ); + } + + public static int getSpellsUnlocked(@Nonnull UUID uuid) { + String path = MessageFormat.format("{0}.{1}", uuid, StatType.SPELL); + ConfigurationSection section = CrystamaeHistoria.getConfigManager().getPlayerStats().getConfigurationSection(path); + int unlocked = 0; + for (String spell : section.getKeys(false)) { + String storyPath = MessageFormat.format("{0}.{1}.{2}.UNLOCKED", uuid, StatType.SPELL, spell); + if (CrystamaeHistoria.getConfigManager().getPlayerStats().getBoolean(storyPath)) unlocked++; + } + return unlocked; + } + + public static SpellRank getSpellRank(@Nonnull UUID uuid) { + int total = SpellType.getEnabledSpells().length; + int unlocked = getSpellsUnlocked(uuid); + return SpellRank.getByPercent(((double) unlocked / total) * 100); + } + + public static String getSpellRankString(@Nonnull UUID uuid) { + int total = SpellType.getEnabledSpells().length; + int unlocked = getSpellsUnlocked(uuid); + SpellRank spellRank = SpellRank.getByPercent(((double) unlocked / total) * 100); + return MessageFormat.format( + "{0}Crystamae Rank: {1}{2}{0} ({3}/{4})", + ThemeType.PASSIVE.getColor(), + spellRank.getTheme().getColor(), + spellRank.getTheme().getLoreLine(), + unlocked, + total + ); + } + + enum StatType { + SPELL, + STORY + } +} + diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/player/SpellRank.java b/src/main/java/io/github/sefiraat/crystamaehistoria/player/SpellRank.java new file mode 100644 index 00000000..9b8466b5 --- /dev/null +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/player/SpellRank.java @@ -0,0 +1,45 @@ +package io.github.sefiraat.crystamaehistoria.player; + +import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; +import lombok.Getter; + +public enum SpellRank { + + GRANDMASTER_MAGI(100, ThemeType.RANK_SPELL_GRANDMASTER_MAGI), + MASTER_MAGI(90, ThemeType.RANK_SPELL_MASTER_MAGI), + MAGI(70, ThemeType.RANK_SPELL_MAGI), + SORCERER(50, ThemeType.RANK_SPELL_SORCERER), + CONJURER(30, ThemeType.RANK_SPELL_CONJURER), + WIZARD(20, ThemeType.RANK_SPELL_WIZARD), + MAGE(10, ThemeType.RANK_SPELL_MAGE), + APPRENTICE(0, ThemeType.RANK_SPELL_APPRENTICE); + + private final double percentRequired; + @Getter + private final ThemeType theme; + + SpellRank(double percentRequired, ThemeType themeType) { + this.percentRequired = percentRequired; + this.theme = themeType; + } + + public static SpellRank getByPercent(double percent) { + if (percent >= GRANDMASTER_MAGI.percentRequired) { + return GRANDMASTER_MAGI; + } else if (percent >= MASTER_MAGI.percentRequired) { + return MASTER_MAGI; + } else if (percent >= MAGI.percentRequired) { + return MAGI; + } else if (percent >= SORCERER.percentRequired) { + return SORCERER; + } else if (percent >= CONJURER.percentRequired) { + return CONJURER; + } else if (percent >= WIZARD.percentRequired) { + return WIZARD; + } else if (percent >= MAGE.percentRequired) { + return MAGE; + } else { + return APPRENTICE; + } + } +} diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/player/StoryRank.java b/src/main/java/io/github/sefiraat/crystamaehistoria/player/StoryRank.java new file mode 100644 index 00000000..b6c0e383 --- /dev/null +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/player/StoryRank.java @@ -0,0 +1,45 @@ +package io.github.sefiraat.crystamaehistoria.player; + +import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; +import lombok.Getter; + +public enum StoryRank { + + EMERITUS_PROFESSOR(100, ThemeType.RANK_STORY_EMERITUS_PROFESSOR), + ADJUNCT_PROFESSOR(90, ThemeType.RANK_STORY_ADJUNCT_PROFESSOR), + PROFESSOR(70, ThemeType.RANK_STORY_PROFESSOR), + LECTURER(50, ThemeType.RANK_STORY_LECTURER), + READER(30, ThemeType.RANK_STORY_READER), + RESEARCHER(20, ThemeType.RANK_STORY_RESEARCHER), + STUDENT(10, ThemeType.RANK_STORY_STUDENT), + PUPIL(0, ThemeType.RANK_STORY_PUPIL); + + private final double percentRequired; + @Getter + private final ThemeType theme; + + StoryRank(double percentRequired, ThemeType themeType) { + this.percentRequired = percentRequired; + this.theme = themeType; + } + + public static StoryRank getByPercent(double percent) { + if (percent >= EMERITUS_PROFESSOR.percentRequired) { + return EMERITUS_PROFESSOR; + } else if (percent >= ADJUNCT_PROFESSOR.percentRequired) { + return ADJUNCT_PROFESSOR; + } else if (percent >= PROFESSOR.percentRequired) { + return PROFESSOR; + } else if (percent >= LECTURER.percentRequired) { + return LECTURER; + } else if (percent >= READER.percentRequired) { + return READER; + } else if (percent >= RESEARCHER.percentRequired) { + return RESEARCHER; + } else if (percent >= STUDENT.percentRequired) { + return STUDENT; + } else { + return PUPIL; + } + } +} diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/Gadgets.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/Gadgets.java index e87ad1ff..00b297d1 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/Gadgets.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/Gadgets.java @@ -10,6 +10,8 @@ import io.github.sefiraat.crystamaehistoria.slimefun.gadgets.MobLamp; import io.github.sefiraat.crystamaehistoria.slimefun.gadgets.MobMat; import io.github.sefiraat.crystamaehistoria.slimefun.gadgets.MysteriousTicker; +import io.github.sefiraat.crystamaehistoria.slimefun.gadgets.TrophyDisplay; +import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.DisplayStandHolder; import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.liquefactionbasin.DummyLiquefactionBasinCrafting; import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.liquefactionbasin.LiquefactionBasinCache; import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.liquefactionbasin.RecipeItem; @@ -74,6 +76,8 @@ public class Gadgets { private static GreenHouseGlass greenHouseGlass; @Getter private static GreenHouseGlass focusedGreenHouseGlass; + @Getter + private static TrophyDisplay trophyDisplay; public static void setup() { @@ -378,7 +382,7 @@ public static void setup() { ThemeType.themedSlimefunItemStack( "CRY_EXP_COLLECTOR_2", new ItemStack(Material.LIGHTNING_ROD), - ThemeType.MECHANISM, + ThemeType.GADGET, "Infused Exp Collector", "Further infusion has made the", "collector even more powerful.", @@ -624,6 +628,30 @@ amalgamateDustEpic, new ItemStack(Material.GLASS), amalgamateDustEpic, 10 ); + // Trophy Stand + RecipeItem trophyDisplayRecipe = new RecipeItem( + new ItemStack(Material.POLISHED_BLACKSTONE_BRICK_WALL), + StoryType.MECHANICAL, 10, + StoryType.HUMAN, 10, + StoryType.PHILOSOPHICAL, 10 + ); + trophyDisplay = new TrophyDisplay( + ItemGroups.GADGETS, + ThemeType.themedSlimefunItemStack( + "CRY_TROPHY_DISPLAY_1", + new ItemStack(Material.POLISHED_BLACKSTONE_BRICK_WALL), + ThemeType.GADGET, + "Trophy Display", + "Used to place your trophies on to show", + "off to the world.", + "", + "Currently allowable trophies include:", + ThemeType.CLICK_INFO.getColor() + "A block in which you have a S.M.E. rank" + ), + DummyLiquefactionBasinCrafting.TYPE, + trophyDisplayRecipe.getDisplayRecipe() + ); + // Slimefun Registry abstractionLamp.register(plugin); dispersionLamp.register(plugin); @@ -645,6 +673,7 @@ amalgamateDustEpic, new ItemStack(Material.GLASS), amalgamateDustEpic, mysteriousPlant.register(plugin); greenHouseGlass.register(plugin); focusedGreenHouseGlass.register(plugin); + trophyDisplay.register(plugin); // Liquefaction Recipes LiquefactionBasinCache.addCraftingRecipe(abstractionLamp, abstractionLampRecipe); @@ -669,5 +698,7 @@ amalgamateDustEpic, new ItemStack(Material.GLASS), amalgamateDustEpic, LiquefactionBasinCache.addCraftingRecipe(mysteriousPlant, mysteriousPlantRecipe); LiquefactionBasinCache.addCraftingRecipe(focusedGreenHouseGlass, focusedGreenHouseGlassRecipe); + + LiquefactionBasinCache.addCraftingRecipe(trophyDisplay, trophyDisplayRecipe); } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/ItemGroups.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/ItemGroups.java index 401a6e91..f20649bd 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/ItemGroups.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/ItemGroups.java @@ -1,11 +1,15 @@ package io.github.sefiraat.crystamaehistoria.slimefun; import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; +import io.github.sefiraat.crystamaehistoria.slimefun.itemgroups.DummyGuideOnly; import io.github.sefiraat.crystamaehistoria.slimefun.itemgroups.DummyItemGroup; +import io.github.sefiraat.crystamaehistoria.slimefun.itemgroups.MainFlexGroup; import io.github.sefiraat.crystamaehistoria.slimefun.itemgroups.SpellCollectionFlexGroup; import io.github.sefiraat.crystamaehistoria.slimefun.itemgroups.StoryCollectionFlexGroup; import io.github.sefiraat.crystamaehistoria.utils.Keys; import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; +import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; +import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; import io.github.thebusybiscuit.slimefun4.api.items.groups.NestedItemGroup; import io.github.thebusybiscuit.slimefun4.api.items.groups.SubItemGroup; import io.github.thebusybiscuit.slimefun4.libraries.dough.items.CustomItemStack; @@ -16,59 +20,62 @@ @UtilityClass public final class ItemGroups { - public static final NestedItemGroup MAIN = new NestedItemGroup( + public static final DummyItemGroup DUMMY_ITEM_GROUP = new DummyItemGroup( + Keys.newKey("dummy"), + new CustomItemStack( + new ItemStack(Material.FIRE_CHARGE), + ThemeType.MAIN.getColor() + "Dummy Crystamae Historia" + ) + ); + public static final MainFlexGroup MAIN = new MainFlexGroup( Keys.newKey("main"), new CustomItemStack( new ItemStack(Material.AMETHYST_CLUSTER), ThemeType.MAIN.getColor() + "Crystamae Historia" ) ); - - public static final SubItemGroup MECHANISMS = new SubItemGroup( + public static final DummyItemGroup MECHANISMS = new DummyItemGroup( Keys.newKey("mechanisms"), - MAIN, new CustomItemStack( new ItemStack(Material.DEEPSLATE_TILE_SLAB), ThemeType.MAIN.getColor() + "Historia Mechanisms" ) ); - - public static final SubItemGroup CRYSTALS = new SubItemGroup( + public static final DummyItemGroup CRYSTALS = new DummyItemGroup( Keys.newKey("crystals"), - MAIN, new CustomItemStack( new ItemStack(Material.AMETHYST_CLUSTER), ThemeType.MAIN.getColor() + "Historia Crystals" ) ); - - public static final SubItemGroup TOOLS = new SubItemGroup( + public static final DummyItemGroup TOOLS = new DummyItemGroup( Keys.newKey("tools"), - MAIN, new CustomItemStack( new ItemStack(Material.STICK), - ThemeType.MAIN.getColor() + "Historia Staves and Materials" + ThemeType.MAIN.getColor() + "Historia Staves and Tool" ) ); - - public static final SubItemGroup GADGETS = new SubItemGroup( + public static final DummyItemGroup GADGETS = new DummyItemGroup( Keys.newKey("gadgets"), - MAIN, new CustomItemStack( new ItemStack(Material.REDSTONE_LAMP), ThemeType.MAIN.getColor() + "Magical Tech and Gadgets" ) ); - - public static final SubItemGroup MATERIALS = new SubItemGroup( + public static final DummyItemGroup MATERIALS = new DummyItemGroup( Keys.newKey("materials"), - MAIN, new CustomItemStack( new ItemStack(Material.GOLD_INGOT), ThemeType.MAIN.getColor() + "Crystamae Raw Materials" ) ); - + public static final DummyItemGroup GUIDE = new DummyItemGroup( + Keys.newKey("guide"), + new CustomItemStack( + new ItemStack(Material.BOOK), + ThemeType.MAIN.getColor() + "Crystamae Misc Guides" + ) + ); public static final StoryCollectionFlexGroup STORY_COLLECTION = new StoryCollectionFlexGroup( Keys.newKey("story_collection"), new CustomItemStack( @@ -76,7 +83,6 @@ public final class ItemGroups { ThemeType.MAIN.getColor() + "Story Collection" ) ); - public static final SpellCollectionFlexGroup SPELL_COLLECTION = new SpellCollectionFlexGroup( Keys.newKey("spell_collection"), new CustomItemStack( @@ -85,19 +91,152 @@ public final class ItemGroups { ) ); - public static final DummyItemGroup DUMMY_ITEM_GROUP = new DummyItemGroup( - Keys.newKey("dummy"), - new CustomItemStack( - new ItemStack(Material.FIRE_CHARGE), - ThemeType.MAIN.getColor() + "Dummy Crystamae Historia" - ) - ); public static void setup() { final CrystamaeHistoria plugin = CrystamaeHistoria.getInstance(); + /* + These items are for the misc guide which serves to inform players + how the more abstract mechanics work where a true recipe doesn't + suit or would be detrimental to the process. + */ + + // Chronicler + SlimefunItem guideChronicler = new SlimefunItem( + ItemGroups.GUIDE, + ThemeType.themedSlimefunItemStack( + "CRY_GUIDE_CHRONICLER", + new ItemStack(Material.DEEPSLATE_TILE_SLAB), + ThemeType.GUIDE, + "Chronicler Panel Guide", + "The chronicler panel will take a block", + "and 'learn' the stories it has. The type of", + "stories is determined by the block and the", + "amount is random but based on tier.", + "", + "A chronicler can only work on blocks of", + "a matching tier + 1.", + "", + "A block is finished when it's unique", + "story has been chronicled and the block", + "stops floating." + ), + DummyGuideOnly.TYPE, + new ItemStack[]{} + ); + + // Realisation + SlimefunItem guideRealisation = new SlimefunItem( + ItemGroups.GUIDE, + ThemeType.themedSlimefunItemStack( + "CRY_GUIDE_REALISATION", + new ItemStack(Material.CHISELED_DEEPSLATE), + ThemeType.GUIDE, + "Realisation Altar Guide", + "Place a fully chronicled block onto", + "the Realisation Altar and it will start", + "to consume it's stories and turn them", + "into a crystalline structure on the ground", + "nearby.", + "", + "These crystal will slowly grow", + "and, when fully formed, can be broken", + "into Crystamae." + ), + DummyGuideOnly.TYPE, + new ItemStack[]{} + ); + + // Liquefaction + SlimefunItem guideLiquefaction = new SlimefunItem( + ItemGroups.GUIDE, + ThemeType.themedSlimefunItemStack( + "CRY_GUIDE_LIQUEFACTION", + new ItemStack(Material.CAULDRON), + ThemeType.GUIDE, + "Liquefaction Basin Guide", + "The Liquefaction Basin is where you", + "can finally make cool things.", + "", + "Any Crystamae crystal you throw in", + "will be melted down into a liquid.", + "When you throw in an item that is", + "not a crystal, it will use that to try", + "to make an item.", + "", + "Get it wrong and you lose your Crysta." + ), + DummyGuideOnly.TYPE, + new ItemStack[]{} + ); + + // Stave Configurator + SlimefunItem guideStave = new SlimefunItem( + ItemGroups.GUIDE, + ThemeType.themedSlimefunItemStack( + "CRY_GUIDE_STAVE_CONFIGURATOR", + new ItemStack(Material.CAULDRON), + ThemeType.GUIDE, + "Stave Configurator", + "Put a stave into the input slot of the", + "configurator. Add charged spell plates", + "into the four spell slots then click", + "'Add Plates'. Click 'Remove' to remove", + "them again.", + "", + "Spells can be changed freely without cost." + ), + DummyGuideOnly.TYPE, + new ItemStack[]{} + ); + + // Make a Spell + SlimefunItem guideMakeSpell = new SlimefunItem( + ItemGroups.GUIDE, + ThemeType.themedSlimefunItemStack( + "CRY_GUIDE_MAKE_SPELL", + new ItemStack(Material.PAPER), + ThemeType.GUIDE, + "How To: Make a spell", + "To make a spell, first craft a Basic", + "Spell Plate. The in the Liquefaction", + "Basin, fill with at least 3 different", + "types of Crystamae - then throw in the", + "Plate" + ), + DummyGuideOnly.TYPE, + new ItemStack[]{} + ); + + // Recharge a Spell + SlimefunItem guideChargeSpell = new SlimefunItem( + ItemGroups.GUIDE, + ThemeType.themedSlimefunItemStack( + "CRY_GUIDE_CHARGE_SPELL", + new ItemStack(Material.PAPER), + ThemeType.GUIDE, + "How To: Recharge a spell", + "To refill a plate with crysta first", + "take it off of the stave using the", + "configurator. then in the Liquefaction", + "Basin, make the spell recipe and throw", + "the charged plate in. It will refill", + "the Crysta inside." + ), + DummyGuideOnly.TYPE, + new ItemStack[]{} + ); + // Slimefun Registry - ItemGroups.STORY_COLLECTION.register(plugin); - ItemGroups.SPELL_COLLECTION.register(plugin); + ItemGroups.MAIN.register(plugin); + //ItemGroups.STORY_COLLECTION.register(plugin); + //ItemGroups.SPELL_COLLECTION.register(plugin); + + guideChronicler.register(plugin); + guideRealisation.register(plugin); + guideLiquefaction.register(plugin); + guideStave.register(plugin); + guideMakeSpell.register(plugin); + guideChargeSpell.register(plugin); } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/EnderInhibitor.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/EnderInhibitor.java index 9b9d88b7..9bbba7a4 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/EnderInhibitor.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/EnderInhibitor.java @@ -16,8 +16,8 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; import java.util.List; @@ -33,7 +33,7 @@ public EnderInhibitor(ItemGroup category, SlimefunItemStack item, RecipeType rec this.addItemHandler( new BlockPlaceHandler(false) { @Override - public void onPlayerPlace(@NotNull BlockPlaceEvent event) { + public void onPlayerPlace(@Nonnull BlockPlaceEvent event) { BlockStorage.addBlockInfo(event.getBlock(), "CH_UUID", event.getPlayer().getUniqueId().toString()); } }, diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/GreenHouseGlass.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/GreenHouseGlass.java index 6ad7cbbd..2d77294f 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/GreenHouseGlass.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/GreenHouseGlass.java @@ -22,8 +22,8 @@ import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.util.RayTraceResult; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; import java.util.HashMap; import java.util.List; @@ -45,7 +45,7 @@ public GreenHouseGlass(ItemGroup category, SlimefunItemStack item, RecipeType re } @Override - protected void onTick(@NotNull Block block, @NotNull SlimefunItem slimefunItem, @NotNull Config config) { + protected void onTick(@Nonnull Block block, @Nonnull SlimefunItem slimefunItem, @Nonnull Config config) { if (!GeneralUtils.testChance(this.rate, 100) || TimePeriod.isLight(block.getWorld())) { return; } @@ -84,7 +84,7 @@ protected void onTick(@NotNull Block block, @NotNull SlimefunItem slimefunItem, } @Override - protected void onFirstTick(@NotNull Block block, @NotNull SlimefunItem slimefunItem, @NotNull Config config) { + protected void onFirstTick(@Nonnull Block block, @Nonnull SlimefunItem slimefunItem, @Nonnull Config config) { blockOwnerMap.put( block.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(block.getLocation(), "CH_UUID")) @@ -92,14 +92,14 @@ protected void onFirstTick(@NotNull Block block, @NotNull SlimefunItem slimefunI } @Override - protected void onPlace(@NotNull BlockPlaceEvent event) { + protected void onPlace(@Nonnull BlockPlaceEvent event) { final UUID uuid = event.getPlayer().getUniqueId(); BlockStorage.addBlockInfo(event.getBlock(), "CH_UUID", uuid.toString()); blockOwnerMap.put(event.getBlock().getLocation(), uuid); } @Override - protected void onBreak(@NotNull BlockBreakEvent blockBreakEvent, @NotNull ItemStack itemStack, @NotNull List list) { + protected void onBreak(@Nonnull BlockBreakEvent blockBreakEvent, @Nonnull ItemStack itemStack, @Nonnull List list) { // No on break } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobCandle.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobCandle.java index 56010f3f..d9f5d321 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobCandle.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobCandle.java @@ -19,8 +19,8 @@ import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.util.BoundingBox; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; import java.util.HashMap; import java.util.List; @@ -43,7 +43,7 @@ public MobCandle(ItemGroup category, SlimefunItemStack item, RecipeType recipeTy } @Override - protected void onFirstTick(@NotNull Block block, @NotNull SlimefunItem slimefunItem, @NotNull Config config) { + protected void onFirstTick(@Nonnull Block block, @Nonnull SlimefunItem slimefunItem, @Nonnull Config config) { Long expiry = Long.valueOf(BlockStorage.getLocationInfo(block.getLocation(), "EXPIRY")); expiryMap.put(block.getLocation(), expiry); Candle candle = (Candle) block.getBlockData(); @@ -57,7 +57,7 @@ protected void onFirstTick(@NotNull Block block, @NotNull SlimefunItem slimefunI } @Override - protected void onTick(@NotNull Block block, @NotNull SlimefunItem slimefunItem, @NotNull Config config) { + protected void onTick(@Nonnull Block block, @Nonnull SlimefunItem slimefunItem, @Nonnull Config config) { Location location = block.getLocation(); BoundingBox boundingBox = new BoundingBox( location.getX() - radius, @@ -82,14 +82,14 @@ protected void onTick(@NotNull Block block, @NotNull SlimefunItem slimefunItem, } @Override - protected void onPlace(@NotNull BlockPlaceEvent event) { + protected void onPlace(@Nonnull BlockPlaceEvent event) { Long expiry = System.currentTimeMillis() + (duration * 1000L); BlockStorage.addBlockInfo(event.getBlock(), "EXPIRY", String.valueOf(expiry)); expiryMap.put(event.getBlock().getLocation(), expiry); } @Override - protected void onBreak(@NotNull BlockBreakEvent blockBreakEvent, @NotNull ItemStack itemStack, @NotNull List list) { + protected void onBreak(@Nonnull BlockBreakEvent blockBreakEvent, @Nonnull ItemStack itemStack, @Nonnull List list) { BlockStorage.clearBlockInfo(blockBreakEvent.getBlock()); } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobFan.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobFan.java index d903fc76..6c742777 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobFan.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobFan.java @@ -24,8 +24,8 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.util.RayTraceResult; import org.bukkit.util.Vector; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; import java.util.List; import java.util.UUID; @@ -55,7 +55,7 @@ public MobFan(ItemGroup category, SlimefunItemStack item, RecipeType recipeType, this.addItemHandler( new BlockPlaceHandler(false) { @Override - public void onPlayerPlace(@NotNull BlockPlaceEvent event) { + public void onPlayerPlace(@Nonnull BlockPlaceEvent event) { BlockStorage.addBlockInfo(event.getBlock(), ID_UUID, event.getPlayer().getUniqueId().toString()); BlockStorage.addBlockInfo(event.getBlock(), ID_DIRECTION, BlockFace.SELF.name()); } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobLamp.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobLamp.java index 7dfbdd69..8359cf7c 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobLamp.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobLamp.java @@ -16,8 +16,8 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; import java.util.List; import java.util.UUID; @@ -37,7 +37,7 @@ public MobLamp(ItemGroup category, SlimefunItemStack item, RecipeType recipeType this.addItemHandler( new BlockPlaceHandler(false) { @Override - public void onPlayerPlace(@NotNull BlockPlaceEvent event) { + public void onPlayerPlace(@Nonnull BlockPlaceEvent event) { BlockStorage.addBlockInfo(event.getBlock(), "CH_UUID", event.getPlayer().getUniqueId().toString()); } }, diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobMat.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobMat.java index d7e7f747..16687141 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobMat.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/MobMat.java @@ -20,7 +20,6 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; @@ -81,14 +80,14 @@ protected void onTick(@Nonnull Block block, @Nonnull SlimefunItem slimefunItem, } @Override - protected void onPlace(@NotNull BlockPlaceEvent event) { + protected void onPlace(@Nonnull BlockPlaceEvent event) { final UUID uuid = event.getPlayer().getUniqueId(); BlockStorage.addBlockInfo(event.getBlock(), "CH_UUID", uuid.toString()); blockOwnerMap.put(event.getBlock().getLocation(), uuid); } @Override - protected void onBreak(@NotNull BlockBreakEvent blockBreakEvent, @NotNull ItemStack itemStack, @NotNull List list) { + protected void onBreak(@Nonnull BlockBreakEvent blockBreakEvent, @Nonnull ItemStack itemStack, @Nonnull List list) { BlockStorage.clearBlockInfo(blockBreakEvent.getBlock()); } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/TrophyDisplay.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/TrophyDisplay.java new file mode 100644 index 00000000..a53440ec --- /dev/null +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/gadgets/TrophyDisplay.java @@ -0,0 +1,170 @@ +package io.github.sefiraat.crystamaehistoria.slimefun.gadgets; + +import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; +import io.github.sefiraat.crystamaehistoria.player.BlockRank; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; +import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.TickingBlockNoGui; +import io.github.sefiraat.crystamaehistoria.stories.BlockDefinition; +import io.github.sefiraat.crystamaehistoria.utils.GeneralUtils; +import io.github.sefiraat.crystamaehistoria.utils.ParticleUtils; +import io.github.sefiraat.crystamaehistoria.utils.TextUtils; +import io.github.thebusybiscuit.slimefun4.api.events.PlayerRightClickEvent; +import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; +import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; +import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; +import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; +import io.github.thebusybiscuit.slimefun4.core.handlers.BlockUseHandler; +import lombok.Getter; +import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; +import me.mrCookieSlime.Slimefun.api.BlockStorage; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Particle; +import org.bukkit.block.Block; +import org.bukkit.entity.Item; +import org.bukkit.entity.Player; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.ParametersAreNonnullByDefault; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.ThreadLocalRandom; + +public class TrophyDisplay extends TickingBlockNoGui { + + private static final String PDC_ITEM = "itemUUID"; + + @Getter + private final Map itemMap = new HashMap<>(); + @Getter + private final Map currentTickMap = new HashMap<>(); + + @ParametersAreNonnullByDefault + public TrophyDisplay(ItemGroup category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { + super(category, item, recipeType, recipe); + this.addItemHandler((BlockUseHandler) this::onRightClick); + } + + @Override + protected void onFirstTick(@NotNull Block block, @NotNull SlimefunItem slimefunItem, @NotNull Config config) { + final Location blockLocation = block.getLocation(); + String itemUuidString = BlockStorage.getLocationInfo(block.getLocation(), PDC_ITEM); + if (itemUuidString != null) { + itemMap.put(block.getLocation(), UUID.fromString(itemUuidString)); + } + // Set a random current tick + TrophyDisplay.this.currentTickMap.put( + blockLocation, + ThreadLocalRandom.current().nextInt(3, 7) + ); + } + + @Override + protected void onTick(@NotNull Block block, @NotNull SlimefunItem slimefunItem, @NotNull Config config) { + final Location blockLocation = block.getLocation(); + final UUID currentItemUuid = itemMap.get(blockLocation); + + // If an item isn't in place, then don't do anything + if (currentItemUuid != null) { + int currentTick = currentTickMap.get(blockLocation); + + // Only tick periodically + if (currentTick <= 0 && TrophyDisplay.this.itemMap.containsKey(blockLocation)) { + final Item currentItem = (Item) Bukkit.getEntity(currentItemUuid); + final Location itemLocation = currentItem.getLocation(); + final Location desiredLocation = blockLocation.clone().add(0.5, 1.5, 0.5); + + // Check if item has moved off the platform + if (itemLocation.distance(desiredLocation) > 0.3) { + final ItemStack itemStack = currentItem.getItemStack(); + blockLocation.getWorld().dropItemNaturally(blockLocation, itemStack); + BlockStorage.addBlockInfo(block, PDC_ITEM, null); + itemMap.remove(blockLocation); + currentItem.remove(); + } + + ParticleUtils.displayParticleEffect(itemLocation.add(0, 0.2, 0), Particle.WAX_ON, 0.2, 3); + TrophyDisplay.this.currentTickMap.put(blockLocation, ThreadLocalRandom.current().nextInt(4, 8)); + } else { + currentTick--; + TrophyDisplay.this.currentTickMap.put(blockLocation, currentTick); + } + } + } + + @Override + protected void onPlace(@NotNull BlockPlaceEvent event) { + TrophyDisplay.this.currentTickMap.put( + event.getBlock().getLocation(), + ThreadLocalRandom.current().nextInt(3, 7) + ); + } + + @Override + protected void onBreak(@NotNull BlockBreakEvent blockBreakEvent, @NotNull ItemStack itemStack, @NotNull List list) { + Location location = blockBreakEvent.getBlock().getLocation(); + final UUID currentItemUuid = itemMap.get(location); + if (currentItemUuid != null) { + final Item currentItem = (Item) Bukkit.getEntity(currentItemUuid); + final ItemStack displayStack = currentItem.getItemStack(); + location.getWorld().dropItemNaturally(location, displayStack); + BlockStorage.clearBlockInfo(location); + currentItem.remove(); + } + } + + private void onRightClick(PlayerRightClickEvent e) { + final Player player = e.getPlayer(); + + Optional optionalBlock = e.getClickedBlock(); + + if (!optionalBlock.isPresent()) { + return; + } + + e.cancel(); + + final Block blockClicked = optionalBlock.get(); + final UUID currentItemUuid = itemMap.get(blockClicked.getLocation()); + + // Stand already has an item, we try to remove this then return; + if (currentItemUuid != null) { + final Item currentItem = (Item) Bukkit.getEntity(currentItemUuid); + final ItemStack itemStack = currentItem.getItemStack(); + final HashMap rejected = player.getInventory().addItem(itemStack); + BlockStorage.addBlockInfo(blockClicked, PDC_ITEM, null); + itemMap.remove(blockClicked.getLocation()); + if (rejected.isEmpty()) { + currentItem.remove(); + } + return; + } + + final ItemStack itemStack = e.getItem(); + final Material material = itemStack.getType(); + final BlockDefinition definition = CrystamaeHistoria.getStoriesManager().getBlockDefinitionMap().get(material); + + if (definition != null && material != Material.AIR) { + final BlockRank blockRank = PlayerStatistics.getBlockRank( + player.getUniqueId(), + definition + ); + if (blockRank == BlockRank.SME) { + final Location location = blockClicked.getLocation().add(0.5, 1.5, 0.5); + final String name = ChatColor.of("#FFD100") + TextUtils.toTitleCase(material.toString()); + Item item = GeneralUtils.spawnDisplayItem(itemStack.asQuantity(1), location, name); + itemStack.setAmount(itemStack.getAmount() - 1); + BlockStorage.addBlockInfo(blockClicked, PDC_ITEM, item.getUniqueId().toString()); + itemMap.put(blockClicked.getLocation(), item.getUniqueId()); + } + } + } +} diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/DummyGuideOnly.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/DummyGuideOnly.java new file mode 100644 index 00000000..d471bb4c --- /dev/null +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/DummyGuideOnly.java @@ -0,0 +1,25 @@ +package io.github.sefiraat.crystamaehistoria.slimefun.itemgroups; + +import io.github.sefiraat.crystamaehistoria.utils.Keys; +import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; +import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; +import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; +import lombok.experimental.UtilityClass; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +@UtilityClass +public class DummyGuideOnly { + + public static final SlimefunItemStack STACK = ThemeType.themedSlimefunItemStack( + "CRY_GUIDE_DUMMY", + new ItemStack(Material.BOOK), + ThemeType.MECHANISM, + "Guide", + "This is a guide only.", + "Some crafts in Crystamae are very", + "different compared to other addons", + "so these are here just for clarification." + ); + public static final RecipeType TYPE = new RecipeType(Keys.GUIDE_ONLY, STACK); +} diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/MainFlexGroup.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/MainFlexGroup.java new file mode 100644 index 00000000..299da602 --- /dev/null +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/MainFlexGroup.java @@ -0,0 +1,132 @@ +package io.github.sefiraat.crystamaehistoria.slimefun.itemgroups; + +import io.github.sefiraat.crystamaehistoria.slimefun.ItemGroups; +import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; +import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; +import io.github.thebusybiscuit.slimefun4.api.items.groups.FlexItemGroup; +import io.github.thebusybiscuit.slimefun4.api.player.PlayerProfile; +import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuide; +import io.github.thebusybiscuit.slimefun4.core.guide.SlimefunGuideMode; +import io.github.thebusybiscuit.slimefun4.implementation.Slimefun; +import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; +import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; +import org.bukkit.NamespacedKey; +import org.bukkit.entity.Item; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import javax.annotation.Nonnull; + +/** + * @noinspection deprecation + */ +public class MainFlexGroup extends FlexItemGroup { + + private static final int PAGE_SIZE = 36; + + private static final int GUIDE_BACK = 1; + + private static final int MECHANISMS = 9; + private static final int CRYSTALS = 10; + private static final int TOOLS = 11; + private static final int GADGETS = 12; + private static final int MATERIALS = 13; + private static final int GUIDE = 14; + private static final int STORY = 15; + private static final int SPELL = 16; + + private static final int[] HEADER = new int[]{ + 0, 1, 2, 3, 4, 5, 6, 7, 8 + }; + private static final int[] FOOTER = new int[]{ + 45, 46, 47, 48, 49, 50, 51, 52, 53 + }; + + public MainFlexGroup(NamespacedKey key, ItemStack item) { + super(key, item); + } + + @Override + public boolean isVisible(@Nonnull Player player, @Nonnull PlayerProfile playerProfile, @Nonnull SlimefunGuideMode guideMode) { + return true; + } + + @Override + public void open(Player p, PlayerProfile profile, SlimefunGuideMode mode) { + final ChestMenu chestMenu = new ChestMenu(ThemeType.MAIN.getColor() + "Crystamae Magic Compendium"); + + for (int slot : HEADER) { + chestMenu.addItem(slot, ChestMenuUtils.getBackground(), (player1, i1, itemStack, clickAction) -> false); + } + + for (int slot : FOOTER) { + chestMenu.addItem(slot, ChestMenuUtils.getBackground(), (player1, i1, itemStack, clickAction) -> false); + } + + chestMenu.setEmptySlotsClickable(false); + setupPage(p, profile, mode, chestMenu); + chestMenu.open(p); + } + + + + private void setupPage(@Nonnull Player player, @Nonnull PlayerProfile profile, @Nonnull SlimefunGuideMode mode, @Nonnull ChestMenu menu) { + for (int slot : FOOTER) { + menu.replaceExistingItem(slot, ChestMenuUtils.getBackground()); + menu.addMenuClickHandler(slot, ((player1, i, itemStack, clickAction) -> false)); + } + + // Back + menu.replaceExistingItem(GUIDE_BACK, ChestMenuUtils.getBackButton(player, Slimefun.getLocalization().getMessage("guide.back.guide"))); + menu.addMenuClickHandler(GUIDE_BACK, (player1, slot, itemStack, clickAction) -> { + SlimefunGuide.openMainMenu(profile, mode, 1); + return false; + }); + + // Mechanisms + menu.replaceExistingItem(MECHANISMS, ItemGroups.MECHANISMS.getItem(player)); + menu.addMenuClickHandler(MECHANISMS, (player1, i1, itemStack1, clickAction) -> + openPage(profile, ItemGroups.MECHANISMS, mode, 1)); + + // Crystals + menu.replaceExistingItem(CRYSTALS, ItemGroups.CRYSTALS.getItem(player)); + menu.addMenuClickHandler(CRYSTALS, (player1, i1, itemStack1, clickAction) -> + openPage(profile, ItemGroups.CRYSTALS, mode, 1)); + + // Tools + menu.replaceExistingItem(TOOLS, ItemGroups.TOOLS.getItem(player)); + menu.addMenuClickHandler(TOOLS, (player1, i1, itemStack1, clickAction) -> + openPage(profile, ItemGroups.TOOLS, mode, 1)); + + // Gadgets + menu.replaceExistingItem(GADGETS, ItemGroups.GADGETS.getItem(player)); + menu.addMenuClickHandler(GADGETS, (player1, i1, itemStack1, clickAction) -> + openPage(profile, ItemGroups.GADGETS, mode, 1)); + + // Materials + menu.replaceExistingItem(MATERIALS, ItemGroups.MATERIALS.getItem(player)); + menu.addMenuClickHandler(MATERIALS, (player1, i1, itemStack1, clickAction) -> + openPage(profile, ItemGroups.MATERIALS, mode, 1)); + + // Story + menu.replaceExistingItem(STORY, ItemGroups.STORY_COLLECTION.getItem(player)); + menu.addMenuClickHandler(STORY, (player1, i1, itemStack1, clickAction) -> + openPage(profile, ItemGroups.STORY_COLLECTION, mode, 1)); + + // Spell + menu.replaceExistingItem(SPELL, ItemGroups.SPELL_COLLECTION.getItem(player)); + menu.addMenuClickHandler(SPELL, (player1, i1, itemStack1, clickAction) -> + openPage(profile, ItemGroups.SPELL_COLLECTION, mode, 1)); + + // Guide + menu.replaceExistingItem(GUIDE, ItemGroups.GUIDE.getItem(player)); + menu.addMenuClickHandler(GUIDE, (player1, i1, itemStack1, clickAction) -> + openPage(profile, ItemGroups.GUIDE, mode, 1)); + } + + public boolean openPage(PlayerProfile profile, ItemGroup itemGroup, SlimefunGuideMode mode, int page) { + profile.getGuideHistory().add(this, 1); + SlimefunGuide.openItemGroup(profile, itemGroup, mode, page); + return false; + } +} diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/SpellCollectionFlexGroup.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/SpellCollectionFlexGroup.java index c49ce6ff..9a1e14a8 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/SpellCollectionFlexGroup.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/SpellCollectionFlexGroup.java @@ -3,10 +3,11 @@ import io.github.sefiraat.crystamaehistoria.magic.SpellType; import io.github.sefiraat.crystamaehistoria.magic.spells.core.Spell; import io.github.sefiraat.crystamaehistoria.magic.spells.core.SpellCore; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; +import io.github.sefiraat.crystamaehistoria.player.SpellRank; import io.github.sefiraat.crystamaehistoria.slimefun.ItemGroups; import io.github.sefiraat.crystamaehistoria.slimefun.Materials; import io.github.sefiraat.crystamaehistoria.stories.definition.StoryType; -import io.github.sefiraat.crystamaehistoria.utils.PlayerStatUtils; import io.github.sefiraat.crystamaehistoria.utils.theme.GuiElements; import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; import io.github.thebusybiscuit.slimefun4.api.items.groups.FlexItemGroup; @@ -39,6 +40,7 @@ public class SpellCollectionFlexGroup extends FlexItemGroup { private static final int PAGE_SIZE = 36; private static final int GUIDE_BACK = 1; + private static final int GUIDE_STATS = 7; private static final int PAGE_PREVIOUS = 46; private static final int PAGE_NEXT = 52; @@ -89,7 +91,7 @@ public void open(Player p, PlayerProfile profile, SlimefunGuideMode mode) { chestMenu.open(p); } - private void setupPage(@Nonnull Player p, @Nonnull PlayerProfile profile, @Nonnull SlimefunGuideMode mode, @Nonnull ChestMenu menu, int page) { + private void setupPage(@Nonnull Player player, @Nonnull PlayerProfile profile, @Nonnull SlimefunGuideMode mode, @Nonnull ChestMenu menu, int page) { final List spellTypes = Arrays.asList(SpellType.getEnabledSpells()); final int numberOfBlocks = spellTypes.size(); final int totalPages = (int) Math.ceil(numberOfBlocks / (double) PAGE_SIZE); @@ -100,21 +102,25 @@ private void setupPage(@Nonnull Player p, @Nonnull PlayerProfile profile, @Nonnu final List spellTypeSubList = spellTypes.subList(start, end); - reapplyFooter(p, profile, mode, menu, page, totalPages); + reapplyFooter(player, profile, mode, menu, page, totalPages); // Back - menu.replaceExistingItem(GUIDE_BACK, ChestMenuUtils.getBackButton(p, Slimefun.getLocalization().getMessage("guide.back.guide"))); + menu.replaceExistingItem(GUIDE_BACK, ChestMenuUtils.getBackButton(player, Slimefun.getLocalization().getMessage("guide.back.guide"))); menu.addMenuClickHandler(GUIDE_BACK, (player1, slot, itemStack, clickAction) -> { SlimefunGuide.openItemGroup(profile, ItemGroups.MAIN, mode, 1); return false; }); + // Stats + menu.replaceExistingItem(GUIDE_STATS, getStatsStack(player)); + menu.addMenuClickHandler(GUIDE_STATS, (player1, slot, itemStack, clickAction) -> false); + for (int i = 0; i < 36; i++) { final int slot = i + 9; if (i + 1 <= spellTypeSubList.size()) { final SpellType spellType = spellTypeSubList.get(i); - final boolean researched = PlayerStatUtils.hasUnlockedSpell(p, spellType); + final boolean researched = PlayerStatistics.hasUnlockedSpell(player, spellType); if (mode == SlimefunGuideMode.CHEAT_MODE || researched) { menu.replaceExistingItem(slot, new ItemStack(spellType.getSpell().getThemedStack())); @@ -480,4 +486,20 @@ private ItemStack getEffectsStack(Spell spell) { lore ); } + + private ItemStack getStatsStack(Player player) { + final ChatColor color = ThemeType.CLICK_INFO.getColor(); + final ChatColor passive = ThemeType.PASSIVE.getColor(); + final List lore = new ArrayList<>(); + final SpellRank spellRank = PlayerStatistics.getSpellRank(player.getUniqueId()); + + lore.add(MessageFormat.format("{0}Spells Unlocked: {1}{2}", color, passive, PlayerStatistics.getSpellsUnlocked(player.getUniqueId()))); + lore.add(MessageFormat.format("{0}Rank: {1}{2}", color, spellRank.getTheme().getColor(), spellRank.getTheme().getLoreLine())); + + return new CustomItemStack( + Material.TARGET, + ThemeType.MAIN.getColor() + "Spell Statistics", + lore + ); + } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/StoryCollectionFlexGroup.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/StoryCollectionFlexGroup.java index 6eb18a3f..5718079a 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/StoryCollectionFlexGroup.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/itemgroups/StoryCollectionFlexGroup.java @@ -1,11 +1,13 @@ package io.github.sefiraat.crystamaehistoria.slimefun.itemgroups; import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; +import io.github.sefiraat.crystamaehistoria.player.BlockRank; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; +import io.github.sefiraat.crystamaehistoria.player.StoryRank; import io.github.sefiraat.crystamaehistoria.slimefun.ItemGroups; import io.github.sefiraat.crystamaehistoria.slimefun.Materials; import io.github.sefiraat.crystamaehistoria.stories.BlockDefinition; import io.github.sefiraat.crystamaehistoria.stories.definition.StoryType; -import io.github.sefiraat.crystamaehistoria.utils.PlayerStatUtils; import io.github.sefiraat.crystamaehistoria.utils.theme.GuiElements; import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; import io.github.thebusybiscuit.slimefun4.api.items.groups.FlexItemGroup; @@ -16,17 +18,21 @@ import io.github.thebusybiscuit.slimefun4.libraries.dough.items.CustomItemStack; import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils; import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu; +import net.md_5.bungee.api.ChatColor; import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import javax.annotation.Nonnull; +import javax.annotation.ParametersAreNonnullByDefault; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Map; +import java.util.UUID; import java.util.stream.Collectors; /** @@ -37,6 +43,7 @@ public class StoryCollectionFlexGroup extends FlexItemGroup { private static final int PAGE_SIZE = 36; private static final int GUIDE_BACK = 1; + private static final int GUIDE_STATS = 7; private static final int PAGE_PREVIOUS = 46; private static final int PAGE_NEXT = 52; @@ -50,6 +57,7 @@ public class StoryCollectionFlexGroup extends FlexItemGroup { private static final int CHRONICLING_SLOT = 20; private static final int TIER_SLOT = 22; + private static final int STATS_SLOT = 24; private static final int UNIQUE_SLOT = 40; private static final int[] DIVIDER = new int[]{ @@ -85,7 +93,7 @@ public void open(Player p, PlayerProfile profile, SlimefunGuideMode mode) { chestMenu.open(p); } - private void setupPage(@Nonnull Player p, @Nonnull PlayerProfile profile, @Nonnull SlimefunGuideMode mode, @Nonnull ChestMenu menu, int page) { + private void setupPage(@Nonnull Player player, @Nonnull PlayerProfile profile, @Nonnull SlimefunGuideMode mode, @Nonnull ChestMenu menu, int page) { final List blockDefinitions = new ArrayList<>(CrystamaeHistoria.getStoriesManager().getBlockDefinitionMap().values()); final int numberOfBlocks = CrystamaeHistoria.getStoriesManager().getBlockDefinitionMap().size(); final int totalPages = (int) Math.ceil(numberOfBlocks / (double) PAGE_SIZE); @@ -96,21 +104,25 @@ private void setupPage(@Nonnull Player p, @Nonnull PlayerProfile profile, @Nonnu final List blockDefinitionSubList = blockDefinitions.subList(start, end); - reapplyFooter(p, profile, mode, menu, page, totalPages); + reapplyFooter(player, profile, mode, menu, page, totalPages); // Back - menu.replaceExistingItem(GUIDE_BACK, ChestMenuUtils.getBackButton(p, Slimefun.getLocalization().getMessage("guide.back.guide"))); + menu.replaceExistingItem(GUIDE_BACK, ChestMenuUtils.getBackButton(player, Slimefun.getLocalization().getMessage("guide.back.guide"))); menu.addMenuClickHandler(GUIDE_BACK, (player1, slot, itemStack, clickAction) -> { SlimefunGuide.openItemGroup(profile, ItemGroups.MAIN, mode, 1); return false; }); + // Stats + menu.replaceExistingItem(GUIDE_STATS, getPlayerInfoStack(player)); + menu.addMenuClickHandler(GUIDE_STATS, (player1, slot, itemStack, clickAction) -> false); + for (int i = 0; i < 36; i++) { final int slot = i + 9; if (i + 1 <= blockDefinitionSubList.size()) { final BlockDefinition definition = blockDefinitionSubList.get(i); - final boolean researched = PlayerStatUtils.hasUnlockedUniqueStory(p, definition); + final boolean researched = PlayerStatistics.hasUnlockedUniqueStory(player, definition); if (mode == SlimefunGuideMode.CHEAT_MODE || researched) { menu.replaceExistingItem(slot, GuiElements.getUniqueStoryIcon(definition.getMaterial())); @@ -152,6 +164,9 @@ private void displayDefinition(@Nonnull Player p, @Nonnull PlayerProfile profile menu.replaceExistingItem(TIER_SLOT, getTierItemStack(definition)); menu.addMenuClickHandler(TIER_SLOT, (player, i, itemStack, clickAction) -> false); + menu.replaceExistingItem(STATS_SLOT, getStatsStack(p.getUniqueId(), definition)); + menu.addMenuClickHandler(STATS_SLOT, (player, i, itemStack, clickAction) -> false); + menu.replaceExistingItem(UNIQUE_SLOT, getUniqueStoryItemStack(definition)); menu.addMenuClickHandler(UNIQUE_SLOT, (player, i, itemStack, clickAction) -> false); @@ -243,4 +258,45 @@ private ItemStack getTierItemStack(@Nonnull BlockDefinition definition) { throw new IllegalStateException("Inapplicable tier provided: " + definition.getTier().tier); } } + + @ParametersAreNonnullByDefault + private ItemStack getStatsStack(UUID player, BlockDefinition definition) { + final ChatColor color = ThemeType.CLICK_INFO.getColor(); + final ChatColor passive = ThemeType.PASSIVE.getColor(); + final List lore = new ArrayList<>(); + final BlockRank blockRank = PlayerStatistics.getBlockRank(player, definition); + + final int timesChronicled = PlayerStatistics.getChronicle(player, definition); + final int timesRealised = PlayerStatistics.getRealisation(player, definition); + + final String chronicleCap = timesChronicled > 100 ? "(Capped at 100)" : ""; + final String realisationCap = timesRealised > 100 ? "(Capped at 100)" : ""; + + lore.add(MessageFormat.format("{0}Rank: {1}{2}", color, blockRank.getTheme().getColor(), blockRank.getTheme().getLoreLine())); + lore.add(""); + lore.add(MessageFormat.format("{0}Times Chronicled: {1}{2} {3}", color, passive, timesChronicled, chronicleCap)); + lore.add(MessageFormat.format("{0}Times Realised: {1}{2} {3}", color, passive, timesRealised, realisationCap)); + + return new CustomItemStack( + Material.TARGET, + ThemeType.MAIN.getColor() + "Item Statistics", + lore + ); + } + + private ItemStack getPlayerInfoStack(Player player) { + final ChatColor color = ThemeType.CLICK_INFO.getColor(); + final ChatColor passive = ThemeType.PASSIVE.getColor(); + final List lore = new ArrayList<>(); + final StoryRank storyRank = PlayerStatistics.getStoryRank(player.getUniqueId()); + + lore.add(MessageFormat.format("{0}Stories Chronicled: {1}{2}", color, passive, PlayerStatistics.getStoriesUnlocked(player.getUniqueId()))); + lore.add(MessageFormat.format("{0}Rank: {1}{2}", color, storyRank.getTheme().getColor(), storyRank.getTheme().getLoreLine())); + + return new CustomItemStack( + Material.TARGET, + ThemeType.MAIN.getColor() + "Story Statistics", + lore + ); + } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/TickingBlockNoGui.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/TickingBlockNoGui.java index 4ed8afc7..7f21b6bc 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/TickingBlockNoGui.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/TickingBlockNoGui.java @@ -9,19 +9,21 @@ import io.github.thebusybiscuit.slimefun4.core.handlers.BlockPlaceHandler; import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config; import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker; +import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.HashMap; import java.util.List; +import java.util.Map; public abstract class TickingBlockNoGui extends SlimefunItem { - protected boolean firstTick = true; + protected final Map firstTickMap = new HashMap<>(); protected TickingBlockNoGui(ItemGroup itemGroup, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(itemGroup, item, recipeType, recipe); @@ -50,16 +52,16 @@ public boolean isSynchronized() { @Override public void tick(Block block, SlimefunItem slimefunItem, Config config) { - if (firstTick) { + if (!firstTickMap.containsKey(block.getLocation())) { onFirstTick(block, slimefunItem, config); - firstTick = false; + firstTickMap.put(block.getLocation(), true); } onTick(block, slimefunItem, config); } }, new BlockPlaceHandler(false) { @Override - public void onPlayerPlace(@NotNull BlockPlaceEvent event) { + public void onPlayerPlace(@Nonnull BlockPlaceEvent event) { onPlace(event); } }, diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/chroniclerpanel/ChroniclerPanel.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/chroniclerpanel/ChroniclerPanel.java index 1acac6ba..c1465902 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/chroniclerpanel/ChroniclerPanel.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/chroniclerpanel/ChroniclerPanel.java @@ -14,8 +14,8 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; import java.util.HashMap; import java.util.Map; @@ -39,7 +39,7 @@ public ChroniclerPanel(ItemGroup itemGroup, SlimefunItemStack item, RecipeType r this.tier = tier; this.addItemHandler(new BlockPlaceHandler(false) { @Override - public void onPlayerPlace(@NotNull BlockPlaceEvent event) { + public void onPlayerPlace(@Nonnull BlockPlaceEvent event) { final Location location = event.getBlockPlaced().getLocation(); final ChroniclerPanelCache cache = new ChroniclerPanelCache(BlockStorage.getInventory(location), tier); cache.setActivePlayer(event.getPlayer()); diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/chroniclerpanel/ChroniclerPanelCache.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/chroniclerpanel/ChroniclerPanelCache.java index 5a57085c..2bcfa39f 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/chroniclerpanel/ChroniclerPanelCache.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/chroniclerpanel/ChroniclerPanelCache.java @@ -1,6 +1,7 @@ package io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.chroniclerpanel; import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; import io.github.sefiraat.crystamaehistoria.runnables.spells.FloatingHeadAnimation; import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.AbstractCache; import io.github.sefiraat.crystamaehistoria.stories.BlockDefinition; @@ -8,7 +9,6 @@ import io.github.sefiraat.crystamaehistoria.utils.ArmourStandUtils; import io.github.sefiraat.crystamaehistoria.utils.GeneralUtils; import io.github.sefiraat.crystamaehistoria.utils.Keys; -import io.github.sefiraat.crystamaehistoria.utils.PlayerStatUtils; import io.github.sefiraat.crystamaehistoria.utils.StoryUtils; import lombok.Getter; import me.mrCookieSlime.Slimefun.api.BlockStorage; @@ -174,10 +174,10 @@ private void processStack(ItemStack i) { // That was the last story, unlock unique and set research StoryUtils.requestUniqueStory(i); if (activePlayer != null) { - if (!PlayerStatUtils.hasUnlockedUniqueStory(activePlayer, blockDefinition)) { - PlayerStatUtils.unlockUniqueStory(activePlayer, blockDefinition); + if (!PlayerStatistics.hasUnlockedUniqueStory(activePlayer, blockDefinition)) { + PlayerStatistics.unlockUniqueStory(activePlayer, blockDefinition); } - PlayerStatUtils.addChronicle(activePlayer, blockDefinition); + PlayerStatistics.addChronicle(activePlayer, blockDefinition); } } StoriesManager.rebuildStoriedStack(i); diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/DummyLiquefactionBasinCrafting.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/DummyLiquefactionBasinCrafting.java index 56d5e234..5185bbf9 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/DummyLiquefactionBasinCrafting.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/DummyLiquefactionBasinCrafting.java @@ -4,9 +4,11 @@ import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; +import lombok.experimental.UtilityClass; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +@UtilityClass public class DummyLiquefactionBasinCrafting { public static final SlimefunItemStack STACK = ThemeType.themedSlimefunItemStack( @@ -18,9 +20,5 @@ public class DummyLiquefactionBasinCrafting { "into a filled Liquefaction Basin containing", "the correct Crystamae." ); - public static final RecipeType TYPE = new RecipeType(Keys.LIQUEFACTION_DUMMY_CRYSTAL, STACK); - - private DummyLiquefactionBasinCrafting() { - throw new IllegalStateException("Utility class"); - } + public static final RecipeType TYPE = new RecipeType(Keys.LIQUEFACTION_DUMMY_CRAFTING, STACK); } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/DummyLiquefactionBasinSpell.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/DummyLiquefactionBasinSpell.java index 8857022e..23765587 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/DummyLiquefactionBasinSpell.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/DummyLiquefactionBasinSpell.java @@ -4,9 +4,11 @@ import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; +import lombok.experimental.UtilityClass; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +@UtilityClass public class DummyLiquefactionBasinSpell { public static final SlimefunItemStack STACK = ThemeType.themedSlimefunItemStack( @@ -18,9 +20,5 @@ public class DummyLiquefactionBasinSpell { "filled Liquefaction Basin containing", "the correct Crystamae." ); - public static final RecipeType TYPE = new RecipeType(Keys.LIQUEFACTION_DUMMY_CRYSTAL, STACK); - - private DummyLiquefactionBasinSpell() { - throw new IllegalStateException("Utility class"); - } + public static final RecipeType TYPE = new RecipeType(Keys.LIQUEFACTION_DUMMY_SPELL, STACK); } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/LiquefactionBasin.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/LiquefactionBasin.java index 1173b42b..fb1345e3 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/LiquefactionBasin.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/LiquefactionBasin.java @@ -21,8 +21,8 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; import java.util.HashMap; import java.util.Map; @@ -51,7 +51,7 @@ public LiquefactionBasin(ItemGroup itemGroup, this.color = color; this.addItemHandler(new BlockPlaceHandler(false) { @Override - public void onPlayerPlace(@NotNull BlockPlaceEvent event) { + public void onPlayerPlace(@Nonnull BlockPlaceEvent event) { final Location location = event.getBlockPlaced().getLocation(); final LiquefactionBasinCache cache = new LiquefactionBasinCache(BlockStorage.getInventory(location), maxVolume); cache.setActivePlayer(event.getPlayer()); @@ -67,7 +67,7 @@ protected void tick(Block block, BlockMenu blockMenu) { if (cache != null) { cache.consumeItems(); Particle.DustOptions dustOptions = new Particle.DustOptions(color, 1); - ParticleUtils.displayParticleEffect(block.getLocation(), 1, 4, dustOptions); + ParticleUtils.displayParticleEffect(block.getLocation().add(0.5, 0.5, 0.5), 1, 4, dustOptions); } if (block.getType() != Material.CAULDRON) { block.setType(Material.CAULDRON); @@ -108,7 +108,6 @@ protected void onBreak(BlockBreakEvent event, BlockMenu blockMenu) { blockMenu.dropItems(location, INPUT_SLOT); if (punish) { blockMenu.getLocation().getWorld().createExplosion( - event.getPlayer(), event.getBlock().getLocation(), 2, true, diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/LiquefactionBasinCache.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/LiquefactionBasinCache.java index a2a765b5..6c6d13a2 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/LiquefactionBasinCache.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/liquefactionbasin/LiquefactionBasinCache.java @@ -4,6 +4,7 @@ import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; import io.github.sefiraat.crystamaehistoria.magic.SpellType; import io.github.sefiraat.crystamaehistoria.magic.spells.core.InstancePlate; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; import io.github.sefiraat.crystamaehistoria.slimefun.materials.Crystal; import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.DisplayStandHolder; import io.github.sefiraat.crystamaehistoria.slimefun.tools.plates.BlankPlate; @@ -14,7 +15,6 @@ import io.github.sefiraat.crystamaehistoria.utils.ArmourStandUtils; import io.github.sefiraat.crystamaehistoria.utils.GeneralUtils; import io.github.sefiraat.crystamaehistoria.utils.Keys; -import io.github.sefiraat.crystamaehistoria.utils.PlayerStatUtils; import io.github.sefiraat.crystamaehistoria.utils.datatypes.DataTypeMethods; import io.github.sefiraat.crystamaehistoria.utils.datatypes.PersistentPlateDataType; import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; @@ -227,9 +227,9 @@ private void processBlankPlate(Item item, BlankPlate plate) { } summonCatalystParticles(); if (activePlayer != null - && !PlayerStatUtils.hasUnlockedSpell(activePlayer, spellType) + && !PlayerStatistics.hasUnlockedSpell(activePlayer, spellType) ) { - PlayerStatUtils.unlockSpell(activePlayer, spellType); + PlayerStatistics.unlockSpell(activePlayer, spellType); } } emptyBasin(); diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/DummyRealisationAltar.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/DummyRealisationAltar.java index f0173a37..88001684 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/DummyRealisationAltar.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/DummyRealisationAltar.java @@ -4,13 +4,15 @@ import io.github.sefiraat.crystamaehistoria.utils.theme.ThemeType; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; +import lombok.experimental.UtilityClass; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +@UtilityClass public class DummyRealisationAltar { public static final SlimefunItemStack STACK = ThemeType.themedSlimefunItemStack( - "CRY_CHRONICLER_PANEL_DUMMY_CRYSTAL", + "CRY_REALISATION_ALTAR_DUMMY_CRYSTAL", new ItemStack(Material.CHISELED_DEEPSLATE), ThemeType.MECHANISM, "Realisation Altar", @@ -20,10 +22,4 @@ public class DummyRealisationAltar { "produce crystals." ); public static final RecipeType TYPE = new RecipeType(Keys.REALISATION_DUMMY_CRYSTAL, STACK); - - private DummyRealisationAltar() { - throw new IllegalStateException("Utility class"); - } - - } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/RealisationAltar.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/RealisationAltar.java index 09b08a4e..76a6e4bd 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/RealisationAltar.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/RealisationAltar.java @@ -1,18 +1,23 @@ package io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.realisationaltar; import io.github.mooy1.infinitylib.machines.TickingMenuBlock; +import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.chroniclerpanel.ChroniclerPanelCache; import io.github.sefiraat.crystamaehistoria.utils.theme.GuiElements; import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; +import io.github.thebusybiscuit.slimefun4.core.handlers.BlockPlaceHandler; import lombok.Getter; +import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; +import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault; import java.util.HashMap; import java.util.Map; @@ -27,7 +32,7 @@ public class RealisationAltar extends TickingMenuBlock { }; protected static final int INPUT_SLOT = 22; - protected static final Map CACHE_MAP = new HashMap<>(); + protected static final Map CACHES = new HashMap<>(); @Getter private final int tier; @@ -36,16 +41,25 @@ public class RealisationAltar extends TickingMenuBlock { public RealisationAltar(ItemGroup itemGroup, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, int tier) { super(itemGroup, item, recipeType, recipe); this.tier = tier; + this.addItemHandler(new BlockPlaceHandler(false) { + @Override + public void onPlayerPlace(@Nonnull BlockPlaceEvent event) { + final Location location = event.getBlockPlaced().getLocation(); + final RealisationAltarCache cache = new RealisationAltarCache(BlockStorage.getInventory(location), tier); + cache.setActivePlayer(event.getPlayer()); + CACHES.put(location, cache); + } + }); } public static Map getCaches() { - return CACHE_MAP; + return CACHES; } @Override @ParametersAreNonnullByDefault protected void tick(Block block, BlockMenu blockMenu) { - RealisationAltarCache cache = RealisationAltar.CACHE_MAP.get(block.getLocation()); + RealisationAltarCache cache = RealisationAltar.CACHES.get(block.getLocation()); if (cache != null) { cache.process(); } @@ -73,7 +87,7 @@ protected int[] getOutputSlots() { protected void onBreak(BlockBreakEvent event, BlockMenu blockMenu) { super.onBreak(event, blockMenu); Location location = blockMenu.getLocation(); - RealisationAltarCache realisationAltarCache = CACHE_MAP.remove(location); + RealisationAltarCache realisationAltarCache = CACHES.remove(location); if (realisationAltarCache != null) { realisationAltarCache.kill(); } @@ -84,14 +98,15 @@ protected void onBreak(BlockBreakEvent event, BlockMenu blockMenu) { @ParametersAreNonnullByDefault protected void onNewInstance(BlockMenu blockMenu, Block b) { super.onNewInstance(blockMenu, b); - RealisationAltarCache cache = new RealisationAltarCache(blockMenu, this.tier); - cache.loadMap(); - CACHE_MAP.put(blockMenu.getLocation(), cache); + if (!CACHES.containsKey(blockMenu.getLocation())) { + RealisationAltarCache cache = new RealisationAltarCache(blockMenu, this.tier); + cache.loadMap(); + CACHES.put(blockMenu.getLocation(), cache); + } } @Override protected boolean synchronous() { return true; } - } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/RealisationAltarCache.java b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/RealisationAltarCache.java index 9e934a74..f848eebe 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/RealisationAltarCache.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/slimefun/mechanisms/realisationaltar/RealisationAltarCache.java @@ -1,6 +1,7 @@ package io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.realisationaltar; import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; +import io.github.sefiraat.crystamaehistoria.player.PlayerStatistics; import io.github.sefiraat.crystamaehistoria.slimefun.mechanisms.AbstractCache; import io.github.sefiraat.crystamaehistoria.stories.BlockDefinition; import io.github.sefiraat.crystamaehistoria.stories.StoriesManager; @@ -16,6 +17,7 @@ import io.github.thebusybiscuit.slimefun4.libraries.dough.collections.Pair; import io.github.thebusybiscuit.slimefun4.libraries.dough.data.persistent.PersistentDataAPI; import lombok.Getter; +import me.mrCookieSlime.Slimefun.api.BlockStorage; import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu; import org.bukkit.Chunk; import org.bukkit.Location; @@ -33,6 +35,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.UUID; import java.util.concurrent.ThreadLocalRandom; public class RealisationAltarCache extends AbstractCache { @@ -45,6 +48,11 @@ public class RealisationAltarCache extends AbstractCache { public RealisationAltarCache(BlockMenu blockMenu, int tier) { super(blockMenu); this.maxTier = tier + 1; + + final String activePlayerString = BlockStorage.getLocationInfo(blockMenu.getLocation(), Keys.BS_CP_ACTIVE_PLAYER); + if (activePlayerString != null) { + this.activePlayer = UUID.fromString(activePlayerString); + } } protected void process() { @@ -94,6 +102,7 @@ private boolean processItem(ItemStack itemStack) { potentialBlock.setType(Material.SMALL_AMETHYST_BUD); crystalStoryMap.put(new BlockPosition(potentialBlock.getLocation()), new Pair<>(story.getRarity(), story.getId())); if (StoryUtils.removeStory(itemStack, story) == 0) { + PlayerStatistics.addRealisation(activePlayer, definition); itemStack.setAmount(0); } else { StoriesManager.rebuildStoriedStack(itemStack); diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/stories/StoriesManager.java b/src/main/java/io/github/sefiraat/crystamaehistoria/stories/StoriesManager.java index af7f878b..0a8497fb 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/stories/StoriesManager.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/stories/StoriesManager.java @@ -10,6 +10,7 @@ import net.md_5.bungee.api.chat.TextComponent; import org.apache.commons.lang.Validate; import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; @@ -154,68 +155,84 @@ private void fillBlockTierMap() { ); } - /** - * @noinspection unchecked - */ private void fillStories() { FileConfiguration stories = CrystamaeHistoria.getConfigManager().getStories(); - List> common = (List>) stories.getList("common"); + ConfigurationSection common = stories.getConfigurationSection("COMMON"); Validate.notNull(common, "Common story configuration is not found, changed or deleted."); fillMap(storyMapCommon, common, StoryRarity.COMMON); - List> uncommon = (List>) stories.getList("uncommon"); + ConfigurationSection uncommon = stories.getConfigurationSection("UNCOMMON"); Validate.notNull(uncommon, "Uncommon story configuration is not found, changed or deleted."); fillMap(storyMapUncommon, uncommon, StoryRarity.UNCOMMON); - List> rare = (List>) stories.getList("rare"); + ConfigurationSection rare = stories.getConfigurationSection("RARE"); Validate.notNull(rare, "Rare story configuration is not found, changed or deleted."); fillMap(storyMapRare, rare, StoryRarity.RARE); - List> epic = (List>) stories.getList("epic"); + ConfigurationSection epic = stories.getConfigurationSection("EPIC"); Validate.notNull(epic, "Epic story configuration is not found, changed or deleted."); fillMap(storyMapEpic, epic, StoryRarity.EPIC); - List> mythical = (List>) stories.getList("mythical"); + ConfigurationSection mythical = stories.getConfigurationSection("MYTHICAL"); Validate.notNull(mythical, "Mythical story configuration is not found, changed or deleted."); fillMap(storyMapMythical, mythical, StoryRarity.MYTHICAL); } @ParametersAreNonnullByDefault - private void fillMap(Map map, List> list, StoryRarity rarity) { - for (Map storyDefinition : list) { - Story story = new Story(storyDefinition, rarity); + private void fillMap(Map map, ConfigurationSection section, StoryRarity rarity) { + for (String key : section.getKeys(false)) { + ConfigurationSection storySection = section.getConfigurationSection(key); + Validate.notNull(storySection, "Section is null, this doesn't make sense so don't worry."); + Story story = new Story(storySection, rarity); map.put(story.getId(), story); } } - /** - * @noinspection unchecked - */ private void fillBlockDefinitions() { final FileConfiguration blocks = CrystamaeHistoria.getConfigManager().getBlocks(); - final List> blockList = (List>) blocks.getList("blocks"); - for (Map map : blockList) { - final Map storyMap = (Map) map.get("story"); - final String name = (String) storyMap.get("name"); - if (name != null) { - final Story story = new Story(storyMap, StoryRarity.UNIQUE); - - storyMapUnique.put(story.getId(), story); - - final int tier = (int) map.get("tier"); - final Material material = Material.getMaterial((String) map.get("material")); - final List types = ((List) map.get("elements")).stream() - .map(StoryType::getByName) - .collect(Collectors.toList()); - final BlockDefinition blockDefinition = new BlockDefinition( - material, - blockTierMap.get(tier), - types, - story + for (String key : blocks.getKeys(false)) { + final ConfigurationSection wholeSection = blocks.getConfigurationSection(key); + Validate.notNull(wholeSection, "Section is null, this doesn't make sense so don't worry."); + final ConfigurationSection storySection = wholeSection.getConfigurationSection("story"); + + if (storySection == null) { + CrystamaeHistoria.getInstance().getLogger().info( + MessageFormat.format("Ignoring a block with a missing story section -> {0}", key) + ); + continue; + } + + final String name = storySection.getString("name"); + final Material material = Material.getMaterial(key); + + if (name == null) { + CrystamaeHistoria.getInstance().getLogger().info( + MessageFormat.format("Ignoring a story without a name -> {0}", key) ); - blockDefinitionMap.put(material, blockDefinition); + continue; } + + if (material == null) { + CrystamaeHistoria.getInstance().getLogger().info( + MessageFormat.format("Ignoring a story with an invalid material -> {0}", key) + ); + continue; + } + + final Story story = new Story(storySection, StoryRarity.UNIQUE); + final int tier = wholeSection.getInt("tier"); + final List types = wholeSection.getStringList("elements").stream() + .map(StoryType::getByName) + .collect(Collectors.toList()); + final BlockDefinition blockDefinition = new BlockDefinition( + material, + blockTierMap.get(tier), + types, + story + ); + blockDefinitionMap.put(material, blockDefinition); + storyMapUnique.put(story.getId(), story); } CrystamaeHistoria.getInstance().getLogger().info( MessageFormat.format("Loaded: {0} unique (block) stories.", blockDefinitionMap.size()) diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/stories/Story.java b/src/main/java/io/github/sefiraat/crystamaehistoria/stories/Story.java index 466a3874..a88f41bf 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/stories/Story.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/stories/Story.java @@ -10,10 +10,13 @@ import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.TextComponent; +import org.apache.commons.lang.Validate; +import org.bukkit.configuration.ConfigurationSection; import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.annotation.ParametersAreNonnullByDefault; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -38,21 +41,30 @@ public class Story { private BlockPosition blockPosition; /** - * @noinspection unchecked + * @noinspection ConstantConditions */ @ParametersAreNonnullByDefault - public Story(Map map, StoryRarity storyRarity) { + public Story(ConfigurationSection section, StoryRarity storyRarity) { + final List shards = section.getIntegerList("shards"); + + this.id = section.getString("name"); + + Validate.notNull( + shards, + MessageFormat.format("The following story does not have a shard profile: {0}", this.id) + ); + Validate.isTrue( + shards.size() == 9, + MessageFormat.format("The following story does not have a correctly setup shard profile: {0}", this.id) + ); + this.rarity = storyRarity; - this.id = (String) map.get("name"); - this.type = StoryType.getByName((String) map.get("type")); - this.storyShardProfile = new StoryShardProfile((List) map.get("shards")); - this.storyStrings = (List) map.get("lore"); - this.author = (String) map.get("author"); + this.type = StoryType.getByName(section.getString("type")); + this.storyShardProfile = new StoryShardProfile(section.getIntegerList("shards")); + this.storyStrings = section.getStringList("lore"); + this.author = section.getString("author"); } - /** - * @noinspection unchecked - */ @ParametersAreNonnullByDefault private Story(Story story) { this.rarity = story.rarity; diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/CrystaTag.java b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/CrystaTag.java index b477a854..16fe2f87 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/CrystaTag.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/CrystaTag.java @@ -10,8 +10,8 @@ import org.bukkit.Material; import org.bukkit.NamespacedKey; import org.bukkit.Tag; -import org.jetbrains.annotations.NotNull; +import javax.annotation.Nonnull; import java.io.InputStream; import java.io.InputStreamReader; import java.text.MessageFormat; @@ -65,17 +65,17 @@ public void setup() { } @Override - public boolean isTagged(@NotNull Material material) { + public boolean isTagged(@Nonnull Material material) { return materialList.contains(material); } - @NotNull + @Nonnull @Override public Set getValues() { return materialList; } - @NotNull + @Nonnull @Override public NamespacedKey getKey() { return this.namespacedKey; diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/GeneralUtils.java b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/GeneralUtils.java index b76009b5..ccd35a1e 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/GeneralUtils.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/GeneralUtils.java @@ -19,6 +19,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.metadata.FixedMetadataValue; import org.bukkit.util.Vector; @@ -231,7 +232,37 @@ public static Item spawnDisplayItem(ItemStack stack, Location location, String n item.setGravity(false); item.setVelocity(new Vector(0, 0, 0)); item.setCanPlayerPickup(false); - item.setPickupDelay(999999); + item.setPickupDelay(Integer.MAX_VALUE); return item; } + + /** + * Heal the entity by the provided amount + * + * @param itemStack The {@link LivingEntity} to heal + * @param durationInSeconds The amount to heal by + */ + @ParametersAreNonnullByDefault + public static void putOnCooldown(ItemStack itemStack, int durationInSeconds) { + ItemMeta itemMeta = itemStack.getItemMeta(); + if (itemMeta != null) { + PersistentDataAPI.setLong(itemMeta, Keys.PDC_ON_COOLDOWN, System.currentTimeMillis() + (durationInSeconds * 1000L)); + itemStack.setItemMeta(itemMeta); + } + } + + /** + * Heal the entity by the provided amount + * + * @param itemStack The {@link LivingEntity} to heal + */ + @ParametersAreNonnullByDefault + public static boolean isOnCooldown(ItemStack itemStack) { + ItemMeta itemMeta = itemStack.getItemMeta(); + if (itemMeta != null) { + long cooldownUntil = PersistentDataAPI.getLong(itemMeta, Keys.PDC_ON_COOLDOWN, 0); + return System.currentTimeMillis() < cooldownUntil; + } + return false; + } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/Keys.java b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/Keys.java index 771c792d..0292db82 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/Keys.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/Keys.java @@ -23,8 +23,16 @@ public class Keys { public static final String PANEL_STAND_PREFIX = "CH_PANEL_"; // Recipe Types + public static final NamespacedKey GUIDE_ONLY = newKey("guide"); + public static final NamespacedKey GUIDE_MAKE_SPELL = newKey("guide_make_spell"); + public static final NamespacedKey GUIDE_RECHARGE_SPELL = newKey("guide_recharge_spell"); + public static final NamespacedKey GUIDE_STAVE_CONFIGURATOR = newKey("guide_stave"); + public static final NamespacedKey GUIDE_LIQUEFACTION = newKey("guide_liquefaction"); + public static final NamespacedKey GUIDE_REALISATION = newKey("guide_realisation"); + public static final NamespacedKey REALISATION_DUMMY_CRYSTAL = newKey("r_d_c"); - public static final NamespacedKey LIQUEFACTION_DUMMY_CRYSTAL = newKey("r_d_c"); + public static final NamespacedKey LIQUEFACTION_DUMMY_CRAFTING = newKey("l_d_c"); + public static final NamespacedKey LIQUEFACTION_DUMMY_SPELL = newKey("l_d_s"); // PDC // Items @@ -34,6 +42,7 @@ public class Keys { public static final NamespacedKey PDC_STORIES = newKey("s_list"); public static final NamespacedKey PDC_PLATE_STORAGE = newKey("plt"); public static final NamespacedKey PDC_STAVE_STORAGE = newKey("stv"); + public static final NamespacedKey PDC_ON_COOLDOWN = newKey("cooldown"); // Type - Story public static final NamespacedKey STORY_ID = newKey("s_id"); diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/PlayerStatUtils.java b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/PlayerStatUtils.java deleted file mode 100644 index c6035d3c..00000000 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/PlayerStatUtils.java +++ /dev/null @@ -1,94 +0,0 @@ -package io.github.sefiraat.crystamaehistoria.utils; - -import io.github.sefiraat.crystamaehistoria.CrystamaeHistoria; -import io.github.sefiraat.crystamaehistoria.magic.SpellType; -import io.github.sefiraat.crystamaehistoria.stories.BlockDefinition; -import org.bukkit.entity.Player; - -import java.text.MessageFormat; -import java.util.UUID; - -public class PlayerStatUtils { - - public static void unlockSpell(Player player, SpellType spellType) { - unlockSpell(player.getUniqueId(), spellType); - } - - public static void unlockSpell(UUID player, SpellType spellType) { - String path = MessageFormat.format("{0}.{1}.{2}.Unlocked", player, StatType.SPELL, spellType.getId()); - CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, true); - } - - public static boolean hasUnlockedSpell(Player player, SpellType spellType) { - return hasUnlockedSpell(player.getUniqueId(), spellType); - } - - public static boolean hasUnlockedSpell(UUID player, SpellType spellType) { - String path = MessageFormat.format("{0}.{1}.{2}.Unlocked", player, StatType.SPELL, spellType.getId()); - return CrystamaeHistoria.getConfigManager().getPlayerStats().getBoolean(path); - } - - public static void addUsage(Player player, SpellType spellType) { - addUsage(player.getUniqueId(), spellType); - } - - public static void addUsage(UUID player, SpellType spellType) { - int uses = getUsages(player, spellType); - uses++; - String path = MessageFormat.format("{0}.{1}.{2}.Times_Cast", player, StatType.SPELL, spellType.getId()); - CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, uses); - } - - public static int getUsages(Player player, SpellType spellType) { - return getUsages(player.getUniqueId(), spellType); - } - - public static int getUsages(UUID player, SpellType spellType) { - String path = MessageFormat.format("{0}.{1}.{2}.Times_Cast", player, StatType.SPELL, spellType.getId()); - return CrystamaeHistoria.getConfigManager().getPlayerStats().getInt(path); - } - - public static void unlockUniqueStory(Player player, BlockDefinition definition) { - unlockUniqueStory(player.getUniqueId(), definition); - } - - public static void unlockUniqueStory(UUID player, BlockDefinition definition) { - String path = MessageFormat.format("{0}.{1}.{2}.Unlocked", player, StatType.STORY, definition.getMaterial()); - CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, true); - } - - public static boolean hasUnlockedUniqueStory(Player player, BlockDefinition definition) { - return hasUnlockedUniqueStory(player.getUniqueId(), definition); - } - - public static boolean hasUnlockedUniqueStory(UUID player, BlockDefinition definition) { - String path = MessageFormat.format("{0}.{1}.{2}.Unlocked", player, StatType.STORY, definition.getMaterial()); - return CrystamaeHistoria.getConfigManager().getPlayerStats().getBoolean(path); - } - - public static void addChronicle(Player player, BlockDefinition definition) { - addChronicle(player.getUniqueId(), definition); - } - - public static void addChronicle(UUID player, BlockDefinition definition) { - int uses = getChronicle(player, definition); - uses++; - String path = MessageFormat.format("{0}.{1}.{2}.Times_Chronicled", player, StatType.STORY, definition.getMaterial()); - CrystamaeHistoria.getConfigManager().getPlayerStats().set(path, uses); - } - - public static int getChronicle(Player player, BlockDefinition definition) { - return getChronicle(player.getUniqueId(), definition); - } - - public static int getChronicle(UUID player, BlockDefinition definition) { - String path = MessageFormat.format("{0}.{1}.{2}.Times_Chronicled", player, StatType.STORY, definition.getMaterial()); - return CrystamaeHistoria.getConfigManager().getPlayerStats().getInt(path); - } - - enum StatType { - SPELL, - STORY - } -} - diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/StoryUtils.java b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/StoryUtils.java index 2c4cca58..42bed402 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/StoryUtils.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/StoryUtils.java @@ -185,23 +185,23 @@ public static JsonObject getInitialStoryLimits(ItemStack itemStack) { @ParametersAreNonnullByDefault public static void requestNewStory(ItemStack itemstack) { - final StoriesManager m = CrystamaeHistoria.getStoriesManager(); - final BlockDefinition s = m.getBlockDefinitionMap().get(itemstack.getType()); - final BlockTier t = s.getTier(); - final StoryChances c = t.storyChances; - final List p = s.getPools(); + final StoriesManager manager = CrystamaeHistoria.getStoriesManager(); + final BlockDefinition definition = manager.getBlockDefinitionMap().get(itemstack.getType()); + final BlockTier tier = definition.getTier(); + final StoryChances chance = tier.storyChances; + final List pool = definition.getPools(); int rnd = ThreadLocalRandom.current().nextInt(1, 101); - if (rnd <= c.mythical) { - addStory(itemstack, p, m.getStoryMapMythical()); - } else if (rnd <= c.epic) { - addStory(itemstack, p, m.getStoryMapEpic()); - } else if (rnd <= c.rare) { - addStory(itemstack, p, m.getStoryMapRare()); - } else if (rnd <= c.uncommon) { - addStory(itemstack, p, m.getStoryMapUncommon()); + if (rnd <= chance.mythical) { + addStory(itemstack, pool, manager.getStoryMapMythical()); + } else if (rnd <= chance.epic) { + addStory(itemstack, pool, manager.getStoryMapEpic()); + } else if (rnd <= chance.rare) { + addStory(itemstack, pool, manager.getStoryMapRare()); + } else if (rnd <= chance.uncommon) { + addStory(itemstack, pool, manager.getStoryMapUncommon()); } else { - addStory(itemstack, p, m.getStoryMapCommon()); + addStory(itemstack, pool, manager.getStoryMapCommon()); } } diff --git a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/theme/ThemeType.java b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/theme/ThemeType.java index c47c4a0b..d83968b0 100644 --- a/src/main/java/io/github/sefiraat/crystamaehistoria/utils/theme/ThemeType.java +++ b/src/main/java/io/github/sefiraat/crystamaehistoria/utils/theme/ThemeType.java @@ -35,6 +35,7 @@ public enum ThemeType { MACHINE(ChatColor.of("#3295a8"), "Machine"), MECHANISM(ChatColor.of("#3295a8"), "Mechanism"), GADGET(ChatColor.of("#8732a8"), "Gadget"), + GUIDE(ChatColor.of("#444444"), "Guide"), CHEST(ChatColor.of("#b89b1c"), "Chest"), DROP(ChatColor.of("#bf307f"), "Rare Drop"), BASE(ChatColor.of("#9e9e9e"), "Base Resource"), @@ -64,7 +65,31 @@ public enum ThemeType { TYPE_ANIMAL(ChatColor.of("#701ae8"), "Animal"), TYPE_CELESTIAL(ChatColor.of("#ffffff"), "Celestial"), TYPE_VOID(ChatColor.of("#222222"), "Void"), - TYPE_PHILOSOPHICAL(ChatColor.of("#4d4aa8"), "Philosophical"); + TYPE_PHILOSOPHICAL(ChatColor.of("#4d4aa8"), "Philosophical"), + RANK_SPELL_APPRENTICE(ChatColor.of("#cdbfff"), "Apprentice"), + RANK_SPELL_MAGE(ChatColor.of("#b5a1ff"), "Mage"), + RANK_SPELL_WIZARD(ChatColor.of("#9d82ff"), "Wizard"), + RANK_SPELL_CONJURER(ChatColor.of("#8969ff"), "Conjurer"), + RANK_SPELL_SORCERER(ChatColor.of("#6f47ff"), "Sorcerer"), + RANK_SPELL_MAGI(ChatColor.of("#5729ff"), "Magi"), + RANK_SPELL_MASTER_MAGI(ChatColor.of("#3d08ff"), "Master Magi"), + RANK_SPELL_GRANDMASTER_MAGI(ChatColor.of("#6b08ff"), "Grandmaster Magi"), + RANK_STORY_PUPIL(ChatColor.of("#eeffa8"), "Pupil"), + RANK_STORY_STUDENT(ChatColor.of("#e7ff82"), "Student"), + RANK_STORY_RESEARCHER(ChatColor.of("#e0ff5e"), "Researcher"), + RANK_STORY_READER(ChatColor.of("#d8ff33"), "Reader"), + RANK_STORY_LECTURER(ChatColor.of("#ceff00"), "Lecturer"), + RANK_STORY_PROFESSOR(ChatColor.of("#99ff00"), "Professor"), + RANK_STORY_ADJUNCT_PROFESSOR(ChatColor.of("#6aff00"), "Adjunct Professor"), + RANK_STORY_EMERITUS_PROFESSOR(ChatColor.of("#33ff00"), "Emeritus Professor"), + RANK_BLOCK_UNKNOWN(ChatColor.of("#a8ffb1"), "Unknown"), + RANK_BLOCK_HEARD_OF(ChatColor.of("#87ff94"), "Heard-of"), + RANK_BLOCK_KNOWN(ChatColor.of("#66ff77"), "Known"), + RANK_BLOCK_DETAILED(ChatColor.of("#4dff60"), "Detailed"), + RANK_BLOCK_RESEARCHED(ChatColor.of("#29ff40"), "Researched"), + RANK_BLOCK_EXPERT_OF(ChatColor.of("#0fff29"), "Expert-of"), + RANK_BLOCK_MASTER_OF(ChatColor.of("#00db18"), "Master-of"), + RANK_BLOCK_SME(ChatColor.of("#00820e"), "S.M.E."); /** * List of names to be given to ArmourStands, invisible but mods and Minimaps can see them :) diff --git a/src/main/resources/blocks.yml b/src/main/resources/blocks.yml index 67d88c6b..6c57290c 100644 --- a/src/main/resources/blocks.yml +++ b/src/main/resources/blocks.yml @@ -1,11682 +1,12795 @@ -blocks: - - material: ACACIA_BOAT - tier: 1 - elements: - - HUMAN - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Ship-shape (Acacia) - type: PHILOSOPHICAL - lore: - - Live in the sunshine, swim the sea - and drink in the wild air - shards: [ 1,0,0,0,1,0,0,0,2 ] - - - material: ACACIA_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Depressed (Acacia) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 0,1,0,0,2,0,0,1,0 ] - - - material: ACACIA_DOOR - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Gateway (Acacia) - type: HUMAN - lore: - - Every enterance is also an exit. - - Doors protects from the outside but - - dont let them keep you in! - shards: [ 0,2,0,0,1,0,0,0,1 ] - - - material: ACACIA_FENCE - tier: 1 - elements: - - HUMAN - - ANIMAL - story: - name: Livestock (Acacia) - type: ANIMAL - lore: - - Nothing brings more joy to a fence - - than keeping your livestock safe. - shards: [ 0,0,0,0,1,2,0,0,0 ] - - - material: ACACIA_FENCE_GATE - tier: 1 - elements: - - HUMAN - - MECHANICAL - - ANIMAL - story: - name: Gate (Acacia) - type: MECHANICAL - lore: - - Still round the corner there may wait, - - A new road or a secret gate. - shards: [ 0,2,0,0,1,1,0,0,0 ] - author: J. R. R. Tolkien - - - material: ACACIA_LEAVES - tier: 1 - elements: - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Leaf me alone! (Acacia) - type: PHILOSOPHICAL - lore: - - Gently swaying in a cool breeze, - - Leaves want nothing more than to be - - left alone to their thoughts. - shards: [ 1,0,0,1,0,0,0,0,1 ] - - - material: ACACIA_LOG - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Log (Acacia) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: ACACIA_PLANKS - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Walk the Plank (Acacia) - type: HUMAN - lore: - - The first step on your crafting journey - - driving new players forwards. - shards: [ 1,0,0,0,1,0,1,0,0 ] - - - material: ACACIA_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - story: - name: Under Pressure (Acacia) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 0,2,0,0,1,0,0,1,0 ] - - - material: ACACIA_SAPLING - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Growth (Acacia) - type: ELEMENTAL - lore: - - A youthful spirit empowered to grow - - into a mighty tree - shards: [ 1,0,1,1,0,1,0,0,0 ] - - - material: ACACIA_SIGN - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: Signed (Acacia) - type: PHILOSOPHICAL - lore: - - Imbued with the thoughts of those - - authors - shards: [ 0,0,0,0,1,0,1,1,1 ] - - - material: ACACIA_SLAB - tier: 1 - elements: - - HUMAN - story: - name: A cut below (Acacia) - type: HUMAN - lore: - - Ripped in half and divided from - - self. A soul torn asunder - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: ACACIA_STAIRS - tier: 1 - elements: - - HUMAN - - CELESTIAL - story: - name: Arise (Acacia) - type: CELESTIAL - lore: - - Lives to feel the joy of others being - - raised to new heights. - shards: [ 0,1,0,0,1,0,1,0,1 ] - - - material: ACACIA_TRAPDOOR - tier: 1 - elements: - - HUMAN - - VOID - story: - name: To the Pits (Acacia) - type: VOID - lore: - - Awaiting the perfect moment to drop an - - unsuspecting person to their end - shards: [ 0,1,0,0,1,0,0,1,0 ] - - - material: ACACIA_WOOD - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Wood (Acacia) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: ACTIVATOR_RAIL - tier: 3 - elements: - - MECHANICAL - - HUMAN - story: - name: Activate! - type: MECHANICAL - lore: - - Nothing provides more of a rush than - - the cracking of a cart over this track. - - A singular purpose with an extatic - - result. - shards: [ 0,2,0,0,1,0,0,0,0 ] - - - material: ALLIUM - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Allium) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: AMETHYST_BLOCK - tier: 2 - elements: - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Glittering Spirit - type: ELEMENTAL - lore: - - A glittering, scattering spirit residing - - within the resonance of this crystal - shards: [ 2,0,1,1,0,0,0,0,0 ] - - - material: AMETHYST_CLUSTER - tier: 2 - elements: - - ELEMENTAL - - HISTORICAL - - PHILOSOPHICAL - story: - name: Looks Familiar? - type: PHILOSOPHICAL - lore: - - Something about this crystal feels familiar. - - Feels receptive to magic, but... - shards: [ 1,0,1,1,0,0,0,0,1 ] - - - material: AMETHYST_SHARD - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - - PHILOSOPHICAL - story: - name: Chipped Perfection - type: ELEMENTAL - lore: - - A shattered dream taken, a myriad - - of broken shards shaken - shards: [ 1,0,1,0,0,0,0,0,0 ] - - - material: ANCIENT_DEBRIS - tier: 4 - elements: - - ELEMENTAL - - ALCHEMICAL - story: - name: Depths - type: ELEMENTAL - lore: - - Used in the creation of the strongest - - items. Hidden in the depths by an old - - civilisation. - shards: [ 1,0,1,1,0,0,0,0,0 ] - author: OOOOMAGAAA - - - material: ANDESITE - tier: 1 - elements: - - HUMAN - - ALCHEMICAL - story: - name: Polished - type: HUMAN - lore: - - Often thrown away as dull and boring, - - at his block is filled with an epic sadness - shards: [ 2,0,1,1,0,0,0,0,0 ] - - - material: ANDESITE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ANDESITE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ANDESITE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ANVIL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: APPLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ARMOR_STAND - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ARROW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: AXOLOTL_BUCKET - tier: 1 - elements: - - HUMAN - - ANIMAL - story: - name: Small but Cosy! - type: ANIMAL - lore: - - Even though most organisms hate - - being locked up, the axolotl - - loves it - shards: [ 1,0,0,0,1,1,0,0,0 ] - author: Seggan - - - material: AZALEA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: AZALEA_LEAVES - tier: 1 - elements: - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Leaf me alone! (Azalea) - type: PHILOSOPHICAL - lore: - - Gently swaying in a cool breeze, - - Leaves want nothing more than to be - - left alone to their thoughts. - shards: [ 1,0,0,1,0,0,0,0,1 ] - - - material: AZURE_BLUET - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Azure Bluet) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: BAKED_POTATO - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BAMBOO - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BARREL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BARRIER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BASALT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BEACON - tier: 1 - elements: - - ALCHEMICAL - - HUMAN - - VOID - story: - name: Bringing home the b(e)acon - type: ALCHEMICAL - lore: - - The light in the distance... - - The smell of your base... - - The warmth of Regeration II... - shards: [ 0,2,0,0,1,0,0,1,0 ] - author: Seggan - - - material: BEDROCK - tier: 1 - elements: - - ELEMENTAL - - VOID - story: - name: The sleeping rock - type: ELEMENTAL - lore: - - This rock has been here for so - - long, it has turned hard as - - stone. Wait... that's not - - right... - shards: [ 2,0,0,0,0,0,0,2,0 ] - author: Seggan - - - material: BEEF - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BEEHIVE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BEETROOT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BEETROOT_SEEDS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BEETROOT_SOUP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BEE_NEST - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BELL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BIG_DRIPLEAF - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BIRCH_BOAT - tier: 1 - elements: - - HUMAN - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Ship-shape (Birch) - type: PHILOSOPHICAL - lore: - - Live in the sunshine, swim the sea - and drink in the wild air - shards: [ 1,0,0,0,1,0,0,0,2 ] - - - material: BIRCH_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Depressed (Birch) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 0,1,0,0,2,0,0,1,0 ] - - - material: BIRCH_DOOR - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Gateway (Birch) - type: HUMAN - lore: - - Every enterance is also an exit. - - Doors protects from the outside but - - dont let them keep you in! - shards: [ 0,2,0,0,1,0,0,0,1 ] - - - material: BIRCH_FENCE - tier: 1 - elements: - - HUMAN - - ANIMAL - story: - name: Livestock (Birch) - type: ANIMAL - lore: - - Nothing brings more joy to a fence - - than keeping your livestock safe. - shards: [ 0,0,0,0,1,2,0,0,0 ] - - - material: BIRCH_FENCE_GATE - tier: 1 - elements: - - HUMAN - - MECHANICAL - - ANIMAL - story: - name: Gate (Birch) - type: MECHANICAL - lore: - - Still round the corner there may wait, - - A new road or a secret gate. - shards: [ 0,2,0,0,1,1,0,0,0 ] - author: J. R. R. Tolkien - - - material: BIRCH_LEAVES - tier: 1 - elements: - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Leaf me alone! (Birch) - type: PHILOSOPHICAL - lore: - - Gently swaying in a cool breeze, - - Leaves want nothing more than to be - - left alone to their thoughts. - shards: [ 1,0,0,1,0,0,0,0,1 ] - - - material: BIRCH_LOG - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Log (Birch) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: BIRCH_PLANKS - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Walk the Plank (Birch) - type: HUMAN - lore: - - The first step on your crafting journey - - driving new players forwards. - shards: [ 1,0,0,0,1,0,1,0,0 ] - - - material: BIRCH_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - story: - name: Under Pressure (Birch) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 0,2,0,0,1,0,0,1,0 ] - - - material: BIRCH_SAPLING - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Growth (Birch) - type: ELEMENTAL - lore: - - A youthful spirit empowered to grow - - into a mighty tree - shards: [ 1,0,1,1,0,1,0,0,0 ] - - - material: BIRCH_SIGN - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: Signed (Birch) - type: PHILOSOPHICAL - lore: - - Imbued with the thoughts of those - - authors - shards: [ 0,0,0,0,1,0,1,1,1 ] - - - material: BIRCH_SLAB - tier: 1 - elements: - - HUMAN - story: - name: A cut below (Birch) - type: HUMAN - lore: - - Ripped in half and divided from - - self. A soul torn asunder - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: BIRCH_STAIRS - tier: 1 - elements: - - HUMAN - - CELESTIAL - story: - name: Arise (Birch) - type: CELESTIAL - lore: - - Lives to feel the joy of others being - - raised to new heights. - shards: [ 0,1,0,0,1,0,1,0,1 ] - - - material: BIRCH_TRAPDOOR - tier: 1 - elements: - - HUMAN - - VOID - story: - name: To the Pits (Birch) - type: VOID - lore: - - Awaiting the perfect moment to drop an - - unsuspecting person to their end - shards: [ 0,1,0,0,1,0,0,1,0 ] - - - material: BIRCH_WOOD - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Wood (Birch) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: BLACKSTONE - tier: 1 - elements: - - ELEMENTAL - - VOID - story: - name: Black stone - type: ELEMENTAL - lore: - - Black stone, what else can it be? - shards: [ 1,1,0,0,0,0,0,1,0 ] - author: Seggan - - - material: BLACKSTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACKSTONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACKSTONE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLACK_WOOL - tier: 2 - elements: - - ANIMAL - - VOID - story: - name: Soft! (Black) - type: ANIMAL - lore: - - Fluffy and black, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,1,0 ] - author: OOOOMAGAAA - - - material: BLAST_FURNACE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLAZE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLAZE_ROD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_ICE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_ORCHID - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Blue Orchid) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: BLUE_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BLUE_WOOL - tier: 2 - elements: - - ANIMAL - - ELEMENTAL - story: - name: Soft! (Blue) - type: ANIMAL - lore: - - Fluffy and blue, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 1,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: BONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BONE_BLOCK - tier: 2 - elements: - - ANIMAL - - HISTORICAL - story: - name: Found Remains - type: ANIMAL - lore: - - Fossils scattered across the world and - - depths of the Nether. Nothing is known - - about the creatures that left them behind. - shards: [ 0,0,1,1,0,1,0,0,0 ] - - - material: BONE_MEAL - tier: 1 - elements: - - ANIMAL - - PHILOSOPHICAL - story: - name: Fe Fi Fo Fum - type: PHILOSOPHICAL - lore: - - I'll grind his bones to make my bread - shards: [ 0,0,1,0,1,1,0,0,1 ] - author: Jack and the Beanstalk? - - - material: BOOK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BOOKSHELF - tier: 2 - elements: - - HISTORICAL - - PHILOSOPHICAL - story: - name: Knowledge - type: PHILOSOPHICAL - lore: - - An unending source practically dripping with - - the knowledge of the smartest people who - - ever existed. - shards: [ 0,0,0,1,1,0,1,0,1 ] - author: OOOOMAGAAA - - - material: BOW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BOWL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BRAIN_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BRAIN_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BRAIN_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BREAD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BREWING_STAND - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BRICK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BRICK_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_MUSHROOM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_MUSHROOM_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BROWN_WOOL - tier: 2 - elements: - - ANIMAL - - HISTORICAL - story: - name: Soft! (Brown) - type: ANIMAL - lore: - - Fluffy and brown, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,1,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: BUBBLE_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BUBBLE_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BUBBLE_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BUDDING_AMETHYST - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: BUNDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CACTUS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CAKE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CALCITE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CAMPFIRE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CARROT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CARROT_ON_A_STICK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CARTOGRAPHY_TABLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CARVED_PUMPKIN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CAULDRON - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHAIN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHAINMAIL_BOOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHAINMAIL_CHESTPLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHAINMAIL_HELMET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHAINMAIL_LEGGINGS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHAIN_COMMAND_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHARCOAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHEST - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHEST_MINECART - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHICKEN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHIPPED_ANVIL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHISELED_DEEPSLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHISELED_NETHER_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHISELED_POLISHED_BLACKSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHISELED_QUARTZ_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHISELED_RED_SANDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHISELED_SANDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHISELED_STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHORUS_FLOWER - tier: 2 - elements: - - VOID - - ANIMAL - story: - name: Shifty... - type: VOID - lore: - - Woven into the fabric of space and - - time by the Ancient Builders, these - - flowers seem... shifty... - shards: [ 0,0,1,0,0,1,0,1,0 ] - author: Seggan - - - material: CHORUS_FRUIT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CHORUS_PLANT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CLAY - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CLAY_BALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COAL_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COARSE_DIRT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBBLED_DEEPSLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBBLED_DEEPSLATE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBBLED_DEEPSLATE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBBLED_DEEPSLATE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBBLESTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBBLESTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBBLESTONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBBLESTONE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COBWEB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COCOA_BEANS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COD_BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COMMAND_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COMMAND_BLOCK_MINECART - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COMPARATOR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COMPASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COMPOSTER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CONDUIT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COOKED_BEEF - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COOKED_CHICKEN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COOKED_COD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COOKED_MUTTON - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COOKED_PORKCHOP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COOKED_RABBIT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COOKED_SALMON - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COOKIE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COPPER_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COPPER_INGOT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: COPPER_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CORNFLOWER - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Cornflower) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: CRACKED_DEEPSLATE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRACKED_DEEPSLATE_TILES - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRACKED_NETHER_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRACKED_POLISHED_BLACKSTONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRACKED_STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRAFTING_TABLE - tier: 1 - main_element: HUMAN - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: Endless Potential - type: HUMAN - lore: - - This table magically creates items with a - - minimal amount of materials. How it works - - is still a mystery to this day. - shards: [ 0,1,0,0,2,0,1,0,1 ] - author: Ryhn12 - - - material: CREEPER_BANNER_PATTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CREEPER_HEAD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRIMSON_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - - VOID - story: - name: Depressed (Crimson) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 0,1,0,0,2,0,1,0,0 ] - - - material: CRIMSON_DOOR - tier: 1 - elements: - - HUMAN - - MECHANICAL - - VOID - story: - name: Gateway (Crimson) - type: HUMAN - lore: - - Every enterance is also an exit. - - Doors protects from the outside but - - dont let them keep you in! - shards: [ 0,2,0,0,1,0,0,1,1 ] - - - material: CRIMSON_FENCE - tier: 1 - elements: - - HUMAN - - ANIMAL - - VOID - story: - name: Livestock (Crimson) - type: ANIMAL - lore: - - Nothing brings more joy to a fence - - than keeping your livestock safe. - shards: [ 0,0,0,0,1,2,0,1,0 ] - - - material: CRIMSON_FENCE_GATE - tier: 1 - elements: - - HUMAN - - MECHANICAL - - ANIMAL - - VOID - story: - name: Gate (Crimson) - type: MECHANICAL - lore: - - Still round the corner there may wait, - - A new road or a secret gate. - shards: [ 0,2,0,0,1,1,0,0,0 ] - author: J. R. R. Tolkien - - - material: CRIMSON_FUNGUS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRIMSON_HYPHAE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRIMSON_NYLIUM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRIMSON_PLANKS - tier: 1 - elements: - - ELEMENTAL - - HUMAN - - VOID - story: - name: Walk the Plank (Crimson) - type: HUMAN - lore: - - The first step on your crafting journey - - driving new players forwards. - shards: [ 1,0,0,0,1,0,0,1,0 ] - - - material: CRIMSON_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - story: - name: Under Pressure (Crimson) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 0,2,0,0,0,0,0,2,0 ] - - - material: CRIMSON_ROOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRIMSON_SIGN - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - - VOID - story: - name: Signed (Crimson) - type: PHILOSOPHICAL - lore: - - Imbued with the thoughts of those - - authors - shards: [ 0,0,0,0,1,0,0,2,1 ] - - - material: CRIMSON_SLAB - tier: 1 - elements: - - HUMAN - - VOID - story: - name: A cut below - type: HUMAN - lore: - - Ripped in half and divided from - - self. A soul torn asunder - shards: [ 1,1,0,0,1,0,0,1,0 ] - - - material: CRIMSON_STAIRS - tier: 1 - elements: - - HUMAN - - CELESTIAL - - VOID - story: - name: Arise (Crimson) - type: CELESTIAL - lore: - - Lives to feel the joy of others being - - raised to new heights. - shards: [ 0,1,0,0,1,0,1,1,1 ] - - - material: CRIMSON_STEM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRIMSON_TRAPDOOR - tier: 1 - elements: - - HUMAN - - VOID - story: - name: To the Pits (Crimson) - type: VOID - lore: - - Awaiting the perfect moment to drop an - - unsuspecting person to their end - shards: [ 0,1,0,0,1,0,0,1,0 ] - - - material: CROSSBOW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CRYING_OBSIDIAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CUT_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CUT_COPPER_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CUT_COPPER_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CUT_RED_SANDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CUT_RED_SANDSTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CUT_SANDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CUT_SANDSTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: CYAN_WOOL - tier: 2 - elements: - - ANIMAL - - PHILOSOPHICAL - story: - name: Soft! (White) - type: ANIMAL - lore: - - Fluffy and cyan, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,1 ] - author: OOOOMAGAAA - - - material: DAMAGED_ANVIL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DANDELION - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Dandilion) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: DARK_OAK_BOAT - tier: 1 - elements: - - HUMAN - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Ship-shape (Dark Oak) - type: PHILOSOPHICAL - lore: - - Live in the sunshine, swim the sea - and drink in the wild air - shards: [ 1,0,0,0,1,0,0,0,2 ] - - - material: DARK_OAK_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Depressed (Dark Oak) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 0,1,0,0,2,0,0,1,0 ] - - - material: DARK_OAK_DOOR - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Gateway (Dark Oak) - type: HUMAN - lore: - - Every enterance is also an exit. - - Doors protects from the outside but - - dont let them keep you in! - shards: [ 0,2,0,0,1,0,0,0,1 ] - - - material: DARK_OAK_FENCE - tier: 1 - elements: - - HUMAN - - ANIMAL - story: - name: Livestock (Dark Oak) - type: ANIMAL - lore: - - Nothing brings more joy to a fence - - than keeping your livestock safe. - shards: [ 0,0,0,0,1,2,0,0,0 ] - - - material: DARK_OAK_FENCE_GATE - tier: 1 - elements: - - HUMAN - - MECHANICAL - - ANIMAL - story: - name: Gate (Dark Oak) - type: MECHANICAL - lore: - - Still round the corner there may wait, - - A new road or a secret gate. - shards: [ 0,2,0,0,1,1,0,0,0 ] - author: J. R. R. Tolkien - - - material: DARK_OAK_LEAVES - tier: 1 - elements: - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Leaf me alone! (Dark Oak) - type: PHILOSOPHICAL - lore: - - Gently swaying in a cool breeze, - - Leaves want nothing more than to be - - left alone to their thoughts. - shards: [ 1,0,0,1,0,0,0,0,1 ] - - - material: DARK_OAK_LOG - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Log (Dark Oak) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: DARK_OAK_PLANKS - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Walk the Plank (Dark Oak) - type: HUMAN - lore: - - The first step on your crafting journey - - driving new players forwards. - shards: [ 1,0,0,0,1,0,1,0,0 ] - - - material: DARK_OAK_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - story: - name: Under Pressure (Dark Oak) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 0,2,0,0,1,0,0,1,0 ] - - - material: DARK_OAK_SAPLING - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Growth (Dark Oak) - type: ELEMENTAL - lore: - - A youthful spirit empowered to grow - - into a mighty tree - shards: [ 1,0,1,1,0,1,0,0,0 ] - - - material: DARK_OAK_SIGN - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: Signed (Dark Oak) - type: PHILOSOPHICAL - lore: - - Imbued with the thoughts of those - - authors - shards: [ 0,0,0,0,1,0,1,1,1 ] - - - material: DARK_OAK_SLAB - tier: 1 - elements: - - HUMAN - story: - name: A cut below (Dark Oak) - type: HUMAN - lore: - - Ripped in half and divided from - - self. A soul torn asunder - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: DARK_OAK_STAIRS - tier: 1 - elements: - - HUMAN - - CELESTIAL - story: - name: Arise (Dark Oak) - type: CELESTIAL - lore: - - Lives to feel the joy of others being - - raised to new heights. - shards: [ 0,1,0,0,1,0,1,0,1 ] - - - material: DARK_OAK_TRAPDOOR - tier: 1 - elements: - - HUMAN - - VOID - story: - name: To the Pits (Dark Oak) - type: VOID - lore: - - Awaiting the perfect moment to drop an - - unsuspecting person to their end - shards: [ 0,1,0,0,1,0,0,1,0 ] - - - material: DARK_OAK_WOOD - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Wood (Dark Oak) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: DARK_PRISMARINE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DARK_PRISMARINE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DARK_PRISMARINE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DAYLIGHT_DETECTOR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_BRAIN_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_BRAIN_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_BRAIN_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_BUBBLE_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_BUBBLE_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_BUBBLE_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_BUSH - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_FIRE_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_FIRE_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_FIRE_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_HORN_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_HORN_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_HORN_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_TUBE_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_TUBE_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEAD_TUBE_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEBUG_STICK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_BRICK_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_COAL_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_COPPER_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_DIAMOND_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_EMERALD_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_GOLD_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_IRON_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_LAPIS_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_REDSTONE_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_TILES - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_TILE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_TILE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DEEPSLATE_TILE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DETECTOR_RAIL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_AXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_BOOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_CHESTPLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_HELMET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_HOE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_HORSE_ARMOR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_LEGGINGS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_PICKAXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_SHOVEL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIAMOND_SWORD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIORITE - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Iskall's Finest - type: HUMAN - lore: - - A life of being judged and hated leaves it's mark - shards: [ 2,0,1,1,0,0,0,0,0 ] - - - material: DIORITE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIORITE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIORITE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DIRT - tier: 1 - elements: - - ELEMENTAL - story: - name: Grounded - type: ELEMENTAL - lore: - - Shaping the very face of the minecraft - - world, dirt is a constant keeping us - - all grounded. - shards: [ 2,0,0,1,0,0,0,0,0 ] - - - material: DIRT_PATH - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Walked all over - type: HUMAN - lore: - - Without complaint, a spirit allows - - itself to be walked all over so long - - as it feels it's helping others. - shards: [ 1,0,0,0,1,0,0,0,1 ] - - - material: DISPENSER - tier: 2 - elements: - - MECHANICAL - - HUMAN - story: - name: Fire! - type: MECHANICAL - lore: - - Being used as a weapon was once tiring but - - now nothing brings more satisfaction than - - firing at an enemy. - shards: [ 0,2,0,0,1,0,0,0,0 ] - - - material: DRAGON_BREATH - tier: 4 - elements: - - VOID - - ANIMAL - story: - name: Foul - type: VOID - lore: - - Encapsulated toxins from a scarred soul. - shards: [ 0,0,0,0,0,1,0,2,1 ] - - - material: DRAGON_EGG - tier: 5 - elements: - - VOID - - CELESTIAL - - ANIMAL - - PHILOSOPHICAL - story: - name: The End - type: VOID - lore: - - The finality of all things throngs - - from within this egg. - - Everything must end and all returns. - shards: [ 2,2,2,2,2,2,2,2,2 ] - - - material: DRAGON_HEAD - tier: 5 - elements: - - VOID - - ANIMAL - story: - name: A worthy sacrifice - type: VOID - lore: - - Her spirit unabashed, a sacrifice made and - - a spirit set free. - shards: [ 1,1,1,1,1,2,1,2,1 ] - - - material: DRIED_KELP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DRIED_KELP_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DRIPSTONE_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: DROPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EGG - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ELYTRA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EMERALD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EMERALD_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EMERALD_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ENCHANTED_BOOK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ENCHANTED_GOLDEN_APPLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ENCHANTING_TABLE - tier: 3 - elements: - - CELESTIAL - - PHILOSOPHICAL - story: - name: Magi's Might - type: CELESTIAL - lore: - - Imbued with the pure essence of old - - Magi. While not usable by all, those - - who do are destined for greatness. - shards: [ 0,0,0,1,0,0,1,0,1 ] - author: OOOOMAGAAA - - - material: ENDER_CHEST - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ENDER_EYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ENDER_PEARL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: END_CRYSTAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: END_PORTAL_FRAME - tier: 5 - elements: - - HUMAN - - MECHANICAL - - VOID - story: - name: Unbreaking - type: MECHANICAL - lore: - - Back in the early days, the Ancient Builders - - created a devistating being they needed to hide - - from. They built strongholds and eventually - - constructed these portals to make their escape. - shards: [ 0,2,0,1,1,0,0,2,0 ] - author: Ashton - - - material: END_ROD - tier: 2 - elements: - - CELESTIAL - - VOID - story: - name: Shining Bright - type: CELESTIAL - lore: - - Seemingly created by the Purpur engineers, - - it's unknown how the light is produced. - shards: [ 0,0,1,0,0,0,1,1,0 ] - author: Seggan - - - material: END_STONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: END_STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: END_STONE_BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: END_STONE_BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: END_STONE_BRICK_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EXPERIENCE_BOTTLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EXPOSED_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EXPOSED_CUT_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EXPOSED_CUT_COPPER_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: EXPOSED_CUT_COPPER_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FARMLAND - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FEATHER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FERMENTED_SPIDER_EYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FILLED_MAP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FIREWORK_ROCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FIREWORK_STAR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FIRE_CHARGE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FIRE_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FIRE_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FIRE_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FISHING_ROD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FLETCHING_TABLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FLINT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FLINT_AND_STEEL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FLOWERING_AZALEA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FLOWERING_AZALEA_LEAVES - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FLOWER_BANNER_PATTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FLOWER_POT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FURNACE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: FURNACE_MINECART - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GHAST_TEAR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GILDED_BLACKSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLASS_BOTTLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLISTERING_MELON_SLICE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLOBE_BANNER_PATTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLOWSTONE - tier: 2 - elements: - - ALCHEMICAL - story: - name: Irridecant - type: ALCHEMICAL - lore: - - Found only in the hottest of locaitons, - - it is still unknown how or why this - - stone glows. - shards: [ 0,0,2,0,0,0,1,0,0 ] - author: OOOOMAGAAA - - - material: GLOWSTONE_DUST - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLOW_BERRIES - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLOW_INK_SAC - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLOW_ITEM_FRAME - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GLOW_LICHEN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_APPLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_AXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_BOOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_CARROT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_CHESTPLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_HELMET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_HOE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_HORSE_ARMOR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_LEGGINGS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_PICKAXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_SHOVEL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLDEN_SWORD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLD_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLD_INGOT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLD_NUGGET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GOLD_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRANITE - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Coarse - type: ELEMENTAL - lore: - - As stone's prettier sibling, Granite is known - - for being big-headed and self-absorbed - shards: [ 2,0,1,1,0,0,0,0,0 ] - - - material: GRANITE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRANITE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRANITE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRASS_BLOCK - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Start of the Chain - type: ANIMAL - lore: - - The start of the food web. Grass brings - - life into this world. - shards: [ 1,0,1,0,0,1,0,0,0 ] - - - material: GRAVEL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GRAY_WOOL - tier: 2 - elements: - - ANIMAL - story: - name: Soft! (Gray) - type: ANIMAL - lore: - - Fluffy and gray, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: GREEN_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GREEN_WOOL - tier: 2 - elements: - - ANIMAL - - HUMAN - story: - name: Soft! (Green) - type: ANIMAL - lore: - - Fluffy and green, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,1,2,0,0,0 ] - author: OOOOMAGAAA - - - material: GRINDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: GUNPOWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HANGING_ROOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HAY_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HEART_OF_THE_SEA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HEAVY_WEIGHTED_PRESSURE_PLATE - tier: 2 - elements: - - MECHANICAL - - ELEMENTAL - - VOID - story: - name: Really Under Pressure (Heavy) - type: VOID - lore: - - The only thing worse than being walked all - - over? Being called weighted at the same - - time - shards: [ 0,1,0,0,1,0,0,2,0 ] - - - material: HONEYCOMB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HONEYCOMB_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HONEY_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HONEY_BOTTLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HOPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HOPPER_MINECART - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HORN_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HORN_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: HORN_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ICE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: INFESTED_CHISELED_STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: INFESTED_COBBLESTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: INFESTED_CRACKED_STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: INFESTED_DEEPSLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: INFESTED_MOSSY_STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: INFESTED_STONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: INFESTED_STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: INK_SAC - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_AXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_BARS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_BLOCK - tier: 3 - elements: - - ELEMENTAL - - HUMAN - - MECHANICAL - story: - name: Technological Marvel - type: MECHANICAL - lore: - - Made from the earth, this block is - - used for machines and the furthering - - of technology. - shards: [ 1,2,0,0,1,0,0,0,0 ] - - - material: IRON_BOOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_CHESTPLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_DOOR - tier: 2 - elements: - - HUMAN - - MECHANICAL - - CELESTIAL - story: - name: Stronghold - type: HUMAN - lore: - - Protection again all indruders gives - - this item purpose and drive. - shards: [ 0,2,0,0,1,0,1,0,1 ] - - - material: IRON_HELMET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_HOE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_HORSE_ARMOR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_INGOT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_LEGGINGS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_NUGGET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_PICKAXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_SHOVEL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_SWORD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: IRON_TRAPDOOR - tier: 2 - elements: - - HUMAN - - MECHANICAL - - VOID - story: - name: Sent to the depths - type: VOID - lore: - - Controlled from afar to drop those - - above on command - shards: [ 0,1,0,0,1,0,0,2,0 ] - - - material: ITEM_FRAME - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: JACK_O_LANTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: JIGSAW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: JUKEBOX - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: JUNGLE_BOAT - tier: 1 - elements: - - HUMAN - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Ship-shape (Jungle) - type: PHILOSOPHICAL - lore: - - Live in the sunshine, swim the sea - and drink in the wild air - shards: [ 1,0,0,0,1,0,0,0,2 ] - - - material: JUNGLE_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Depressed (Jungle) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 0,1,0,0,2,0,0,1,0 ] - - - material: JUNGLE_DOOR - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Gateway (Jungle) - type: HUMAN - lore: - - Every enterance is also an exit. - - Doors protects from the outside but - - dont let them keep you in! - shards: [ 0,2,0,0,1,0,0,0,1 ] - - - material: JUNGLE_FENCE - tier: 1 - elements: - - HUMAN - - ANIMAL - story: - name: Livestock (Jungle) - type: ANIMAL - lore: - - Nothing brings more joy to a fence - - than keeping your livestock safe. - shards: [ 0,0,0,0,1,2,0,0,0 ] - - - material: JUNGLE_FENCE_GATE - tier: 1 - elements: - - HUMAN - - MECHANICAL - - ANIMAL - story: - name: Gate (Jungle) - type: MECHANICAL - lore: - - Still round the corner there may wait, - - A new road or a secret gate. - shards: [ 0,2,0,0,1,1,0,0,0 ] - author: J. R. R. Tolkien - - - material: JUNGLE_LEAVES - tier: 1 - elements: - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Leaf me alone! (Jungle) - type: PHILOSOPHICAL - lore: - - Gently swaying in a cool breeze, - - Leaves want nothing more than to be - - left alone to their thoughts. - shards: [ 1,0,0,1,0,0,0,0,1 ] - - - material: JUNGLE_LOG - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Log (Jungle) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: JUNGLE_PLANKS - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Walk the Plank (Jungle) - type: HUMAN - lore: - - The first step on your crafting journey - - driving new players forwards. - shards: [ 1,0,0,0,1,0,1,0,0 ] - - - material: JUNGLE_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - story: - name: Under Pressure (Jungle) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 0,2,0,0,1,0,0,1,0 ] - - - material: JUNGLE_SAPLING - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Growth (Jungle) - type: ELEMENTAL - lore: - - A youthful spirit empowered to grow - - into a mighty tree - shards: [ 1,0,1,1,0,1,0,0,0 ] - - - material: JUNGLE_SIGN - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: Signed (Jungle) - type: PHILOSOPHICAL - lore: - - Imbued with the thoughts of those - - authors - shards: [ 0,0,0,0,1,0,1,1,1 ] - - - material: JUNGLE_SLAB - tier: 1 - elements: - - HUMAN - story: - name: A cut below (Jungle) - type: HUMAN - lore: - - Ripped in half and divided from - - self. A soul torn asunder - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: JUNGLE_STAIRS - tier: 1 - elements: - - HUMAN - - CELESTIAL - story: - name: Arise (Jungle) - type: CELESTIAL - lore: - - Lives to feel the joy of others being - - raised to new heights. - shards: [ 0,1,0,0,1,0,1,0,1 ] - - - material: JUNGLE_TRAPDOOR - tier: 1 - elements: - - HUMAN - - VOID - story: - name: To the Pits (Jungle) - type: VOID - lore: - - Awaiting the perfect moment to drop an - - unsuspecting person to their end - shards: [ 0,1,0,0,1,0,0,1,0 ] - - - material: JUNGLE_WOOD - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Wood (Jungle) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: KELP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: KNOWLEDGE_BOOK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LADDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LANTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LAPIS_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LAPIS_LAZULI - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LAPIS_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LARGE_AMETHYST_BUD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LARGE_FERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LAVA_BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LEAD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LEATHER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LEATHER_BOOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LEATHER_CHESTPLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LEATHER_HELMET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LEATHER_HORSE_ARMOR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LEATHER_LEGGINGS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LECTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LEVER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHTNING_ROD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_GLAZED_TERRACOTTA - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: Mistaken identity - type: PHILOSOPHICAL - lore: - - Some mistake this for an - - overpowered power generation - - device - shards: [ 0,0,0,0,1,0,0,0,2 ] - author: Seggan - - - material: LIGHT_BLUE_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_BLUE_WOOL - tier: 2 - elements: - - ANIMAL - story: - name: Soft! (Light Blue) - type: ANIMAL - lore: - - Fluffy and light blue, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: LIGHT_GRAY_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIGHT_GRAY_WOOL - tier: 2 - elements: - - ANIMAL - story: - name: Soft! (Light Gray) - type: ANIMAL - lore: - - Fluffy and light gray, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - material: LIGHT_WEIGHTED_PRESSURE_PLATE - tier: 2 - elements: - - MECHANICAL - - ELEMENTAL - - VOID - story: - name: Really Under Pressure (Light) - type: VOID - lore: - - The only thing worse than being walked all - - over? Being called weighted at the same - - time - shards: [ 0,1,0,0,1,0,0,2,0 ] - - - material: LILAC - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Lilac) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: LILY_OF_THE_VALLEY - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Lily of the Valley) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,1,0,0 ] - - - material: LILY_PAD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LIME_WOOL - tier: 2 - elements: - - ANIMAL - - CELESTIAL - story: - name: Soft! (Lime) - type: ANIMAL - lore: - - Fluffy and lime, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,1,0,0 ] - author: OOOOMAGAAA - - - material: LINGERING_POTION - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LODESTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: LOOM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGENTA_WOOL - tier: 2 - elements: - - ANIMAL - - ALCHEMICAL - story: - name: Soft! (Magenta) - type: ANIMAL - lore: - - Fluffy and magenta, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: MAGMA_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAGMA_CREAM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MAP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MEDIUM_AMETHYST_BUD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MELON - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MELON_SEEDS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MELON_SLICE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MILK_BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MINECART - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOJANG_BANNER_PATTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSSY_COBBLESTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSSY_COBBLESTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSSY_COBBLESTONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSSY_COBBLESTONE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSSY_STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSSY_STONE_BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSSY_STONE_BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSSY_STONE_BRICK_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSS_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MOSS_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSHROOM_STEM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSHROOM_STEW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_11 - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_13 - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_BLOCKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_CAT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_CHIRP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_FAR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_MALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_MELLOHI - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_PIGSTEP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_STAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_STRAD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_WAIT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUSIC_DISC_WARD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MUTTON - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: MYCELIUM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NAME_TAG - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NAUTILUS_SHELL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_AXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_BLOCK - tier: 5 - elements: - - HUMAN - - CELESTIAL - story: - name: Showing Off - type: HUMAN - lore: - - A block made only to show off insane wealth - - After the first was made, it sparked wars, - - treachery and deceipt. - shards: [ 0,0,0,0,2,0,1,0,1 ] - author: ashton - - - material: NETHERITE_BOOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_CHESTPLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_HELMET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_HOE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_INGOT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_LEGGINGS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_PICKAXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_SCRAP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_SHOVEL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERITE_SWORD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHERRACK - tier: 1 - elements: - - ELEMENTAL - story: - name: Instability - type: ELEMENTAL - lore: - - It is unknown how such a soft rock can - - support the scructure of the Nether. - shards: [ 1,0,1,0,0,0,0,0,0 ] - - - material: NETHER_BRICK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_BRICK_FENCE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_BRICK_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_GOLD_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_QUARTZ_ORE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_SPROUTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_STAR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_WART - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NETHER_WART_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: NOTE_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: OAK_BOAT - tier: 1 - elements: - - HUMAN - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Ship-shape (Oak) - type: PHILOSOPHICAL - lore: - - Live in the sunshine, swim the sea - and drink in the wild air - shards: [ 1,0,0,0,1,0,0,0,2 ] - - - material: OAK_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Depressed (Oak) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 0,1,0,0,2,0,0,1,0 ] - - - material: OAK_DOOR - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Gateway - type: HUMAN - lore: - - Every enterance is also an exit. - - Doors protects from the outside but - - dont let them keep you in! - shards: [ 0,2,0,0,1,0,0,0,1 ] - - - material: OAK_FENCE - tier: 1 - elements: - - HUMAN - - ANIMAL - story: - name: Livestock (Oak) - type: ANIMAL - lore: - - Nothing brings more joy to a fence - - than keeping your livestock safe. - shards: [ 0,0,0,0,1,2,0,0,0 ] - - - material: OAK_FENCE_GATE - tier: 1 - elements: - - HUMAN - - MECHANICAL - - ANIMAL - story: - name: Gate (Oak) - type: MECHANICAL - lore: - - Still round the corner there may wait, - - A new road or a secret gate. - shards: [ 0,2,0,0,1,1,0,0,0 ] - author: J. R. R. Tolkien - - - material: OAK_LEAVES - tier: 1 - elements: - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Leaf me alone! (Oak) - type: PHILOSOPHICAL - lore: - - Gently swaying in a cool breeze, - - Leaves want nothing more than to be - - left alone to their thoughts. - shards: [ 1,0,0,1,0,0,0,0,1 ] - - - material: OAK_LOG - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Log (Oak) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: OAK_PLANKS - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Walk the Plank (Oak) - type: HUMAN - lore: - - The first step on your crafting journey - - driving new players forwards. - shards: [ 1,0,0,0,1,0,1,0,0 ] - - - material: OAK_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - story: - name: Under Pressure (Oak) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 0,2,0,0,1,0,0,1,0 ] - - - material: OAK_SAPLING - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Growth (Oak) - type: ELEMENTAL - lore: - - A youthful spirit empowered to grow - - into a mighty tree - shards: [ 1,0,1,1,0,1,0,0,0 ] - - - material: OAK_SIGN - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: Signed (Oak) - type: PHILOSOPHICAL - lore: - - Imbued with the thoughts of those - - authors - shards: [ 0,0,0,0,1,0,1,1,1 ] - - - material: OAK_SLAB - tier: 1 - elements: - - HUMAN - story: - name: A cut below (Oak) - type: HUMAN - lore: - - Ripped in half and divided from - - self. A soul torn asunder - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: OAK_STAIRS - tier: 1 - elements: - - HUMAN - - CELESTIAL - story: - name: Arise (Oak) - type: CELESTIAL - lore: - - Lives to feel the joy of others being - - raised to new heights. - shards: [ 0,1,0,0,1,0,1,0,1 ] - - - material: OAK_TRAPDOOR - tier: 1 - elements: - - HUMAN - - VOID - story: - name: To the Pits (Oak) - type: VOID - lore: - - Awaiting the perfect moment to drop an - - unsuspecting person to their end - shards: [ 0,1,0,0,1,0,0,1,0 ] - - - material: OAK_WOOD - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Wood (Oak) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: OBSERVER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: OBSIDIAN - tier: 2 - elements: - - HISTORICAL - - VOID - story: - name: Anger - type: VOID - lore: - - Having waited so long underground in anger, - - it now manages to rise above the ground - - to potentially reveal its secrets. - shards: [ 1,0,0,1,0,0,0,1,0 ] - author: TerslenK - - - material: ORANGE_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ORANGE_TULIP - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Orange Tulip) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: ORANGE_WOOL - tier: 2 - elements: - - ANIMAL - - MECHANICAL - story: - name: Soft! (Orange) - type: ANIMAL - lore: - - Fluffy and orange, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,1,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: OXEYE_DAISY - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Oxeye Daisy) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: OXIDIZED_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: OXIDIZED_CUT_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: OXIDIZED_CUT_COPPER_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: OXIDIZED_CUT_COPPER_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PACKED_ICE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PAINTING - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PAPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PEONY - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Peony) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: PETRIFIED_OAK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PHANTOM_MEMBRANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PIGLIN_BANNER_PATTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PINK_TULIP - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Pink Tulip) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: PINK_WOOL - tier: 2 - elements: - - ANIMAL - story: - name: Soft! (Pink) - type: ANIMAL - lore: - - Fluffy and pink, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: PISTON - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PLAYER_HEAD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PODZOL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POINTED_DRIPSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POISONOUS_POTATO - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_ANDESITE - tier: 1 - elements: - - HUMAN - - ALCHEMICAL - story: - name: Pure Joy - type: HUMAN - lore: - - An epic sadness is converted to pure - - joy. - shards: [ 2,0,0,1,2,0,0,0,1 ] - - - material: POLISHED_ANDESITE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_ANDESITE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BASALT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE_BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE_BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE_BRICK_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Depressed (Polished Blackstone) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 1,1,0,0,2,0,0,0,0 ] - - - material: POLISHED_BLACKSTONE_PRESSURE_PLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_BLACKSTONE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_DEEPSLATE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_DEEPSLATE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_DEEPSLATE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_DEEPSLATE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_DIORITE - tier: 1 - elements: - - HUMAN - - ALCHEMICAL - story: - name: Polished - type: HUMAN - lore: - - So you can actually polish a turd? - shards: [ 2,0,0,1,2,0,0,0,1 ] - - - material: POLISHED_DIORITE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_DIORITE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_GRANITE - tier: 2 - elements: - - HUMAN - - ALCHEMICAL - story: - name: Lacquered - type: HUMAN - lore: - - Decorative and pristine, used for the finest of builds - shards: [ 2,0,0,1,2,0,0,0,1 ] - - - material: POLISHED_GRANITE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POLISHED_GRANITE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POPPED_CHORUS_FRUIT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POPPY - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Poppy) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: PORKCHOP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POTATO - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POTION - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POWDER_SNOW_BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: POWERED_RAIL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE_BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE_BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE_CRYSTALS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE_SHARD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PRISMARINE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PUFFERFISH - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PUFFERFISH_BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PUMPKIN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PUMPKIN_PIE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PUMPKIN_SEEDS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPLE_WOOL - tier: 2 - elements: - - ANIMAL - story: - name: Soft! (Purple) - type: ANIMAL - lore: - - Fluffy and purple, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: PURPUR_BLOCK - tier: 2 - elements: - - HUMAN - - VOID - - HISTORICAL - story: - name: Ancient Remnants - type: HISTORICAL - lore: - - This is the only evidence left of the - - long-lost Ancient Builders who created - - it - shards: [ 0,0,0,1,1,0,0,1,0 ] - author: Seggan - - - material: PURPUR_PILLAR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPUR_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: PURPUR_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: QUARTZ - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: QUARTZ_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: QUARTZ_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: QUARTZ_PILLAR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: QUARTZ_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: QUARTZ_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RABBIT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RABBIT_FOOT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RABBIT_HIDE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RABBIT_STEW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RAIL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RAW_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RAW_COPPER_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RAW_GOLD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RAW_GOLD_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RAW_IRON - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RAW_IRON_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: REDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: REDSTONE_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: REDSTONE_LAMP - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: REDSTONE_ORE - tier: 2 - elements: - - ELEMENTAL - - MECHANICAL - story: - name: A new age - type: ELEMENTAL - lore: - - When first discovered. human history completely - - changed, making it possible to create circuits, - - machines and the birth of electricity. - shards: [ 2,1,0,0,0,0,0,0,0 ] - author: TerslenK - - - material: REDSTONE_TORCH - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_MUSHROOM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_MUSHROOM_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_NETHER_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_NETHER_BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_NETHER_BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_NETHER_BRICK_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_SAND - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_SANDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_SANDSTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_SANDSTONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_SANDSTONE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RED_TULIP - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Red Tulip) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: RED_WOOL - tier: 2 - elements: - - ANIMAL - story: - name: Soft! (Red) - type: ANIMAL - lore: - - Fluffy and red, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: REPEATER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: REPEATING_COMMAND_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: RESPAWN_ANCHOR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ROOTED_DIRT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: ROSE_BUSH - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Rose Bush) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: ROTTEN_FLESH - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SADDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SALMON - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SALMON_BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SAND - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SANDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SANDSTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SANDSTONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SANDSTONE_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SCAFFOLDING - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SCULK_SENSOR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SCUTE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SEAGRASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SEA_LANTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SEA_PICKLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SHEARS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SHIELD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SHROOMLIGHT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SHULKER_SHELL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SKELETON_SKULL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SKULL_BANNER_PATTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SLIME_BALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SLIME_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMALL_AMETHYST_BUD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMALL_DRIPLEAF - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMITHING_TABLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOKER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_BASALT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_QUARTZ - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_QUARTZ_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_QUARTZ_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_RED_SANDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_RED_SANDSTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_RED_SANDSTONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_SANDSTONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_SANDSTONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_SANDSTONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_STONE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SMOOTH_STONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SNOW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SNOWBALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SNOW_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SOUL_CAMPFIRE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SOUL_LANTERN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SOUL_SAND - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Torn Apart (Sand) - type: HISTORICAL - lore: - - The souls of those before you, perhaps - - ripped from the mysterious Ancient Builders? - shards: [ 1,0,0,1,0,0,0,0,0 ] - author: Seggan - - - material: SOUL_SAND - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Torn Apart (Soil) - type: HISTORICAL - lore: - - The souls of those before you, perhaps - - ripped from the mysterious Ancient Builders? - shards: [ 1,0,0,1,0,0,0,0,0 ] - author: Seggan - - - material: SOUL_TORCH - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SPAWNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SPECTRAL_ARROW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SPIDER_EYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SPLASH_POTION - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SPONGE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SPORE_BLOSSOM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SPRUCE_BOAT - tier: 1 - elements: - - HUMAN - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Ship-shape (Spruce) - type: PHILOSOPHICAL - lore: - - Live in the sunshine, swim the sea - and drink in the wild air - shards: [ 1,0,0,0,1,0,0,0,2 ] - - - material: SPRUCE_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Depressed (Spruce) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 0,1,0,0,2,0,0,1,0 ] - - - material: SPRUCE_DOOR - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Gateway - type: HUMAN - lore: - - Every enterance is also an exit. - - Doors protects from the outside but - - dont let them keep you in! - shards: [ 0,2,0,0,1,0,0,0,1 ] - - - material: SPRUCE_FENCE - tier: 1 - elements: - - HUMAN - - ANIMAL - story: - name: Livestock (Spruce) - type: ANIMAL - lore: - - Nothing brings more joy to a fence - - than keeping your livestock safe. - shards: [ 0,0,0,0,1,2,0,0,0 ] - - - material: SPRUCE_FENCE_GATE - tier: 1 - elements: - - HUMAN - - MECHANICAL - - ANIMAL - story: - name: Gate (Spruce) - type: MECHANICAL - lore: - - Still round the corner there may wait, - - A new road or a secret gate. - shards: [ 0,2,0,0,1,1,0,0,0 ] - author: J. R. R. Tolkien - - - material: SPRUCE_LEAVES - tier: 1 - elements: - - ELEMENTAL - - PHILOSOPHICAL - story: - name: Leaf me alone! (Spruce) - type: PHILOSOPHICAL - lore: - - Gently swaying in a cool breeze, - - Leaves want nothing more than to be - - left alone to their thoughts. - shards: [ 1,0,0,1,0,0,0,0,1 ] - - - material: SPRUCE_LOG - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Log (Spruce) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: SPRUCE_PLANKS - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Walk the Plank (Spruce) - type: HUMAN - lore: - - The first step on your crafting journey - - driving new players forwards. - shards: [ 1,0,0,0,1,0,1,0,0 ] - - - material: SPRUCE_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - story: - name: Under Pressure (Spruce) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 0,2,0,0,1,0,0,1,0 ] - - - material: SPRUCE_SAPLING - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Growth - type: ELEMENTAL - lore: - - A youthful spirit empowered to grow - - into a mighty tree - shards: [ 1,0,1,1,0,1,0,0,0 ] - - - material: SPRUCE_SIGN - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: Signed (Spruce) - type: PHILOSOPHICAL - lore: - - Imbued with the thoughts of those - - authors - shards: [ 0,0,0,0,1,0,1,1,1 ] - - - material: SPRUCE_SLAB - tier: 1 - elements: - - HUMAN - story: - name: A cut below (Spruce) - type: HUMAN - lore: - - Ripped in half and divided from - - self. A soul torn asunder - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: SPRUCE_STAIRS - tier: 1 - elements: - - HUMAN - - CELESTIAL - story: - name: Arise (Spruce) - type: CELESTIAL - lore: - - Lives to feel the joy of others being - - raised to new heights. - shards: [ 0,1,0,0,1,0,1,0,1 ] - - - material: SPRUCE_TRAPDOOR - tier: 1 - elements: - - HUMAN - - VOID - story: - name: To the Pits (Spruce) - type: VOID - lore: - - Awaiting the perfect moment to drop an - - unsuspecting person to their end - shards: [ 0,1,0,0,1,0,0,1,0 ] - - - material: SPRUCE_WOOD - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Punching Trees Gives Me Wood (Spruce) - type: ELEMENTAL - lore: - - Every adventure begins with a good tree - - punch - shards: [ 2,0,0,1,1,0,0,0,0 ] - - - material: SPYGLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STICK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STICKY_PISTON - tier: 3 - elements: - - MECHANICAL - - HUMAN - - CELESTIAL - story: - name: Stuck in a rut - type: MECHANICAL - lore: - - Constantly working hard to move all - - manner of blocks, the Sticky Piston is - - cursed to push and retrieve the same block - - without end. - shards: [ 0,1,0,0,1,0,1,0,1 ] - - - material: STONE - tier: 1 - elements: - - ELEMENTAL - - HISTORICAL - story: - name: Resolute - type: ELEMENTAL - lore: - - Stone is the resolute backbone of the world's - - makeup. Ever present and everlasting. - shards: [ 2,0,1,1,0,0,0,0,0 ] - - - material: STONECUTTER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_AXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_BRICKS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_BRICK_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_BRICK_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_BRICK_WALL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - story: - name: Depressed (Stone) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 1,1,0,0,2,0,0,0,0 ] - - - material: STONE_HOE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_PICKAXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - - ELEMENTAL - story: - name: Under Pressure (Stone) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 1,1,0,0,1,0,0,1,0 ] - - - material: STONE_SHOVEL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STONE_SWORD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STRING - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: STRIPPED_ACACIA_LOG - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Acacia Log) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_ACACIA_WOOD - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Acacia Wood) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_BIRCH_LOG - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Birch Log) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_BIRCH_WOOD - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Birch Wood) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_CRIMSON_HYPHAE - tier: 1 - elements: - - ELEMENTAL - - HUMAN - - VOID - story: - name: Stripped Bare (Crimson Hyphae) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,1,0 ] - - - material: STRIPPED_CRIMSON_STEM - tier: 1 - elements: - - ELEMENTAL - - HUMAN - - VOID - story: - name: Stripped Bare (Crimson Stem) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_DARK_OAK_LOG - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Dark Oak Log) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_DARK_OAK_WOOD - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Dark Oak Wood) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_JUNGLE_LOG - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Jungle Log) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_JUNGLE_WOOD - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Jungle Wood) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_OAK_LOG - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Oak Log) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_OAK_WOOD - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Oak Wood) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_SPRUCE_LOG - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Spruce Log) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_SPRUCE_WOOD - tier: 1 - elements: - - ELEMENTAL - - HUMAN - story: - name: Stripped Bare (Spruce Wood) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,0,0 ] - - - material: STRIPPED_WARPED_HYPHAE - tier: 1 - elements: - - ELEMENTAL - - HUMAN - - VOID - story: - name: Stripped Bare (Warped Hyphae) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,1,0 ] - - - material: STRIPPED_WARPED_STEM - tier: 1 - elements: - - ELEMENTAL - - HUMAN - - VOID - story: - name: Stripped Bare (Warped Stem) - type: HUMAN - lore: - - With nothing left to hide, this spirit - - allows itself to be more open and free. - shards: [ 1,1,0,0,1,0,0,1,0 ] - - - material: SUGAR - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SUGAR_CANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SUNFLOWER - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (Sunflower) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: SUSPICIOUS_STEW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: SWEET_BERRIES - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TALL_GRASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TARGET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TINTED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TIPPED_ARROW - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TNT - tier: 2 - elements: - - ALCHEMICAL - - PHILOSOPHICAL - story: - name: Wait for it... - type: ALCHEMICAL - lore: - - WAIT FOR IT! - shards: [ 0,1,2,0,0,0,0,0,1 ] - author: Seggan - - - material: TNT_MINECART - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TORCH - tier: 1 - elements: - - HUMAN - - ELEMENTAL - story: - name: Lighting The Way - type: HUMAN - lore: - - Since the earliest days, lighting the way - - and protecting from unseen foes. - shards: [ 1,1,0,0,1,0,1,0,0 ] - - - material: TOTEM_OF_UNDYING - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TRAPPED_CHEST - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TRIDENT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TRIPWIRE_HOOK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TROPICAL_FISH - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TROPICAL_FISH_BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TUBE_CORAL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TUBE_CORAL_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TUBE_CORAL_FAN - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TUFF - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TURTLE_EGG - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TURTLE_HELMET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: TWISTING_VINES - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: VINE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WARPED_BUTTON - tier: 1 - elements: - - HUMAN - - MECHANICAL - - VOID - story: - name: Depressed (Warped) - type: HUMAN - lore: - - Can get easily depressed - shards: [ 0,1,0,0,2,0,1,0,0 ] - - - material: WARPED_DOOR - tier: 1 - elements: - - HUMAN - - MECHANICAL - - VOID - story: - name: Gateway - type: HUMAN - lore: - - Every enterance is also an exit. - - Doors protects from the outside but - - dont let them keep you in! - shards: [ 0,2,0,0,1,0,0,1,1 ] - - - material: WARPED_FENCE - tier: 1 - elements: - - HUMAN - - ANIMAL - story: - name: Livestock (Warped) - type: ANIMAL - lore: - - Nothing brings more joy to a fence - - than keeping your livestock safe. - shards: [ 0,0,0,0,1,2,0,0,0 ] - - - material: WARPED_FENCE_GATE - tier: 1 - elements: - - HUMAN - - MECHANICAL - - ANIMAL - - VOID - story: - name: Gate (Warped) - type: MECHANICAL - lore: - - Still round the corner there may wait, - - A new road or a secret gate. - shards: [ 0,2,0,0,1,1,0,1,0 ] - author: J. R. R. Tolkien - - - material: WARPED_FUNGUS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WARPED_FUNGUS_ON_A_STICK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WARPED_HYPHAE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WARPED_NYLIUM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WARPED_PLANKS - tier: 1 - elements: - - ELEMENTAL - - HUMAN - - VOID - story: - name: Walk the Plank (Warped) - type: HUMAN - lore: - - The first step on your crafting journey - - driving new players forwards. - shards: [ 1,0,0,0,1,0,0,1,0 ] - - - material: WARPED_PRESSURE_PLATE - tier: 1 - elements: - - MECHANICAL - - VOID - story: - name: Under Pressure (Acacia) - type: VOID - lore: - - Being walked all over will drop any - - spirit. - shards: [ 0,1,0,0,1,0,0,2,0 ] - - - material: WARPED_ROOTS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WARPED_SIGN - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - - VOID - story: - name: Signed (Warped) - type: PHILOSOPHICAL - lore: - - Imbued with the thoughts of those - - authors - shards: [ 0,0,0,0,1,0,0,2,1 ] - - - material: WARPED_SLAB - tier: 1 - elements: - - HUMAN - - VOID - story: - name: A cut below - type: HUMAN - lore: - - Ripped in half and divided from - - self. A soul torn asunder - shards: [ 1,1,0,0,1,0,0,1,0 ] - - - material: WARPED_STAIRS - tier: 1 - elements: - - HUMAN - - CELESTIAL - - VOID - story: - name: Arise (Warped) - type: CELESTIAL - lore: - - Lives to feel the joy of others being - - raised to new heights. - shards: [ 0,1,0,0,1,0,1,1,1 ] - - - material: WARPED_STEM - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WARPED_TRAPDOOR - tier: 1 - elements: - - HUMAN - - VOID - story: - name: To the Pits (Warped) - type: VOID - lore: - - Awaiting the perfect moment to drop an - - unsuspecting person to their end - shards: [ 0,1,0,0,1,0,0,1,0 ] - - - material: WARPED_WART_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WATER_BUCKET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_COPPER_BLOCK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_CUT_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_CUT_COPPER_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_CUT_COPPER_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_EXPOSED_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_EXPOSED_CUT_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_EXPOSED_CUT_COPPER_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_EXPOSED_CUT_COPPER_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_OXIDIZED_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_OXIDIZED_CUT_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_OXIDIZED_CUT_COPPER_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_OXIDIZED_CUT_COPPER_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_WEATHERED_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_WEATHERED_CUT_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_WEATHERED_CUT_COPPER_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WAXED_WEATHERED_CUT_COPPER_STAIRS - tier: 1 - elements: - - HUMAN - - PHILOSOPHICAL - story: - name: What a Mouthful! - type: HUMAN - lore: - - Can you say this in one breath!? - shards: [ 0,1,0,0,1,0,0,0,2 ] - author: Seggan - - - material: WEATHERED_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WEATHERED_CUT_COPPER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WEATHERED_CUT_COPPER_SLAB - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WEATHERED_CUT_COPPER_STAIRS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WEEPING_VINES - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WET_SPONGE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHEAT - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHEAT_SEEDS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WHITE_TULIP - tier: 1 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Sweet Smell (White Tulip) - type: ANIMAL - lore: - - A wafting fragrance to quell the most - - vicious of temprements. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: WHITE_WOOL - tier: 2 - elements: - - ANIMAL - story: - name: Soft! (White) - type: ANIMAL - lore: - - Fluffy and white, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: WITHER_ROSE - tier: 2 - elements: - - ELEMENTAL - - ANIMAL - story: - name: Not-so-sweet Smell - type: ANIMAL - lore: - - A wafting fragrance to quell... everything. - shards: [ 1,0,0,0,0,1,0,0,0 ] - - - material: WITHER_SKELETON_SKULL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WOODEN_AXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WOODEN_HOE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WOODEN_PICKAXE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WOODEN_SHOVEL - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WOODEN_SWORD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WRITABLE_BOOK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: WRITTEN_BOOK - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_BANNER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_BED - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_CANDLE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_CARPET - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_CONCRETE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_CONCRETE_POWDER - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_DYE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_GLAZED_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_STAINED_GLASS - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_STAINED_GLASS_PANE - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_TERRACOTTA - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: - - - material: YELLOW_WOOL - tier: 2 - elements: - - ANIMAL - story: - name: Soft! (yellow) - type: ANIMAL - lore: - - Fluffy and yellow, the most comfortable - - of materials. Longing to become the next - - bed or carpet. - shards: [ 0,0,1,0,0,2,0,0,0 ] - author: OOOOMAGAAA - - - material: ZOMBIE_HEAD - tier: 1 - elements: - - - story: - name: - type: - lore: - - - shards: +ACACIA_BOAT: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Ship-shape (Acacia) + type: PHILOSOPHICAL + lore: + - Live in the sunshine, swim the sea + and drink in the wild air + shards: [ 1,0,0,0,1,0,0,0,2 ] + +ACACIA_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Depressed (Acacia) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 0,1,0,0,2,0,0,1,0 ] + +ACACIA_DOOR: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Gateway (Acacia) + type: HUMAN + lore: + - Every enterance is also an exit. + - Doors protects from the outside but + - dont let them keep you in! + shards: [ 0,2,0,0,1,0,0,0,1 ] + +ACACIA_FENCE: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Livestock (Acacia) + type: ANIMAL + lore: + - Nothing brings more joy to a fence + - than keeping your livestock safe. + shards: [ 0,0,0,0,1,2,0,0,0 ] + +ACACIA_FENCE_GATE: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - ANIMAL + story: + name: Gate (Acacia) + type: MECHANICAL + lore: + - Still round the corner there may wait, + - A new road or a secret gate. + shards: [ 0,2,0,0,1,1,0,0,0 ] + author: J. R. R. Tolkien + +ACACIA_LEAVES: + tier: 1 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Leaf me alone! (Acacia) + type: PHILOSOPHICAL + lore: + - Gently swaying in a cool breeze, + - Leaves want nothing more than to be + - left alone to their thoughts. + shards: [ 1,0,0,1,0,0,0,0,1 ] + +ACACIA_LOG: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Log (Acacia) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +ACACIA_PLANKS: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Walk the Plank (Acacia) + type: HUMAN + lore: + - The first step on your crafting journey + - driving new players forwards. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +ACACIA_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Acacia) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,2,0,0,1,0,0,1,0 ] + +ACACIA_SAPLING: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Growth (Acacia) + type: ELEMENTAL + lore: + - A youthful spirit empowered to grow + - into a mighty tree + shards: [ 1,0,1,1,0,1,0,0,0 ] + +ACACIA_SIGN: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Signed (Acacia) + type: PHILOSOPHICAL + lore: + - Imbued with the thoughts of those + - authors + shards: [ 0,0,0,0,1,0,1,1,1 ] + +ACACIA_SLAB: + tier: 1 + elements: + - HUMAN + story: + name: A cut below (Acacia) + type: HUMAN + lore: + - Ripped in half and divided from + - self. A soul torn asunder + shards: [ 1,1,0,0,1,0,0,0,0 ] + +ACACIA_STAIRS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + story: + name: Arise (Acacia) + type: CELESTIAL + lore: + - Lives to feel the joy of others being + - raised to new heights. + shards: [ 0,1,0,0,1,0,1,0,1 ] + +ACACIA_TRAPDOOR: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: To the Pits (Acacia) + type: VOID + lore: + - Awaiting the perfect moment to drop an + - unsuspecting person to their end + shards: [ 0,1,0,0,1,0,0,1,0 ] + +ACACIA_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Wood (Acacia) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +ACTIVATOR_RAIL: + tier: 3 + elements: + - MECHANICAL + - HUMAN + story: + name: Activate! + type: MECHANICAL + lore: + - Nothing provides more of a rush than + - the cracking of a cart over this track. + - A singular purpose with an extatic + - result. + shards: [ 0,2,0,0,1,0,0,0,0 ] + +ALLIUM: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Allium) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +AMETHYST_BLOCK: + tier: 2 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Glittering Spirit + type: ELEMENTAL + lore: + - A glittering, scattering spirit residing + - within the resonance of this crystal + shards: [ 2,0,1,1,0,0,0,0,0 ] + +AMETHYST_CLUSTER: + tier: 2 + elements: + - ELEMENTAL + - HISTORICAL + - PHILOSOPHICAL + story: + name: Looks Familiar? + type: PHILOSOPHICAL + lore: + - Something about this crystal feels familiar. + - Feels receptive to magic, but... + shards: [ 1,0,1,1,0,0,0,0,1 ] + +AMETHYST_SHARD: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + - PHILOSOPHICAL + story: + name: Chipped Perfection + type: ELEMENTAL + lore: + - A shattered dream taken, a myriad + - of broken shards shaken + shards: [ 1,0,1,0,0,0,0,0,0 ] + +ANCIENT_DEBRIS: + tier: 4 + elements: + - ELEMENTAL + - ALCHEMICAL + story: + name: Depths + type: ELEMENTAL + lore: + - Used in the creation of the strongest + - items. Hidden in the depths by an old + - civilisation. + shards: [ 1,0,1,1,0,0,0,0,0 ] + author: OOOOMAGAAA + +ANDESITE: + tier: 1 + elements: + - HUMAN + - ALCHEMICAL + story: + name: Polished + type: HUMAN + lore: + - Often thrown away as dull and boring, + - at his block is filled with an epic sadness + shards: [ 2,0,1,1,0,0,0,0,0 ] + +ANDESITE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Andesite) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +ANDESITE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Andesite) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +ANDESITE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Andesite) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +ANVIL: + tier: 3 + elements: + - MECHANICAL + - HUMAN + story: + name: Hammer Time! + type: MECHANICAL + lore: + - The essence of every tool that + - has touched the anvil imparts + - a part of itself to the anvil. + shards: [ 0,2,0,0,1,0,0,0,0 ] + +APPLE: + tier: 1 + elements: + - ALCHEMICAL + - ANIMAL + - CELESTIAL + story: + name: Just one a day + type: CELESTIAL + lore: + - Keeps the doctor away! + shards: [ 0,0,1,0,1,1,1,0,0 ] + +ARMOR_STAND: + tier: 2 + elements: + - MECHANICAL + - VOID + story: + name: Boiling Resentment + type: VOID + lore: + - Not able to move, used, manipulated and + - forced to have blocks in it's head. The + - resentment builds until it can take no + - more. + shards: [ 0,1,0,0,1,0,0,1,0 ] + +ARROW: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Piercing Through + type: VOID + lore: + - Memories of flying through air give + - this spirit solice. Ripping through + - flesh is just a bonus. + shards: [ 0,1,0,0,0,0,0,1,0 ] + +AXOLOTL_BUCKET: + tier: 2 + elements: + - HUMAN + - ANIMAL + story: + name: Small but Cosy! (Axolotl) + type: ANIMAL + lore: + - Even though most organisms hate + - being locked up, the axolotl + - loves it + shards: [ 1,0,0,0,1,1,0,0,0 ] + author: Seggan + +AZALEA: + tier: 2 + elements: + - ELEMENTAL + - CELESTIAL + story: + name: Blooming Potential + type: CELESTIAL + lore: + - Such a small point of force with the + - potential to become comthing mighty + - and strong. + shards: [ 1,0,1,0,0,0,1,0,0 ] + +AZALEA_LEAVES: + tier: 1 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Leaf me alone! (Azalea) + type: PHILOSOPHICAL + lore: + - Gently swaying in a cool breeze, + - Leaves want nothing more than to be + - left alone to their thoughts. + shards: [ 1,0,0,1,0,0,0,0,1 ] + +AZURE_BLUET: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Azure Bluet) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +BAKED_POTATO: + tier: 2 + elements: + - ANIMAL + - VOID + story: + name: Hot Potato, Hot Potato + type: VOID + lore: + - Cold Spaghetti, Cold Spaghetti + shards: [ 0,0,0,0,1,1,0,1,0 ] + +BAMBOO: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Jeff's Hunger + type: ANIMAL + lore: + - Jeff's go-to snack, abundant and rich + shards: [ 1,1,0,1,0,1,0,0,0 ] + +BARREL: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: No Fish + type: PHILOSOPHICAL + lore: + - Used through time to store fish and + - no cared enough to notice, it cannnot + - stand the smell! + shards: [ 0,1,0,0,1,0,0,0,2 ] + +BASALT: + tier: 1 + elements: + - ELEMENTAL + story: + name: Chill Out! + type: ELEMENTAL + lore: + - Once a volcanic force, this block + - had to undergo an extreme cooling + - that calmed both mind and 'body' + shards: [ 1,0,0,1,0,0,0,0,1 ] + +BEACON: + tier: 1 + elements: + - ALCHEMICAL + - HUMAN + - VOID + story: + name: Bringing home the b(e)acon + type: ALCHEMICAL + lore: + - The light in the distance... + - The smell of your base... + - The warmth of Regeration II... + shards: [ 0,2,0,0,1,0,0,1,0 ] + author: Seggan + +BEDROCK: + tier: 1 + elements: + - ELEMENTAL + - VOID + story: + name: The sleeping rock + type: ELEMENTAL + lore: + - This rock has been here for so + - long, it has turned hard as + - stone. Wait... that's not + - right... + shards: [ 2,0,0,0,0,0,0,2,0 ] + author: Seggan + +BEEF: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Raw (Beef) + type: ANIMAL + lore: + - Packed with unused potential. + - Longs for nothing more than a + - nice fire + shards: [ 0,0,0,0,1,1,0,0,1 ] + +BEEHIVE: + tier: 2 + elements: + - ANIMAL + story: + name: Home sweet home + type: ANIMAL + lore: + - The magical resonance from this + - block is bolstered with the life + - kept inside. + shards: [ 0,0,1,0,0,2,0,0,0 ] + +BEETROOT: + tier: 1 + elements: + - HUMAN + - ANIMAL + - CELESTIAL + story: + name: Farmers Delight (Beetroot) + type: HUMAN + lore: + - With every sprout, leaf and root this + - item gives joy and nourishment to all + shards: [ 0,0,0,0,1,1,1,0,0 ] + +BEETROOT_SEEDS: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Untapped Potential (Beetroot) + type: HUMAN + lore: + - Busting with innate magic drawn in + - due to the raw and untapped potential + - of this seed. + shards: [ 0,0,0,0,1,1,1,0,0 ] + +BEETROOT_SOUP: + tier: 1 + elements: + - HUMAN + story: + name: Hearty (Beetroot) + type: HUMAN + lore: + - Warming to both body and soul. + - Infers it's latent crysta to those + - drinking it. + shards: [ 0,0,0,0,2,1,0,0,0 ] + +BEE_NEST: + tier: 2 + elements: + - ANIMAL + - HUMAN + story: + name: Home sweet home + type: ANIMAL + lore: + - The magical resonance from this + - block is bolstered with the life + - kept inside. + shards: [ 0,0,1,0,1,2,0,0,0 ] + +BELL: + tier: 2 + elements: + - HUMAN + story: + name: Call to Arms + type: HUMAN + lore: + - The bell eagerly awaits the moment + - when it is finally struck so it can + - shout it's call to all around. + shards: [ 0,1,0,1,1,0,0,0,0 ] + +BIG_DRIPLEAF: + tier: 2 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Trying Hard + type: PHILOSOPHICAL + lore: + - The dripleaf tries it's absolute + - best to keep itself up though it + - nearly always fails. + shards: [ 1,0,0,0,0,1,1,0,1 ] + +BIRCH_BOAT: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Ship-shape (Birch) + type: PHILOSOPHICAL + lore: + - Live in the sunshine, swim the sea + and drink in the wild air + shards: [ 1,0,0,0,1,0,0,0,2 ] + +BIRCH_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Depressed (Birch) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 0,1,0,0,2,0,0,1,0 ] + +BIRCH_DOOR: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Gateway (Birch) + type: HUMAN + lore: + - Every enterance is also an exit. + - Doors protects from the outside but + - dont let them keep you in! + shards: [ 0,2,0,0,1,0,0,0,1 ] + +BIRCH_FENCE: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Livestock (Birch) + type: ANIMAL + lore: + - Nothing brings more joy to a fence + - than keeping your livestock safe. + shards: [ 0,0,0,0,1,2,0,0,0 ] + +BIRCH_FENCE_GATE: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - ANIMAL + story: + name: Gate (Birch) + type: MECHANICAL + lore: + - Still round the corner there may wait, + - A new road or a secret gate. + shards: [ 0,2,0,0,1,1,0,0,0 ] + author: J. R. R. Tolkien + +BIRCH_LEAVES: + tier: 1 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Leaf me alone! (Birch) + type: PHILOSOPHICAL + lore: + - Gently swaying in a cool breeze, + - Leaves want nothing more than to be + - left alone to their thoughts. + shards: [ 1,0,0,1,0,0,0,0,1 ] + +BIRCH_LOG: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Log (Birch) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +BIRCH_PLANKS: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Walk the Plank (Birch) + type: HUMAN + lore: + - The first step on your crafting journey + - driving new players forwards. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +BIRCH_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Birch) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,2,0,0,1,0,0,1,0 ] + +BIRCH_SAPLING: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Growth (Birch) + type: ELEMENTAL + lore: + - A youthful spirit empowered to grow + - into a mighty tree + shards: [ 1,0,1,1,0,1,0,0,0 ] + +BIRCH_SIGN: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Signed (Birch) + type: PHILOSOPHICAL + lore: + - Imbued with the thoughts of those + - authors + shards: [ 0,0,0,0,1,0,1,1,1 ] + +BIRCH_SLAB: + tier: 1 + elements: + - HUMAN + story: + name: A cut below (Birch) + type: HUMAN + lore: + - Ripped in half and divided from + - self. A soul torn asunder + shards: [ 1,1,0,0,1,0,0,0,0 ] + +BIRCH_STAIRS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + story: + name: Arise (Birch) + type: CELESTIAL + lore: + - Lives to feel the joy of others being + - raised to new heights. + shards: [ 0,1,0,0,1,0,1,0,1 ] + +BIRCH_TRAPDOOR: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: To the Pits (Birch) + type: VOID + lore: + - Awaiting the perfect moment to drop an + - unsuspecting person to their end + shards: [ 0,1,0,0,1,0,0,1,0 ] + +BIRCH_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Wood (Birch) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +BLACKSTONE: + tier: 1 + elements: + - ELEMENTAL + - VOID + story: + name: Black stone + type: ELEMENTAL + lore: + - Black stone, what else can it be? + shards: [ 1,1,0,0,0,0,0,1,0 ] + author: Seggan + +BLACKSTONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Blackstone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +BLACKSTONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Blackstone) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +BLACKSTONE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Blackstone) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +BLACK_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Black) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +BLACK_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Black) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +BLACK_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Black) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +BLACK_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Black) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +BLACK_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Black) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +BLACK_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Black) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +BLACK_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Black) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +BLACK_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Black) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +BLACK_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Black) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +BLACK_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Black Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +BLACK_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Black) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +BLACK_WOOL: + tier: 2 + elements: + - ANIMAL + - VOID + story: + name: Soft! (Black) + type: ANIMAL + lore: + - Fluffy and black, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,1,0 ] + author: OOOOMAGAAA + +BLAST_FURNACE: + tier: 2 + elements: + - MECHANICAL + - HUMAN + story: + name: What a Blast + type: MECHANICAL + lore: + - A furnace dreams day in, day out, of + - being promoted. The Blast Furnace is + - a Furnace's dream. + shards: [ 0,1,0,0,1,0,0,1,0 ] + +BLAZE_POWDER: + tier: 2 + elements: + - ELEMENTAL + - VOID + story: + name: Powdered Spirit + type: ELEMENTAL + lore: + - While a deplorable action, taking the spirit + - of a creature and grinding down to it's essence + - gives cheap and easy access to it's magics. + shards: [ 1,0,1,0,0,1,0,1,0 ] + +BLAZE_ROD: + tier: 2 + elements: + - ELEMENTAL + - VOID + story: + name: In a Blaze of Glory + type: ELEMENTAL + lore: + - A Blaze Rod is directly imbued with the + - ferocity of the blaze's last strike. + shards: [ 1,0,0,0,0,1,0,1,0 ] + +BLUE_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Blue) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +BLUE_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Blue) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +BLUE_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Blue) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +BLUE_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Blue) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +BLUE_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Blue) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +BLUE_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Blue) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +BLUE_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Blue) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +BLUE_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Blue) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +BLUE_ICE: + tier: 3 + elements: + - ELEMENTAL + - CELESTIAL + story: + name: Slip'n'Slide (Blue Ice) + type: ELEMENTAL + lore: + - During formation, the spirit of this block + - wished for nothing more than to see people + - slip along it's face. Blue Ice was born + - from this sadistic desire. + shards: [ 3,0,1,0,0,0,0,0,0 ] + +BLUE_ORCHID: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Blue Orchid) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +BLUE_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Blue) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +BLUE_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Blue Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +BLUE_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Blue) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +BLUE_WOOL: + tier: 2 + elements: + - ANIMAL + - ELEMENTAL + story: + name: Soft! (Blue) + type: ANIMAL + lore: + - Fluffy and blue, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 1,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +BONE: + tier: 1 + elements: + - ANIMAL + - VOID + story: + name: Fractured + type: VOID + lore: + - Most commonly, magics drawn from bone + - are for necromancy purposes but so long + - as the source is pure and the use for good, + - the magics will be pure as well. + shards: [ 0,0,1,0,0,1,0,1,0 ] + +BONE_BLOCK: + tier: 2 + elements: + - ANIMAL + - HISTORICAL + story: + name: Found Remains + type: ANIMAL + lore: + - Fossils scattered across the world and + - depths of the Nether. Nothing is known + - about the creatures that left them behind. + shards: [ 0,0,1,1,0,1,0,0,0 ] + +BONE_MEAL: + tier: 1 + elements: + - ANIMAL + - PHILOSOPHICAL + story: + name: Fe Fi Fo Fum + type: PHILOSOPHICAL + lore: + - I'll grind his bones to make my bread + shards: [ 0,0,1,0,1,1,0,0,1 ] + author: Jack and the Beanstalk? + +BOOK: + tier: 2 + elements: + - PHILOSOPHICAL + - HUMAN + story: + name: Learned + type: PHILOSOPHICAL + lore: + - A flahs of insight gained while learning + - directly translates into Crystamae stored + - within the source book. + shards: [ 0,0,0,1,1,0,0,0,1 ] + +BOOKSHELF: + tier: 2 + elements: + - HISTORICAL + - PHILOSOPHICAL + story: + name: Knowledge + type: PHILOSOPHICAL + lore: + - An unending source practically dripping with + - the knowledge of the smartest people who + - ever existed. + shards: [ 0,0,0,1,1,0,1,0,1 ] + author: OOOOMAGAAA + +BOW: + tier: 2 + elements: + - ANIMAL + - HUMAN + story: + name: The Sharpshooter + type: HUMAN + lore: + - You Don't Think They Need Me? + shards: [ 0,1,0,0,1,1,0,0,0 ] + +BOWL: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Feeling Empty + type: PHILOSOPHICAL + lore: + - It's one purpose being unfulfilled means + - the magic from this spirit wanes slowly + - over time. + shards: [ 0,0,0,0,1,0,0,0,1 ] + +BRAIN_CORAL: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Brain) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +BRAIN_CORAL_BLOCK: + tier: 2 + elements: + - PHILOSOPHICAL + - CELESTIAL + story: + name: Be'reef't (Brain) + type: PHILOSOPHICAL + lore: + - Ripped from it's habitat and molded into + - an unatural form for human purposes. + - This is a spirit ripped asunder. + shards: [ 0,0,0,1,0,0,1,0,1 ] + +BRAIN_CORAL_FAN: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Brain Fan) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +BREAD: + tier: 1 + elements: + - HUMAN + story: + name: Square + type: HUMAN + lore: + - A hearty but simple meal suitable for + - all. Bread delights from filling the + - stomachs of those in need. + shards: [ 0,0,0,0,2,0,1,0,0 ] + +BREWING_STAND: + tier: 3 + elements: + - ALCHEMICAL + story: + name: Alchemically Imbued + type: ALCHEMICAL + lore: + - After years of use, the brewing stand + - is imbued with such storng alchemical + - crystamae it's brimming near to burst. + shards: [ 0,0,3,0,0,0,0,0,0 ] + +BRICK: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Before + type: HUMAN + lore: + - While not much on it's own, the potential + - within this item is so large that the magics + - from it's possible forms ripple back through + - time. + shards: [ 0,1,0,1,1,0,0,0,0 ] + +BRICKS: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Dirt Hut Upgrade + type: HUMAN + lore: + - Enough to make near-any house a home, + - bricks are the staple to a modern comfort. + shards: [ 0,1,0,1,1,0,1,0,0 ] + +BRICK_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Brick) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +BRICK_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Brick) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +BRICK_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Brick) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +BROWN_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Brown) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +BROWN_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Brown) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +BROWN_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Brown) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +BROWN_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Brown) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +BROWN_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Brown) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +BROWN_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Brown) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +BROWN_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Brown) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +BROWN_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Brown) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +BROWN_MUSHROOM: + tier: 2 + elements: + - ANIMAL + story: + name: Fungal Frugility (Brown) + type: ANIMAL + lore: + - While slow, it's strength lies in it's + - simplicity and ability to thrive almost + - anywhere. + shards: [ 0,0,1,1,0,1,0,0,0 ] + +BROWN_MUSHROOM_BLOCK: + tier: 2 + elements: + - ANIMAL + story: + name: Giganticism (Brown) + type: ANIMAL + lore: + - Through an odd quirk of nature, a mushroom + - can have it's entire crystamae deposit ignited + - within a single moment allowing something small + - to grow into something giant. + shards: [ 0,0,1,1,0,1,0,0,0 ] + +BROWN_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Brown) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +BROWN_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Brown Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +BROWN_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Brown) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +BROWN_WOOL: + tier: 2 + elements: + - ANIMAL + - HISTORICAL + story: + name: Soft! (Brown) + type: ANIMAL + lore: + - Fluffy and brown, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,1,0,2,0,0,0 ] + author: OOOOMAGAAA + +BUBBLE_CORAL: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Bubble) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +BUBBLE_CORAL_BLOCK: + tier: 2 + elements: + - PHILOSOPHICAL + - CELESTIAL + story: + name: Be'reef't (Bubble) + type: PHILOSOPHICAL + lore: + - Ripped from it's habitat and molded into + - an unatural form for human purposes. + - This is a spirit ripped asunder. + shards: [ 0,0,0,1,0,0,1,0,1 ] + +BUBBLE_CORAL_FAN: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Bubble Fan) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +BUCKET: + tier: 2 + elements: + - HUMAN + - VOID + story: + name: Sturdy (Empty) + type: HUMAN + lore: + - Persistent, constant and driven to + - hold anything the user needs. + shards: [ 0,1,0,0,2,0,0,1,0 ] + +CACTUS: + tier: 1 + elements: + - ELEMENTAL + - VOID + story: + name: Getting to the point + type: VOID + lore: + - While drawn to the pain of others, the + - cactus knows harm is, at the core, a bad + - thing so does as little as possible. + shards: [ 1,0,0,0,0,1,0,1,0 ] + +CAKE: + tier: 2 + elements: + - CELESTIAL + story: + name: Piece of... + type: CELESTIAL + lore: + - Wait, is it his birthday already? + shards: [ 0,0,0,1,1,0,2,0,0 ] + +CALCITE: + tier: 1 + elements: + - ELEMENTAL + - ALCHEMICAL + story: + name: Boredom + type: ALCHEMICAL + lore: + - Imagine having literally no uses other than + - to be put back down. It's a wonder Calcite + - has any Crysta at all. + shards: [ 1,0,1,0,0,0,0,0,0 ] + +CAMPFIRE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + story: + name: A Leap Forward + type: ELEMENTAL + lore: + - The discovery of fire is the pivotal + - event that led to sentience and with + - sentience came the spirits behind magic + shards: [ 2,0,0,0,1,0,0,0,0 ] + +CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +CARROT: + tier: 1 + elements: + - HUMAN + - ANIMAL + - CELESTIAL + story: + name: Farmers Delight (Beetroot) + type: HUMAN + lore: + - With every sprout, leaf and root this + - item gives joy and nourishment to all + shards: [ 0,0,0,0,1,1,1,0,0 ] + +CARROT_ON_A_STICK: + tier: 2 + elements: + - ANIMAL + story: + name: A Great Incentive (Carrot) + type: ANIMAL + lore: + - Slowly draws magical power from the creatures + - that this item attracts. + shards: [0,0,0,0,1,1,0,0,1] + +CARTOGRAPHY_TABLE: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Drawn Exploration + type: PHILOSOPHICAL + lore: + - Dreaming of seeing the far corners of the + - worlds, this block has to sit and live + - through the acheivments of others. + shards: [0,0,0,1,2,0,0,0,1] + +CARVED_PUMPKIN: + tier: 2 + elements: + - ELEMENTAL + - ANIMAL + story: + name: A Magical Life + type: ANIMAL + lore: + - It's still unknown how or why this block + - is able to create life. Scholars know magic + - is involved but no one has been able to see + - at which point it intervenes. + shards: [1,0,0,1,0,2,0,0,0] + +CAULDRON: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - ALCHEMICAL + story: + name: A Magical Start + type: ALCHEMICAL + lore: + - Often seen as the beginning for most magical + - professions. The cauldron is imbued with + - more magic than most other objects. + shards: [1,0,2,0,1,0,0,0,1] + +CHAIN: + tier: 2 + elements: + - ELEMENTAL + - VOID + story: + name: Shackled + type: VOID + lore: + - A history of enchained prisoners has made + - the essence of this item scullied and void. + shards: [1,1,0,0,0,0,0,1,0] + +CHAINMAIL_BOOTS: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Greave Greif (Chain) + type: PHILOSOPHICAL + lore: + - Like all armour, boots ant nothing more + - than to keep their wearer safe. Unforunatley + - they are overshadowed by other gear. + shards: [0,0,0,1,2,0,0,0,1] + +CHAINMAIL_CHESTPLATE: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: The Great Defender (Chain) + type: HUMAN + lore: + - Every hit, scrape and pummel stopped by the + - chestplate reinforces it's magics by giving + - it purpose and drive. + shards: [0,1,0,1,2,0,1,0,0] + +CHAINMAIL_HELMET: + tier: 2 + elements: + - HUMAN + - VOID + story: + name: Head above the rest (Chain) + type: VOID + lore: + - A magicians most important tool is their own + - mind, any steps taken to protect that tool + - are vital and wise. + shards: [0,0,0,1,1,0,0,1,0] + +CHAINMAIL_LEGGINGS: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Leggless (Chain) + type: CELESTIAL + lore: + - Like it's other armour brethren, leggings + - absorb crysta from their users in miniscule + - amounts over their tenure. + shards: [0,0,0,1,2,0,1,0,0] + +CHARCOAL: + tier: 1 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Burnt Out + type: PHILOSOPHICAL + lore: + - In the formation of charcoal, all the innate + - magic of a log is used up leaving only + - remnants. + shards: [1,0,0,0,0,0,0,0,1] + +CHEST: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Safe and Sound + type: MECHANICAL + lore: + - While attempting to keep the held items + - safe, the chest loses drive for all other + - things. + shards: [0,1,0,0,2,0,0,0,0] + +CHEST_MINECART: + tier: 2 + elements: + - HUMAN + - MECHANICAL + story: + name: Safe and Sound... and fun! + type: MECHANICAL + lore: + - Previously having lost the drive, being on + - wheels has reignited the spirit of the chest. + shards: [0,2,0,0,2,0,0,0,0] + +CHICKEN: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Raw (Chicken) + type: ANIMAL + lore: + - Packed with unused potential. + - Longs for nothing more than a + - nice fire + shards: [ 0,0,0,0,1,1,0,0,1 ] + +CHIPPED_ANVIL: + tier: 3 + elements: + - MECHANICAL + - HUMAN + story: + name: Hammer Time! (Chipped) + type: MECHANICAL + lore: + - The essence of every tool that + - has touched the anvil imparts + - a part of itself to the anvil. + shards: [ 0,1,0,0,1,0,0,0,0 ] + +CHISELED_DEEPSLATE: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Artisan (Deepslate) + type: PHILOSOPHICAL + lore: + - An artisan, without knowing, gives a portion + - of their magic into the block they craft. + shards: [0,1,0,1,1,0,0,0,1] + +CHISELED_NETHER_BRICKS: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Artisan (Nether Bricks) + type: PHILOSOPHICAL + lore: + - An artisan, without knowing, gives a portion + - of their magic into the block they craft. + shards: [0,1,0,1,1,0,0,0,1] + +CHISELED_POLISHED_BLACKSTONE: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Artisan (Polished Blackstone) + type: PHILOSOPHICAL + lore: + - An artisan, without knowing, gives a portion + - of their magic into the block they craft. + shards: [0,1,0,1,1,0,0,0,1] + +CHISELED_QUARTZ_BLOCK: + tier: 3 + elements: + - HUMAN + - PHILOSOPHICAL + - CELESTIAL + story: + name: Artisan (Quartz) + type: PHILOSOPHICAL + lore: + - An artisan, without knowing, gives a portion + - of their magic into the block they craft. + shards: [0,1,0,1,1,0,1,0,1] + +CHISELED_RED_SANDSTONE: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Artisan (Red Sandstone) + type: PHILOSOPHICAL + lore: + - An artisan, without knowing, gives a portion + - of their magic into the block they craft. + shards: [0,1,0,1,1,0,0,0,1] + +CHISELED_SANDSTONE: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Artisan (Sandstone) + type: PHILOSOPHICAL + lore: + - An artisan, without knowing, gives a portion + - of their magic into the block they craft. + shards: [0,1,0,1,1,0,0,0,1] + +CHISELED_STONE_BRICKS: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Artisan (Stone Bricks) + type: PHILOSOPHICAL + lore: + - An artisan, without knowing, gives a portion + - of their magic into the block they craft. + shards: [0,1,0,1,1,0,0,0,1] + +CHORUS_FLOWER: + tier: 2 + elements: + - VOID + - ANIMAL + story: + name: Shifty... + type: VOID + lore: + - Woven into the fabric of space and + - time by the Ancient Builders, these + - flowers seem... shifty... + shards: [ 0,0,1,0,0,1,0,1,0 ] + author: Seggan + +CHORUS_FRUIT: + tier: 1 + elements: + - VOID + story: + name: Transmit + type: VOID + lore: + - The latent magics of this fruit are in + - a state of constant flux, quantumly connected + - to various nearby points in space-time. + shards: [0,0,1,0,0,0,0,1,0] + +CLAY: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Pliable (Block) + type: HUMAN + lore: + - Eagerly waiting to be formed into something + - new. Clay looks forward to it's furture shape. + shards: [1,0,1,0,1,0,0,0,0] + +CLAY_BALL: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Pliable (Ball) + type: HUMAN + lore: + - Eagerly waiting to be formed into something + - new. Clay looks forward to it's furture shape. + shards: [1,0,1,0,1,0,0,0,0] + +CLOCK: + tier: 2 + elements: + - MECHANICAL + - HISTORICAL + - HUMAN + story: + name: Time to spare + type: HUMAN + lore: + - Criminally underused, the clock ends + - up with lots of time to spare. + shards: [0,1,0,1,1,0,0,0,0] + +COAL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COAL_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COAL_ORE: + tier: 2 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: A Humble Soul + type: PHILOSOPHICAL + lore: + - It's hard to be humble when + - you are as popular as coal + shards: [ 1,0,1,0,0,0,0,1,1 ] + author: R.I.P + +COARSE_DIRT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COBBLED_DEEPSLATE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COBBLED_DEEPSLATE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Cobbled Deepslate) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +COBBLED_DEEPSLATE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Cobbled Deepslate) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +COBBLED_DEEPSLATE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Cobbled Deepslate) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +COBBLESTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COBBLESTONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Cobblestone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +COBBLESTONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Andesite) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +COBBLESTONE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Cobblestone) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +COBWEB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COCOA_BEANS: + tier: 1 + elements: + - HUMAN + - ANIMAL + - CELESTIAL + story: + name: Farmers Delight (Cocoa) + type: HUMAN + lore: + - With every sprout, leaf and root this + - item gives joy and nourishment to all + shards: [ 0,0,0,0,1,1,1,0,0 ] + +COD: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Raw (Cod) + type: ANIMAL + lore: + - Packed with unused potential. + - Longs for nothing more than a + - nice fire + shards: [ 0,0,0,0,1,1,0,0,1 ] + +COD_BUCKET: + tier: 2 + elements: + - HUMAN + - ANIMAL + story: + name: Small but Cosy! (Cod) + type: ANIMAL + lore: + - Even though most organisms hate + - being locked up, the cod + - loves it.. for now + shards: [ 1,0,0,0,1,1,0,0,0 ] + author: Seggan + +COMPARATOR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COMPASS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COMPOSTER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CONDUIT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COOKED_BEEF: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Protein (Beef) + type: ANIMAL + lore: + - A core staple to any minecraft diet. + - Finds happiness in providing sustenance + shards: [ 0,0,0,0,1,2,0,0,0 ] + +COOKED_CHICKEN: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Protein (Chicken) + type: ANIMAL + lore: + - A core staple to any minecraft diet. + - Finds happiness in providing sustenance + shards: [ 0,0,0,0,1,2,0,0,0 ] + +COOKED_COD: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Protein (Cod) + type: ANIMAL + lore: + - A core staple to any minecraft diet. + - Finds happiness in providing sustenance + shards: [ 0,0,0,0,1,2,0,0,0 ] + +COOKED_MUTTON: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Protein (Mutton) + type: ANIMAL + lore: + - A core staple to any minecraft diet. + - Finds happiness in providing sustenance + shards: [ 0,0,0,0,1,2,0,0,0 ] + +COOKED_PORKCHOP: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Protein (Pork) + type: ANIMAL + lore: + - A core staple to any minecraft diet. + - Finds happiness in providing sustenance + shards: [ 0,0,0,0,1,2,0,0,0 ] + +COOKED_RABBIT: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Protein (Rabbit) + type: ANIMAL + lore: + - A core staple to any minecraft diet. + - Finds happiness in providing sustenance + shards: [ 0,0,0,0,1,2,0,0,0 ] + +COOKED_SALMON: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Protein (Salmon) + type: ANIMAL + lore: + - A core staple to any minecraft diet. + - Finds happiness in providing sustenance + shards: [ 0,0,0,0,1,2,0,0,0 ] + +COOKIE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COPPER_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COPPER_INGOT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +COPPER_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CORNFLOWER: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Cornflower) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +CRACKED_DEEPSLATE_BRICKS: + tier: 1 + elements: + - VOID + - PHILOSOPHICAL + story: + name: Cracked (Deepslate) + type: VOID + lore: + - This block releases it's magic via + - cracks in it's surface into the world. + - This often results in underground pockets + - of Crystamae. + shards: [1,0,0,0,0,0,0,1,1] + +CRACKED_DEEPSLATE_TILES: + tier: 1 + elements: + - VOID + - PHILOSOPHICAL + story: + name: Cracked (Deepslate Tiles) + type: VOID + lore: + - This block releases it's magic via + - cracks in it's surface into the world. + - This often results in underground pockets + - of Crystamae. + shards: [1,0,0,0,0,0,0,1,1] + +CRACKED_NETHER_BRICKS: + tier: 1 + elements: + - VOID + - PHILOSOPHICAL + story: + name: Cracked (Nether Bricks) + type: VOID + lore: + - This block releases it's magic via + - cracks in it's surface into the world. + - This often results in underground pockets + - of Crystamae. + shards: [1,0,0,0,0,0,0,1,1] + +CRACKED_POLISHED_BLACKSTONE_BRICKS: + tier: 1 + elements: + - VOID + - PHILOSOPHICAL + story: + name: Cracked (Blackstone Bricks) + type: VOID + lore: + - This block releases it's magic via + - cracks in it's surface into the world. + - This often results in underground pockets + - of Crystamae. + shards: [1,0,0,0,0,0,0,1,1] + +CRACKED_STONE_BRICKS: + tier: 1 + elements: + - VOID + - PHILOSOPHICAL + story: + name: Cracked (Stone Bricks) + type: VOID + lore: + - This block releases it's magic via + - cracks in it's surface into the world. + - This often results in underground pockets + - of Crystamae. + shards: [1,0,0,0,0,0,0,1,1] + +CRAFTING_TABLE: + tier: 1 + main_element: HUMAN + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Endless Potential + type: HUMAN + lore: + - This table magically creates items with a + - minimal amount of materials. How it works + - is still a mystery to this day. + shards: [ 0,1,0,0,2,0,1,0,1 ] + author: Ryhn12 + +CREEPER_BANNER_PATTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CREEPER_HEAD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CRIMSON_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - VOID + story: + name: Depressed (Crimson) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 0,1,0,0,2,0,1,0,0 ] + +CRIMSON_DOOR: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - VOID + story: + name: Gateway (Crimson) + type: HUMAN + lore: + - Every enterance is also an exit. + - Doors protects from the outside but + - dont let them keep you in! + shards: [ 0,2,0,0,1,0,0,1,1 ] + +CRIMSON_FENCE: + tier: 1 + elements: + - HUMAN + - ANIMAL + - VOID + story: + name: Livestock (Crimson) + type: ANIMAL + lore: + - Nothing brings more joy to a fence + - than keeping your livestock safe. + shards: [ 0,0,0,0,1,2,0,1,0 ] + +CRIMSON_FENCE_GATE: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - ANIMAL + - VOID + story: + name: Gate (Crimson) + type: MECHANICAL + lore: + - Still round the corner there may wait, + - A new road or a secret gate. + shards: [ 0,2,0,0,1,1,0,0,0 ] + author: J. R. R. Tolkien + +CRIMSON_FUNGUS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CRIMSON_HYPHAE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CRIMSON_NYLIUM: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CRIMSON_PLANKS: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + - VOID + story: + name: Walk the Plank (Crimson) + type: HUMAN + lore: + - The first step on your crafting journey + - driving new players forwards. + shards: [ 1,0,0,0,1,0,0,1,0 ] + +CRIMSON_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Crimson) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,2,0,0,0,0,0,2,0 ] + +CRIMSON_ROOTS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CRIMSON_SIGN: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + - VOID + story: + name: Signed (Crimson) + type: PHILOSOPHICAL + lore: + - Imbued with the thoughts of those + - authors + shards: [ 0,0,0,0,1,0,0,2,1 ] + +CRIMSON_SLAB: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: A cut below + type: HUMAN + lore: + - Ripped in half and divided from + - self. A soul torn asunder + shards: [ 1,1,0,0,1,0,0,1,0 ] + +CRIMSON_STAIRS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + - VOID + story: + name: Arise (Crimson) + type: CELESTIAL + lore: + - Lives to feel the joy of others being + - raised to new heights. + shards: [ 0,1,0,0,1,0,1,1,1 ] + +CRIMSON_STEM: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CRIMSON_TRAPDOOR: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: To the Pits (Crimson) + type: VOID + lore: + - Awaiting the perfect moment to drop an + - unsuspecting person to their end + shards: [ 0,1,0,0,1,0,0,1,0 ] + +CROSSBOW: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CRYING_OBSIDIAN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CUT_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CUT_COPPER_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CUT_COPPER_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CUT_RED_SANDSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CUT_RED_SANDSTONE_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CUT_SANDSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CUT_SANDSTONE_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +CYAN_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Cyan) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +CYAN_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Cyan) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +CYAN_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Cyan) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +CYAN_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Cyan) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +CYAN_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Cyan) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +CYAN_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Cyan) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +CYAN_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Cyan) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +CYAN_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Cyan) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +CYAN_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Cyan) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +CYAN_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Cyan Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +CYAN_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Cyan) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +CYAN_WOOL: + tier: 2 + elements: + - ANIMAL + - PHILOSOPHICAL + story: + name: Soft! (White) + type: ANIMAL + lore: + - Fluffy and cyan, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,1 ] + author: OOOOMAGAAA + +DAMAGED_ANVIL: + tier: 2 + elements: + - MECHANICAL + - HUMAN + story: + name: Hammer Time! (Damaged) + type: MECHANICAL + lore: + - The essence of every tool that + - has touched the anvil imparts + - a part of itself to the anvil. + shards: [ 0,1,0,0,1,0,0,0,0 ] + +DANDELION: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Dandilion) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +DARK_OAK_BOAT: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Ship-shape (Dark Oak) + type: PHILOSOPHICAL + lore: + - Live in the sunshine, swim the sea + and drink in the wild air + shards: [ 1,0,0,0,1,0,0,0,2 ] + +DARK_OAK_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Depressed (Dark Oak) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 0,1,0,0,2,0,0,1,0 ] + +DARK_OAK_DOOR: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Gateway (Dark Oak) + type: HUMAN + lore: + - Every enterance is also an exit. + - Doors protects from the outside but + - dont let them keep you in! + shards: [ 0,2,0,0,1,0,0,0,1 ] + +DARK_OAK_FENCE: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Livestock (Dark Oak) + type: ANIMAL + lore: + - Nothing brings more joy to a fence + - than keeping your livestock safe. + shards: [ 0,0,0,0,1,2,0,0,0 ] + +DARK_OAK_FENCE_GATE: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - ANIMAL + story: + name: Gate (Dark Oak) + type: MECHANICAL + lore: + - Still round the corner there may wait, + - A new road or a secret gate. + shards: [ 0,2,0,0,1,1,0,0,0 ] + author: J. R. R. Tolkien + +DARK_OAK_LEAVES: + tier: 1 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Leaf me alone! (Dark Oak) + type: PHILOSOPHICAL + lore: + - Gently swaying in a cool breeze, + - Leaves want nothing more than to be + - left alone to their thoughts. + shards: [ 1,0,0,1,0,0,0,0,1 ] + +DARK_OAK_LOG: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Log (Dark Oak) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +DARK_OAK_PLANKS: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Walk the Plank (Dark Oak) + type: HUMAN + lore: + - The first step on your crafting journey + - driving new players forwards. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +DARK_OAK_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Dark Oak) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,2,0,0,1,0,0,1,0 ] + +DARK_OAK_SAPLING: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Growth (Dark Oak) + type: ELEMENTAL + lore: + - A youthful spirit empowered to grow + - into a mighty tree + shards: [ 1,0,1,1,0,1,0,0,0 ] + +DARK_OAK_SIGN: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Signed (Dark Oak) + type: PHILOSOPHICAL + lore: + - Imbued with the thoughts of those + - authors + shards: [ 0,0,0,0,1,0,1,1,1 ] + +DARK_OAK_SLAB: + tier: 1 + elements: + - HUMAN + story: + name: A cut below (Dark Oak) + type: HUMAN + lore: + - Ripped in half and divided from + - self. A soul torn asunder + shards: [ 1,1,0,0,1,0,0,0,0 ] + +DARK_OAK_STAIRS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + story: + name: Arise (Dark Oak) + type: CELESTIAL + lore: + - Lives to feel the joy of others being + - raised to new heights. + shards: [ 0,1,0,0,1,0,1,0,1 ] + +DARK_OAK_TRAPDOOR: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: To the Pits (Dark Oak) + type: VOID + lore: + - Awaiting the perfect moment to drop an + - unsuspecting person to their end + shards: [ 0,1,0,0,1,0,0,1,0 ] + +DARK_OAK_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Wood (Dark Oak) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +DARK_PRISMARINE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DARK_PRISMARINE_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DARK_PRISMARINE_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DAYLIGHT_DETECTOR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEAD_BRAIN_CORAL: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Brain) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_BRAIN_CORAL_BLOCK: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Brain Block) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_BRAIN_CORAL_FAN: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Brain Fan) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_BUBBLE_CORAL: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Bubble) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_BUBBLE_CORAL_BLOCK: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Bubble Block) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_BUBBLE_CORAL_FAN: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Bubble Fan) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_BUSH: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEAD_FIRE_CORAL: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Fire) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_FIRE_CORAL_BLOCK: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Fire Block) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_FIRE_CORAL_FAN: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Fire Fan) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_HORN_CORAL: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Horn) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_HORN_CORAL_BLOCK: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Horn Block) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_HORN_CORAL_FAN: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Horn Fan) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_TUBE_CORAL: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Tube) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_TUBE_CORAL_BLOCK: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Tube Block) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEAD_TUBE_CORAL_FAN: + tier: 1 + elements: + - VOID + story: + name: Ecological Collapse (Tube Fan) + type: VOID + lore: + - With over half of all coral already + - dead and gone; simply put, more must + - be done. + shards: [ 0,0,0,0,0,0,0,2,0 ] + author: https://bit.ly/3kDl9jF + +DEEPSLATE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_BRICKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_BRICK_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_BRICK_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_BRICK_WALL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_COAL_ORE: + tier: 2 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: A Humble Soul (Deepslate) + type: PHILOSOPHICAL + lore: + - It's hard to be humble when + - you are as popular as coal + shards: [ 1,0,1,0,0,0,0,1,1 ] + author: R.I.P + +DEEPSLATE_COPPER_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_DIAMOND_ORE: + tier: 3 + elements: + - ELEMENTAL + - CELESTIAL + - HISTORICAL + story: + name: Attractive Proposition + type: ELEMENTAL + lore: + - A block that cant help but to draw + - others to it. It's something forbidden, + - a challenge and desired. + shards: [ 2,0,0,1,0,0,1,0,0 ] + author: R.I.P + +DEEPSLATE_EMERALD_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_GOLD_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_IRON_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_LAPIS_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_REDSTONE_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_TILES: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_TILE_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_TILE_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DEEPSLATE_TILE_WALL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DETECTOR_RAIL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIAMOND: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIAMOND_AXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIAMOND_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIAMOND_BOOTS: + tier: 4 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Greave Greif (Diamond) + type: PHILOSOPHICAL + lore: + - Like all armour, boots ant nothing more + - than to keep their wearer safe. Unforunatley + - they are overshadowed by other gear. + shards: [0,0,0,1,2,0,0,0,1] + +DIAMOND_CHESTPLATE: + tier: 4 + elements: + - HUMAN + - CELESTIAL + story: + name: The Great Defender (Diamond) + type: HUMAN + lore: + - Every hit, scrape and pummel stopped by the + - chestplate reinforces it's magics by giving + - it purpose and drive. + shards: [0,1,0,1,2,0,1,0,0] + +DIAMOND_HELMET: + tier: 4 + elements: + - HUMAN + - VOID + story: + name: Head above the rest (Diamond) + type: VOID + lore: + - A magicians most important tool is their own + - mind, any steps taken to protect that tool + - are vital and wise. + shards: [0,0,0,1,1,0,0,1,0] + +DIAMOND_HOE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIAMOND_HORSE_ARMOR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIAMOND_LEGGINGS: + tier: 4 + elements: + - HUMAN + - CELESTIAL + story: + name: Leggless (Diamond) + type: CELESTIAL + lore: + - Like it's other armour brethren, leggings + - absorb crysta from their users in miniscule + - amounts over their tenure. + shards: [0,0,0,1,2,0,1,0,0] + +DIAMOND_ORE: + tier: 3 + elements: + - ELEMENTAL + - CELESTIAL + - HISTORICAL + story: + name: A Supreme Glow + type: ELEMENTAL + lore: + - With hard work, it can be yours + - but not yet. Hold the potential for + - a glow brighter than the glow squid + shards: [ 2,0,0,1,0,0,1,0,0 ] + author: R.I.P + +DIAMOND_PICKAXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIAMOND_SHOVEL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIAMOND_SWORD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DIORITE: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Iskall's Finest + type: HUMAN + lore: + - A life of being judged and hated leaves it's mark + shards: [ 2,0,1,1,0,0,0,0,0 ] + +DIORITE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Diorite) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +DIORITE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Diorite) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +DIORITE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Diorite) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +DIRT: + tier: 1 + elements: + - ELEMENTAL + story: + name: Grounded + type: ELEMENTAL + lore: + - Shaping the very face of the minecraft + - world, dirt is a constant keeping us + - all grounded. + shards: [ 2,0,0,1,0,0,0,0,0 ] + +DIRT_PATH: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Walked all over + type: HUMAN + lore: + - Without complaint, a spirit allows + - itself to be walked all over so long + - as it feels it's helping others. + shards: [ 1,0,0,0,1,0,0,0,1 ] + +DISPENSER: + tier: 2 + elements: + - MECHANICAL + - HUMAN + story: + name: Fire! + type: MECHANICAL + lore: + - Being used as a weapon was once tiring but + - now nothing brings more satisfaction than + - firing at an enemy. + shards: [ 0,2,0,0,1,0,0,0,0 ] + +DRAGON_BREATH: + tier: 4 + elements: + - VOID + - ANIMAL + story: + name: Foul + type: VOID + lore: + - Encapsulated toxins from a scarred soul. + shards: [ 0,0,0,0,0,1,0,2,1 ] + +DRAGON_EGG: + tier: 5 + elements: + - VOID + - CELESTIAL + - ANIMAL + - PHILOSOPHICAL + story: + name: The End + type: VOID + lore: + - The finality of all things throngs + - from within this egg. + - Everything must end and all returns. + shards: [ 2,2,2,2,2,2,2,2,2 ] + +DRAGON_HEAD: + tier: 5 + elements: + - VOID + - ANIMAL + story: + name: A worthy sacrifice + type: VOID + lore: + - Her spirit unabashed, a sacrifice made and + - a spirit set free. + shards: [ 1,1,1,1,1,2,1,2,1 ] + +DRIED_KELP: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DRIED_KELP_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DRIPSTONE_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +DROPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EGG: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +ELYTRA: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EMERALD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EMERALD_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EMERALD_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +ENCHANTED_BOOK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +ENCHANTED_GOLDEN_APPLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +ENCHANTING_TABLE: + tier: 3 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Magi's Might + type: CELESTIAL + lore: + - Imbued with the pure essence of old + - Magi. While not usable by all, those + - who do are destined for greatness. + shards: [ 0,0,0,1,0,0,1,0,1 ] + author: OOOOMAGAAA + +ENDER_CHEST: + tier: 4 + elements: + - VOID + - MECHNICAL + story: + name: A Not-Endless Void + type: VOID + lore: + - This chest seems to hold the power + - of teleportation if when two are + - placed. It feels like a void but + - it always gets full + shards: [ 0,1,0,0,0,0,0,2,1 ] + author: supertechxter + +ENDER_EYE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +ENDER_PEARL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +END_CRYSTAL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +END_PORTAL_FRAME: + tier: 5 + elements: + - HUMAN + - MECHANICAL + - VOID + story: + name: Unbreaking + type: MECHANICAL + lore: + - Back in the early days, the Ancient Builders + - created a devistating being they needed to hide + - from. They built strongholds and eventually + - constructed these portals to make their escape. + shards: [ 0,2,0,1,1,0,0,2,0 ] + author: Ashton + +END_ROD: + tier: 2 + elements: + - CELESTIAL + - VOID + story: + name: Shining Bright + type: CELESTIAL + lore: + - Seemingly created by the Purpur engineers, + - it's unknown how the light is produced. + shards: [ 0,0,1,0,0,0,1,1,0 ] + author: Seggan + +END_STONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +END_STONE_BRICKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +END_STONE_BRICK_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +END_STONE_BRICK_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +END_STONE_BRICK_WALL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EXPERIENCE_BOTTLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EXPOSED_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EXPOSED_CUT_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EXPOSED_CUT_COPPER_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +EXPOSED_CUT_COPPER_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FARMLAND: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FEATHER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FERMENTED_SPIDER_EYE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FILLED_MAP: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FIREWORK_ROCKET: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FIREWORK_STAR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FIRE_CHARGE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FIRE_CORAL: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Fire) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +FIRE_CORAL_BLOCK: + tier: 2 + elements: + - PHILOSOPHICAL + - CELESTIAL + story: + name: Be'reef't (Fire) + type: PHILOSOPHICAL + lore: + - Ripped from it's habitat and molded into + - an unatural form for human purposes. + - This is a spirit ripped asunder. + shards: [ 0,0,0,1,0,0,1,0,1 ] + +FIRE_CORAL_FAN: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Fire Fan) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +FISHING_ROD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FLETCHING_TABLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FLINT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FLINT_AND_STEEL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FLOWERING_AZALEA: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FLOWERING_AZALEA_LEAVES: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FLOWER_BANNER_PATTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FLOWER_POT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FURNACE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +FURNACE_MINECART: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GHAST_TEAR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GILDED_BLACKSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLASS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLASS_BOTTLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLASS_PANE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLISTERING_MELON_SLICE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLOBE_BANNER_PATTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLOWSTONE: + tier: 2 + elements: + - ALCHEMICAL + story: + name: Irridecant + type: ALCHEMICAL + lore: + - Found only in the hottest of locaitons, + - it is still unknown how or why this + - stone glows. + shards: [ 0,0,2,0,0,0,1,0,0 ] + author: OOOOMAGAAA + +GLOWSTONE_DUST: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLOW_BERRIES: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLOW_INK_SAC: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLOW_ITEM_FRAME: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GLOW_LICHEN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLDEN_APPLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLDEN_AXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLDEN_BOOTS: + tier: 3 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Greave Greif (Gold) + type: PHILOSOPHICAL + lore: + - Like all armour, boots ant nothing more + - than to keep their wearer safe. Unforunatley + - they are overshadowed by other gear. + shards: [0,0,0,1,2,0,0,0,1] + +GOLDEN_CARROT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLDEN_CHESTPLATE: + tier: 3 + elements: + - HUMAN + - CELESTIAL + story: + name: The Great Defender (Gold) + type: HUMAN + lore: + - Every hit, scrape and pummel stopped by the + - chestplate reinforces it's magics by giving + - it purpose and drive. + shards: [0,1,0,1,2,0,1,0,0] + +GOLDEN_HELMET: + tier: 3 + elements: + - HUMAN + - VOID + story: + name: Head above the rest (Gold) + type: VOID + lore: + - A magicians most important tool is their own + - mind, any steps taken to protect that tool + - are vital and wise. + shards: [0,0,0,1,1,0,0,1,0] + +GOLDEN_HOE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLDEN_HORSE_ARMOR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLDEN_LEGGINGS: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Leggless (Gold) + type: CELESTIAL + lore: + - Like it's other armour brethren, leggings + - absorb crysta from their users in miniscule + - amounts over their tenure. + shards: [0,0,0,1,2,0,1,0,0] + +GOLDEN_PICKAXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLDEN_SHOVEL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLDEN_SWORD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLD_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLD_INGOT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLD_NUGGET: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GOLD_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GRANITE: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Coarse + type: ELEMENTAL + lore: + - As stone's prettier sibling, Granite is known + - for being big-headed and self-absorbed + shards: [ 2,0,1,1,0,0,0,0,0 ] + +GRANITE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Granite) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +GRANITE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Granite) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +GRANITE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Granite) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +GRASS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GRASS_BLOCK: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Start of the Chain + type: ANIMAL + lore: + - The start of the food web. Grass brings + - life into this world. + shards: [ 1,0,1,0,0,1,0,0,0 ] + +GRAVEL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GRAY_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Gray) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +GRAY_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Gray) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +GRAY_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Gray) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +GRAY_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Gray) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +GRAY_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Gray) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +GRAY_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Gray) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +GRAY_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Gray) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +GRAY_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Gray) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +GRAY_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Gray) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +GRAY_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Gray Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +GRAY_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Gray) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +GRAY_WOOL: + tier: 2 + elements: + - ANIMAL + story: + name: Soft! (Gray) + type: ANIMAL + lore: + - Fluffy and gray, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +GREEN_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Green) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +GREEN_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Green) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +GREEN_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Green) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +GREEN_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Green) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +GREEN_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Green) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +GREEN_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Green) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +GREEN_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Green) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +GREEN_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Green) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +GREEN_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Green) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +GREEN_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Green Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +GREEN_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Green) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +GREEN_WOOL: + tier: 2 + elements: + - ANIMAL + - HUMAN + story: + name: Soft! (Green) + type: ANIMAL + lore: + - Fluffy and green, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,1,2,0,0,0 ] + author: OOOOMAGAAA + +GRINDSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +GUNPOWDER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HANGING_ROOTS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HAY_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HEART_OF_THE_SEA: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HEAVY_WEIGHTED_PRESSURE_PLATE: + tier: 2 + elements: + - MECHANICAL + - ELEMENTAL + - VOID + story: + name: Really Under Pressure (Heavy) + type: VOID + lore: + - The only thing worse than being walked all + - over? Being called weighted at the same + - time + shards: [ 0,1,0,0,1,0,0,2,0 ] + +HONEYCOMB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HONEYCOMB_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HONEY_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HONEY_BOTTLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HOPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HOPPER_MINECART: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +HORN_CORAL: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Horn) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +HORN_CORAL_BLOCK: + tier: 2 + elements: + - PHILOSOPHICAL + - CELESTIAL + story: + name: Be'reef't (Horn) + type: PHILOSOPHICAL + lore: + - Ripped from it's habitat and molded into + - an unatural form for human purposes. + - This is a spirit ripped asunder. + shards: [ 0,0,0,1,0,0,1,0,1 ] + +HORN_CORAL_FAN: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Horn Fan) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +ICE: + tier: 1 + elements: + - ELEMENTAL + - CELESTIAL + story: + name: Slip'n'Slide + type: ELEMENTAL + lore: + - During formation, the spirit of this block + - wished for nothing more than to see people + - slip along it's face. Blue Ice was born + - from this sadistic desire. + shards: [ 1,0,1,0,0,0,0,0,0 ] + +INFESTED_CHISELED_STONE_BRICKS: + tier: 2 + elements: + - VOID + - ANIMAL + story: + name: Infested (Chiseled Stone) + type: VOId + lore: + - Bursting with the potential of the + - parasitic dweller. The magics of this + - block are drained over time to feed it's + - needs. + shards: [ 0,0,0,1,0,1,0,1,0 ] + +INFESTED_COBBLESTONE: + tier: 2 + elements: + - VOID + - ANIMAL + story: + name: Infested (Cobblestone) + type: VOId + lore: + - Bursting with the potential of the + - parasitic dweller. The magics of this + - block are drained over time to feed it's + - needs. + shards: [ 0,0,0,1,0,1,0,1,0 ] + +INFESTED_CRACKED_STONE_BRICKS: + tier: 2 + elements: + - VOID + - ANIMAL + story: + name: Infested (Cracked Stone) + type: VOId + lore: + - Bursting with the potential of the + - parasitic dweller. The magics of this + - block are drained over time to feed it's + - needs. + shards: [ 0,0,0,1,0,1,0,1,0 ] + +INFESTED_DEEPSLATE: + tier: 2 + elements: + - VOID + - ANIMAL + story: + name: Infested (Deepslate) + type: VOId + lore: + - Bursting with the potential of the + - parasitic dweller. The magics of this + - block are drained over time to feed it's + - needs. + shards: [ 0,0,0,1,0,1,0,1,0 ] + +INFESTED_MOSSY_STONE_BRICKS: + tier: 2 + elements: + - VOID + - ANIMAL + story: + name: Infested (Mossy Stone) + type: VOId + lore: + - Bursting with the potential of the + - parasitic dweller. The magics of this + - block are drained over time to feed it's + - needs. + shards: [ 0,0,0,1,0,1,0,1,0 ] + +INFESTED_STONE: + tier: 2 + elements: + - VOID + - ANIMAL + story: + name: Infested (Stone) + type: VOId + lore: + - Bursting with the potential of the + - parasitic dweller. The magics of this + - block are drained over time to feed it's + - needs. + shards: [ 0,0,0,1,0,1,0,1,0 ] + +INFESTED_STONE_BRICKS: + tier: 2 + elements: + - VOID + - ANIMAL + story: + name: Infested (Stone Bricks) + type: VOId + lore: + - Bursting with the potential of the + - parasitic dweller. The magics of this + - block are drained over time to feed it's + - needs. + shards: [ 0,0,0,1,0,1,0,1,0 ] + +INK_SAC: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_AXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_BARS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_BLOCK: + tier: 3 + elements: + - ELEMENTAL + - HUMAN + - MECHANICAL + story: + name: Technological Marvel + type: MECHANICAL + lore: + - Made from the earth, this block is + - used for machines and the furthering + - of technology. + shards: [ 1,2,0,0,1,0,0,0,0 ] + +IRON_BOOTS: + tier: 3 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Greave Greif (Iron) + type: PHILOSOPHICAL + lore: + - Like all armour, boots ant nothing more + - than to keep their wearer safe. Unforunatley + - they are overshadowed by other gear. + shards: [0,0,0,1,2,0,0,0,1] + +IRON_CHESTPLATE: + tier: 3 + elements: + - HUMAN + - CELESTIAL + story: + name: The Great Defender (Iron) + type: HUMAN + lore: + - Every hit, scrape and pummel stopped by the + - chestplate reinforces it's magics by giving + - it purpose and drive. + shards: [0,1,0,1,2,0,1,0,0] + +IRON_DOOR: + tier: 2 + elements: + - HUMAN + - MECHANICAL + - CELESTIAL + story: + name: Stronghold + type: HUMAN + lore: + - Protection again all indruders gives + - this item purpose and drive. + shards: [ 0,2,0,0,1,0,1,0,1 ] + +IRON_HELMET: + tier: 3 + elements: + - HUMAN + - VOID + story: + name: Head above the rest (Iron) + type: VOID + lore: + - A magicians most important tool is their own + - mind, any steps taken to protect that tool + - are vital and wise. + shards: [0,0,0,1,1,0,0,1,0] + +IRON_HOE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_HORSE_ARMOR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_INGOT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_LEGGINGS: + tier: 3 + elements: + - HUMAN + - CELESTIAL + story: + name: Leggless (Iron) + type: CELESTIAL + lore: + - Like it's other armour brethren, leggings + - absorb crysta from their users in miniscule + - amounts over their tenure. + shards: [0,0,0,1,2,0,1,0,0] + +IRON_NUGGET: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_PICKAXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_SHOVEL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_SWORD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +IRON_TRAPDOOR: + tier: 2 + elements: + - HUMAN + - MECHANICAL + - VOID + story: + name: Sent to the depths + type: VOID + lore: + - Controlled from afar to drop those + - above on command + shards: [ 0,1,0,0,1,0,0,2,0 ] + +ITEM_FRAME: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +JACK_O_LANTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +JUKEBOX: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +JUNGLE_BOAT: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Ship-shape (Jungle) + type: PHILOSOPHICAL + lore: + - Live in the sunshine, swim the sea + and drink in the wild air + shards: [ 1,0,0,0,1,0,0,0,2 ] + +JUNGLE_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Depressed (Jungle) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 0,1,0,0,2,0,0,1,0 ] + +JUNGLE_DOOR: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Gateway (Jungle) + type: HUMAN + lore: + - Every enterance is also an exit. + - Doors protects from the outside but + - dont let them keep you in! + shards: [ 0,2,0,0,1,0,0,0,1 ] + +JUNGLE_FENCE: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Livestock (Jungle) + type: ANIMAL + lore: + - Nothing brings more joy to a fence + - than keeping your livestock safe. + shards: [ 0,0,0,0,1,2,0,0,0 ] + +JUNGLE_FENCE_GATE: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - ANIMAL + story: + name: Gate (Jungle) + type: MECHANICAL + lore: + - Still round the corner there may wait, + - A new road or a secret gate. + shards: [ 0,2,0,0,1,1,0,0,0 ] + author: J. R. R. Tolkien + +JUNGLE_LEAVES: + tier: 1 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Leaf me alone! (Jungle) + type: PHILOSOPHICAL + lore: + - Gently swaying in a cool breeze, + - Leaves want nothing more than to be + - left alone to their thoughts. + shards: [ 1,0,0,1,0,0,0,0,1 ] + +JUNGLE_LOG: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Log (Jungle) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +JUNGLE_PLANKS: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Walk the Plank (Jungle) + type: HUMAN + lore: + - The first step on your crafting journey + - driving new players forwards. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +JUNGLE_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Jungle) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,2,0,0,1,0,0,1,0 ] + +JUNGLE_SAPLING: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Growth (Jungle) + type: ELEMENTAL + lore: + - A youthful spirit empowered to grow + - into a mighty tree + shards: [ 1,0,1,1,0,1,0,0,0 ] + +JUNGLE_SIGN: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Signed (Jungle) + type: PHILOSOPHICAL + lore: + - Imbued with the thoughts of those + - authors + shards: [ 0,0,0,0,1,0,1,1,1 ] + +JUNGLE_SLAB: + tier: 1 + elements: + - HUMAN + story: + name: A cut below (Jungle) + type: HUMAN + lore: + - Ripped in half and divided from + - self. A soul torn asunder + shards: [ 1,1,0,0,1,0,0,0,0 ] + +JUNGLE_STAIRS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + story: + name: Arise (Jungle) + type: CELESTIAL + lore: + - Lives to feel the joy of others being + - raised to new heights. + shards: [ 0,1,0,0,1,0,1,0,1 ] + +JUNGLE_TRAPDOOR: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: To the Pits (Jungle) + type: VOID + lore: + - Awaiting the perfect moment to drop an + - unsuspecting person to their end + shards: [ 0,1,0,0,1,0,0,1,0 ] + +JUNGLE_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Wood (Jungle) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +KELP: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +KNOWLEDGE_BOOK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LADDER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LANTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LAPIS_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LAPIS_LAZULI: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LAPIS_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LARGE_AMETHYST_BUD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LARGE_FERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LAVA_BUCKET: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - VOID + story: + name: Sturdy (Lava) + type: HUMAN + lore: + - Persistent, constant and driven to + - hold anything the user needs. + shards: [ 1,1,0,0,2,0,0,1,0 ] + +LEAD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LEATHER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LEATHER_BOOTS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Greave Greif (Leather) + type: PHILOSOPHICAL + lore: + - Like all armour, boots ant nothing more + - than to keep their wearer safe. Unforunatley + - they are overshadowed by other gear. + shards: [0,0,0,1,2,0,0,0,1] + +LEATHER_CHESTPLATE: + tier: 1 + elements: + - HUMAN + - CELESTIAL + story: + name: The Great Defender (Leather) + type: HUMAN + lore: + - Every hit, scrape and pummel stopped by the + - chestplate reinforces it's magics by giving + - it purpose and drive. + shards: [0,1,0,1,2,0,1,0,0] + +LEATHER_HELMET: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: Head above the rest (Leather) + type: VOID + lore: + - A magicians most important tool is their own + - mind, any steps taken to protect that tool + - are vital and wise. + shards: [0,0,0,1,1,0,0,1,0] + +LEATHER_HORSE_ARMOR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LEATHER_LEGGINGS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + story: + name: Leggless (Leather) + type: CELESTIAL + lore: + - Like it's other armour brethren, leggings + - absorb crysta from their users in miniscule + - amounts over their tenure. + shards: [0,0,0,1,2,0,1,0,0] + +LECTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LEVER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LIGHT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LIGHTNING_ROD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LIGHT_BLUE_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Light Blue) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +LIGHT_BLUE_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Light Blue) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +LIGHT_BLUE_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Light Blue) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +LIGHT_BLUE_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Light Blue) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +LIGHT_BLUE_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Light Blue) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +LIGHT_BLUE_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Light Blue) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +LIGHT_BLUE_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Light Blue) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +LIGHT_BLUE_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Mistaken identity + type: PHILOSOPHICAL + lore: + - Some mistake this for an + - overpowered power generation + - device + shards: [ 0,0,0,0,1,0,0,0,2 ] + author: Seggan + +LIGHT_BLUE_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Light Blue) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +LIGHT_BLUE_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Light Blue Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +LIGHT_BLUE_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Light Blue) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +LIGHT_BLUE_WOOL: + tier: 2 + elements: + - ANIMAL + story: + name: Soft! (Light Blue) + type: ANIMAL + lore: + - Fluffy and light blue, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +LIGHT_GRAY_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Light Gray) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +LIGHT_GRAY_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Light Gray) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +LIGHT_GRAY_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Light Gray) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +LIGHT_GRAY_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Light Gray) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +LIGHT_GRAY_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Light Gray) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +LIGHT_GRAY_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Light Gray) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +LIGHT_GRAY_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Light Gray) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +LIGHT_GRAY_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Light Gray) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +LIGHT_GRAY_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Light Gray) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +LIGHT_GRAY_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Light Gray Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +LIGHT_GRAY_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Light Gray) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +LIGHT_GRAY_WOOL: + tier: 2 + elements: + - ANIMAL + story: + name: Soft! (Light Gray) + type: ANIMAL + lore: + - Fluffy and light gray, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +LIGHT_WEIGHTED_PRESSURE_PLATE: + tier: 2 + elements: + - MECHANICAL + - ELEMENTAL + - VOID + story: + name: Really Under Pressure (Light) + type: VOID + lore: + - The only thing worse than being walked all + - over? Being called weighted at the same + - time + shards: [ 0,1,0,0,1,0,0,2,0 ] + +LILAC: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Lilac) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +LILY_OF_THE_VALLEY: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Lily of the Valley) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,1,0,0 ] + +LILY_PAD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LIME_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Lime) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +LIME_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Lime) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +LIME_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Lime) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +LIME_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Lime) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +LIME_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Lime) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +LIME_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Lime) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +LIME_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Lime) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +LIME_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Lime) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +LIME_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Lime) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +LIME_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Lime Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +LIME_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Lime) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +LIME_WOOL: + tier: 2 + elements: + - ANIMAL + - CELESTIAL + story: + name: Soft! (Lime) + type: ANIMAL + lore: + - Fluffy and lime, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,1,0,0 ] + author: OOOOMAGAAA + +LINGERING_POTION: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LODESTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +LOOM: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MAGENTA_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Magenta) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +MAGENTA_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Magenta) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +MAGENTA_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Magenta) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +MAGENTA_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Magenta) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +MAGENTA_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Magenta) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +MAGENTA_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Magenta) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +MAGENTA_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Magenta) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +MAGENTA_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Magenta) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +MAGENTA_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Magenta) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +MAGENTA_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Magenta Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +MAGENTA_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Magenta) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +MAGENTA_WOOL: + tier: 2 + elements: + - ANIMAL + - ALCHEMICAL + story: + name: Soft! (Magenta) + type: ANIMAL + lore: + - Fluffy and magenta, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +MAGMA_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MAGMA_CREAM: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MAP: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MEDIUM_AMETHYST_BUD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MELON: + tier: 1 + elements: + - HUMAN + - ANIMAL + - CELESTIAL + story: + name: Farmers Delight (Melon) + type: HUMAN + lore: + - With every sprout, leaf and root this + - item gives joy and nourishment to all + shards: [ 0,0,0,0,1,1,1,0,0 ] + +MELON_SEEDS: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Untapped Potential (Melon) + type: HUMAN + lore: + - Busting with innate magic drawn in + - due to the raw and untapped potential + - of this seed. + shards: [ 0,0,0,0,1,1,1,0,0 ] + +MELON_SLICE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MILK_BUCKET: + tier: 2 + elements: + - HUMAN + - VOID + - ANIMAL + story: + name: Sturdy (Milk) + type: HUMAN + lore: + - Persistent, constant and driven to + - hold anything the user needs. + shards: [ 0,1,0,0,2,1,0,1,0 ] + +MINECART: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MOJANG_BANNER_PATTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MOSSY_COBBLESTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MOSSY_COBBLESTONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Mossy Cobblestone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +MOSSY_COBBLESTONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Mossy Cobblestone) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +MOSSY_COBBLESTONE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Mossy Cobblestone) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +MOSSY_STONE_BRICKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MOSSY_STONE_BRICK_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Mossy Stone Brick) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +MOSSY_STONE_BRICK_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Mossy Stone Brick) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +MOSSY_STONE_BRICK_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Mossy Stone Brick) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +MOSS_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MOSS_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + - ELEMENTAL + story: + name: Trampled (Moss) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 1,1,0,0,1,0,0,0,1 ] + +MUSHROOM_STEM: + tier: 2 + elements: + - ANIMAL + story: + name: Giganticism (Stem) + type: ANIMAL + lore: + - Through an odd quirk of nature, a mushroom + - can have it's entire crystamae deposit ignited + - within a single moment allowing something small + - to grow into something giant. + shards: [ 0,0,1,1,0,1,0,0,0 ] + +MUSHROOM_STEW: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Hearty (Mushroom) + type: HUMAN + lore: + - Warming to both body and soul. + - Infers it's latent crysta to those + - drinking it. + shards: [ 0,0,0,0,2,1,0,0,0 ] + +MUSIC_DISC_11: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_13: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_BLOCKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_CAT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_CHIRP: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_FAR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_MALL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_MELLOHI: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_PIGSTEP: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_STAL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_STRAD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_WAIT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUSIC_DISC_WARD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +MUTTON: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Raw (Mutton) + type: ANIMAL + lore: + - Packed with unused potential. + - Longs for nothing more than a + - nice fire + shards: [ 0,0,0,0,1,1,0,0,1 ] + +MYCELIUM: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NAME_TAG: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NAUTILUS_SHELL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHERITE_AXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHERITE_BLOCK: + tier: 5 + elements: + - HUMAN + - CELESTIAL + story: + name: Showing Off + type: HUMAN + lore: + - A block made only to show off insane wealth + - After the first was made, it sparked wars, + - treachery and deceipt. + shards: [ 0,0,0,0,2,0,1,0,1 ] + author: ashton + +NETHERITE_BOOTS: + tier: 5 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Greave Greif (Netherite) + type: PHILOSOPHICAL + lore: + - Like all armour, boots ant nothing more + - than to keep their wearer safe. Unforunatley + - they are overshadowed by other gear. + shards: [0,0,0,1,2,0,0,0,1] + +NETHERITE_CHESTPLATE: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: The Great Defender (Netherite) + type: HUMAN + lore: + - Every hit, scrape and pummel stopped by the + - chestplate reinforces it's magics by giving + - it purpose and drive. + shards: [0,1,0,1,2,0,1,0,0] + +NETHERITE_HELMET: + tier: 5 + elements: + - HUMAN + - VOID + story: + name: Head above the rest (Netherite) + type: VOID + lore: + - A magicians most important tool is their own + - mind, any steps taken to protect that tool + - are vital and wise. + shards: [0,0,0,1,1,0,0,1,0] + +NETHERITE_HOE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHERITE_INGOT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHERITE_LEGGINGS: + tier: 5 + elements: + - HUMAN + - CELESTIAL + story: + name: Leggless (Netherite) + type: CELESTIAL + lore: + - Like it's other armour brethren, leggings + - absorb crysta from their users in miniscule + - amounts over their tenure. + shards: [0,0,0,1,2,0,1,0,0] + +NETHERITE_PICKAXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHERITE_SCRAP: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHERITE_SHOVEL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHERITE_SWORD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHERRACK: + tier: 1 + elements: + - ELEMENTAL + story: + name: Instability + type: ELEMENTAL + lore: + - It is unknown how such a soft rock can + - support the scructure of the Nether. + shards: [ 1,0,1,0,0,0,0,0,0 ] + +NETHER_BRICK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHER_BRICKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHER_BRICK_FENCE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHER_BRICK_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + - VOID + story: + name: Half Pint (Nether Brick) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,1,0 ] + +NETHER_BRICK_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Nether Brick) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +NETHER_BRICK_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Nether Brick) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +NETHER_GOLD_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHER_QUARTZ_ORE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHER_SPROUTS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHER_STAR: + tier: 5 + elements: + - VOID + story: + name: Crystaline Nether + type: VOID + lore: + - Not all magic fits into the Crystamae + - framework, the sheer amount of void from + - the Wither is of this type. The Nether + - Star encapsulates it all. + shards: [1,0,0,1,1,1,0,2,1] + +NETHER_WART: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NETHER_WART_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +NOTE_BLOCK: + tier: 2 + elements: + - HUMAN + - CELESTIAL + - PHILOSOPHICAL + story: + name: Without + type: PHILOSOPHICAL + lore: + - A life without music would + - hardly be a life at all + shards: [ 0,1,0,0,1,0,0,0,1 ] + +OAK_BOAT: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Ship-shape (Oak) + type: PHILOSOPHICAL + lore: + - Live in the sunshine, swim the sea + and drink in the wild air + shards: [ 1,0,0,0,1,0,0,0,2 ] + +OAK_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Depressed (Oak) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 0,1,0,0,2,0,0,1,0 ] + +OAK_DOOR: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Gateway + type: HUMAN + lore: + - Every enterance is also an exit. + - Doors protects from the outside but + - dont let them keep you in! + shards: [ 0,2,0,0,1,0,0,0,1 ] + +OAK_FENCE: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Livestock (Oak) + type: ANIMAL + lore: + - Nothing brings more joy to a fence + - than keeping your livestock safe. + shards: [ 0,0,0,0,1,2,0,0,0 ] + +OAK_FENCE_GATE: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - ANIMAL + story: + name: Gate (Oak) + type: MECHANICAL + lore: + - Still round the corner there may wait, + - A new road or a secret gate. + shards: [ 0,2,0,0,1,1,0,0,0 ] + author: J. R. R. Tolkien + +OAK_LEAVES: + tier: 1 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Leaf me alone! (Oak) + type: PHILOSOPHICAL + lore: + - Gently swaying in a cool breeze, + - Leaves want nothing more than to be + - left alone to their thoughts. + shards: [ 1,0,0,1,0,0,0,0,1 ] + +OAK_LOG: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Log (Oak) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +OAK_PLANKS: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Walk the Plank (Oak) + type: HUMAN + lore: + - The first step on your crafting journey + - driving new players forwards. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +OAK_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Oak) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,2,0,0,1,0,0,1,0 ] + +OAK_SAPLING: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Growth (Oak) + type: ELEMENTAL + lore: + - A youthful spirit empowered to grow + - into a mighty tree + shards: [ 1,0,1,1,0,1,0,0,0 ] + +OAK_SIGN: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Signed (Oak) + type: PHILOSOPHICAL + lore: + - Imbued with the thoughts of those + - authors + shards: [ 0,0,0,0,1,0,1,1,1 ] + +OAK_SLAB: + tier: 1 + elements: + - HUMAN + story: + name: A cut below (Oak) + type: HUMAN + lore: + - Ripped in half and divided from + - self. A soul torn asunder + shards: [ 1,1,0,0,1,0,0,0,0 ] + +OAK_STAIRS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + story: + name: Arise (Oak) + type: CELESTIAL + lore: + - Lives to feel the joy of others being + - raised to new heights. + shards: [ 0,1,0,0,1,0,1,0,1 ] + +OAK_TRAPDOOR: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: To the Pits (Oak) + type: VOID + lore: + - Awaiting the perfect moment to drop an + - unsuspecting person to their end + shards: [ 0,1,0,0,1,0,0,1,0 ] + +OAK_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Wood (Oak) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +OBSERVER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +OBSIDIAN: + tier: 2 + elements: + - HISTORICAL + - VOID + story: + name: Anger + type: VOID + lore: + - Having waited so long underground in anger, + - it now manages to rise above the ground + - to potentially reveal its secrets. + shards: [ 1,0,0,1,0,0,0,1,0 ] + author: TerslenK + +ORANGE_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Orange) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +ORANGE_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Orange) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +ORANGE_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Orange) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +ORANGE_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Orange) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +ORANGE_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Orange) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +ORANGE_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Orange) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +ORANGE_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Orange) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +ORANGE_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Orange) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +ORANGE_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Orange) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +ORANGE_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Orange Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +ORANGE_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Orange) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +ORANGE_TULIP: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Orange Tulip) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +ORANGE_WOOL: + tier: 2 + elements: + - ANIMAL + - MECHANICAL + story: + name: Soft! (Orange) + type: ANIMAL + lore: + - Fluffy and orange, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,1,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +OXEYE_DAISY: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Oxeye Daisy) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +OXIDIZED_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +OXIDIZED_CUT_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +OXIDIZED_CUT_COPPER_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +OXIDIZED_CUT_COPPER_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PACKED_ICE: + tier: 2 + elements: + - ELEMENTAL + - CELESTIAL + story: + name: Slip'n'Slide (Packed Ice) + type: ELEMENTAL + lore: + - During formation, the spirit of this block + - wished for nothing more than to see people + - slip along it's face. Blue Ice was born + - from this sadistic desire. + shards: [ 2,0,1,0,0,0,0,0,0 ] + +PAINTING: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PAPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PEONY: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Peony) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +PHANTOM_MEMBRANE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PIGLIN_BANNER_PATTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PINK_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Pink) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +PINK_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Pink) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +PINK_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Pink) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +PINK_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Pink) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +PINK_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Pink) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +PINK_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Pink) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +PINK_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Pink) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +PINK_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Pink) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +PINK_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Pink) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +PINK_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Pink Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +PINK_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Pink) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +PINK_TULIP: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Pink Tulip) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +PINK_WOOL: + tier: 2 + elements: + - ANIMAL + story: + name: Soft! (Pink) + type: ANIMAL + lore: + - Fluffy and pink, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +PISTON: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PLAYER_HEAD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PODZOL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POINTED_DRIPSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POISONOUS_POTATO: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POLISHED_ANDESITE: + tier: 1 + elements: + - HUMAN + - ALCHEMICAL + story: + name: Pure Joy + type: HUMAN + lore: + - An epic sadness is converted to pure + - joy. + shards: [ 2,0,0,1,2,0,0,0,1 ] + +POLISHED_ANDESITE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Polished Andesite) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +POLISHED_ANDESITE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Polished Andesite) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +POLISHED_BASALT: + tier: 2 + elements: + - MECHANICAL + - HUMAN + story: + name: Time to Gleam (Basalt) + type: HUMAN + lore: + - With a bit of love, any block can + - be made beautiful. Even those block + - left behind are drawn to the fore. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +POLISHED_BLACKSTONE: + tier: 2 + elements: + - MECHANICAL + - HUMAN + story: + name: Time to Gleam (Blackstone) + type: HUMAN + lore: + - With a bit of love, any block can + - be made beautiful. Even those block + - left behind are drawn to the fore. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +POLISHED_BLACKSTONE_BRICKS: + tier: 2 + elements: + - MECHANICAL + - HUMAN + story: + name: Time to Gleam (Blackstone Bricks) + type: HUMAN + lore: + - With a bit of love, any block can + - be made beautiful. Even those block + - left behind are drawn to the fore. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +POLISHED_BLACKSTONE_BRICK_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Polished Blackstone Brick) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +POLISHED_BLACKSTONE_BRICK_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Polished Blackstone Brick) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +POLISHED_BLACKSTONE_BRICK_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Polished Blackstone Brick) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +POLISHED_BLACKSTONE_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Depressed (Polished Blackstone) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 1,1,0,0,2,0,0,0,0 ] + +POLISHED_BLACKSTONE_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Polished Blackstone) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,2,0,0,1,0,0,1,0 ] + +POLISHED_BLACKSTONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Polished Blackstone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +POLISHED_BLACKSTONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Polished Blackstone) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +POLISHED_BLACKSTONE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Polished Blackstone) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +POLISHED_DEEPSLATE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POLISHED_DEEPSLATE_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POLISHED_DEEPSLATE_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POLISHED_DEEPSLATE_WALL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POLISHED_DIORITE: + tier: 1 + elements: + - HUMAN + - ALCHEMICAL + story: + name: Polished + type: HUMAN + lore: + - So you can actually polish a turd? + shards: [ 2,0,0,1,2,0,0,0,1 ] + +POLISHED_DIORITE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Polished Diorite) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +POLISHED_DIORITE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Polished Diorite) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +POLISHED_GRANITE: + tier: 2 + elements: + - HUMAN + - ALCHEMICAL + story: + name: Lacquered + type: HUMAN + lore: + - Decorative and pristine, used for the finest of builds + shards: [ 2,0,0,1,2,0,0,0,1 ] + +POLISHED_GRANITE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Polished Granite) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +POLISHED_GRANITE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Polished Granite) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +POPPED_CHORUS_FRUIT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POPPY: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Poppy) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +PORKCHOP: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Raw (Pork) + type: ANIMAL + lore: + - Packed with unused potential. + - Longs for nothing more than a + - nice fire + shards: [ 0,0,0,0,1,1,0,0,1 ] + +POTATO: + tier: 1 + elements: + - HUMAN + - ANIMAL + - CELESTIAL + story: + name: Farmers Delight (Potato) + type: HUMAN + lore: + - With every sprout, leaf and root this + - item gives joy and nourishment to all + shards: [ 0,0,0,0,1,1,1,0,0 ] +POTION: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +POWDER_SNOW_BUCKET: + tier: 2 + elements: + - HUMAN + - VOID + - CELESTIAL + story: + name: Sturdy (Snow) + type: HUMAN + lore: + - Persistent, constant and driven to + - hold anything the user needs. + shards: [ 0,1,0,0,2,0,1,1,0 ] + +POWERED_RAIL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE_BRICKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE_BRICK_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE_BRICK_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE_CRYSTALS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE_SHARD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PRISMARINE_WALL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PUFFERFISH: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PUFFERFISH_BUCKET: + tier: 2 + elements: + - HUMAN + - ANIMAL + story: + name: Small but Cosy! (Pufferfish) + type: ANIMAL + lore: + - Even though most organisms hate + - being locked up, the pufferfish + - loves it.. for now + shards: [ 1,0,0,0,1,1,0,0,0 ] + author: Seggan + +PUMPKIN: + tier: 1 + elements: + - HUMAN + - ANIMAL + - CELESTIAL + story: + name: Farmers Delight (Pumpkin) + type: HUMAN + lore: + - With every sprout, leaf and root this + - item gives joy and nourishment to all + shards: [ 0,0,0,0,1,1,1,0,0 ] + +PUMPKIN_PIE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PUMPKIN_SEEDS: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Untapped Potential (Pumpkin) + type: HUMAN + lore: + - Busting with innate magic drawn in + - due to the raw and untapped potential + - of this seed. + shards: [ 0,0,0,0,1,1,1,0,0 ] + +PURPLE_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Purple) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +PURPLE_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Purple) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +PURPLE_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Purple) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +PURPLE_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Purple) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +PURPLE_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Purple) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +PURPLE_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Purple) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +PURPLE_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Purple) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +PURPLE_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Purple) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +PURPLE_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Purple) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +PURPLE_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Purple Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +PURPLE_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Purple) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +PURPLE_WOOL: + tier: 2 + elements: + - ANIMAL + story: + name: Soft! (Purple) + type: ANIMAL + lore: + - Fluffy and purple, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +PURPUR_BLOCK: + tier: 2 + elements: + - HUMAN + - VOID + - HISTORICAL + story: + name: Ancient Remnants + type: HISTORICAL + lore: + - This is the only evidence left of the + - long-lost Ancient Builders who created + - it + shards: [ 0,0,0,1,1,0,0,1,0 ] + author: Seggan + +PURPUR_PILLAR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PURPUR_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +PURPUR_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +QUARTZ: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +QUARTZ_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +QUARTZ_BRICKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +QUARTZ_PILLAR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +QUARTZ_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +QUARTZ_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RABBIT: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Raw (Rabbit) + type: ANIMAL + lore: + - Packed with unused potential. + - Longs for nothing more than a + - nice fire + shards: [ 0,0,0,0,1,1,0,0,1 ] + +RABBIT_FOOT: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Feeling Lucky + type: CELESTIAL + lore: + - It's unknown how or why, but a + - rabbit's foot draws in nearby + - crystamae to form literal luck for + - the holder + shards: [ 0,0,0,0,0,1,2,0,1 ] + +RABBIT_HIDE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RABBIT_STEW: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Hearty (Rabbit) + type: HUMAN + lore: + - Warming to both body and soul. + - Infers it's latent crysta to those + - drinking it. + shards: [ 0,0,0,0,2,1,0,0,0 ] + +RAIL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RAW_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RAW_COPPER_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RAW_GOLD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RAW_GOLD_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RAW_IRON: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RAW_IRON_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +REDSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +REDSTONE_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +REDSTONE_LAMP: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +REDSTONE_ORE: + tier: 2 + elements: + - ELEMENTAL + - MECHANICAL + story: + name: A new age + type: ELEMENTAL + lore: + - When first discovered. human history completely + - changed, making it possible to create circuits, + - machines and the birth of electricity. + shards: [ 2,1,0,0,0,0,0,0,0 ] + author: TerslenK + +REDSTONE_TORCH: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RED_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Red) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +RED_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Red) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +RED_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Red) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +RED_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Red) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +RED_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Red) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +RED_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Red) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +RED_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Red) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +RED_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Red) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +RED_MUSHROOM: + tier: 2 + elements: + - ANIMAL + story: + name: Fungal Frugility (Red) + type: ANIMAL + lore: + - While slow, it's strength lies in it's + - simplicity and ability to thrive almost + - anywhere. + shards: [ 0,0,1,1,0,1,0,0,0 ] + +RED_MUSHROOM_BLOCK: + tier: 2 + elements: + - ANIMAL + story: + name: Giganticism (Red) + type: ANIMAL + lore: + - Through an odd quirk of nature, a mushroom + - can have it's entire crystamae deposit ignited + - within a single moment allowing something small + - to grow into something giant. + shards: [ 0,0,1,1,0,1,0,0,0 ] + +RED_NETHER_BRICKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RED_NETHER_BRICK_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Red Nether Brick) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +RED_NETHER_BRICK_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Red Nether Brick) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +RED_NETHER_BRICK_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Red Nether Brick) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +RED_SAND: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RED_SANDSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RED_SANDSTONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Red Sandstone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +RED_SANDSTONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Red Sandstone) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +RED_SANDSTONE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Red Sandstone) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +RED_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Red) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +RED_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Red Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +RED_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Red) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +RED_TULIP: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Red Tulip) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +RED_WOOL: + tier: 2 + elements: + - ANIMAL + story: + name: Soft! (Red) + type: ANIMAL + lore: + - Fluffy and red, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +REPEATER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +RESPAWN_ANCHOR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +ROOTED_DIRT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +ROSE_BUSH: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Rose Bush) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +ROTTEN_FLESH: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SADDLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SALMON: + tier: 1 + elements: + - ANIMAL + - HUMAN + story: + name: Raw (Salmon) + type: ANIMAL + lore: + - Packed with unused potential. + - Longs for nothing more than a + - nice fire + shards: [ 0,0,0,0,1,1,0,0,1 ] +SALMON_BUCKET: + tier: 2 + elements: + - HUMAN + - ANIMAL + story: + name: Small but Cosy! (Salmon) + type: ANIMAL + lore: + - Even though most organisms hate + - being locked up, the salmon + - loves it.. for now + shards: [ 1,0,0,0,1,1,0,0,0 ] + author: Seggan + +SAND: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SANDSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SANDSTONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Sandstone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +SANDSTONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Sandstone) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +SANDSTONE_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Sandstone) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +SCAFFOLDING: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SCULK_SENSOR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SCUTE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SEAGRASS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SEA_LANTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SEA_PICKLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SHEARS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SHIELD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SHROOMLIGHT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SHULKER_SHELL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SKELETON_SKULL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SKULL_BANNER_PATTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SLIME_BALL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SLIME_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMALL_AMETHYST_BUD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMALL_DRIPLEAF: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMITHING_TABLE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMOKER: + tier: 2 + elements: + - MECHANICAL + - HUMAN + - ANIMAL + story: + name: Get Smoked + type: MECHANICAL + lore: + - A furnace dreams day in, day out, of + - being promoted. The Smoker is + - a Furnace's dream. + shards: [ 0,1,0,0,1,1,0,0,0 ] + +SMOOTH_BASALT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMOOTH_QUARTZ: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMOOTH_QUARTZ_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMOOTH_QUARTZ_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMOOTH_RED_SANDSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMOOTH_RED_SANDSTONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Smooth Red Sandstone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +SMOOTH_RED_SANDSTONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Smooth Red Sandstone) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +SMOOTH_SANDSTONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMOOTH_SANDSTONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Smooth Sandstone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +SMOOTH_SANDSTONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Smooth Sandstone) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +SMOOTH_STONE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SMOOTH_STONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Smooth Stone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +SNOW: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SNOWBALL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SNOW_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SOUL_CAMPFIRE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SOUL_LANTERN: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SOUL_SAND: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Torn Apart (Sand) + type: HISTORICAL + lore: + - The souls of those before you, perhaps + - ripped from the mysterious Ancient Builders? + shards: [ 1,0,0,1,0,0,0,0,0 ] + author: Seggan + +SOUL_SOIL: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Torn Apart (Soil) + type: HISTORICAL + lore: + - The souls of those before you, perhaps + - ripped from the mysterious Ancient Builders? + shards: [ 1,0,0,1,0,0,0,0,0 ] + author: Seggan + +SOUL_TORCH: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SPAWNER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SPECTRAL_ARROW: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SPIDER_EYE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SPLASH_POTION: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SPONGE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SPORE_BLOSSOM: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SPRUCE_BOAT: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Ship-shape (Spruce) + type: PHILOSOPHICAL + lore: + - Live in the sunshine, swim the sea + and drink in the wild air + shards: [ 1,0,0,0,1,0,0,0,2 ] + +SPRUCE_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Depressed (Spruce) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 0,1,0,0,2,0,0,1,0 ] + +SPRUCE_DOOR: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Gateway + type: HUMAN + lore: + - Every enterance is also an exit. + - Doors protects from the outside but + - dont let them keep you in! + shards: [ 0,2,0,0,1,0,0,0,1 ] + +SPRUCE_FENCE: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Livestock (Spruce) + type: ANIMAL + lore: + - Nothing brings more joy to a fence + - than keeping your livestock safe. + shards: [ 0,0,0,0,1,2,0,0,0 ] + +SPRUCE_FENCE_GATE: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - ANIMAL + story: + name: Gate (Spruce) + type: MECHANICAL + lore: + - Still round the corner there may wait, + - A new road or a secret gate. + shards: [ 0,2,0,0,1,1,0,0,0 ] + author: J. R. R. Tolkien + +SPRUCE_LEAVES: + tier: 1 + elements: + - ELEMENTAL + - PHILOSOPHICAL + story: + name: Leaf me alone! (Spruce) + type: PHILOSOPHICAL + lore: + - Gently swaying in a cool breeze, + - Leaves want nothing more than to be + - left alone to their thoughts. + shards: [ 1,0,0,1,0,0,0,0,1 ] + +SPRUCE_LOG: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Log (Spruce) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +SPRUCE_PLANKS: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Walk the Plank (Spruce) + type: HUMAN + lore: + - The first step on your crafting journey + - driving new players forwards. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +SPRUCE_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Spruce) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,2,0,0,1,0,0,1,0 ] + +SPRUCE_SAPLING: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Growth + type: ELEMENTAL + lore: + - A youthful spirit empowered to grow + - into a mighty tree + shards: [ 1,0,1,1,0,1,0,0,0 ] + +SPRUCE_SIGN: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Signed (Spruce) + type: PHILOSOPHICAL + lore: + - Imbued with the thoughts of those + - authors + shards: [ 0,0,0,0,1,0,1,1,1 ] + +SPRUCE_SLAB: + tier: 1 + elements: + - HUMAN + story: + name: A cut below (Spruce) + type: HUMAN + lore: + - Ripped in half and divided from + - self. A soul torn asunder + shards: [ 1,1,0,0,1,0,0,0,0 ] + +SPRUCE_STAIRS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + story: + name: Arise (Spruce) + type: CELESTIAL + lore: + - Lives to feel the joy of others being + - raised to new heights. + shards: [ 0,1,0,0,1,0,1,0,1 ] + +SPRUCE_TRAPDOOR: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: To the Pits (Spruce) + type: VOID + lore: + - Awaiting the perfect moment to drop an + - unsuspecting person to their end + shards: [ 0,1,0,0,1,0,0,1,0 ] + +SPRUCE_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Punching Trees Gives Me Wood (Spruce) + type: ELEMENTAL + lore: + - Every adventure begins with a good tree + - punch + shards: [ 2,0,0,1,1,0,0,0,0 ] + +SPYGLASS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STICK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STICKY_PISTON: + tier: 3 + elements: + - MECHANICAL + - HUMAN + - CELESTIAL + story: + name: Stuck in a rut + type: MECHANICAL + lore: + - Constantly working hard to move all + - manner of blocks, the Sticky Piston is + - cursed to push and retrieve the same block + - without end. + shards: [ 0,1,0,0,1,0,1,0,1 ] + +STONE: + tier: 1 + elements: + - ELEMENTAL + - HISTORICAL + story: + name: Resolute + type: ELEMENTAL + lore: + - Stone is the resolute backbone of the world's + - makeup. Ever present and everlasting. + shards: [ 2,0,1,1,0,0,0,0,0 ] + +STONECUTTER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STONE_AXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STONE_BRICKS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STONE_BRICK_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Stone Brick) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STONE_BRICK_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Stone Brick) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +STONE_BRICK_WALL: + tier: 1 + elements: + - CELESTIAL + - HISTORICAL + story: + name: Beating down the walls (Stone Brick) + type: HISTORICAL + lore: + - Protecting for years working to keep + - those inside save and sound. + shards: [ 0,0,0,1,1,0,1,0,0 ] + +STONE_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + story: + name: Depressed (Stone) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 1,1,0,0,2,0,0,0,0 ] + +STONE_HOE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STONE_PICKAXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STONE_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + - ELEMENTAL + story: + name: Under Pressure (Stone) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 1,1,0,0,1,0,0,1,0 ] + +STONE_SHOVEL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STONE_SLAB: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Half Pint (Stone) + type: HUMAN + lore: + - Half as big, and twice-so unappreciated + - this little fellow protects you from + - mobs day in and day out. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STONE_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Rising on up (Stone) + type: PHILOSOPHICAL + lore: + - Every step is either an incline to + - future glory or a possible descent + - into further madness... + shards: [ 0,1,0,0,1,0,0,1,1 ] + +STONE_SWORD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STRING: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +STRIPPED_ACACIA_LOG: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Acacia Log) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_ACACIA_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Acacia Wood) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_BIRCH_LOG: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Birch Log) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_BIRCH_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Birch Wood) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_CRIMSON_HYPHAE: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + - VOID + story: + name: Stripped Bare (Crimson Hyphae) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,1,0 ] + +STRIPPED_CRIMSON_STEM: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + - VOID + story: + name: Stripped Bare (Crimson Stem) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_DARK_OAK_LOG: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Dark Oak Log) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_DARK_OAK_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Dark Oak Wood) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_JUNGLE_LOG: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Jungle Log) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_JUNGLE_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Jungle Wood) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_OAK_LOG: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Oak Log) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_OAK_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Oak Wood) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_SPRUCE_LOG: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Spruce Log) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_SPRUCE_WOOD: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Stripped Bare (Spruce Wood) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,0,0 ] + +STRIPPED_WARPED_HYPHAE: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + - VOID + story: + name: Stripped Bare (Warped Hyphae) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,1,0 ] + +STRIPPED_WARPED_STEM: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + - VOID + story: + name: Stripped Bare (Warped Stem) + type: HUMAN + lore: + - With nothing left to hide, this spirit + - allows itself to be more open and free. + shards: [ 1,1,0,0,1,0,0,1,0 ] + +SUGAR: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SUGAR_CANE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +SUNFLOWER: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (Sunflower) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +SUSPICIOUS_STEW: + tier: 2 + elements: + - HUMAN + story: + name: Not-so-Hearty + type: HUMAN + lore: + - An irratic spirit that lets out a + - deluge of magics when consumed. + shards: [ 0,0,0,0,2,1,0,0,0 ] + +SWEET_BERRIES: + tier: 1 + elements: + - HUMAN + - ANIMAL + - CELESTIAL + story: + name: Farmers Delight (Sweet Berries) + type: HUMAN + lore: + - With every sprout, leaf and root this + - item gives joy and nourishment to all + shards: [ 0,0,0,0,1,1,1,0,0 ] + +TALL_GRASS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TARGET: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +TINTED_GLASS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TIPPED_ARROW: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TNT: + tier: 2 + elements: + - ALCHEMICAL + - PHILOSOPHICAL + story: + name: Wait for it... + type: ALCHEMICAL + lore: + - WAIT FOR IT! + shards: [ 0,1,2,0,0,0,0,0,1 ] + author: Seggan + +TNT_MINECART: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TORCH: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Lighting The Way + type: HUMAN + lore: + - Since the earliest days, lighting the way + - and protecting from unseen foes. + shards: [ 1,1,0,0,1,0,1,0,0 ] + +TOTEM_OF_UNDYING: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TRAPPED_CHEST: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TRIDENT: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TRIPWIRE_HOOK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TROPICAL_FISH: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TROPICAL_FISH_BUCKET: + tier: 2 + elements: + - HUMAN + - ANIMAL + story: + name: Small but Cosy! (Tropical Fish) + type: ANIMAL + lore: + - Even though most organisms hate + - being locked up, the tropical fish + - loves it.. for now + shards: [ 1,0,0,0,1,1,0,0,0 ] + author: Seggan + +TUBE_CORAL: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Tube) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +TUBE_CORAL_BLOCK: + tier: 2 + elements: + - PHILOSOPHICAL + - CELESTIAL + story: + name: Be'reef't (Tube) + type: PHILOSOPHICAL + lore: + - Ripped from it's habitat and molded into + - an unatural form for human purposes. + - This is a spirit ripped asunder. + shards: [ 0,0,0,1,0,0,1,0,1 ] + +TUBE_CORAL_FAN: + tier: 2 + elements: + - HISTORICAL + - CELESTIAL + story: + name: Biodiverse (Tube Fan) + type: HISTORICAL + lore: + - Providing a home for a wide variety + - of warm-sea creatures gives purpose and + - sight to an otherwise bromidic spirit. + shards: [ 0,0,1,1,0,1,1,0,0 ] + +TUFF: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TURTLE_EGG: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +TURTLE_HELMET: + tier: 3 + elements: + - HUMAN + - VOID + story: + name: Head above the rest (Scute) + type: VOID + lore: + - A magicians most important tool is their own + - mind, any steps taken to protect that tool + - are vital and wise. + shards: [0,0,0,1,1,0,0,1,0] + +TWISTING_VINES: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +VINE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WARPED_BUTTON: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - VOID + story: + name: Depressed (Warped) + type: HUMAN + lore: + - Can get easily depressed + shards: [ 0,1,0,0,2,0,1,0,0 ] + +WARPED_DOOR: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - VOID + story: + name: Gateway + type: HUMAN + lore: + - Every enterance is also an exit. + - Doors protects from the outside but + - dont let them keep you in! + shards: [ 0,2,0,0,1,0,0,1,1 ] + +WARPED_FENCE: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Livestock (Warped) + type: ANIMAL + lore: + - Nothing brings more joy to a fence + - than keeping your livestock safe. + shards: [ 0,0,0,0,1,2,0,0,0 ] + +WARPED_FENCE_GATE: + tier: 1 + elements: + - HUMAN + - MECHANICAL + - ANIMAL + - VOID + story: + name: Gate (Warped) + type: MECHANICAL + lore: + - Still round the corner there may wait, + - A new road or a secret gate. + shards: [ 0,2,0,0,1,1,0,1,0 ] + author: J. R. R. Tolkien + +WARPED_FUNGUS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WARPED_FUNGUS_ON_A_STICK: + tier: 2 + elements: + - ANIMAL + story: + name: A Great Incentive (Warped Fungus) + type: ANIMAL + lore: + - Slowly draws magical power from the creatures + - that this item attracts. + shards: [0,0,0,0,1,1,0,0,1] + +WARPED_HYPHAE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WARPED_NYLIUM: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WARPED_PLANKS: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + - VOID + story: + name: Walk the Plank (Warped) + type: HUMAN + lore: + - The first step on your crafting journey + - driving new players forwards. + shards: [ 1,0,0,0,1,0,0,1,0 ] + +WARPED_PRESSURE_PLATE: + tier: 1 + elements: + - MECHANICAL + - VOID + story: + name: Under Pressure (Acacia) + type: VOID + lore: + - Being walked all over will drop any + - spirit. + shards: [ 0,1,0,0,1,0,0,2,0 ] + +WARPED_ROOTS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WARPED_SIGN: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + - VOID + story: + name: Signed (Warped) + type: PHILOSOPHICAL + lore: + - Imbued with the thoughts of those + - authors + shards: [ 0,0,0,0,1,0,0,2,1 ] + +WARPED_SLAB: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: A cut below + type: HUMAN + lore: + - Ripped in half and divided from + - self. A soul torn asunder + shards: [ 1,1,0,0,1,0,0,1,0 ] + +WARPED_STAIRS: + tier: 1 + elements: + - HUMAN + - CELESTIAL + - VOID + story: + name: Arise (Warped) + type: CELESTIAL + lore: + - Lives to feel the joy of others being + - raised to new heights. + shards: [ 0,1,0,0,1,0,1,1,1 ] + +WARPED_STEM: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WARPED_TRAPDOOR: + tier: 1 + elements: + - HUMAN + - VOID + story: + name: To the Pits (Warped) + type: VOID + lore: + - Awaiting the perfect moment to drop an + - unsuspecting person to their end + shards: [ 0,1,0,0,1,0,0,1,0 ] + +WARPED_WART_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WATER_BUCKET: + tier: 2 + elements: + - HUMAN + - VOID + - ELEMENTAL + story: + name: Sturdy (Water) + type: HUMAN + lore: + - Persistent, constant and driven to + - hold anything the user needs. + shards: [ 1,1,0,0,2,0,0,1,0 ] + +WAXED_COPPER_BLOCK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_CUT_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_CUT_COPPER_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_CUT_COPPER_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_EXPOSED_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_EXPOSED_CUT_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_EXPOSED_CUT_COPPER_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_EXPOSED_CUT_COPPER_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_OXIDIZED_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_OXIDIZED_CUT_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_OXIDIZED_CUT_COPPER_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_OXIDIZED_CUT_COPPER_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_WEATHERED_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_WEATHERED_CUT_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_WEATHERED_CUT_COPPER_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WAXED_WEATHERED_CUT_COPPER_STAIRS: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: What a Mouthful! + type: HUMAN + lore: + - Can you say this in one breath!? + shards: [ 0,1,0,0,1,0,0,0,2 ] + author: Seggan + +WEATHERED_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WEATHERED_CUT_COPPER: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WEATHERED_CUT_COPPER_SLAB: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WEATHERED_CUT_COPPER_STAIRS: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WEEPING_VINES: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WET_SPONGE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WHEAT: + tier: 1 + elements: + - HUMAN + - ANIMAL + - CELESTIAL + story: + name: Farmers Delight (Wheat) + type: HUMAN + lore: + - With every sprout, leaf and root this + - item gives joy and nourishment to all + shards: [ 0,0,0,0,1,1,1,0,0 ] + +WHEAT_SEEDS: + tier: 1 + elements: + - HUMAN + - ANIMAL + story: + name: Untapped Potential (Wheat) + type: HUMAN + lore: + - Busting with innate magic drawn in + - due to the raw and untapped potential + - of this seed. + shards: [ 0,0,0,0,1,1,1,0,0 ] + +WHITE_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (White) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +WHITE_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (White) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] + +WHITE_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (White) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +WHITE_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (White) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +WHITE_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (White) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +WHITE_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (White) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +WHITE_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (White) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +WHITE_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (White) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +WHITE_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (White) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +WHITE_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (White Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +WHITE_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (White) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +WHITE_TULIP: + tier: 1 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Sweet Smell (White Tulip) + type: ANIMAL + lore: + - A wafting fragrance to quell the most + - vicious of temprements. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +WHITE_WOOL: + tier: 2 + elements: + - ANIMAL + story: + name: Soft! (White) + type: ANIMAL + lore: + - Fluffy and white, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +WITHER_ROSE: + tier: 2 + elements: + - ELEMENTAL + - ANIMAL + story: + name: Not-so-sweet Smell + type: ANIMAL + lore: + - A wafting fragrance to quell... everything. + shards: [ 1,0,0,0,0,1,0,0,0 ] + +WITHER_SKELETON_SKULL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WOODEN_AXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WOODEN_HOE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WOODEN_PICKAXE: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WOODEN_SHOVEL: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WOODEN_SWORD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WRITABLE_BOOK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +WRITTEN_BOOK: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: + +YELLOW_BANNER: + tier: 2 + elements: + - HISTORICAL + - HUMAN + story: + name: Flying Free (Yellow) + type: HISTORICAL + lore: + - Flying proud day after day for + - years and years displaying pride. + shards: [ 0,0,0,1,1,0,1,1,0 ] + +YELLOW_BED: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: A Good Night (Yellow) + type: PHILOSOPHICAL + lore: + - It's commonly thought that a persons + - internal magics are recharged during + - sleep. + shards: [ 0,0,0,0,2,0,0,1,1 ] +YELLOW_CANDLE: + tier: 2 + elements: + - ELEMENTAL + - HUMAN + - HISTORICAL + story: + name: A Constant Drive (Yellow) + type: HUMAN + lore: + - Burning bright for as long as possible + - the candle tries so hard as often feels + - burnt out. + shards: [ 1,0,1,1,1,0,0,0,0 ] + +YELLOW_CARPET: + tier: 1 + elements: + - HUMAN + - PHILOSOPHICAL + story: + name: Trampled (Yellow) + type: PHILOSOPHICAL + lore: + - Trampled on a daily basis, the carpet + - is knows no better and gets it's enjoyment + - where possible. + shards: [ 0,1,0,0,1,0,0,0,1 ] + +YELLOW_CONCRETE: + tier: 2 + elements: + - HUMAN + - HISTORICAL + story: + name: Future Proof (Yellow) + type: HISTORICAL + lore: + - A block able to withstand the test + - of time. Concrete is stable, sturdy + - and forever more. + shards: [ 0,1,0,1,1,0,0,1,1 ] + +YELLOW_CONCRETE_POWDER: + tier: 1 + elements: + - HUMAN + - ELEMENTAL + story: + name: Self Identification (Yellow) + type: HUMAN + lore: + - Being a blend of other distinct blocks + - can wreak havok on a spirit's identity. + - Concrete longs for just a drop of water + - so it can become itself! + shards: [ 1,0,1,0,1,0,0,0,1 ] + +YELLOW_DYE: + tier: 1 + elements: + - ALCHEMICAL + story: + name: The Gamut (Yellow) + type: ALCHEMICAL + lore: + - Dye's singular purpose is to bring + - color to a dull world. The eminating + - magic from this process can be found + - everywhere + shards: [ 1,0,2,0,1,0,0,0,0 ] + +YELLOW_GLAZED_TERRACOTTA: + tier: 2 + elements: + - HUMAN + - CELESTIAL + story: + name: Non-Stick (Yellow) + type: HUMAN + lore: + - A complex composition allows this block + - to slide against others with ease making + - Glazed Terracotta a common find in elevators. + shards: [ 1,0,0,0,1,0,1,0,0 ] + +YELLOW_STAINED_GLASS: + tier: 2 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Yellow) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +YELLOW_STAINED_GLASS_PANE: + tier: 1 + elements: + - CELESTIAL + - PHILOSOPHICAL + story: + name: Prism (Yellow Pane) + type: CELESTIAL + lore: + - While this block has no innate magic + - itself, there is a special magic these + - blocks provide to those witnessing them + shards: [ 0,1,1,0,1,0,1,0,0 ] + +YELLOW_TERRACOTTA: + tier: 1 + elements: + - ELEMENTAL + - HUMAN + story: + name: Sculptur's Delight (Yellow) + type: HUMAN + lore: + - Having the potential to be shaped into any + - form and yet always ending up being a cube + - makes for a disheartened spirit. + shards: [ 1,0,0,0,2,0,0,0,1 ] + +YELLOW_WOOL: + tier: 2 + elements: + - ANIMAL + story: + name: Soft! (yellow) + type: ANIMAL + lore: + - Fluffy and yellow, the most comfortable + - of materials. Longing to become the next + - bed or carpet. + shards: [ 0,0,1,0,0,2,0,0,0 ] + author: OOOOMAGAAA + +ZOMBIE_HEAD: + tier: 1 + elements: + - + story: + name: + type: + lore: + - + shards: diff --git a/src/main/resources/generic-stories.yml b/src/main/resources/generic-stories.yml index fcbf46e1..0184a1c6 100644 --- a/src/main/resources/generic-stories.yml +++ b/src/main/resources/generic-stories.yml @@ -1,317 +1,362 @@ -common: - - name: Quiet Days +COMMON: + Quiet Days: + name: Quiet Days type: ELEMENTAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Present during the beginning of the world. - Everything was quiet and peaceful and serene. - - name: Grinding Gears + Grinding Gears: + name: Grinding Gears type: MECHANICAL shards: [ 0,1,0,0,1,0,0,0,0 ] lore: - Constantly used without thanks or gratitude - will wear down the spirit with ease. - - name: Lead into Gold + Lead into Gold: + name: Lead into Gold type: ALCHEMICAL shards: [ 0,0,1,0,1,0,1,0,0 ] lore: - An unconsious drive towards wealth that has - driven many-a-person mad. - - name: Everlasting + Everlasting: + name: Everlasting type: HISTORICAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Having seen the rise and fall over empires - this block is proven everlasting and resolute. - - name: Toil + Toil: + name: Toil type: HUMAN shards: [ 0,0,0,0,1,0,1,0,1 ] lore: - Witness to the toil of people through the - ages, aiding where possible; a fruitless task. - - name: Free Range + Free Range: + name: Free Range type: ANIMAL shards: [ 0,0,0,0,0,1,1,0,1 ] lore: - Only the free can run wild and nothing stirs - the magics more than animals roaming free. - - name: Moonlit + Moonlit: + name: Moonlit type: CELESTIAL shards: [ 1,0,0,0,0,1,1,0,0 ] lore: - A spirit that enjoys nothing more than to bathe in - the light of a waning moon. - - name: Despair + Despair: + name: Despair type: VOID shards: [ 0,0,0,0,1,0,0,1,1 ] lore: - A longing for more that clutches to the deepest - recesses of a mind causing depair and grief. - - name: Good Life + Good Life: + name: Good Life type: PHILOSOPHICAL shards: [ 0,0,0,0,1,0,0,0,2 ] lore: - Unknowing of the meaning of a good life, this - block has questions in questions remaining unanswered. -uncommon: - - name: Quiet Days +UNCOMMON: + Quiet Days: + name: Quiet Days type: ELEMENTAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Present during the beginning of the world. - Everything was quiet and peaceful and serene. - - name: Grinding Gears + Grinding Gears: + name: Grinding Gears type: MECHANICAL shards: [ 0,1,0,0,1,0,0,0,0 ] lore: - Constantly used without thanks or gratitude - will wear down the spirit with ease. - - name: Lead into Gold + Lead into Gold: + name: Lead into Gold type: ALCHEMICAL shards: [ 0,0,1,0,1,0,1,0,0 ] lore: - An unconsious drive towards wealth that has - driven many-a-person mad. - - name: Everlasting + Everlasting: + name: Everlasting type: HISTORICAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Having seen the rise and fall over empires - this block is proven everlasting and resolute. - - name: Toil + Toil: + name: Toil type: HUMAN shards: [ 0,0,0,0,1,0,1,0,1 ] lore: - Witness to the toil of people through the - ages, aiding where possible; a fruitless task. - - name: Free Range + Free Range: + name: Free Range type: ANIMAL shards: [ 0,0,0,0,0,1,1,0,1 ] lore: - Only the free can run wild and nothing stirs - the magics more than animals roaming free. - - name: Moonlit + Moonlit: + name: Moonlit type: CELESTIAL shards: [ 1,0,0,0,0,1,1,0,0 ] lore: - A spirit that enjoys nothing more than to bathe in - the light of a waning moon. - - name: Despair + Despair: + name: Despair type: VOID shards: [ 0,0,0,0,1,0,0,1,1 ] lore: - A longing for more that clutches to the deepest - recesses of a mind causing depair and grief. - - name: Good Life + Good Life: + name: Good Life type: PHILOSOPHICAL shards: [ 0,0,0,0,1,0,0,0,2 ] lore: - Unknowing of the meaning of a good life, this - block has questions in questions remaining unanswered. -rare: - - name: Quiet Days +RARE: + Quiet Days: + name: Quiet Days type: ELEMENTAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Present during the beginning of the world. - Everything was quiet and peaceful and serene. - - name: Grinding Gears + Grinding Gears: + name: Grinding Gears type: MECHANICAL shards: [ 0,1,0,0,1,0,0,0,0 ] lore: - Constantly used without thanks or gratitude - will wear down the spirit with ease. - - name: Lead into Gold + Lead into Gold: + name: Lead into Gold type: ALCHEMICAL shards: [ 0,0,1,0,1,0,1,0,0 ] lore: - An unconsious drive towards wealth that has - driven many-a-person mad. - - name: Everlasting + Everlasting: + name: Everlasting type: HISTORICAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Having seen the rise and fall over empires - this block is proven everlasting and resolute. - - name: Toil + Toil: + name: Toil type: HUMAN shards: [ 0,0,0,0,1,0,1,0,1 ] lore: - Witness to the toil of people through the - ages, aiding where possible; a fruitless task. - - name: Free Range + Free Range: + name: Free Range type: ANIMAL shards: [ 0,0,0,0,0,1,1,0,1 ] lore: - Only the free can run wild and nothing stirs - the magics more than animals roaming free. - - name: Moonlit + Moonlit: + name: Moonlit type: CELESTIAL shards: [ 1,0,0,0,0,1,1,0,0 ] lore: - A spirit that enjoys nothing more than to bathe in - the light of a waning moon. - - name: Despair + Despair: + name: Despair type: VOID shards: [ 0,0,0,0,1,0,0,1,1 ] lore: - A longing for more that clutches to the deepest - recesses of a mind causing depair and grief. - - name: Good Life + Good Life: + name: Good Life type: PHILOSOPHICAL shards: [ 0,0,0,0,1,0,0,0,2 ] lore: - Unknowing of the meaning of a good life, this - block has questions in questions remaining unanswered. -epic: - - name: Quiet Days +EPIC: + Quiet Days: + name: Quiet Days type: ELEMENTAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Present during the beginning of the world. - Everything was quiet and peaceful and serene. - - name: Grinding Gears + Grinding Gears: + name: Grinding Gears type: MECHANICAL shards: [ 0,1,0,0,1,0,0,0,0 ] lore: - Constantly used without thanks or gratitude - will wear down the spirit with ease. - - name: Lead into Gold + Lead into Gold: + name: Lead into Gold type: ALCHEMICAL shards: [ 0,0,1,0,1,0,1,0,0 ] lore: - An unconsious drive towards wealth that has - driven many-a-person mad. - - name: Everlasting + Everlasting: + name: Everlasting type: HISTORICAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Having seen the rise and fall over empires - this block is proven everlasting and resolute. - - name: Toil + Toil: + name: Toil type: HUMAN shards: [ 0,0,0,0,1,0,1,0,1 ] lore: - Witness to the toil of people through the - ages, aiding where possible; a fruitless task. - - name: Free Range + Free Range: + name: Free Range type: ANIMAL shards: [ 0,0,0,0,0,1,1,0,1 ] lore: - Only the free can run wild and nothing stirs - the magics more than animals roaming free. - - name: Moonlit + Moonlit: + name: Moonlit type: CELESTIAL shards: [ 1,0,0,0,0,1,1,0,0 ] lore: - A spirit that enjoys nothing more than to bathe in - the light of a waning moon. - - name: Despair + Despair: + name: Despair type: VOID shards: [ 0,0,0,0,1,0,0,1,1 ] lore: - A longing for more that clutches to the deepest - recesses of a mind causing depair and grief. - - name: Good Life + Good Life: + name: Good Life type: PHILOSOPHICAL shards: [ 0,0,0,0,1,0,0,0,2 ] lore: - Unknowing of the meaning of a good life, this - block has questions in questions remaining unanswered. -mythical: - - name: Quiet Days +MYTHICAL: + Quiet Days: + name: Quiet Days type: ELEMENTAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Present during the beginning of the world. - Everything was quiet and peaceful and serene. - - name: Grinding Gears + Grinding Gears: + name: Grinding Gears type: MECHANICAL shards: [ 0,1,0,0,1,0,0,0,0 ] lore: - Constantly used without thanks or gratitude - will wear down the spirit with ease. - - name: Lead into Gold + Lead into Gold: + name: Lead into Gold type: ALCHEMICAL shards: [ 0,0,1,0,1,0,1,0,0 ] lore: - An unconsious drive towards wealth that has - driven many-a-person mad. - - name: Everlasting + Everlasting: + name: Everlasting type: HISTORICAL shards: [ 1,0,1,1,0,0,0,0,0 ] lore: - Having seen the rise and fall over empires - this block is proven everlasting and resolute. - - name: Toil + Toil: + name: Toil type: HUMAN shards: [ 0,0,0,0,1,0,1,0,1 ] lore: - Witness to the toil of people through the - ages, aiding where possible; a fruitless task. - - name: Free Range + Free Range: + name: Free Range type: ANIMAL shards: [ 0,0,0,0,0,1,1,0,1 ] lore: - Only the free can run wild and nothing stirs - the magics more than animals roaming free. - - name: Moonlit + Moonlit: + name: Moonlit type: CELESTIAL shards: [ 1,0,0,0,0,1,1,0,0 ] lore: - A spirit that enjoys nothing more than to bathe in - the light of a waning moon. - - name: Despair + Despair: + name: Despair type: VOID shards: [ 0,0,0,0,1,0,0,1,1 ] lore: - A longing for more that clutches to the deepest - recesses of a mind causing depair and grief. - - name: Good Life + Good Life: + name: Good Life type: PHILOSOPHICAL shards: [ 0,0,0,0,1,0,0,0,2 ] lore: