mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-19 19:25:48 +00:00
Merge branch 'master' into experimental
This commit is contained in:
commit
9d740436a7
2
.github/workflows/yaml-linter.yml
vendored
2
.github/workflows/yaml-linter.yml
vendored
@ -7,8 +7,6 @@ on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- '**.yml'
|
||||
|
||||
jobs:
|
||||
linter:
|
||||
|
@ -85,6 +85,12 @@
|
||||
* Fixed Electric Press not working
|
||||
* Fixed #2240
|
||||
* Fixed #2243
|
||||
* Fixed #2249
|
||||
* Fixed #1022
|
||||
* Fixed #2208
|
||||
* Fixed Fluid Pump treating low-level fluids like stationary fluids
|
||||
* Fixed Fluid Pump not working on Bubble Columns
|
||||
* Fixed #2251
|
||||
|
||||
## Release Candidate 15 (01 Aug 2020)
|
||||
|
||||
|
2
pom.xml
2
pom.xml
@ -310,7 +310,7 @@
|
||||
<dependency>
|
||||
<groupId>org.mockito</groupId>
|
||||
<artifactId>mockito-core</artifactId>
|
||||
<version>3.5.5</version>
|
||||
<version>3.5.7</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
|
@ -83,6 +83,56 @@ final class CargoUtils {
|
||||
return false;
|
||||
}
|
||||
|
||||
static int[] getInputSlotRange(Inventory inv, ItemStack item) {
|
||||
if (inv instanceof FurnaceInventory) {
|
||||
if (item.getType().isFuel()) {
|
||||
if (isSmeltable(item, true)) {
|
||||
// Any non-smeltable items should not land in the upper slot
|
||||
return new int[] { 0, 2 };
|
||||
}
|
||||
else {
|
||||
return new int[] { 1, 2 };
|
||||
}
|
||||
}
|
||||
else {
|
||||
return new int[] { 0, 1 };
|
||||
}
|
||||
}
|
||||
else if (inv instanceof BrewerInventory) {
|
||||
if (isPotion(item)) {
|
||||
// Slots for potions
|
||||
return new int[] { 0, 3 };
|
||||
}
|
||||
else if (item != null && item.getType() == Material.BLAZE_POWDER) {
|
||||
// Blaze Powder slot
|
||||
return new int[] { 4, 5 };
|
||||
}
|
||||
else {
|
||||
// Input slot
|
||||
return new int[] { 3, 4 };
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Slot 0-size
|
||||
return new int[] { 0, inv.getSize() };
|
||||
}
|
||||
}
|
||||
|
||||
static int[] getOutputSlotRange(Inventory inv) {
|
||||
if (inv instanceof FurnaceInventory) {
|
||||
// Slot 2-3
|
||||
return new int[] { 2, 3 };
|
||||
}
|
||||
else if (inv instanceof BrewerInventory) {
|
||||
// Slot 0-3
|
||||
return new int[] { 0, 3 };
|
||||
}
|
||||
else {
|
||||
// Slot 0-size
|
||||
return new int[] { 0, inv.getSize() };
|
||||
}
|
||||
}
|
||||
|
||||
static ItemStack withdraw(Map<Location, Inventory> inventories, Block node, Block target, ItemStack template) {
|
||||
DirtyChestMenu menu = getChestMenu(target);
|
||||
|
||||
@ -129,16 +179,9 @@ final class CargoUtils {
|
||||
|
||||
static ItemStack withdrawFromVanillaInventory(Block node, ItemStack template, Inventory inv) {
|
||||
ItemStack[] contents = inv.getContents();
|
||||
int minSlot = 0;
|
||||
int maxSlot = contents.length;
|
||||
|
||||
if (inv instanceof FurnaceInventory) {
|
||||
minSlot = 2;
|
||||
maxSlot = 3;
|
||||
}
|
||||
else if (inv instanceof BrewerInventory) {
|
||||
maxSlot = 3;
|
||||
}
|
||||
int[] range = getOutputSlotRange(inv);
|
||||
int minSlot = range[0];
|
||||
int maxSlot = range[1];
|
||||
|
||||
ItemStackWrapper wrapper = new ItemStackWrapper(template);
|
||||
|
||||
@ -196,16 +239,9 @@ final class CargoUtils {
|
||||
|
||||
private static ItemStackAndInteger withdrawFromVanillaInventory(Block node, Inventory inv) {
|
||||
ItemStack[] contents = inv.getContents();
|
||||
int minSlot = 0;
|
||||
int maxSlot = contents.length;
|
||||
|
||||
if (inv instanceof FurnaceInventory) {
|
||||
minSlot = 2;
|
||||
maxSlot = 3;
|
||||
}
|
||||
else if (inv instanceof BrewerInventory) {
|
||||
maxSlot = 3;
|
||||
}
|
||||
int[] range = getOutputSlotRange(inv);
|
||||
int minSlot = range[0];
|
||||
int maxSlot = range[1];
|
||||
|
||||
for (int slot = minSlot; slot < maxSlot; slot++) {
|
||||
ItemStack is = contents[slot];
|
||||
@ -280,40 +316,9 @@ final class CargoUtils {
|
||||
|
||||
private static ItemStack insertIntoVanillaInventory(ItemStack stack, Inventory inv) {
|
||||
ItemStack[] contents = inv.getContents();
|
||||
int minSlot = 0;
|
||||
int maxSlot = contents.length;
|
||||
|
||||
// Check if it is a normal furnace
|
||||
if (inv instanceof FurnaceInventory) {
|
||||
// Check if it is fuel or not
|
||||
if (stack.getType().isFuel()) {
|
||||
maxSlot = 2;
|
||||
|
||||
// Any non-smeltable items should not land in the upper slot
|
||||
if (!isSmeltable(stack, true)) {
|
||||
minSlot = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
maxSlot = 1;
|
||||
}
|
||||
}
|
||||
else if (inv instanceof BrewerInventory) {
|
||||
if (stack.getType() == Material.POTION || stack.getType() == Material.LINGERING_POTION || stack.getType() == Material.SPLASH_POTION) {
|
||||
// Potions slot
|
||||
maxSlot = 3;
|
||||
}
|
||||
else if (stack.getType() == Material.BLAZE_POWDER) {
|
||||
// Blaze Powder slot
|
||||
minSlot = 4;
|
||||
maxSlot = 5;
|
||||
}
|
||||
else {
|
||||
// Input slot
|
||||
minSlot = 3;
|
||||
maxSlot = 4;
|
||||
}
|
||||
}
|
||||
int[] range = getInputSlotRange(inv, stack);
|
||||
int minSlot = range[0];
|
||||
int maxSlot = range[1];
|
||||
|
||||
ItemStackWrapper wrapper = new ItemStackWrapper(stack);
|
||||
|
||||
@ -347,28 +352,6 @@ final class CargoUtils {
|
||||
return stack;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method checks if a given {@link ItemStack} is smeltable or not.
|
||||
* The lazy-option is a performance-saver since actually calculating this can be quite expensive.
|
||||
* For the current applicational purposes a quick check for any wooden logs is sufficient.
|
||||
* Otherwise the "lazyness" can be turned off in the future.
|
||||
*
|
||||
* @param stack
|
||||
* The {@link ItemStack} to test
|
||||
* @param lazy
|
||||
* Whether or not to perform a "lazy" but performance-saving check
|
||||
*
|
||||
* @return Whether the given {@link ItemStack} can be smelted or not
|
||||
*/
|
||||
private static boolean isSmeltable(ItemStack stack, boolean lazy) {
|
||||
if (lazy) {
|
||||
return stack != null && Tag.LOGS.isTagged(stack.getType());
|
||||
}
|
||||
else {
|
||||
return SlimefunPlugin.getMinecraftRecipeService().isSmeltable(stack);
|
||||
}
|
||||
}
|
||||
|
||||
static DirtyChestMenu getChestMenu(Block block) {
|
||||
if (BlockStorage.hasInventory(block)) {
|
||||
return BlockStorage.getInventory(block);
|
||||
@ -447,6 +430,32 @@ final class CargoUtils {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method checks if a given {@link ItemStack} is smeltable or not.
|
||||
* The lazy-option is a performance-saver since actually calculating this can be quite expensive.
|
||||
* For the current applicational purposes a quick check for any wooden logs is sufficient.
|
||||
* Otherwise the "lazyness" can be turned off in the future.
|
||||
*
|
||||
* @param stack
|
||||
* The {@link ItemStack} to test
|
||||
* @param lazy
|
||||
* Whether or not to perform a "lazy" but performance-saving check
|
||||
*
|
||||
* @return Whether the given {@link ItemStack} can be smelted or not
|
||||
*/
|
||||
private static boolean isSmeltable(ItemStack stack, boolean lazy) {
|
||||
if (lazy) {
|
||||
return stack != null && Tag.LOGS.isTagged(stack.getType());
|
||||
}
|
||||
else {
|
||||
return SlimefunPlugin.getMinecraftRecipeService().isSmeltable(stack);
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isPotion(ItemStack item) {
|
||||
return item != null && (item.getType() == Material.POTION || item.getType() == Material.SPLASH_POTION || item.getType() == Material.LINGERING_POTION);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the whitelist/blacklist slots in a Cargo Input Node. If you wish to access the items
|
||||
* in the cargo (without hardcoding the slots in case of change) then you can use this method.
|
||||
|
@ -368,41 +368,7 @@ abstract class ChestTerminalNetwork extends Network {
|
||||
Optional<Block> block = getAttachedBlock(l);
|
||||
|
||||
if (block.isPresent()) {
|
||||
Block target = block.get();
|
||||
UniversalBlockMenu menu = BlockStorage.getUniversalInventory(target);
|
||||
|
||||
if (menu != null) {
|
||||
for (int slot : menu.getPreset().getSlotsAccessedByItemTransport((DirtyChestMenu) menu, ItemTransportFlow.WITHDRAW, null)) {
|
||||
ItemStack is = menu.getItemInSlot(slot);
|
||||
filter(is, items, l);
|
||||
}
|
||||
}
|
||||
else if (BlockStorage.hasInventory(target)) {
|
||||
BlockMenu blockMenu = BlockStorage.getInventory(target);
|
||||
|
||||
if (blockMenu.getPreset().getID().startsWith("BARREL_")) {
|
||||
Config cfg = BlockStorage.getLocationInfo(target.getLocation());
|
||||
String data = cfg.getString("storedItems");
|
||||
|
||||
if (data != null) {
|
||||
gatherItemsFromBarrel(l, data, blockMenu, items);
|
||||
}
|
||||
}
|
||||
else {
|
||||
handleWithdraw(blockMenu, items, l);
|
||||
}
|
||||
}
|
||||
else if (CargoUtils.hasInventory(target)) {
|
||||
BlockState state = PaperLib.getBlockState(target, false).getState();
|
||||
|
||||
if (state instanceof InventoryHolder) {
|
||||
Inventory inv = ((InventoryHolder) state).getInventory();
|
||||
|
||||
for (ItemStack is : inv.getContents()) {
|
||||
filter(is, items, l);
|
||||
}
|
||||
}
|
||||
}
|
||||
findAllItems(items, l, block.get());
|
||||
}
|
||||
}
|
||||
|
||||
@ -410,8 +376,47 @@ abstract class ChestTerminalNetwork extends Network {
|
||||
return items;
|
||||
}
|
||||
|
||||
private void gatherItemsFromBarrel(Location l, String data, BlockMenu blockMenu, List<ItemStackAndInteger> items) {
|
||||
private void findAllItems(List<ItemStackAndInteger> items, Location l, Block target) {
|
||||
UniversalBlockMenu menu = BlockStorage.getUniversalInventory(target);
|
||||
|
||||
if (menu != null) {
|
||||
for (int slot : menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) {
|
||||
ItemStack is = menu.getItemInSlot(slot);
|
||||
filter(is, items, l);
|
||||
}
|
||||
}
|
||||
else if (BlockStorage.hasInventory(target)) {
|
||||
BlockMenu blockMenu = BlockStorage.getInventory(target);
|
||||
|
||||
if (blockMenu.getPreset().getID().startsWith("BARREL_")) {
|
||||
gatherItemsFromBarrel(l, blockMenu, items);
|
||||
}
|
||||
else {
|
||||
handleWithdraw(blockMenu, items, l);
|
||||
}
|
||||
}
|
||||
else if (CargoUtils.hasInventory(target)) {
|
||||
BlockState state = PaperLib.getBlockState(target, false).getState();
|
||||
|
||||
if (state instanceof InventoryHolder) {
|
||||
Inventory inv = ((InventoryHolder) state).getInventory();
|
||||
|
||||
for (ItemStack is : inv.getContents()) {
|
||||
filter(is, items, l);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void gatherItemsFromBarrel(Location l, BlockMenu blockMenu, List<ItemStackAndInteger> items) {
|
||||
try {
|
||||
Config cfg = BlockStorage.getLocationInfo(blockMenu.getLocation());
|
||||
String data = cfg.getString("storedItems");
|
||||
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int stored = Integer.parseInt(data);
|
||||
|
||||
for (int slot : blockMenu.getPreset().getSlotsAccessedByItemTransport((DirtyChestMenu) blockMenu, ItemTransportFlow.WITHDRAW, null)) {
|
||||
|
@ -544,7 +544,7 @@ public final class SlimefunItems {
|
||||
public static final SlimefunItemStack TALISMAN_TRAVELLER = new SlimefunItemStack("TRAVELLER_TALISMAN", Material.EMERALD, "&aTalisman of the Traveller", "", "&fWhile you have this Talisman", "&fin your Inventory it gives", "&fyou a 60% Chance for a decent", "&fSpeed Buff when you start sprinting");
|
||||
public static final SlimefunItemStack TALISMAN_WARRIOR = new SlimefunItemStack("WARRIOR_TALISMAN", Material.EMERALD, "&aTalisman of the Warrior", "", "&fWhile you have this Talisman", "&fin your Inventory it gives", "&fyou Strength III whenever you get hit", "&fbut will then be consumed");
|
||||
public static final SlimefunItemStack TALISMAN_KNIGHT = new SlimefunItemStack("KNIGHT_TALISMAN", Material.EMERALD, "&aTalisman of the Knight", "", "&fWhile you have this Talisman", "&fin your Inventory it gives", "&fyou a 30% Chance for 5 Seconds of Regeneration", "&fwhenever You get hit", "&fbut will then be consumed");
|
||||
public static final SlimefunItemStack TALISMAN_WHIRLWIND = new SlimefunItemStack("WHIRLWIND_TALISMAN", Material.EMERALD, "&aTalisman of the Whirlwind", "", "&fWhile you have this Talisman", "&fin your Inventory it will reflect", "&f60% of all Projectiles fired at you");
|
||||
public static final SlimefunItemStack TALISMAN_WHIRLWIND = new SlimefunItemStack("WHIRLWIND_TALISMAN", Material.EMERALD, "&aTalisman of the Whirlwind", "", "&fHaving this Talisman", "&fin your Inventory will reflect", "&f60% of any projectiles fired at you.", "&e&oOnly a thrown Trident can pierce", "&e&othrough this layer of protection");
|
||||
public static final SlimefunItemStack TALISMAN_WIZARD = new SlimefunItemStack("WIZARD_TALISMAN", Material.EMERALD, "&aTalisman of the Wizard", "", "&fWhile you have this Talisman", "&fin your Inventory it allows you to", "&fobtain Fortune Level 4/5 however", "&fit also has a chance to lower the", "&fLevel of some Enchantments on your Item");
|
||||
|
||||
/* Staves */
|
||||
|
@ -45,6 +45,7 @@ import io.github.thebusybiscuit.slimefun4.core.services.github.GitHubService;
|
||||
import io.github.thebusybiscuit.slimefun4.core.services.plugins.ThirdPartyPluginService;
|
||||
import io.github.thebusybiscuit.slimefun4.core.services.profiler.SlimefunProfiler;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientAltar;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientPedestal;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.backpacks.Cooler;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.electric.reactors.Reactor;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.tools.GrapplingHook;
|
||||
@ -144,7 +145,6 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
|
||||
private final Config researches = new Config(this, "Researches.yml");
|
||||
|
||||
// Listeners that need to be accessed elsewhere
|
||||
private final AncientAltarListener ancientAltarListener = new AncientAltarListener();
|
||||
private final GrapplingHookListener grapplingHookListener = new GrapplingHookListener();
|
||||
private final BackpackListener backpackListener = new BackpackListener();
|
||||
private final SlimefunBowListener bowListener = new SlimefunBowListener();
|
||||
@ -210,7 +210,7 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
|
||||
networkManager = new NetworkManager(networkSize);
|
||||
|
||||
// Setting up bStats
|
||||
new Thread(metricsService::start).start();
|
||||
new Thread(metricsService::start, "Slimefun Metrics").start();
|
||||
|
||||
// Starting the Auto-Updater
|
||||
if (config.getBoolean("options.auto-update")) {
|
||||
@ -460,9 +460,8 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
|
||||
new VampireBladeListener(this, (VampireBlade) SlimefunItems.BLADE_OF_VAMPIRES.getItem());
|
||||
new CoolerListener(this, (Cooler) SlimefunItems.COOLER.getItem());
|
||||
new SeismicAxeListener(this, (SeismicAxe) SlimefunItems.SEISMIC_AXE.getItem());
|
||||
new AncientAltarListener(this, (AncientAltar) SlimefunItems.ANCIENT_ALTAR.getItem(), (AncientPedestal) SlimefunItems.ANCIENT_PEDESTAL.getItem());
|
||||
grapplingHookListener.register(this, (GrapplingHook) SlimefunItems.GRAPPLING_HOOK.getItem());
|
||||
ancientAltarListener.register(this, (AncientAltar) SlimefunItems.ANCIENT_ALTAR.getItem());
|
||||
|
||||
bowListener.register(this);
|
||||
|
||||
// Toggleable Listeners for performance reasons
|
||||
@ -624,10 +623,6 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
|
||||
return instance.networkManager;
|
||||
}
|
||||
|
||||
public static AncientAltarListener getAncientAltarListener() {
|
||||
return instance.ancientAltarListener;
|
||||
}
|
||||
|
||||
public static GrapplingHookListener getGrapplingHookListener() {
|
||||
return instance.grapplingHookListener;
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items.altar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.slimefun4.api.events.AncientAltarCraftEvent;
|
||||
@ -26,6 +29,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
public class AncientAltar extends SlimefunItem {
|
||||
|
||||
private final int speed;
|
||||
private final List<AltarRecipe> recipes = new ArrayList<>();
|
||||
|
||||
public AncientAltar(Category category, int speed, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, recipeType, recipe);
|
||||
@ -48,4 +52,8 @@ public class AncientAltar extends SlimefunItem {
|
||||
return speed;
|
||||
}
|
||||
|
||||
public List<AltarRecipe> getRecipes() {
|
||||
return recipes;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,30 +1,131 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items.altar;
|
||||
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.AncientAltarListener;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.tasks.AncientAltarTask;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
/**
|
||||
* The {@link AncientPedestal} is a part of the {@link AncientAltar}.
|
||||
* You can place any {@link ItemStack} onto the {@link AncientPedestal} to provide it to
|
||||
* the altar as a crafting ingredient.
|
||||
*
|
||||
* @author Redemption198
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
* @see AncientAltar
|
||||
* @see AncientAltarListener
|
||||
* @see AncientAltarTask
|
||||
*
|
||||
*/
|
||||
public class AncientPedestal extends SlimefunItem {
|
||||
|
||||
public static final String ITEM_PREFIX = ChatColors.color("&dALTAR &3Probe - &e");
|
||||
|
||||
public AncientPedestal(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) {
|
||||
super(category, item, recipeType, recipe, recipeOutput);
|
||||
|
||||
SlimefunItem.registerBlockHandler(getID(), (p, b, tool, reason) -> {
|
||||
AncientAltarListener listener = SlimefunPlugin.getAncientAltarListener();
|
||||
Item stack = listener.findItem(b);
|
||||
Optional<Item> entity = getPlacedItem(b);
|
||||
|
||||
if (stack != null) {
|
||||
stack.removeMetadata("no_pickup", SlimefunPlugin.instance());
|
||||
b.getWorld().dropItem(b.getLocation(), listener.fixItemStack(stack.getItemStack(), stack.getCustomName()));
|
||||
stack.remove();
|
||||
if (entity.isPresent()) {
|
||||
Item stack = entity.get();
|
||||
|
||||
if (stack.isValid()) {
|
||||
stack.removeMetadata("no_pickup", SlimefunPlugin.instance());
|
||||
b.getWorld().dropItem(b.getLocation(), getOriginalItemStack(stack));
|
||||
stack.remove();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
public Optional<Item> getPlacedItem(Block pedestal) {
|
||||
Location l = pedestal.getLocation().add(0.5, 1.2, 0.5);
|
||||
|
||||
for (Entity n : l.getWorld().getNearbyEntities(l, 0.5, 0.5, 0.5, this::testItem)) {
|
||||
if (n instanceof Item) {
|
||||
return Optional.of((Item) n);
|
||||
}
|
||||
}
|
||||
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
private boolean testItem(Entity n) {
|
||||
if (n instanceof Item && n.isValid()) {
|
||||
Item item = (Item) n;
|
||||
ItemMeta meta = item.getItemStack().getItemMeta();
|
||||
|
||||
return meta.hasDisplayName() && meta.getDisplayName().startsWith(ITEM_PREFIX);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack getOriginalItemStack(Item item) {
|
||||
ItemStack stack = item.getItemStack().clone();
|
||||
String customName = item.getCustomName();
|
||||
|
||||
if (customName.equals(ItemUtils.getItemName(new ItemStack(stack.getType())))) {
|
||||
ItemMeta im = stack.getItemMeta();
|
||||
im.setDisplayName(null);
|
||||
stack.setItemMeta(im);
|
||||
}
|
||||
else {
|
||||
ItemMeta im = stack.getItemMeta();
|
||||
|
||||
if (!customName.startsWith(String.valueOf(ChatColor.COLOR_CHAR))) {
|
||||
customName = ChatColor.WHITE + customName;
|
||||
}
|
||||
|
||||
im.setDisplayName(customName);
|
||||
stack.setItemMeta(im);
|
||||
}
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
public void placeItem(Player p, Block b) {
|
||||
ItemStack hand = p.getInventory().getItemInMainHand();
|
||||
ItemStack stack = new CustomItem(hand, ITEM_PREFIX + System.nanoTime());
|
||||
stack.setAmount(1);
|
||||
|
||||
if (p.getGameMode() != GameMode.CREATIVE) {
|
||||
ItemUtils.consumeItem(hand, false);
|
||||
}
|
||||
|
||||
String nametag = ItemUtils.getItemName(stack);
|
||||
Item entity = b.getWorld().dropItem(b.getLocation().add(0.5, 1.2, 0.5), stack);
|
||||
entity.setVelocity(new Vector(0, 0.1, 0));
|
||||
SlimefunUtils.markAsNoPickup(entity, "altar_item");
|
||||
entity.setCustomNameVisible(true);
|
||||
entity.setCustomName(nametag);
|
||||
p.playSound(b.getLocation(), Sound.ENTITY_ITEM_PICKUP, 0.3F, 0.3F);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,25 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items.armor;
|
||||
|
||||
import org.bukkit.block.data.type.Farmland;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
/**
|
||||
* The {@link FarmerShoes} are just a simple pair of boots which allows a {@link Player} to walk
|
||||
* on {@link Farmland} without breaking it.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
*/
|
||||
public class FarmerShoes extends SlimefunItem {
|
||||
|
||||
public FarmerShoes(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, recipeType, recipe);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,93 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items.armor;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
/**
|
||||
* The Boots of the Stomper are boots which damage nearby enemies whenever the {@link Player}
|
||||
* takes fall damage.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
*/
|
||||
public class StomperBoots extends SlimefunItem {
|
||||
|
||||
public StomperBoots(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, recipeType, recipe);
|
||||
}
|
||||
|
||||
/**
|
||||
* This will apply the "stomp" effect to the given {@link EntityDamageEvent}.
|
||||
*
|
||||
* @param fallDamageEvent
|
||||
* The {@link EntityDamageEvent} in which the {@link Player} has taken fall damage
|
||||
*/
|
||||
public void stomp(EntityDamageEvent fallDamageEvent) {
|
||||
Player p = (Player) fallDamageEvent.getEntity();
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ZOMBIE_BREAK_WOODEN_DOOR, 1F, 2F);
|
||||
p.setVelocity(new Vector(0, 0.7, 0));
|
||||
|
||||
for (Entity n : p.getNearbyEntities(4, 4, 4)) {
|
||||
if (n instanceof LivingEntity && n.isValid() && !n.getUniqueId().equals(p.getUniqueId())) {
|
||||
Vector velocity = getShockwave(p.getLocation(), n.getLocation());
|
||||
n.setVelocity(velocity);
|
||||
|
||||
// Check if it's not a Player or if PvP is enabled
|
||||
if (!(n instanceof Player) || (p.getWorld().getPVP() && SlimefunPlugin.getProtectionManager().hasPermission(p, n.getLocation(), ProtectableAction.PVP))) {
|
||||
EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(p, n, DamageCause.ENTITY_ATTACK, fallDamageEvent.getDamage() / 2);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
|
||||
if (!event.isCancelled()) {
|
||||
((LivingEntity) n).damage(event.getDamage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (BlockFace face : BlockFace.values()) {
|
||||
Block b = p.getLocation().getBlock().getRelative(BlockFace.DOWN).getRelative(face);
|
||||
p.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, b.getType());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This gives us the "shockwave" {@link Vector} for a given target.
|
||||
*
|
||||
* @param origin
|
||||
* The {@link Location} of our {@link Player}
|
||||
* @param target
|
||||
* The {@link Location} of the {@link Entity} we are pushing away
|
||||
*
|
||||
* @return A {@link Vector} to determine the velocity for our {@link Entity}
|
||||
*/
|
||||
private Vector getShockwave(Location origin, Location target) {
|
||||
// As the distance approaches zero we might slip into a "division by zero" when normalizing
|
||||
if (origin.distanceSquared(target) < 0.05) {
|
||||
return new Vector(0, 1, 0);
|
||||
}
|
||||
else {
|
||||
Vector direction = target.toVector().subtract(origin.toVector());
|
||||
return direction.normalize().multiply(1.4);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items.backpacks;
|
||||
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.EnderChest;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
@ -9,8 +10,16 @@ import io.github.thebusybiscuit.slimefun4.core.handlers.ItemUseHandler;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
/**
|
||||
* The {@link EnderBackpack} is a pretty simple {@link SlimefunItem} which opens your
|
||||
* {@link EnderChest} upon right clicking.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
*/
|
||||
public class EnderBackpack extends SimpleSlimefunItem<ItemUseHandler> implements NotPlaceable {
|
||||
|
||||
public EnderBackpack(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
|
@ -4,8 +4,11 @@ import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.block.data.BlockData;
|
||||
import org.bukkit.block.data.Levelled;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
@ -31,6 +34,14 @@ import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenuPreset;
|
||||
|
||||
/**
|
||||
* This machine collects liquids from the {@link World} and puts them
|
||||
* into buckets provided to the machine by using energy.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
* @author Linox
|
||||
*
|
||||
*/
|
||||
public class FluidPump extends SimpleSlimefunItem<BlockTicker> implements InventoryBlock, EnergyNetComponent {
|
||||
|
||||
private static final int ENERGY_CONSUMPTION = 32;
|
||||
@ -130,24 +141,47 @@ public class FluidPump extends SimpleSlimefunItem<BlockTicker> implements Invent
|
||||
}
|
||||
|
||||
private void consumeFluid(Block fluid) {
|
||||
if (fluid.getType() == Material.WATER) {
|
||||
fluid.setType(Material.AIR);
|
||||
return;
|
||||
if (fluid.isLiquid()) {
|
||||
if (fluid.getType() == Material.WATER || fluid.getType() == Material.BUBBLE_COLUMN) {
|
||||
// With water we can be sure to find an infinite source whenever we go
|
||||
// further than 2 blocks, so we can just remove the water here and save
|
||||
// outselves all of that computing...
|
||||
fluid.setType(Material.AIR);
|
||||
}
|
||||
else {
|
||||
List<Block> list = Vein.find(fluid, RANGE, block -> isLiquid(block) && block.getType() == fluid.getType());
|
||||
list.get(list.size() - 1).setType(Material.AIR);
|
||||
}
|
||||
}
|
||||
|
||||
List<Block> list = Vein.find(fluid, RANGE, block -> block.isLiquid() && block.getType() == fluid.getType());
|
||||
list.get(list.size() - 1).setType(Material.AIR);
|
||||
}
|
||||
|
||||
private Optional<ItemStack> getFilledBucket(Block fluid) {
|
||||
if (fluid.getType() == Material.LAVA) {
|
||||
return Optional.of(new ItemStack(Material.LAVA_BUCKET));
|
||||
}
|
||||
else if (fluid.getType() == Material.WATER) {
|
||||
else if (fluid.getType() == Material.WATER || fluid.getType() == Material.BUBBLE_COLUMN) {
|
||||
return Optional.of(new ItemStack(Material.WATER_BUCKET));
|
||||
}
|
||||
else {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
return Optional.empty();
|
||||
private boolean isLiquid(Block block) {
|
||||
if (block.isLiquid()) {
|
||||
BlockData data = block.getBlockData();
|
||||
|
||||
if (data instanceof Levelled) {
|
||||
// Check if this is a full block.
|
||||
return ((Levelled) data).getLevel() == 0;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1,5 +1,6 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items.medical;
|
||||
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
@ -11,6 +12,8 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class Medicine extends SimpleSlimefunItem<ItemConsumptionHandler> {
|
||||
|
||||
private static final double HEALING_AMOUNT = 8.0;
|
||||
|
||||
public Medicine(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, recipeType, recipe);
|
||||
}
|
||||
@ -26,6 +29,10 @@ public class Medicine extends SimpleSlimefunItem<ItemConsumptionHandler> {
|
||||
if (p.hasPotionEffect(PotionEffectType.CONFUSION)) p.removePotionEffect(PotionEffectType.CONFUSION);
|
||||
if (p.hasPotionEffect(PotionEffectType.BLINDNESS)) p.removePotionEffect(PotionEffectType.BLINDNESS);
|
||||
|
||||
double health = p.getHealth() + HEALING_AMOUNT;
|
||||
double maxHealth = p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue();
|
||||
p.setHealth(Math.min(health, maxHealth));
|
||||
|
||||
p.setFireTicks(0);
|
||||
};
|
||||
}
|
||||
|
@ -2,9 +2,9 @@ package io.github.thebusybiscuit.slimefun4.implementation.items.medical;
|
||||
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||
@ -16,6 +16,8 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class Vitamins extends SimpleSlimefunItem<ItemUseHandler> {
|
||||
|
||||
private static final double HEALING_AMOUNT = 8.0;
|
||||
|
||||
public Vitamins(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
super(category, item, recipeType, recipe);
|
||||
}
|
||||
@ -40,7 +42,10 @@ public class Vitamins extends SimpleSlimefunItem<ItemUseHandler> {
|
||||
if (p.hasPotionEffect(PotionEffectType.BLINDNESS)) p.removePotionEffect(PotionEffectType.BLINDNESS);
|
||||
|
||||
p.setFireTicks(0);
|
||||
p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 2));
|
||||
|
||||
double health = p.getHealth() + HEALING_AMOUNT;
|
||||
double maxHealth = p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue();
|
||||
p.setHealth(Math.min(health, maxHealth));
|
||||
|
||||
e.cancel();
|
||||
};
|
||||
|
@ -1,11 +1,10 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.items.weapons;
|
||||
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import io.github.thebusybiscuit.slimefun4.api.items.ItemSetting;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.VampireBladeListener;
|
||||
@ -25,6 +24,7 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
*/
|
||||
public class VampireBlade extends SlimefunItem {
|
||||
|
||||
private static final double HEALING_AMOUNT = 4.0;
|
||||
private final ItemSetting<Integer> chance = new ItemSetting<>("chance", 45);
|
||||
|
||||
public VampireBlade(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
|
||||
@ -44,7 +44,9 @@ public class VampireBlade extends SlimefunItem {
|
||||
|
||||
public void heal(Player p) {
|
||||
p.playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 0.7F, 0.7F);
|
||||
p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 1));
|
||||
double health = p.getHealth() + HEALING_AMOUNT;
|
||||
double maxHealth = p.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue();
|
||||
p.setHealth(Math.min(health, maxHealth));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,14 +8,12 @@ import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event.Result;
|
||||
@ -25,9 +23,7 @@ import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.block.BlockPlaceEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
||||
import io.github.thebusybiscuit.cscorelib2.inventory.ItemUtils;
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||
@ -54,19 +50,19 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
*/
|
||||
public class AncientAltarListener implements Listener {
|
||||
|
||||
public static final String ITEM_PREFIX = ChatColors.color("&dALTAR &3Probe - &e");
|
||||
private AncientAltar altarItem;
|
||||
private AncientPedestal pedestalItem;
|
||||
|
||||
private AncientAltar altar;
|
||||
|
||||
private final Set<AltarRecipe> altarRecipes = new HashSet<>();
|
||||
private final Set<Location> altarsInUse = new HashSet<>();
|
||||
|
||||
private final List<Block> altars = new ArrayList<>();
|
||||
private final Set<UUID> removedItems = new HashSet<>();
|
||||
|
||||
public void register(SlimefunPlugin plugin, AncientAltar altar) {
|
||||
public AncientAltarListener(SlimefunPlugin plugin, AncientAltar altar, AncientPedestal pedestal) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
this.altar = altar;
|
||||
|
||||
this.altarItem = altar;
|
||||
this.pedestalItem = pedestal;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -82,13 +78,9 @@ public class AncientAltarListener implements Listener {
|
||||
return altars;
|
||||
}
|
||||
|
||||
public Set<AltarRecipe> getRecipes() {
|
||||
return altarRecipes;
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInteract(PlayerRightClickEvent e) {
|
||||
if (altar == null || altar.isDisabled() || e.useBlock() == Result.DENY) {
|
||||
if (altarItem == null || altarItem.isDisabled() || e.useBlock() == Result.DENY) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -109,12 +101,12 @@ public class AncientAltarListener implements Listener {
|
||||
|
||||
String id = slimefunBlock.get().getID();
|
||||
|
||||
if (id.equals(SlimefunItems.ANCIENT_PEDESTAL.getItemId())) {
|
||||
if (id.equals(pedestalItem.getID())) {
|
||||
e.cancel();
|
||||
usePedestal(b, e.getPlayer());
|
||||
}
|
||||
else if (id.equals(SlimefunItems.ANCIENT_ALTAR.getItemId())) {
|
||||
if (!Slimefun.hasUnlocked(e.getPlayer(), SlimefunItems.ANCIENT_ALTAR.getItem(), true) || altarsInUse.contains(b.getLocation())) {
|
||||
else if (id.equals(altarItem.getID())) {
|
||||
if (!Slimefun.hasUnlocked(e.getPlayer(), altarItem, true) || altarsInUse.contains(b.getLocation())) {
|
||||
e.cancel();
|
||||
return;
|
||||
}
|
||||
@ -138,9 +130,9 @@ public class AncientAltarListener implements Listener {
|
||||
}
|
||||
|
||||
// getting the currently placed item
|
||||
Item stack = findItem(pedestal);
|
||||
Optional<Item> stack = pedestalItem.getPlacedItem(pedestal);
|
||||
|
||||
if (stack == null) {
|
||||
if (!stack.isPresent()) {
|
||||
// Check if the Item in hand is valid
|
||||
if (p.getInventory().getItemInMainHand().getType() != Material.AIR) {
|
||||
// Check for pedestal obstructions
|
||||
@ -150,17 +142,18 @@ public class AncientAltarListener implements Listener {
|
||||
}
|
||||
|
||||
// place the item onto the pedestal
|
||||
insertItem(p, pedestal);
|
||||
pedestalItem.placeItem(p, pedestal);
|
||||
}
|
||||
}
|
||||
else if (!removedItems.contains(stack.getUniqueId())) {
|
||||
UUID uuid = stack.getUniqueId();
|
||||
else if (!removedItems.contains(stack.get().getUniqueId())) {
|
||||
Item entity = stack.get();
|
||||
UUID uuid = entity.getUniqueId();
|
||||
removedItems.add(uuid);
|
||||
|
||||
Slimefun.runSync(() -> removedItems.remove(uuid), 30L);
|
||||
|
||||
stack.remove();
|
||||
p.getInventory().addItem(fixItemStack(stack.getItemStack(), stack.getCustomName()));
|
||||
entity.remove();
|
||||
p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity));
|
||||
p.playSound(pedestal.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1F, 1F);
|
||||
}
|
||||
}
|
||||
@ -209,10 +202,10 @@ public class AncientAltarListener implements Listener {
|
||||
List<ItemStack> input = new ArrayList<>();
|
||||
|
||||
for (Block pedestal : pedestals) {
|
||||
Item stack = findItem(pedestal);
|
||||
Optional<Item> stack = pedestalItem.getPlacedItem(pedestal);
|
||||
|
||||
if (stack != null) {
|
||||
input.add(fixItemStack(stack.getItemStack(), stack.getCustomName()));
|
||||
if (stack.isPresent()) {
|
||||
input.add(pedestalItem.getOriginalItemStack(stack.get()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -227,7 +220,9 @@ public class AncientAltarListener implements Listener {
|
||||
}
|
||||
|
||||
b.getWorld().playSound(b.getLocation(), Sound.ENTITY_ILLUSIONER_PREPARE_MIRROR, 1, 1);
|
||||
Slimefun.runSync(new AncientAltarTask(b, altar.getSpeed(), result.get(), pedestals, consumed, p), 10L);
|
||||
|
||||
AncientAltarTask task = new AncientAltarTask(this, b, altarItem.getSpeed(), result.get(), pedestals, consumed, p);
|
||||
Slimefun.runSync(task, 10L);
|
||||
}
|
||||
else {
|
||||
altars.remove(b);
|
||||
@ -255,7 +250,7 @@ public class AncientAltarListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onBlockPlace(BlockPlaceEvent e) {
|
||||
if (altar == null || altar.isDisabled()) {
|
||||
if (altarItem == null || altarItem.isDisabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -264,82 +259,38 @@ public class AncientAltarListener implements Listener {
|
||||
if (pedestal.getType() == Material.DISPENSER) {
|
||||
String id = BlockStorage.checkID(pedestal);
|
||||
|
||||
if (id != null && id.equals(SlimefunItems.ANCIENT_PEDESTAL.getItemId())) {
|
||||
if (id != null && id.equals(pedestalItem.getID())) {
|
||||
SlimefunPlugin.getLocalization().sendMessage(e.getPlayer(), "messages.cannot-place", true);
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack fixItemStack(ItemStack itemStack, String customName) {
|
||||
ItemStack stack = itemStack.clone();
|
||||
|
||||
if (customName.equals(ItemUtils.getItemName(new ItemStack(itemStack.getType())))) {
|
||||
ItemMeta im = stack.getItemMeta();
|
||||
im.setDisplayName(null);
|
||||
stack.setItemMeta(im);
|
||||
}
|
||||
else {
|
||||
ItemMeta im = stack.getItemMeta();
|
||||
if (!customName.startsWith(String.valueOf(ChatColor.COLOR_CHAR))) customName = ChatColor.RESET + customName;
|
||||
im.setDisplayName(customName);
|
||||
stack.setItemMeta(im);
|
||||
}
|
||||
return stack;
|
||||
}
|
||||
|
||||
public Item findItem(Block b) {
|
||||
for (Entity n : b.getChunk().getEntities()) {
|
||||
if (n instanceof Item && b.getLocation().add(0.5, 1.2, 0.5).distanceSquared(n.getLocation()) < 0.5D && n.getCustomName() != null) {
|
||||
return (Item) n;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void insertItem(Player p, Block b) {
|
||||
ItemStack hand = p.getInventory().getItemInMainHand();
|
||||
ItemStack stack = new CustomItem(hand, 1);
|
||||
|
||||
if (p.getGameMode() != GameMode.CREATIVE) {
|
||||
ItemUtils.consumeItem(hand, false);
|
||||
}
|
||||
|
||||
String nametag = ItemUtils.getItemName(stack);
|
||||
Item entity = b.getWorld().dropItem(b.getLocation().add(0.5, 1.2, 0.5), new CustomItem(stack, ITEM_PREFIX + System.nanoTime()));
|
||||
entity.setVelocity(new Vector(0, 0.1, 0));
|
||||
SlimefunUtils.markAsNoPickup(entity, "altar_item");
|
||||
entity.setCustomNameVisible(true);
|
||||
entity.setCustomName(nametag);
|
||||
p.playSound(b.getLocation(), Sound.ENTITY_ITEM_PICKUP, 0.3F, 0.3F);
|
||||
}
|
||||
|
||||
private List<Block> getPedestals(Block altar) {
|
||||
List<Block> list = new ArrayList<>();
|
||||
String id = SlimefunItems.ANCIENT_PEDESTAL.getItemId();
|
||||
|
||||
if (BlockStorage.check(altar.getRelative(2, 0, -2), id)) {
|
||||
if (BlockStorage.check(altar.getRelative(2, 0, -2), pedestalItem.getID())) {
|
||||
list.add(altar.getRelative(2, 0, -2));
|
||||
}
|
||||
if (BlockStorage.check(altar.getRelative(3, 0, 0), id)) {
|
||||
if (BlockStorage.check(altar.getRelative(3, 0, 0), pedestalItem.getID())) {
|
||||
list.add(altar.getRelative(3, 0, 0));
|
||||
}
|
||||
if (BlockStorage.check(altar.getRelative(2, 0, 2), id)) {
|
||||
if (BlockStorage.check(altar.getRelative(2, 0, 2), pedestalItem.getID())) {
|
||||
list.add(altar.getRelative(2, 0, 2));
|
||||
}
|
||||
if (BlockStorage.check(altar.getRelative(0, 0, 3), id)) {
|
||||
if (BlockStorage.check(altar.getRelative(0, 0, 3), pedestalItem.getID())) {
|
||||
list.add(altar.getRelative(0, 0, 3));
|
||||
}
|
||||
if (BlockStorage.check(altar.getRelative(-2, 0, 2), id)) {
|
||||
if (BlockStorage.check(altar.getRelative(-2, 0, 2), pedestalItem.getID())) {
|
||||
list.add(altar.getRelative(-2, 0, 2));
|
||||
}
|
||||
if (BlockStorage.check(altar.getRelative(-3, 0, 0), id)) {
|
||||
if (BlockStorage.check(altar.getRelative(-3, 0, 0), pedestalItem.getID())) {
|
||||
list.add(altar.getRelative(-3, 0, 0));
|
||||
}
|
||||
if (BlockStorage.check(altar.getRelative(-2, 0, -2), id)) {
|
||||
if (BlockStorage.check(altar.getRelative(-2, 0, -2), pedestalItem.getID())) {
|
||||
list.add(altar.getRelative(-2, 0, -2));
|
||||
}
|
||||
if (BlockStorage.check(altar.getRelative(0, 0, -3), id)) {
|
||||
if (BlockStorage.check(altar.getRelative(0, 0, -3), pedestalItem.getID())) {
|
||||
list.add(altar.getRelative(0, 0, -3));
|
||||
}
|
||||
|
||||
@ -370,7 +321,7 @@ public class AncientAltarListener implements Listener {
|
||||
}
|
||||
|
||||
private Optional<ItemStack> checkRecipe(ItemStack catalyst, List<ItemStackWrapper> items) {
|
||||
for (AltarRecipe recipe : altarRecipes) {
|
||||
for (AltarRecipe recipe : altarItem.getRecipes()) {
|
||||
if (SlimefunUtils.isItemSimilar(catalyst, recipe.getCatalyst(), true)) {
|
||||
Optional<ItemStack> optional = checkPedestals(items, recipe);
|
||||
|
||||
|
@ -7,6 +7,7 @@ import org.bukkit.event.inventory.InventoryPickupItemEvent;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientPedestal;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils;
|
||||
|
||||
/**
|
||||
@ -28,7 +29,7 @@ public class ItemPickupListener implements Listener {
|
||||
else if (e.getItem().getItemStack().hasItemMeta()) {
|
||||
ItemMeta meta = e.getItem().getItemStack().getItemMeta();
|
||||
|
||||
if (meta.hasDisplayName() && meta.getDisplayName().startsWith(AncientAltarListener.ITEM_PREFIX)) {
|
||||
if (meta.hasDisplayName() && meta.getDisplayName().startsWith(AncientPedestal.ITEM_PREFIX)) {
|
||||
e.setCancelled(true);
|
||||
e.getItem().remove();
|
||||
}
|
||||
@ -43,7 +44,7 @@ public class ItemPickupListener implements Listener {
|
||||
else if (e.getItem().getItemStack().hasItemMeta()) {
|
||||
ItemMeta meta = e.getItem().getItemStack().getItemMeta();
|
||||
|
||||
if (meta.hasDisplayName() && meta.getDisplayName().startsWith(AncientAltarListener.ITEM_PREFIX)) {
|
||||
if (meta.hasDisplayName() && meta.getDisplayName().startsWith(AncientPedestal.ITEM_PREFIX)) {
|
||||
e.setCancelled(true);
|
||||
e.getItem().remove();
|
||||
}
|
||||
|
@ -1,20 +1,9 @@
|
||||
package io.github.thebusybiscuit.slimefun4.implementation.listeners;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.EnderPearl;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -23,21 +12,18 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.protection.ProtectableAction;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.armor.FarmerShoes;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.armor.SlimefunArmorPiece;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.armor.StomperBoots;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
|
||||
/**
|
||||
* This {@link Listener} is responsible for handling all boots provided by
|
||||
* Slimefun, such as the Boots of the Stomper or any {@link SlimefunArmorPiece} that
|
||||
* is a pair of boots and needs to listen to an {@link Event}.
|
||||
* Slimefun, such as the {@link StomperBoots} or any {@link SlimefunArmorPiece} that
|
||||
* is a pair of boots and needs to listen to an {@link EntityDamageEvent}.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
* @author Walshy
|
||||
@ -45,80 +31,65 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
*/
|
||||
public class SlimefunBootsListener implements Listener {
|
||||
|
||||
private final Map<String, Predicate<EntityDamageEvent>> cancelledEvents = new HashMap<>();
|
||||
|
||||
public SlimefunBootsListener(SlimefunPlugin plugin) {
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
|
||||
cancelledEvents.put("ENDER_BOOTS", e -> e instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) e).getDamager() instanceof EnderPearl);
|
||||
|
||||
cancelledEvents.put("BOOTS_OF_THE_STOMPER", e -> {
|
||||
if (e.getCause() == DamageCause.FALL) {
|
||||
stomp(e);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
cancelledEvents.put("SLIME_BOOTS", e -> e.getCause() == DamageCause.FALL);
|
||||
|
||||
cancelledEvents.put("SLIME_STEEL_BOOTS", e -> e.getCause() == DamageCause.FALL);
|
||||
}
|
||||
|
||||
private void stomp(EntityDamageEvent e) {
|
||||
Player p = (Player) e.getEntity();
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ZOMBIE_BREAK_WOODEN_DOOR, 1F, 2F);
|
||||
p.setVelocity(new Vector(0.0, 0.7, 0.0));
|
||||
|
||||
for (Entity n : p.getNearbyEntities(4, 4, 4)) {
|
||||
if (n instanceof LivingEntity && !n.getUniqueId().equals(p.getUniqueId())) {
|
||||
Vector velocity = n.getLocation().toVector().subtract(p.getLocation().toVector()).normalize().multiply(1.4);
|
||||
n.setVelocity(velocity);
|
||||
|
||||
if (!(n instanceof Player) || (p.getWorld().getPVP() && SlimefunPlugin.getProtectionManager().hasPermission(p, n.getLocation(), ProtectableAction.PVP))) {
|
||||
EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(p, n, DamageCause.ENTITY_ATTACK, e.getDamage() / 2);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
if (!event.isCancelled()) ((LivingEntity) n).damage(e.getDamage() / 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (BlockFace face : BlockFace.values()) {
|
||||
Block b = p.getLocation().getBlock().getRelative(BlockFace.DOWN).getRelative(face);
|
||||
p.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, b.getType());
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||
public void onDamage(EntityDamageEvent e) {
|
||||
if (e.getEntity() instanceof Player) {
|
||||
Player p = (Player) e.getEntity();
|
||||
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
||||
if (e.getCause() == DamageCause.FALL) {
|
||||
onFallDamage(e);
|
||||
}
|
||||
else if (e instanceof EntityDamageByEntityEvent) {
|
||||
EntityDamageByEntityEvent event = (EntityDamageByEntityEvent) e;
|
||||
|
||||
if (boots != null) {
|
||||
for (Map.Entry<String, Predicate<EntityDamageEvent>> event : cancelledEvents.entrySet()) {
|
||||
if (boots.getID().equals(event.getKey())) {
|
||||
if (Slimefun.hasUnlocked(p, boots, true) && event.getValue().test(e)) {
|
||||
e.setCancelled(true);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
if (event.getDamager() instanceof EnderPearl) {
|
||||
onEnderPearlDamage(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onFallDamage(EntityDamageEvent e) {
|
||||
Player p = (Player) e.getEntity();
|
||||
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
||||
|
||||
if (boots != null) {
|
||||
// Check if the boots were researched
|
||||
if (!Slimefun.hasUnlocked(p, boots, true)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (boots instanceof StomperBoots) {
|
||||
e.setCancelled(true);
|
||||
((StomperBoots) boots).stomp(e);
|
||||
}
|
||||
else if (boots.getID().equals("SLIME_BOOTS") || boots.getID().equals("SLIME_STEEL_BOOTS")) {
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onEnderPearlDamage(EntityDamageEvent e) {
|
||||
Player p = (Player) e.getEntity();
|
||||
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
||||
|
||||
if (boots != null && boots.getID().equals("ENDER_BOOTS") && Slimefun.hasUnlocked(p, boots, true)) {
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onTrample(PlayerInteractEvent e) {
|
||||
if (e.getAction() == Action.PHYSICAL) {
|
||||
Block b = e.getClickedBlock();
|
||||
|
||||
if (b != null && b.getType() == Material.FARMLAND) {
|
||||
ItemStack boots = e.getPlayer().getInventory().getBoots();
|
||||
Player p = e.getPlayer();
|
||||
SlimefunItem boots = SlimefunItem.getByItem(p.getInventory().getBoots());
|
||||
|
||||
if (SlimefunUtils.isItemSimilar(boots, SlimefunItems.FARMER_SHOES, true) && Slimefun.hasUnlocked(e.getPlayer(), boots, true)) {
|
||||
if (boots instanceof FarmerShoes && Slimefun.hasUnlocked(p, boots, true)) {
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,7 @@ import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.Trident;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -75,12 +76,19 @@ public class TalismanListener implements Listener {
|
||||
Talisman.checkFor(e, SlimefunItems.TALISMAN_WARRIOR);
|
||||
}
|
||||
|
||||
if (e.getCause() == DamageCause.PROJECTILE && ((EntityDamageByEntityEvent) e).getDamager() instanceof Projectile) {
|
||||
Projectile projectile = (Projectile) ((EntityDamageByEntityEvent) e).getDamager();
|
||||
if (e.getCause() == DamageCause.PROJECTILE && e instanceof EntityDamageByEntityEvent) {
|
||||
onProjectileDamage((EntityDamageByEntityEvent) e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (Talisman.checkFor(e, SlimefunItems.TALISMAN_WHIRLWIND)) {
|
||||
returnProjectile((Player) e.getEntity(), projectile);
|
||||
}
|
||||
private void onProjectileDamage(EntityDamageByEntityEvent e) {
|
||||
if (e.getDamager() instanceof Projectile && !(e.getDamager() instanceof Trident)) {
|
||||
Projectile projectile = (Projectile) e.getDamager();
|
||||
|
||||
if (Talisman.checkFor(e, SlimefunItems.TALISMAN_WHIRLWIND)) {
|
||||
Player p = (Player) e.getEntity();
|
||||
returnProjectile(p, projectile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -31,9 +31,11 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.androids.FisherAn
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.androids.MinerAndroid;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.androids.ProgrammableAndroid;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.androids.WoodcutterAndroid;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.armor.FarmerShoes;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.armor.HazmatArmorPiece;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.armor.Parachute;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.armor.SlimefunArmorPiece;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.armor.StomperBoots;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.backpacks.Cooler;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.backpacks.EnderBackpack;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.backpacks.RestoredBackpack;
|
||||
@ -1049,7 +1051,7 @@ public final class SlimefunItemSetup {
|
||||
new ItemStack[] {new ItemStack(Material.OAK_SLAB), null, new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), null, new ItemStack(Material.OAK_SLAB), new ItemStack(Material.OAK_SLAB), new ItemStack(Material.CAULDRON), new ItemStack(Material.OAK_SLAB)})
|
||||
.register(plugin);
|
||||
|
||||
new SlimefunItem(categories.magicalArmor, SlimefunItems.FARMER_SHOES, RecipeType.ARMOR_FORGE,
|
||||
new FarmerShoes(categories.magicalArmor, SlimefunItems.FARMER_SHOES, RecipeType.ARMOR_FORGE,
|
||||
new ItemStack[] {null, null, null, new ItemStack(Material.HAY_BLOCK), null, new ItemStack(Material.HAY_BLOCK), new ItemStack(Material.HAY_BLOCK), null, new ItemStack(Material.HAY_BLOCK)})
|
||||
.register(plugin);
|
||||
|
||||
@ -1066,7 +1068,7 @@ public final class SlimefunItemSetup {
|
||||
new IndustrialMiner(categories.basicMachines, SlimefunItems.INDUSTRIAL_MINER, Material.IRON_BLOCK, false, 3).register(plugin);
|
||||
new AdvancedIndustrialMiner(categories.basicMachines, SlimefunItems.ADVANCED_INDUSTRIAL_MINER).register(plugin);
|
||||
|
||||
new SlimefunItem(categories.magicalArmor, SlimefunItems.BOOTS_OF_THE_STOMPER, RecipeType.ARMOR_FORGE,
|
||||
new StomperBoots(categories.magicalArmor, SlimefunItems.BOOTS_OF_THE_STOMPER, RecipeType.ARMOR_FORGE,
|
||||
new ItemStack[] {null, null, null, new ItemStack(Material.YELLOW_WOOL), null, new ItemStack(Material.YELLOW_WOOL), new ItemStack(Material.PISTON), null, new ItemStack(Material.PISTON)})
|
||||
.register(plugin);
|
||||
|
||||
|
@ -5,8 +5,8 @@ import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import io.github.thebusybiscuit.slimefun4.api.events.AncientAltarCraftEvent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
@ -18,8 +18,11 @@ import org.bukkit.entity.Item;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import io.github.thebusybiscuit.slimefun4.api.events.AncientAltarCraftEvent;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientAltar;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientPedestal;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.AncientAltarListener;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
|
||||
@ -37,7 +40,8 @@ import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
*/
|
||||
public class AncientAltarTask implements Runnable {
|
||||
|
||||
private final AncientAltarListener listener = SlimefunPlugin.getAncientAltarListener();
|
||||
private final AncientAltarListener listener;
|
||||
private final AncientPedestal pedestalItem = (AncientPedestal) SlimefunItems.ANCIENT_PEDESTAL.getItem();
|
||||
|
||||
private final Block altar;
|
||||
private final int speed;
|
||||
@ -47,13 +51,14 @@ public class AncientAltarTask implements Runnable {
|
||||
private final List<ItemStack> items;
|
||||
|
||||
private final Collection<Location> particleLocations = new LinkedList<>();
|
||||
private final Map<Item, Location> itemLock = new HashMap<>();
|
||||
private final Map<Item, Location> positionLock = new HashMap<>();
|
||||
|
||||
private boolean running;
|
||||
private int stage;
|
||||
private final Player player;
|
||||
|
||||
public AncientAltarTask(Block altar, int speed, ItemStack output, List<Block> pedestals, List<ItemStack> items, Player player) {
|
||||
public AncientAltarTask(AncientAltarListener listener, Block altar, int speed, ItemStack output, List<Block> pedestals, List<ItemStack> items, Player player) {
|
||||
this.listener = listener;
|
||||
this.dropLocation = altar.getLocation().add(0.5, 1.3, 0.5);
|
||||
this.speed = speed;
|
||||
this.altar = altar;
|
||||
@ -66,8 +71,12 @@ public class AncientAltarTask implements Runnable {
|
||||
this.stage = 0;
|
||||
|
||||
for (Block pedestal : pedestals) {
|
||||
Item item = listener.findItem(pedestal);
|
||||
this.itemLock.put(item, item.getLocation().clone());
|
||||
Optional<Item> item = pedestalItem.getPlacedItem(pedestal);
|
||||
|
||||
if (item.isPresent()) {
|
||||
Item entity = item.get();
|
||||
positionLock.put(entity, entity.getLocation().clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,7 +103,7 @@ public class AncientAltarTask implements Runnable {
|
||||
}
|
||||
|
||||
private boolean checkLockedItems() {
|
||||
for (Map.Entry<Item, Location> entry : itemLock.entrySet()) {
|
||||
for (Map.Entry<Item, Location> entry : positionLock.entrySet()) {
|
||||
if (entry.getKey().getLocation().distanceSquared(entry.getValue()) > 0.1) {
|
||||
return false;
|
||||
}
|
||||
@ -114,22 +123,23 @@ public class AncientAltarTask implements Runnable {
|
||||
}
|
||||
|
||||
private void checkPedestal(Block pedestal) {
|
||||
Item item = listener.findItem(pedestal);
|
||||
Optional<Item> item = pedestalItem.getPlacedItem(pedestal);
|
||||
|
||||
if (item == null || itemLock.remove(item) == null) {
|
||||
if (!item.isPresent() || positionLock.remove(item.get()) == null) {
|
||||
abort();
|
||||
}
|
||||
else {
|
||||
Item entity = item.get();
|
||||
particleLocations.add(pedestal.getLocation().add(0.5, 1.5, 0.5));
|
||||
items.add(listener.fixItemStack(item.getItemStack(), item.getCustomName()));
|
||||
items.add(pedestalItem.getOriginalItemStack(entity));
|
||||
pedestal.getWorld().playSound(pedestal.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 1F, 2F);
|
||||
|
||||
dropLocation.getWorld().spawnParticle(Particle.ENCHANTMENT_TABLE, pedestal.getLocation().add(0.5, 1.5, 0.5), 16, 0.3F, 0.2F, 0.3F);
|
||||
dropLocation.getWorld().spawnParticle(Particle.CRIT_MAGIC, pedestal.getLocation().add(0.5, 1.5, 0.5), 8, 0.3F, 0.2F, 0.3F);
|
||||
|
||||
itemLock.remove(item);
|
||||
item.remove();
|
||||
item.removeMetadata("no_pickup", SlimefunPlugin.instance());
|
||||
positionLock.remove(entity);
|
||||
entity.remove();
|
||||
entity.removeMetadata("no_pickup", SlimefunPlugin.instance());
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,7 +153,7 @@ public class AncientAltarTask implements Runnable {
|
||||
// This should re-enable altar blocks on craft failure.
|
||||
listener.getAltarsInUse().remove(altar.getLocation());
|
||||
dropLocation.getWorld().playSound(dropLocation, Sound.ENTITY_ZOMBIE_ATTACK_IRON_DOOR, 1F, 1F);
|
||||
itemLock.clear();
|
||||
positionLock.clear();
|
||||
listener.getAltars().remove(altar);
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@ import io.github.thebusybiscuit.slimefun4.core.multiblocks.MultiBlockMachine;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AltarRecipe;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientAltar;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
@ -44,7 +45,8 @@ public class RecipeType implements Keyed {
|
||||
|
||||
public static final RecipeType ANCIENT_ALTAR = new RecipeType(new NamespacedKey(SlimefunPlugin.instance(), "ancient_altar"), SlimefunItems.ANCIENT_ALTAR, (recipe, output) -> {
|
||||
AltarRecipe altarRecipe = new AltarRecipe(Arrays.asList(recipe), output);
|
||||
SlimefunPlugin.getAncientAltarListener().getRecipes().add(altarRecipe);
|
||||
AncientAltar altar = ((AncientAltar) SlimefunItems.ANCIENT_ALTAR.getItem());
|
||||
altar.getRecipes().add(altarRecipe);
|
||||
});
|
||||
|
||||
public static final RecipeType MOB_DROP = new RecipeType(new NamespacedKey(SlimefunPlugin.instance(), "mob_drop"), new CustomItem(Material.IRON_SWORD, "&bMob Drop"), RecipeType::registerMobDrop, "", "&rKill the specified Mob to obtain this Item");
|
||||
|
@ -1,518 +0,0 @@
|
||||
package me.mrCookieSlime.Slimefun.Lists;
|
||||
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
/**
|
||||
* This class was moved to {@link io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems}.
|
||||
* All fields there are now finally of type {@link SlimefunItemStack}.
|
||||
*
|
||||
* @deprecated Moved to {@link io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems}. Use that instead.
|
||||
*
|
||||
* @author TheBusyBiscuit
|
||||
*
|
||||
*/
|
||||
@Deprecated
|
||||
public final class SlimefunItems {
|
||||
|
||||
private SlimefunItems() {}
|
||||
|
||||
public static final SlimefunItemStack PORTABLE_CRAFTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PORTABLE_CRAFTER;
|
||||
public static final SlimefunItemStack PORTABLE_DUSTBIN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PORTABLE_DUSTBIN;
|
||||
public static final SlimefunItemStack ENDER_BACKPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_BACKPACK;
|
||||
public static final SlimefunItemStack MAGIC_EYE_OF_ENDER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGIC_EYE_OF_ENDER;
|
||||
public static final SlimefunItemStack BROKEN_SPAWNER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BROKEN_SPAWNER;
|
||||
public static final SlimefunItemStack REPAIRED_SPAWNER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REPAIRED_SPAWNER;
|
||||
public static final SlimefunItemStack INFERNAL_BONEMEAL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.INFERNAL_BONEMEAL;
|
||||
public static final SlimefunItemStack GOLD_PAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_PAN;
|
||||
public static final SlimefunItemStack NETHER_GOLD_PAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NETHER_GOLD_PAN;
|
||||
public static final SlimefunItemStack PARACHUTE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PARACHUTE;
|
||||
public static final SlimefunItemStack GRAPPLING_HOOK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GRAPPLING_HOOK;
|
||||
public static final SlimefunItemStack SOLAR_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLAR_HELMET;
|
||||
public static final SlimefunItemStack CLOTH = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CLOTH;
|
||||
public static final SlimefunItemStack CAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TIN_CAN;
|
||||
public static final SlimefunItemStack NIGHT_VISION_GOGGLES = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NIGHT_VISION_GOGGLES;
|
||||
public static final SlimefunItemStack FARMER_SHOES = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FARMER_SHOES;
|
||||
public static final SlimefunItemStack INFUSED_MAGNET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.INFUSED_MAGNET;
|
||||
public static final SlimefunItemStack RAG = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAG;
|
||||
public static final SlimefunItemStack BANDAGE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BANDAGE;
|
||||
public static final SlimefunItemStack SPLINT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SPLINT;
|
||||
public static final SlimefunItemStack VITAMINS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.VITAMINS;
|
||||
public static final SlimefunItemStack MEDICINE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MEDICINE;
|
||||
public static final SlimefunItemStack FLASK_OF_KNOWLEDGE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FLASK_OF_KNOWLEDGE;
|
||||
public static final SlimefunItemStack FILLED_FLASK_OF_KNOWLEDGE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FILLED_FLASK_OF_KNOWLEDGE;
|
||||
public static final SlimefunItemStack BACKPACK_SMALL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BACKPACK_SMALL;
|
||||
public static final SlimefunItemStack BACKPACK_MEDIUM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BACKPACK_MEDIUM;
|
||||
public static final SlimefunItemStack BACKPACK_LARGE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BACKPACK_LARGE;
|
||||
public static final SlimefunItemStack WOVEN_BACKPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.WOVEN_BACKPACK;
|
||||
public static final SlimefunItemStack GILDED_BACKPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GILDED_BACKPACK;
|
||||
public static final SlimefunItemStack RADIANT_BACKPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RADIANT_BACKPACK;
|
||||
public static final SlimefunItemStack BOUND_BACKPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BOUND_BACKPACK;
|
||||
public static final SlimefunItemStack COOLER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COOLER;
|
||||
public static final SlimefunItemStack RESTORED_BACKPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RESTORED_BACKPACK;
|
||||
public static final SlimefunItemStack DURALUMIN_JETPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DURALUMIN_JETPACK;
|
||||
public static final SlimefunItemStack SOLDER_JETPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLDER_JETPACK;
|
||||
public static final SlimefunItemStack BILLON_JETPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BILLON_JETPACK;
|
||||
public static final SlimefunItemStack STEEL_JETPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STEEL_JETPACK;
|
||||
public static final SlimefunItemStack DAMASCUS_STEEL_JETPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DAMASCUS_STEEL_JETPACK;
|
||||
public static final SlimefunItemStack REINFORCED_ALLOY_JETPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_ALLOY_JETPACK;
|
||||
public static final SlimefunItemStack CARBONADO_JETPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBONADO_JETPACK;
|
||||
public static final SlimefunItemStack ARMORED_JETPACK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ARMORED_JETPACK;
|
||||
public static final SlimefunItemStack DURALUMIN_JETBOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DURALUMIN_JETBOOTS;
|
||||
public static final SlimefunItemStack SOLDER_JETBOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLDER_JETBOOTS;
|
||||
public static final SlimefunItemStack BILLON_JETBOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BILLON_JETBOOTS;
|
||||
public static final SlimefunItemStack STEEL_JETBOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STEEL_JETBOOTS;
|
||||
public static final SlimefunItemStack DAMASCUS_STEEL_JETBOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DAMASCUS_STEEL_JETBOOTS;
|
||||
public static final SlimefunItemStack REINFORCED_ALLOY_JETBOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_ALLOY_JETBOOTS;
|
||||
public static final SlimefunItemStack CARBONADO_JETBOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBONADO_JETBOOTS;
|
||||
public static final SlimefunItemStack ARMORED_JETBOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ARMORED_JETBOOTS;
|
||||
public static final SlimefunItemStack DURALUMIN_MULTI_TOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DURALUMIN_MULTI_TOOL;
|
||||
public static final SlimefunItemStack SOLDER_MULTI_TOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLDER_MULTI_TOOL;
|
||||
public static final SlimefunItemStack BILLON_MULTI_TOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BILLON_MULTI_TOOL;
|
||||
public static final SlimefunItemStack STEEL_MULTI_TOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STEEL_MULTI_TOOL;
|
||||
public static final SlimefunItemStack DAMASCUS_STEEL_MULTI_TOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DAMASCUS_STEEL_MULTI_TOOL;
|
||||
public static final SlimefunItemStack REINFORCED_ALLOY_MULTI_TOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_ALLOY_MULTI_TOOL;
|
||||
public static final SlimefunItemStack CARBONADO_MULTI_TOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBONADO_MULTI_TOOL;
|
||||
public static final SlimefunItemStack FORTUNE_COOKIE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FORTUNE_COOKIE;
|
||||
public static final SlimefunItemStack DIET_COOKIE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DIET_COOKIE;
|
||||
public static final SlimefunItemStack MAGIC_SUGAR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGIC_SUGAR;
|
||||
public static final SlimefunItemStack MONSTER_JERKY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MONSTER_JERKY;
|
||||
public static final SlimefunItemStack APPLE_JUICE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.APPLE_JUICE;
|
||||
public static final SlimefunItemStack MELON_JUICE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MELON_JUICE;
|
||||
public static final SlimefunItemStack CARROT_JUICE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARROT_JUICE;
|
||||
public static final SlimefunItemStack PUMPKIN_JUICE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PUMPKIN_JUICE;
|
||||
public static final SlimefunItemStack SWEET_BERRY_JUICE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SWEET_BERRY_JUICE;
|
||||
public static final SlimefunItemStack GOLDEN_APPLE_JUICE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLDEN_APPLE_JUICE;
|
||||
public static final SlimefunItemStack BEEF_JERKY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BEEF_JERKY;
|
||||
public static final SlimefunItemStack PORK_JERKY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PORK_JERKY;
|
||||
public static final SlimefunItemStack CHICKEN_JERKY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHICKEN_JERKY;
|
||||
public static final SlimefunItemStack MUTTON_JERKY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MUTTON_JERKY;
|
||||
public static final SlimefunItemStack RABBIT_JERKY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RABBIT_JERKY;
|
||||
public static final SlimefunItemStack FISH_JERKY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FISH_JERKY;
|
||||
public static final SlimefunItemStack KELP_COOKIE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.KELP_COOKIE;
|
||||
public static final SlimefunItemStack CHRISTMAS_MILK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_MILK;
|
||||
public static final SlimefunItemStack CHRISTMAS_CHOCOLATE_MILK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_CHOCOLATE_MILK;
|
||||
public static final SlimefunItemStack CHRISTMAS_EGG_NOG = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_EGG_NOG;
|
||||
public static final SlimefunItemStack CHRISTMAS_APPLE_CIDER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_APPLE_CIDER;
|
||||
public static final SlimefunItemStack CHRISTMAS_COOKIE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_COOKIE;
|
||||
public static final SlimefunItemStack CHRISTMAS_FRUIT_CAKE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_FRUIT_CAKE;
|
||||
public static final SlimefunItemStack CHRISTMAS_APPLE_PIE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_APPLE_PIE;
|
||||
public static final SlimefunItemStack CHRISTMAS_HOT_CHOCOLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_HOT_CHOCOLATE;
|
||||
public static final SlimefunItemStack CHRISTMAS_CAKE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_CAKE;
|
||||
public static final SlimefunItemStack CHRISTMAS_CARAMEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_CARAMEL;
|
||||
public static final SlimefunItemStack CHRISTMAS_CARAMEL_APPLE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_CARAMEL_APPLE;
|
||||
public static final SlimefunItemStack CHRISTMAS_CHOCOLATE_APPLE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_CHOCOLATE_APPLE;
|
||||
public static final SlimefunItemStack CHRISTMAS_PRESENT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHRISTMAS_PRESENT;
|
||||
public static final SlimefunItemStack EASTER_EGG = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.EASTER_EGG;
|
||||
public static final SlimefunItemStack EASTER_CARROT_PIE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.EASTER_CARROT_PIE;
|
||||
public static final SlimefunItemStack EASTER_APPLE_PIE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.EASTER_APPLE_PIE;
|
||||
public static final SlimefunItemStack GRANDMAS_WALKING_STICK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GRANDMAS_WALKING_STICK;
|
||||
public static final SlimefunItemStack GRANDPAS_WALKING_STICK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GRANDPAS_WALKING_STICK;
|
||||
public static final SlimefunItemStack SWORD_OF_BEHEADING = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SWORD_OF_BEHEADING;
|
||||
public static final SlimefunItemStack BLADE_OF_VAMPIRES = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BLADE_OF_VAMPIRES;
|
||||
public static final SlimefunItemStack SEISMIC_AXE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SEISMIC_AXE;
|
||||
public static final SlimefunItemStack EXPLOSIVE_BOW = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.EXPLOSIVE_BOW;
|
||||
public static final SlimefunItemStack ICY_BOW = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ICY_BOW;
|
||||
public static final SlimefunItemStack AUTO_SMELT_PICKAXE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SMELTERS_PICKAXE;
|
||||
public static final SlimefunItemStack LUMBER_AXE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.LUMBER_AXE;
|
||||
public static final SlimefunItemStack PICKAXE_OF_CONTAINMENT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PICKAXE_OF_CONTAINMENT;
|
||||
public static final SlimefunItemStack HERCULES_PICKAXE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HERCULES_PICKAXE;
|
||||
public static final SlimefunItemStack EXPLOSIVE_PICKAXE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.EXPLOSIVE_PICKAXE;
|
||||
public static final SlimefunItemStack EXPLOSIVE_SHOVEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.EXPLOSIVE_SHOVEL;
|
||||
public static final SlimefunItemStack PICKAXE_OF_THE_SEEKER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PICKAXE_OF_THE_SEEKER;
|
||||
public static final SlimefunItemStack COBALT_PICKAXE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COBALT_PICKAXE;
|
||||
public static final SlimefunItemStack PICKAXE_OF_VEIN_MINING = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PICKAXE_OF_VEIN_MINING;
|
||||
public static final SlimefunItemStack GLOWSTONE_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GLOWSTONE_HELMET;
|
||||
public static final SlimefunItemStack GLOWSTONE_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GLOWSTONE_CHESTPLATE;
|
||||
public static final SlimefunItemStack GLOWSTONE_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GLOWSTONE_LEGGINGS;
|
||||
public static final SlimefunItemStack GLOWSTONE_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GLOWSTONE_BOOTS;
|
||||
public static final SlimefunItemStack ENDER_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_HELMET;
|
||||
public static final SlimefunItemStack ENDER_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_CHESTPLATE;
|
||||
public static final SlimefunItemStack ENDER_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_LEGGINGS;
|
||||
public static final SlimefunItemStack ENDER_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_BOOTS;
|
||||
public static final SlimefunItemStack SLIME_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SLIME_HELMET;
|
||||
public static final SlimefunItemStack SLIME_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SLIME_CHESTPLATE;
|
||||
public static final SlimefunItemStack SLIME_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SLIME_LEGGINGS;
|
||||
public static final SlimefunItemStack SLIME_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SLIME_BOOTS;
|
||||
public static final SlimefunItemStack CACTUS_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CACTUS_HELMET;
|
||||
public static final SlimefunItemStack CACTUS_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CACTUS_CHESTPLATE;
|
||||
public static final SlimefunItemStack CACTUS_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CACTUS_LEGGINGS;
|
||||
public static final SlimefunItemStack CACTUS_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CACTUS_BOOTS;
|
||||
public static final SlimefunItemStack DAMASCUS_STEEL_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DAMASCUS_STEEL_HELMET;
|
||||
public static final SlimefunItemStack DAMASCUS_STEEL_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DAMASCUS_STEEL_CHESTPLATE;
|
||||
public static final SlimefunItemStack DAMASCUS_STEEL_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DAMASCUS_STEEL_LEGGINGS;
|
||||
public static final SlimefunItemStack DAMASCUS_STEEL_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DAMASCUS_STEEL_BOOTS;
|
||||
public static final SlimefunItemStack REINFORCED_ALLOY_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_ALLOY_HELMET;
|
||||
public static final SlimefunItemStack REINFORCED_ALLOY_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_ALLOY_CHESTPLATE;
|
||||
public static final SlimefunItemStack REINFORCED_ALLOY_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_ALLOY_LEGGINGS;
|
||||
public static final SlimefunItemStack REINFORCED_ALLOY_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_ALLOY_BOOTS;
|
||||
public static final SlimefunItemStack SCUBA_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SCUBA_HELMET;
|
||||
public static final SlimefunItemStack HAZMATSUIT_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HAZMAT_CHESTPLATE;
|
||||
public static final SlimefunItemStack HAZMATSUIT_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HAZMAT_LEGGINGS;
|
||||
public static final SlimefunItemStack RUBBER_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HAZMAT_BOOTS;
|
||||
public static final SlimefunItemStack GILDED_IRON_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GILDED_IRON_HELMET;
|
||||
public static final SlimefunItemStack GILDED_IRON_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GILDED_IRON_CHESTPLATE;
|
||||
public static final SlimefunItemStack GILDED_IRON_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GILDED_IRON_LEGGINGS;
|
||||
public static final SlimefunItemStack GILDED_IRON_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GILDED_IRON_BOOTS;
|
||||
public static final SlimefunItemStack GOLD_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLDEN_HELMET_12K;
|
||||
public static final SlimefunItemStack GOLD_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLDEN_CHESTPLATE_12K;
|
||||
public static final SlimefunItemStack GOLD_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLDEN_LEGGINGS_12K;
|
||||
public static final SlimefunItemStack GOLD_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLDEN_BOOTS_12K;
|
||||
public static final SlimefunItemStack SLIME_HELMET_STEEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SLIME_HELMET_STEEL;
|
||||
public static final SlimefunItemStack SLIME_CHESTPLATE_STEEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SLIME_CHESTPLATE_STEEL;
|
||||
public static final SlimefunItemStack SLIME_LEGGINGS_STEEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SLIME_LEGGINGS_STEEL;
|
||||
public static final SlimefunItemStack SLIME_BOOTS_STEEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SLIME_BOOTS_STEEL;
|
||||
public static final SlimefunItemStack BOOTS_OF_THE_STOMPER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BOOTS_OF_THE_STOMPER;
|
||||
public static final ItemStack MAGIC_LUMP_1 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGIC_LUMP_1;
|
||||
public static final ItemStack MAGIC_LUMP_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGIC_LUMP_2;
|
||||
public static final ItemStack MAGIC_LUMP_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGIC_LUMP_3;
|
||||
public static final ItemStack ENDER_LUMP_1 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_LUMP_1;
|
||||
public static final ItemStack ENDER_LUMP_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_LUMP_2;
|
||||
public static final ItemStack ENDER_LUMP_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_LUMP_3;
|
||||
public static final SlimefunItemStack MAGICAL_BOOK_COVER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGICAL_BOOK_COVER;
|
||||
public static final ItemStack BASIC_CIRCUIT_BOARD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BASIC_CIRCUIT_BOARD;
|
||||
public static final ItemStack ADVANCED_CIRCUIT_BOARD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ADVANCED_CIRCUIT_BOARD;
|
||||
public static final ItemStack WHEAT_FLOUR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.WHEAT_FLOUR;
|
||||
public static final ItemStack STEEL_PLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STEEL_PLATE;
|
||||
public static final ItemStack BATTERY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BATTERY;
|
||||
public static final ItemStack CARBON = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBON;
|
||||
public static final ItemStack COMPRESSED_CARBON = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COMPRESSED_CARBON;
|
||||
public static final ItemStack CARBON_CHUNK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBON_CHUNK;
|
||||
public static final SlimefunItemStack STEEL_THRUSTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STEEL_THRUSTER;
|
||||
public static final ItemStack POWER_CRYSTAL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.POWER_CRYSTAL;
|
||||
public static final SlimefunItemStack CHAIN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHAIN;
|
||||
public static final ItemStack HOOK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HOOK;
|
||||
public static final ItemStack SIFTED_ORE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SIFTED_ORE;
|
||||
public static final ItemStack STONE_CHUNK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STONE_CHUNK;
|
||||
public static final SlimefunItemStack LAVA_CRYSTAL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.LAVA_CRYSTAL;
|
||||
public static final ItemStack SALT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SALT;
|
||||
public static final ItemStack CHEESE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHEESE;
|
||||
public static final ItemStack BUTTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BUTTER;
|
||||
public static final SlimefunItemStack DUCT_TAPE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DUCT_TAPE;
|
||||
public static final ItemStack HEAVY_CREAM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HEAVY_CREAM;
|
||||
public static final SlimefunItemStack CRUSHED_ORE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CRUSHED_ORE;
|
||||
public static final SlimefunItemStack PULVERIZED_ORE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PULVERIZED_ORE;
|
||||
public static final SlimefunItemStack PURE_ORE_CLUSTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PURE_ORE_CLUSTER;
|
||||
public static final SlimefunItemStack SMALL_URANIUM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SMALL_URANIUM;
|
||||
public static final SlimefunItemStack TINY_URANIUM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TINY_URANIUM;
|
||||
public static final ItemStack MAGNET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGNET;
|
||||
public static final ItemStack NECROTIC_SKULL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NECROTIC_SKULL;
|
||||
public static final ItemStack ESSENCE_OF_AFTERLIFE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ESSENCE_OF_AFTERLIFE;
|
||||
public static final ItemStack ELECTRO_MAGNET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRO_MAGNET;
|
||||
public static final ItemStack HEATING_COIL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HEATING_COIL;
|
||||
public static final ItemStack COOLING_UNIT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COOLING_UNIT;
|
||||
public static final ItemStack ELECTRIC_MOTOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_MOTOR;
|
||||
public static final ItemStack CARGO_MOTOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARGO_MOTOR;
|
||||
public static final SlimefunItemStack SCROLL_OF_DIMENSIONAL_TELEPOSITION = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SCROLL_OF_DIMENSIONAL_TELEPOSITION;
|
||||
public static final SlimefunItemStack TOME_OF_KNOWLEDGE_SHARING = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TOME_OF_KNOWLEDGE_SHARING;
|
||||
public static final ItemStack HARDENED_GLASS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HARDENED_GLASS;
|
||||
public static final SlimefunItemStack WITHER_PROOF_OBSIDIAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.WITHER_PROOF_OBSIDIAN;
|
||||
public static final SlimefunItemStack WITHER_PROOF_GLASS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.WITHER_PROOF_GLASS;
|
||||
public static final ItemStack REINFORCED_PLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_PLATE;
|
||||
public static final SlimefunItemStack ANCIENT_PEDESTAL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ANCIENT_PEDESTAL;
|
||||
public static final SlimefunItemStack ANCIENT_ALTAR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ANCIENT_ALTAR;
|
||||
public static final SlimefunItemStack COPPER_WIRE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COPPER_WIRE;
|
||||
public static final SlimefunItemStack RAINBOW_WOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_WOOL;
|
||||
public static final SlimefunItemStack RAINBOW_GLASS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLASS;
|
||||
public static final SlimefunItemStack RAINBOW_CLAY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_CLAY;
|
||||
public static final SlimefunItemStack RAINBOW_GLASS_PANE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLASS_PANE;
|
||||
public static final SlimefunItemStack RAINBOW_CONCRETE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_CONCRETE;
|
||||
public static final SlimefunItemStack RAINBOW_GLAZED_TERRACOTTA = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLAZED_TERRACOTTA;
|
||||
public static final SlimefunItemStack RAINBOW_WOOL_XMAS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_WOOL_XMAS;
|
||||
public static final SlimefunItemStack RAINBOW_GLASS_XMAS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLASS_XMAS;
|
||||
public static final SlimefunItemStack RAINBOW_CLAY_XMAS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_CLAY_XMAS;
|
||||
public static final SlimefunItemStack RAINBOW_GLASS_PANE_XMAS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLASS_PANE_XMAS;
|
||||
public static final SlimefunItemStack RAINBOW_CONCRETE_XMAS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_CONCRETE_XMAS;
|
||||
public static final SlimefunItemStack RAINBOW_GLAZED_TERRACOTTA_XMAS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLAZED_TERRACOTTA_XMAS;
|
||||
public static final SlimefunItemStack RAINBOW_WOOL_VALENTINE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_WOOL_VALENTINE;
|
||||
public static final SlimefunItemStack RAINBOW_GLASS_VALENTINE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLASS_VALENTINE;
|
||||
public static final SlimefunItemStack RAINBOW_CLAY_VALENTINE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_CLAY_VALENTINE;
|
||||
public static final SlimefunItemStack RAINBOW_GLASS_PANE_VALENTINE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLASS_PANE_VALENTINE;
|
||||
public static final SlimefunItemStack RAINBOW_CONCRETE_VALENTINE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_CONCRETE_VALENTINE;
|
||||
public static final SlimefunItemStack RAINBOW_GLAZED_TERRACOTTA_VALENTINE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLAZED_TERRACOTTA_VALENTINE;
|
||||
public static final SlimefunItemStack RAINBOW_WOOL_HALLOWEEN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_WOOL_HALLOWEEN;
|
||||
public static final SlimefunItemStack RAINBOW_GLASS_HALLOWEEN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLASS_HALLOWEEN;
|
||||
public static final SlimefunItemStack RAINBOW_CLAY_HALLOWEEN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_CLAY_HALLOWEEN;
|
||||
public static final SlimefunItemStack RAINBOW_GLASS_PANE_HALLOWEEN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLASS_PANE_HALLOWEEN;
|
||||
public static final SlimefunItemStack RAINBOW_CONCRETE_HALLOWEEN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_CONCRETE_HALLOWEEN;
|
||||
public static final SlimefunItemStack RAINBOW_GLAZED_TERRACOTTA_HALLOWEEN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_GLAZED_TERRACOTTA_HALLOWEEN;
|
||||
public static final ItemStack COPPER_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COPPER_INGOT;
|
||||
public static final ItemStack TIN_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TIN_INGOT;
|
||||
public static final ItemStack SILVER_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SILVER_INGOT;
|
||||
public static final ItemStack ALUMINUM_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ALUMINUM_INGOT;
|
||||
public static final ItemStack LEAD_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.LEAD_INGOT;
|
||||
public static final ItemStack ZINC_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ZINC_INGOT;
|
||||
public static final ItemStack MAGNESIUM_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGNESIUM_INGOT;
|
||||
public static final ItemStack STEEL_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STEEL_INGOT;
|
||||
public static final ItemStack BRONZE_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BRONZE_INGOT;
|
||||
public static final ItemStack DURALUMIN_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DURALUMIN_INGOT;
|
||||
public static final ItemStack BILLON_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BILLON_INGOT;
|
||||
public static final ItemStack BRASS_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BRASS_INGOT;
|
||||
public static final ItemStack ALUMINUM_BRASS_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ALUMINUM_BRASS_INGOT;
|
||||
public static final ItemStack ALUMINUM_BRONZE_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ALUMINUM_BRONZE_INGOT;
|
||||
public static final ItemStack CORINTHIAN_BRONZE_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CORINTHIAN_BRONZE_INGOT;
|
||||
public static final ItemStack SOLDER_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLDER_INGOT;
|
||||
public static final ItemStack DAMASCUS_STEEL_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DAMASCUS_STEEL_INGOT;
|
||||
public static final ItemStack HARDENED_METAL_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HARDENED_METAL_INGOT;
|
||||
public static final ItemStack REINFORCED_ALLOY_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_ALLOY_INGOT;
|
||||
public static final ItemStack FERROSILICON = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FERROSILICON;
|
||||
public static final ItemStack GILDED_IRON = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GILDED_IRON;
|
||||
public static final ItemStack REDSTONE_ALLOY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REDSTONE_ALLOY;
|
||||
public static final ItemStack NICKEL_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NICKEL_INGOT;
|
||||
public static final ItemStack COBALT_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COBALT_INGOT;
|
||||
public static final ItemStack GOLD_4K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_4K;
|
||||
public static final ItemStack GOLD_6K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_6K;
|
||||
public static final ItemStack GOLD_8K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_8K;
|
||||
public static final ItemStack GOLD_10K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_10K;
|
||||
public static final ItemStack GOLD_12K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_12K;
|
||||
public static final ItemStack GOLD_14K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_14K;
|
||||
public static final ItemStack GOLD_16K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_16K;
|
||||
public static final ItemStack GOLD_18K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_18K;
|
||||
public static final ItemStack GOLD_20K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_20K;
|
||||
public static final ItemStack GOLD_22K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_22K;
|
||||
public static final ItemStack GOLD_24K = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_24K;
|
||||
public static final ItemStack IRON_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.IRON_DUST;
|
||||
public static final ItemStack GOLD_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_DUST;
|
||||
public static final ItemStack TIN_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TIN_DUST;
|
||||
public static final ItemStack COPPER_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COPPER_DUST;
|
||||
public static final ItemStack SILVER_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SILVER_DUST;
|
||||
public static final ItemStack ALUMINUM_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ALUMINUM_DUST;
|
||||
public static final ItemStack LEAD_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.LEAD_DUST;
|
||||
public static final ItemStack ZINC_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ZINC_DUST;
|
||||
public static final ItemStack MAGNESIUM_DUST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGNESIUM_DUST;
|
||||
public static final ItemStack SULFATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SULFATE;
|
||||
public static final ItemStack SILICON = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SILICON;
|
||||
public static final ItemStack GOLD_24K_BLOCK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GOLD_24K_BLOCK;
|
||||
public static final ItemStack SYNTHETIC_DIAMOND = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SYNTHETIC_DIAMOND;
|
||||
public static final ItemStack SYNTHETIC_EMERALD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SYNTHETIC_EMERALD;
|
||||
public static final ItemStack SYNTHETIC_SAPPHIRE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SYNTHETIC_SAPPHIRE;
|
||||
public static final ItemStack CARBONADO = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBONADO;
|
||||
public static final ItemStack RAW_CARBONADO = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAW_CARBONADO;
|
||||
public static final SlimefunItemStack URANIUM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.URANIUM;
|
||||
public static final SlimefunItemStack NEPTUNIUM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NEPTUNIUM;
|
||||
public static final SlimefunItemStack PLUTONIUM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PLUTONIUM;
|
||||
public static final SlimefunItemStack BOOSTED_URANIUM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BOOSTED_URANIUM;
|
||||
public static final SlimefunItemStack TALISMAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COMMON_TALISMAN;
|
||||
public static final SlimefunItemStack ENDER_TALISMAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_TALISMAN;
|
||||
public static final SlimefunItemStack TALISMAN_ANVIL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_ANVIL;
|
||||
public static final SlimefunItemStack TALISMAN_MINER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_MINER;
|
||||
public static final SlimefunItemStack TALISMAN_HUNTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_HUNTER;
|
||||
public static final SlimefunItemStack TALISMAN_LAVA = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_LAVA;
|
||||
public static final SlimefunItemStack TALISMAN_WATER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_WATER;
|
||||
public static final SlimefunItemStack TALISMAN_ANGEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_ANGEL;
|
||||
public static final SlimefunItemStack TALISMAN_FIRE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_FIRE;
|
||||
public static final SlimefunItemStack TALISMAN_MAGICIAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_MAGICIAN;
|
||||
public static final SlimefunItemStack TALISMAN_TRAVELLER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_TRAVELLER;
|
||||
public static final SlimefunItemStack TALISMAN_WARRIOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_WARRIOR;
|
||||
public static final SlimefunItemStack TALISMAN_KNIGHT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_KNIGHT;
|
||||
public static final SlimefunItemStack TALISMAN_WHIRLWIND = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_WHIRLWIND;
|
||||
public static final SlimefunItemStack TALISMAN_WIZARD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TALISMAN_WIZARD;
|
||||
public static final SlimefunItemStack STAFF_ELEMENTAL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STAFF_ELEMENTAL;
|
||||
public static final SlimefunItemStack STAFF_WIND = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STAFF_WIND;
|
||||
public static final SlimefunItemStack STAFF_FIRE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STAFF_FIRE;
|
||||
public static final SlimefunItemStack STAFF_WATER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STAFF_WATER;
|
||||
public static final SlimefunItemStack STAFF_STORM = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.STAFF_STORM;
|
||||
public static final SlimefunItemStack ENHANCED_CRAFTING_TABLE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_CRAFTING_TABLE;
|
||||
public static final SlimefunItemStack GRIND_STONE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GRIND_STONE;
|
||||
public static final SlimefunItemStack ARMOR_FORGE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ARMOR_FORGE;
|
||||
public static final SlimefunItemStack MAKESHIFT_SMELTERY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAKESHIFT_SMELTERY;
|
||||
public static final SlimefunItemStack SMELTERY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SMELTERY;
|
||||
public static final SlimefunItemStack ORE_CRUSHER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ORE_CRUSHER;
|
||||
public static final SlimefunItemStack COMPRESSOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COMPRESSOR;
|
||||
public static final SlimefunItemStack PRESSURE_CHAMBER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PRESSURE_CHAMBER;
|
||||
public static final SlimefunItemStack MAGIC_WORKBENCH = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGIC_WORKBENCH;
|
||||
public static final SlimefunItemStack ORE_WASHER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ORE_WASHER;
|
||||
public static final SlimefunItemStack TABLE_SAW = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TABLE_SAW;
|
||||
public static final SlimefunItemStack JUICER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.JUICER;
|
||||
public static final SlimefunItemStack AUTOMATED_PANNING_MACHINE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AUTOMATED_PANNING_MACHINE;
|
||||
public static final SlimefunItemStack INDUSTRIAL_MINER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.INDUSTRIAL_MINER;
|
||||
public static final SlimefunItemStack ADVANCED_INDUSTRIAL_MINER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ADVANCED_INDUSTRIAL_MINER;
|
||||
public static final SlimefunItemStack COMPOSTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COMPOSTER;
|
||||
public static final SlimefunItemStack CRUCIBLE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CRUCIBLE;
|
||||
public static final SlimefunItemStack OUTPUT_CHEST = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.OUTPUT_CHEST;
|
||||
public static final SlimefunItemStack IGNITION_CHAMBER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.IGNITION_CHAMBER;
|
||||
public static final SlimefunItemStack HOLOGRAM_PROJECTOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HOLOGRAM_PROJECTOR;
|
||||
public static final ItemStack SOLAR_PANEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLAR_PANEL;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_2;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_3;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_4 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_4;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_5 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_5;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_6 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_6;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_7 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_7;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_8 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_8;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_9 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_9;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_10 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_10;
|
||||
public static final SlimefunItemStack ENHANCED_FURNACE_11 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENHANCED_FURNACE_11;
|
||||
public static final SlimefunItemStack REINFORCED_FURNACE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REINFORCED_FURNACE;
|
||||
public static final SlimefunItemStack CARBONADO_EDGED_FURNACE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBONADO_EDGED_FURNACE;
|
||||
public static final SlimefunItemStack BLOCK_PLACER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BLOCK_PLACER;
|
||||
public static final SlimefunItemStack SOULBOUND_SWORD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_SWORD;
|
||||
public static final SlimefunItemStack SOULBOUND_BOW = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_BOW;
|
||||
public static final SlimefunItemStack SOULBOUND_PICKAXE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_PICKAXE;
|
||||
public static final SlimefunItemStack SOULBOUND_AXE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_AXE;
|
||||
public static final SlimefunItemStack SOULBOUND_SHOVEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_SHOVEL;
|
||||
public static final SlimefunItemStack SOULBOUND_HOE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_HOE;
|
||||
public static final SlimefunItemStack SOULBOUND_TRIDENT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_TRIDENT;
|
||||
public static final SlimefunItemStack SOULBOUND_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_HELMET;
|
||||
public static final SlimefunItemStack SOULBOUND_CHESTPLATE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_CHESTPLATE;
|
||||
public static final SlimefunItemStack SOULBOUND_LEGGINGS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_LEGGINGS;
|
||||
public static final SlimefunItemStack SOULBOUND_BOOTS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_BOOTS;
|
||||
public static final SlimefunItemStack BLANK_RUNE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BLANK_RUNE;
|
||||
public static final ItemStack RUNE_AIR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AIR_RUNE;
|
||||
public static final ItemStack RUNE_WATER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.WATER_RUNE;
|
||||
public static final ItemStack RUNE_FIRE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FIRE_RUNE;
|
||||
public static final ItemStack RUNE_EARTH = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.EARTH_RUNE;
|
||||
public static final ItemStack RUNE_ENDER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENDER_RUNE;
|
||||
public static final SlimefunItemStack RUNE_RAINBOW = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.RAINBOW_RUNE;
|
||||
public static final SlimefunItemStack RUNE_LIGHTNING = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.LIGHTNING_RUNE;
|
||||
public static final SlimefunItemStack RUNE_SOULBOUND = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_RUNE;
|
||||
public static final SlimefunItemStack SOLAR_GENERATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLAR_GENERATOR;
|
||||
public static final SlimefunItemStack SOLAR_GENERATOR_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLAR_GENERATOR_2;
|
||||
public static final SlimefunItemStack SOLAR_GENERATOR_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLAR_GENERATOR_3;
|
||||
public static final SlimefunItemStack SOLAR_GENERATOR_4 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLAR_GENERATOR_4;
|
||||
public static final ItemStack COAL_GENERATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COAL_GENERATOR;
|
||||
public static final ItemStack COAL_GENERATOR_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COAL_GENERATOR_2;
|
||||
public static final ItemStack LAVA_GENERATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.LAVA_GENERATOR;
|
||||
public static final ItemStack LAVA_GENERATOR_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.LAVA_GENERATOR_2;
|
||||
public static final ItemStack ELECTRIC_FURNACE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_FURNACE;
|
||||
public static final ItemStack ELECTRIC_FURNACE_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_FURNACE_2;
|
||||
public static final ItemStack ELECTRIC_FURNACE_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_FURNACE_3;
|
||||
public static final SlimefunItemStack ELECTRIC_ORE_GRINDER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_ORE_GRINDER;
|
||||
public static final SlimefunItemStack ELECTRIC_ORE_GRINDER_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_ORE_GRINDER_2;
|
||||
public static final SlimefunItemStack ELECTRIC_INGOT_PULVERIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_INGOT_PULVERIZER;
|
||||
public static final SlimefunItemStack AUTO_DRIER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AUTO_DRIER;
|
||||
public static final SlimefunItemStack AUTO_ENCHANTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AUTO_ENCHANTER;
|
||||
public static final SlimefunItemStack AUTO_DISENCHANTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AUTO_DISENCHANTER;
|
||||
public static final SlimefunItemStack AUTO_ANVIL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AUTO_ANVIL;
|
||||
public static final SlimefunItemStack AUTO_ANVIL_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AUTO_ANVIL_2;
|
||||
public static final SlimefunItemStack BIO_REACTOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BIO_REACTOR;
|
||||
public static final SlimefunItemStack MULTIMETER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MULTIMETER;
|
||||
public static final ItemStack SMALL_CAPACITOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SMALL_CAPACITOR;
|
||||
public static final ItemStack MEDIUM_CAPACITOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MEDIUM_CAPACITOR;
|
||||
public static final ItemStack BIG_CAPACITOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BIG_CAPACITOR;
|
||||
public static final ItemStack LARGE_CAPACITOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.LARGE_CAPACITOR;
|
||||
public static final ItemStack CARBONADO_EDGED_CAPACITOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBONADO_EDGED_CAPACITOR;
|
||||
public static final ItemStack PROGRAMMABLE_ANDROID = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID;
|
||||
public static final ItemStack PROGRAMMABLE_ANDROID_FARMER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_FARMER;
|
||||
public static final ItemStack PROGRAMMABLE_ANDROID_MINER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_MINER;
|
||||
public static final ItemStack PROGRAMMABLE_ANDROID_WOODCUTTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_WOODCUTTER;
|
||||
public static final ItemStack PROGRAMMABLE_ANDROID_BUTCHER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_BUTCHER;
|
||||
public static final ItemStack PROGRAMMABLE_ANDROID_FISHERMAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_FISHERMAN;
|
||||
public static final SlimefunItemStack PROGRAMMABLE_ANDROID_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_2;
|
||||
public static final SlimefunItemStack PROGRAMMABLE_ANDROID_2_FISHERMAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_2_FISHERMAN;
|
||||
public static final SlimefunItemStack PROGRAMMABLE_ANDROID_2_FARMER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_2_FARMER;
|
||||
public static final SlimefunItemStack PROGRAMMABLE_ANDROID_2_BUTCHER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_2_BUTCHER;
|
||||
public static final SlimefunItemStack PROGRAMMABLE_ANDROID_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_3;
|
||||
public static final SlimefunItemStack PROGRAMMABLE_ANDROID_3_FISHERMAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_3_FISHERMAN;
|
||||
public static final SlimefunItemStack PROGRAMMABLE_ANDROID_3_BUTCHER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PROGRAMMABLE_ANDROID_3_BUTCHER;
|
||||
public static final ItemStack GPS_TRANSMITTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_TRANSMITTER;
|
||||
public static final ItemStack GPS_TRANSMITTER_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_TRANSMITTER_2;
|
||||
public static final ItemStack GPS_TRANSMITTER_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_TRANSMITTER_3;
|
||||
public static final ItemStack GPS_TRANSMITTER_4 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_TRANSMITTER_4;
|
||||
public static final SlimefunItemStack GPS_MARKER_TOOL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_MARKER_TOOL;
|
||||
public static final SlimefunItemStack GPS_CONTROL_PANEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_CONTROL_PANEL;
|
||||
public static final SlimefunItemStack GPS_EMERGENCY_TRANSMITTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_EMERGENCY_TRANSMITTER;
|
||||
public static final SlimefunItemStack ANDROID_INTERFACE_FUEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ANDROID_INTERFACE_FUEL;
|
||||
public static final SlimefunItemStack ANDROID_INTERFACE_ITEMS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ANDROID_INTERFACE_ITEMS;
|
||||
public static final SlimefunItemStack GPS_GEO_SCANNER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_GEO_SCANNER;
|
||||
public static final SlimefunItemStack PORTABLE_GEO_SCANNER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PORTABLE_GEO_SCANNER;
|
||||
public static final SlimefunItemStack GEO_MINER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GEO_MINER;
|
||||
public static final SlimefunItemStack OIL_PUMP = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.OIL_PUMP;
|
||||
public static final SlimefunItemStack BUCKET_OF_OIL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.OIL_BUCKET;
|
||||
public static final SlimefunItemStack BUCKET_OF_FUEL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FUEL_BUCKET;
|
||||
public static final SlimefunItemStack REFINERY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REFINERY;
|
||||
public static final SlimefunItemStack COMBUSTION_REACTOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COMBUSTION_REACTOR;
|
||||
public static final SlimefunItemStack ANDROID_MEMORY_CORE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ANDROID_MEMORY_CORE;
|
||||
public static final SlimefunItemStack GPS_TELEPORTER_PYLON = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_TELEPORTER_PYLON;
|
||||
public static final SlimefunItemStack GPS_TELEPORTATION_MATRIX = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_TELEPORTATION_MATRIX;
|
||||
public static final SlimefunItemStack GPS_ACTIVATION_DEVICE_SHARED = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_ACTIVATION_DEVICE_SHARED;
|
||||
public static final SlimefunItemStack GPS_ACTIVATION_DEVICE_PERSONAL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GPS_ACTIVATION_DEVICE_PERSONAL;
|
||||
public static final SlimefunItemStack ELEVATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELEVATOR_PLATE;
|
||||
public static final SlimefunItemStack INFUSED_HOPPER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.INFUSED_HOPPER;
|
||||
public static final ItemStack PLASTIC_SHEET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.PLASTIC_SHEET;
|
||||
public static final SlimefunItemStack HEATED_PRESSURE_CHAMBER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HEATED_PRESSURE_CHAMBER;
|
||||
public static final SlimefunItemStack HEATED_PRESSURE_CHAMBER_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.HEATED_PRESSURE_CHAMBER_2;
|
||||
public static final SlimefunItemStack ELECTRIC_SMELTERY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_SMELTERY;
|
||||
public static final SlimefunItemStack ELECTRIC_SMELTERY_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_SMELTERY_2;
|
||||
public static final SlimefunItemStack ELECTRIC_PRESS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_PRESS;
|
||||
public static final SlimefunItemStack ELECTRIC_PRESS_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_PRESS_2;
|
||||
public static final SlimefunItemStack ELECTRIFIED_CRUCIBLE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIFIED_CRUCIBLE;
|
||||
public static final SlimefunItemStack ELECTRIFIED_CRUCIBLE_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIFIED_CRUCIBLE_2;
|
||||
public static final SlimefunItemStack ELECTRIFIED_CRUCIBLE_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIFIED_CRUCIBLE_3;
|
||||
public static final SlimefunItemStack CARBON_PRESS = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBON_PRESS;
|
||||
public static final SlimefunItemStack CARBON_PRESS_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBON_PRESS_2;
|
||||
public static final SlimefunItemStack CARBON_PRESS_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARBON_PRESS_3;
|
||||
public static final ItemStack BLISTERING_INGOT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BLISTERING_INGOT;
|
||||
public static final ItemStack BLISTERING_INGOT_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BLISTERING_INGOT_2;
|
||||
public static final ItemStack BLISTERING_INGOT_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BLISTERING_INGOT_3;
|
||||
public static final SlimefunItemStack ENERGY_REGULATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENERGY_REGULATOR;
|
||||
public static final SlimefunItemStack DEBUG_FISH = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.DEBUG_FISH;
|
||||
public static final SlimefunItemStack NETHER_ICE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NETHER_ICE;
|
||||
public static final SlimefunItemStack ENRICHED_NETHER_ICE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ENRICHED_NETHER_ICE;
|
||||
public static final SlimefunItemStack NETHER_ICE_COOLANT_CELL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NETHER_ICE_COOLANT_CELL;
|
||||
public static final ItemStack CARGO_MANAGER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARGO_MANAGER;
|
||||
public static final ItemStack CARGO_NODE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARGO_CONNECTOR_NODE;
|
||||
public static final ItemStack CARGO_INPUT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARGO_INPUT_NODE;
|
||||
public static final ItemStack CARGO_OUTPUT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARGO_OUTPUT_NODE;
|
||||
public static final ItemStack CARGO_OUTPUT_ADVANCED = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARGO_OUTPUT_NODE_2;
|
||||
public static final SlimefunItemStack AUTO_BREEDER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AUTO_BREEDER;
|
||||
public static final SlimefunItemStack ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack WHEAT_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.WHEAT_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack CARROT_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARROT_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack POTATO_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.POTATO_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack SEEDS_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SEEDS_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack BEETROOT_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BEETROOT_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack MELON_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MELON_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack APPLE_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.APPLE_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack SWEET_BERRIES_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SWEET_BERRIES_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack KELP_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.KELP_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack COCOA_ORGANIC_FOOD = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COCOA_ORGANIC_FOOD;
|
||||
public static final SlimefunItemStack FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FERTILIZER;
|
||||
public static final SlimefunItemStack WHEAT_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.WHEAT_FERTILIZER;
|
||||
public static final SlimefunItemStack CARROT_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CARROT_FERTILIZER;
|
||||
public static final SlimefunItemStack POTATO_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.POTATO_FERTILIZER;
|
||||
public static final SlimefunItemStack SEEDS_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SEEDS_FERTILIZER;
|
||||
public static final SlimefunItemStack BEETROOT_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.BEETROOT_FERTILIZER;
|
||||
public static final SlimefunItemStack MELON_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MELON_FERTILIZER;
|
||||
public static final SlimefunItemStack APPLE_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.APPLE_FERTILIZER;
|
||||
public static final SlimefunItemStack SWEET_BERRIES_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SWEET_BERRIES_FERTILIZER;
|
||||
public static final SlimefunItemStack KELP_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.KELP_FERTILIZER;
|
||||
public static final SlimefunItemStack COCOA_FERTILIZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.COCOA_FERTILIZER;
|
||||
public static final SlimefunItemStack ANIMAL_GROWTH_ACCELERATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ANIMAL_GROWTH_ACCELERATOR;
|
||||
public static final SlimefunItemStack CROP_GROWTH_ACCELERATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CROP_GROWTH_ACCELERATOR;
|
||||
public static final SlimefunItemStack CROP_GROWTH_ACCELERATOR_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CROP_GROWTH_ACCELERATOR_2;
|
||||
public static final SlimefunItemStack TREE_GROWTH_ACCELERATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TREE_GROWTH_ACCELERATOR;
|
||||
public static final SlimefunItemStack FOOD_FABRICATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FOOD_FABRICATOR;
|
||||
public static final SlimefunItemStack FOOD_FABRICATOR_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FOOD_FABRICATOR_2;
|
||||
public static final SlimefunItemStack FOOD_COMPOSTER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FOOD_COMPOSTER;
|
||||
public static final SlimefunItemStack FOOD_COMPOSTER_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FOOD_COMPOSTER_2;
|
||||
public static final SlimefunItemStack XP_COLLECTOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.EXP_COLLECTOR;
|
||||
public static final SlimefunItemStack REACTOR_COOLANT_CELL = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REACTOR_COOLANT_CELL;
|
||||
public static final SlimefunItemStack NUCLEAR_REACTOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NUCLEAR_REACTOR;
|
||||
public static final SlimefunItemStack NETHERSTAR_REACTOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NETHER_STAR_REACTOR;
|
||||
public static final SlimefunItemStack REACTOR_ACCESS_PORT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.REACTOR_ACCESS_PORT;
|
||||
public static final SlimefunItemStack FREEZER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FREEZER;
|
||||
public static final SlimefunItemStack FREEZER_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FREEZER_2;
|
||||
public static final SlimefunItemStack ELECTRIC_GOLD_PAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_GOLD_PAN;
|
||||
public static final SlimefunItemStack ELECTRIC_GOLD_PAN_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_GOLD_PAN_2;
|
||||
public static final SlimefunItemStack ELECTRIC_GOLD_PAN_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_GOLD_PAN_3;
|
||||
public static final SlimefunItemStack ELECTRIC_DUST_WASHER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_DUST_WASHER;
|
||||
public static final SlimefunItemStack ELECTRIC_DUST_WASHER_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_DUST_WASHER_2;
|
||||
public static final SlimefunItemStack ELECTRIC_DUST_WASHER_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_DUST_WASHER_3;
|
||||
public static final SlimefunItemStack ELECTRIC_INGOT_FACTORY = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_INGOT_FACTORY;
|
||||
public static final SlimefunItemStack ELECTRIC_INGOT_FACTORY_2 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_INGOT_FACTORY_2;
|
||||
public static final SlimefunItemStack ELECTRIC_INGOT_FACTORY_3 = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELECTRIC_INGOT_FACTORY_3;
|
||||
public static final SlimefunItemStack AUTOMATED_CRAFTING_CHAMBER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.AUTOMATED_CRAFTING_CHAMBER;
|
||||
public static final SlimefunItemStack FLUID_PUMP = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FLUID_PUMP;
|
||||
public static final SlimefunItemStack CHARGING_BENCH = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CHARGING_BENCH;
|
||||
public static final SlimefunItemStack WITHER_ASSEMBLER = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.WITHER_ASSEMBLER;
|
||||
public static final SlimefunItemStack TRASH_CAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TRASH_CAN;
|
||||
public static final SlimefunItemStack ELYTRA_SCALE = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.ELYTRA_SCALE;
|
||||
public static final SlimefunItemStack INFUSED_ELYTRA = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.INFUSED_ELYTRA;
|
||||
public static final SlimefunItemStack SOULBOUND_ELYTRA = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOULBOUND_ELYTRA;
|
||||
public static final SlimefunItemStack MAGNESIUM_SALT = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGNESIUM_SALT;
|
||||
public static final SlimefunItemStack MAGNESIUM_GENERATOR = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.MAGNESIUM_GENERATOR;
|
||||
|
||||
}
|
@ -71,7 +71,6 @@ class TestPluginClass {
|
||||
@Test
|
||||
@DisplayName("Test some Listeners being not-null")
|
||||
void testListenersNotNull() {
|
||||
Assertions.assertNotNull(SlimefunPlugin.getAncientAltarListener());
|
||||
Assertions.assertNotNull(SlimefunPlugin.getGrapplingHookListener());
|
||||
Assertions.assertNotNull(SlimefunPlugin.getBackpackListener());
|
||||
Assertions.assertNotNull(SlimefunPlugin.getBowListener());
|
||||
|
@ -21,7 +21,7 @@ import be.seeseemelk.mockbukkit.ServerMock;
|
||||
import be.seeseemelk.mockbukkit.entity.ItemEntityMock;
|
||||
import be.seeseemelk.mockbukkit.inventory.ChestInventoryMock;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.AncientAltarListener;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientPedestal;
|
||||
import io.github.thebusybiscuit.slimefun4.implementation.listeners.ItemPickupListener;
|
||||
import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.cscorelib2.item.CustomItem;
|
||||
@ -83,7 +83,7 @@ class TestItemPickupListener {
|
||||
ItemStack stack;
|
||||
|
||||
if (flag) {
|
||||
stack = new CustomItem(Material.DIAMOND, AncientAltarListener.ITEM_PREFIX + System.nanoTime());
|
||||
stack = new CustomItem(Material.DIAMOND, AncientPedestal.ITEM_PREFIX + System.nanoTime());
|
||||
}
|
||||
else {
|
||||
stack = new CustomItem(Material.DIAMOND, "&5Just a normal named diamond");
|
||||
@ -112,7 +112,7 @@ class TestItemPickupListener {
|
||||
ItemStack stack;
|
||||
|
||||
if (flag) {
|
||||
stack = new CustomItem(Material.DIAMOND, AncientAltarListener.ITEM_PREFIX + System.nanoTime());
|
||||
stack = new CustomItem(Material.DIAMOND, AncientPedestal.ITEM_PREFIX + System.nanoTime());
|
||||
}
|
||||
else {
|
||||
stack = new CustomItem(Material.DIAMOND, "&5Just a normal named diamond");
|
||||
|
Loading…
Reference in New Issue
Block a user