mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 11:45:51 +00:00
Refactored code
This commit is contained in:
parent
2e89de4d3a
commit
09354e0be1
@ -208,10 +208,6 @@ public abstract class AContainer extends SlimefunItem {
|
|||||||
AContainer.this.tick(b);
|
AContainer.this.tick(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return false;
|
return false;
|
||||||
|
@ -199,10 +199,6 @@ public abstract class AFarm extends SlimefunItem {
|
|||||||
AFarm.this.tick(b);
|
AFarm.this.tick(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return true;
|
return true;
|
||||||
@ -215,12 +211,14 @@ public abstract class AFarm extends SlimefunItem {
|
|||||||
private Inventory inject(Block b) {
|
private Inventory inject(Block b) {
|
||||||
int size = BlockStorage.getInventory(b).toInventory().getSize();
|
int size = BlockStorage.getInventory(b).toInventory().getSize();
|
||||||
Inventory inv = Bukkit.createInventory(null, size);
|
Inventory inv = Bukkit.createInventory(null, size);
|
||||||
|
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
inv.setItem(i, new CustomItem(Material.COMMAND_BLOCK, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US"));
|
inv.setItem(i, new CustomItem(Material.COMMAND_BLOCK, " &4ALL YOUR PLACEHOLDERS ARE BELONG TO US"));
|
||||||
}
|
}
|
||||||
for (int slot: getOutputSlots()) {
|
for (int slot: getOutputSlots()) {
|
||||||
inv.setItem(slot, BlockStorage.getInventory(b).getItemInSlot(slot));
|
inv.setItem(slot, BlockStorage.getInventory(b).getItemInSlot(slot));
|
||||||
}
|
}
|
||||||
|
|
||||||
return inv;
|
return inv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,10 +111,6 @@ public class AnimalGrowthAccelerator extends SlimefunItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -110,10 +110,6 @@ public class AutoBreeder extends SlimefunItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -0,0 +1,79 @@
|
|||||||
|
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines;
|
||||||
|
|
||||||
|
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.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
|
||||||
|
import me.mrCookieSlime.CSCoreLibPlugin.events.ItemUseEvent;
|
||||||
|
import me.mrCookieSlime.Slimefun.SlimefunStartup;
|
||||||
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunGadget;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||||
|
import me.mrCookieSlime.Slimefun.Setup.Messages;
|
||||||
|
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||||
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
|
|
||||||
|
public class Composter extends SlimefunGadget {
|
||||||
|
|
||||||
|
public Composter(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack[] machineRecipes) {
|
||||||
|
super(category, item, id, recipeType, recipe, machineRecipes);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void register(boolean slimefun) {
|
||||||
|
addItemHandler(new ItemInteractionHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) {
|
||||||
|
if (e.getClickedBlock() != null) {
|
||||||
|
SlimefunItem machine = BlockStorage.check(e.getClickedBlock());
|
||||||
|
if (machine != null && machine.getID().equals(getID())) {
|
||||||
|
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
|
||||||
|
final ItemStack input = p.getInventory().getItemInMainHand();
|
||||||
|
final Block b = e.getClickedBlock();
|
||||||
|
|
||||||
|
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
|
||||||
|
if (convert != null && SlimefunManager.isItemSimiliar(input, convert, true)) {
|
||||||
|
ItemStack removing = input.clone();
|
||||||
|
removing.setAmount(convert.getAmount());
|
||||||
|
p.getInventory().removeItem(removing);
|
||||||
|
final ItemStack adding = RecipeType.getRecipeOutput(machine, convert);
|
||||||
|
|
||||||
|
for (int i = 1; i < 12; i++) {
|
||||||
|
int j = i;
|
||||||
|
Bukkit.getScheduler().runTaskLater(SlimefunStartup.instance, () -> {
|
||||||
|
if (j < 11) {
|
||||||
|
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType().isBlock() ? input.getType() : Material.HAY_BLOCK);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
||||||
|
b.getWorld().dropItemNaturally(b.getRelative(BlockFace.UP).getLocation(), adding);
|
||||||
|
}
|
||||||
|
}, i*30L);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Messages.local.sendTranslation(p, "machines.wrong-item", true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
super.register(slimefun);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -121,10 +121,6 @@ public abstract class CropGrowthAccelerator extends SlimefunItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -0,0 +1,86 @@
|
|||||||
|
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockFace;
|
||||||
|
import org.bukkit.block.data.Levelled;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
|
||||||
|
import me.mrCookieSlime.CSCoreLibPlugin.compatibility.MaterialHelper;
|
||||||
|
import me.mrCookieSlime.CSCoreLibPlugin.events.ItemUseEvent;
|
||||||
|
import me.mrCookieSlime.Slimefun.SlimefunStartup;
|
||||||
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunGadget;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||||
|
import me.mrCookieSlime.Slimefun.Setup.Messages;
|
||||||
|
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||||
|
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||||
|
|
||||||
|
public class Crucible extends SlimefunGadget {
|
||||||
|
|
||||||
|
public Crucible(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe, ItemStack[] machineRecipes) {
|
||||||
|
super(category, item, id, recipeType, recipe, machineRecipes);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void register(boolean slimefun) {
|
||||||
|
addItemHandler(new ItemInteractionHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) {
|
||||||
|
if (e.getClickedBlock() != null) {
|
||||||
|
SlimefunItem machine = BlockStorage.check(e.getClickedBlock());
|
||||||
|
if (machine != null && machine.getID().equals("CRUCIBLE")) {
|
||||||
|
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
|
||||||
|
final ItemStack input = p.getInventory().getItemInMainHand();
|
||||||
|
final Block block = e.getClickedBlock().getRelative(BlockFace.UP);
|
||||||
|
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
|
||||||
|
if (input != null && SlimefunManager.isItemSimiliar(input, convert, true)) {
|
||||||
|
e.setCancelled(true);
|
||||||
|
ItemStack removing = input.clone();
|
||||||
|
removing.setAmount(convert.getAmount());
|
||||||
|
p.getInventory().removeItem(removing);
|
||||||
|
|
||||||
|
for (int i = 1; i < 9; i++) {
|
||||||
|
int j = 8 - i;
|
||||||
|
Bukkit.getScheduler().runTaskLater(SlimefunStartup.instance, () -> {
|
||||||
|
if (input.getType() == Material.COBBLESTONE || input.getType() == Material.TERRACOTTA || MaterialHelper.isTerracotta(input.getType())) {
|
||||||
|
block.setType(Material.LAVA);
|
||||||
|
Levelled le = (Levelled) block.getBlockData();
|
||||||
|
le.setLevel(j);
|
||||||
|
block.setBlockData(le, false);
|
||||||
|
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
|
||||||
|
}
|
||||||
|
else if (MaterialHelper.isLeavesBlock(input.getType())) {
|
||||||
|
block.setType(Material.WATER);
|
||||||
|
Levelled le = (Levelled) block.getBlockData();
|
||||||
|
le.setLevel(j);
|
||||||
|
block.setBlockData(le, false);
|
||||||
|
block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F);
|
||||||
|
}
|
||||||
|
}, i*50L);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Messages.local.sendTranslation(p, "machines.wrong-item", true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
super.register(slimefun);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines;
|
||||||
|
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||||
|
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunBlockHandler;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.UnregisterReason;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockTicker;
|
||||||
|
import me.mrCookieSlime.Slimefun.api.energy.EnergyNet;
|
||||||
|
import me.mrCookieSlime.Slimefun.holograms.EnergyHologram;
|
||||||
|
|
||||||
|
public class EnergyRegulator extends SlimefunItem {
|
||||||
|
|
||||||
|
public EnergyRegulator(Category category, ItemStack item, String id, RecipeType recipeType, ItemStack[] recipe) {
|
||||||
|
super(category, item, id, recipeType, recipe);
|
||||||
|
|
||||||
|
SlimefunItem.registerBlockHandler("ENERGY_REGULATOR", new SlimefunBlockHandler() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlace(Player p, Block b, SlimefunItem item) {
|
||||||
|
// Spawn the hologram
|
||||||
|
EnergyHologram.update(b, "&7Connecting...");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) {
|
||||||
|
EnergyHologram.remove(b);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void register(boolean slimefun) {
|
||||||
|
addItemHandler(new BlockTicker() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSynchronized() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick(Block b, SlimefunItem item, Config data) {
|
||||||
|
EnergyNet.getNetworkFromLocationOrCreate(b.getLocation()).tick(b);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
super.register(slimefun);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -173,10 +173,6 @@ public class FluidPump extends SlimefunItem{
|
|||||||
FluidPump.this.tick(b);
|
FluidPump.this.tick(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -44,11 +44,6 @@ public class InfusedHopper extends SlimefunItem {
|
|||||||
public void register(boolean slimefun) {
|
public void register(boolean slimefun) {
|
||||||
addItemHandler(new BlockTicker() {
|
addItemHandler(new BlockTicker() {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(Block b, SlimefunItem item, Config data) {
|
public void tick(Block b, SlimefunItem item, Config data) {
|
||||||
if (b.getType() != Material.HOPPER) {
|
if (b.getType() != Material.HOPPER) {
|
||||||
|
@ -67,10 +67,6 @@ public class TrashCan extends SlimefunItem {
|
|||||||
public void register(boolean slimefun) {
|
public void register(boolean slimefun) {
|
||||||
addItemHandler(new BlockTicker() {
|
addItemHandler(new BlockTicker() {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(Block b, SlimefunItem item, Config data) {
|
public void tick(Block b, SlimefunItem item, Config data) {
|
||||||
BlockMenu menu = BlockStorage.getInventory(b);
|
BlockMenu menu = BlockStorage.getInventory(b);
|
||||||
|
@ -135,10 +135,6 @@ public class XPCollector extends SlimefunItem {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -16,16 +16,34 @@ public abstract class BlockTicker implements ItemHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method must be overridden to define whether a Block
|
||||||
|
* needs to be run on the main server thread (World Manipulation requires that)
|
||||||
|
*
|
||||||
|
* @return Whether this task should run on the main server thread
|
||||||
|
*/
|
||||||
public abstract boolean isSynchronized();
|
public abstract boolean isSynchronized();
|
||||||
public abstract void uniqueTick();
|
|
||||||
|
/**
|
||||||
|
* This method is called every tick for every block
|
||||||
|
*/
|
||||||
public abstract void tick(Block b, SlimefunItem item, Config data);
|
public abstract void tick(Block b, SlimefunItem item, Config data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is called every tick but not per-block and only once.
|
||||||
|
*/
|
||||||
|
public void uniqueTick() {
|
||||||
|
// Override this method and fill it with content
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toCodename() {
|
public String toCodename() {
|
||||||
return "BlockTicker";
|
return "BlockTicker";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method resets the 'unique' flag for {@link BlockTicker#uniqueTick()}
|
||||||
|
*/
|
||||||
public void startNewTick() {
|
public void startNewTick() {
|
||||||
unique = true;
|
unique = true;
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import org.bukkit.ChatColor;
|
|||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.Colors;
|
import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.Colors;
|
||||||
@ -221,7 +222,14 @@ public final class MiscSetup {
|
|||||||
for (World world: Bukkit.getWorlds()) {
|
for (World world: Bukkit.getWorlds()) {
|
||||||
SlimefunStartup.getWhitelist().setDefaultValue(world.getName() + ".enabled-items.SLIMEFUN_GUIDE", true);
|
SlimefunStartup.getWhitelist().setDefaultValue(world.getName() + ".enabled-items.SLIMEFUN_GUIDE", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Slimefun.setItemVariable("ORE_CRUSHER", "double-ores", true);
|
Slimefun.setItemVariable("ORE_CRUSHER", "double-ores", true);
|
||||||
|
|
||||||
|
for (Enchantment e : Enchantment.values()) {
|
||||||
|
for (int i = 1; i <= e.getMaxLevel(); i++) {
|
||||||
|
Slimefun.setItemVariable("MAGICIAN_TALISMAN", "allow-enchantments." + e.getKey().getKey() + ".level." + i, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void loadDescriptions() {
|
public static void loadDescriptions() {
|
||||||
|
@ -22,7 +22,6 @@ import org.bukkit.block.Chest;
|
|||||||
import org.bukkit.block.CreatureSpawner;
|
import org.bukkit.block.CreatureSpawner;
|
||||||
import org.bukkit.block.Dispenser;
|
import org.bukkit.block.Dispenser;
|
||||||
import org.bukkit.block.data.Ageable;
|
import org.bukkit.block.data.Ageable;
|
||||||
import org.bukkit.block.data.Levelled;
|
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.ArmorStand;
|
import org.bukkit.entity.ArmorStand;
|
||||||
import org.bukkit.entity.Arrow;
|
import org.bukkit.entity.Arrow;
|
||||||
@ -116,13 +115,16 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.CarbonPress;
|
|||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.CargoInputNode;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.CargoInputNode;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.CargoOutputNode;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.CargoOutputNode;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ChargingBench;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ChargingBench;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Composter;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.CropGrowthAccelerator;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.CropGrowthAccelerator;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.Crucible;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricDustWasher;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricDustWasher;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricFurnace;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricFurnace;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricGoldPan;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricGoldPan;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricIngotFactory;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricIngotFactory;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricSmeltery;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectricSmeltery;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectrifiedCrucible;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.ElectrifiedCrucible;
|
||||||
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.EnergyRegulator;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.EnhancedCraftingTable;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.EnhancedCraftingTable;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.FluidPump;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.FluidPump;
|
||||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.FoodComposter;
|
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines.FoodComposter;
|
||||||
@ -156,11 +158,9 @@ import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
|||||||
import me.mrCookieSlime.Slimefun.api.PlayerProfile;
|
import me.mrCookieSlime.Slimefun.api.PlayerProfile;
|
||||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||||
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
|
||||||
import me.mrCookieSlime.Slimefun.api.energy.EnergyNet;
|
|
||||||
import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker;
|
import me.mrCookieSlime.Slimefun.api.energy.EnergyTicker;
|
||||||
import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet;
|
import me.mrCookieSlime.Slimefun.api.item_transport.CargoNet;
|
||||||
import me.mrCookieSlime.Slimefun.holograms.CargoHologram;
|
import me.mrCookieSlime.Slimefun.holograms.CargoHologram;
|
||||||
import me.mrCookieSlime.Slimefun.holograms.EnergyHologram;
|
|
||||||
import me.mrCookieSlime.Slimefun.holograms.ReactorHologram;
|
import me.mrCookieSlime.Slimefun.holograms.ReactorHologram;
|
||||||
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
||||||
|
|
||||||
@ -644,14 +644,17 @@ public final class SlimefunSetup {
|
|||||||
inv.removeItem(removing);
|
inv.removeItem(removing);
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
int j = i;
|
int j = i;
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskLater(SlimefunStartup.instance, () -> {
|
Bukkit.getScheduler().runTaskLater(SlimefunStartup.instance, () -> {
|
||||||
p.getWorld().playSound(b.getLocation(), Sound.ENTITY_TNT_PRIMED, 1, 1);
|
p.getWorld().playSound(b.getLocation(), Sound.ENTITY_TNT_PRIMED, 1, 1);
|
||||||
p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4);
|
p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4);
|
||||||
p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4);
|
p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4);
|
||||||
p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4);
|
p.getWorld().playEffect(b.getRelative(BlockFace.UP).getLocation(), Effect.SMOKE, 4);
|
||||||
|
|
||||||
if (j < 3) {
|
if (j < 3) {
|
||||||
p.getWorld().playSound(b.getLocation(), Sound.ENTITY_TNT_PRIMED, 1F, 1F);
|
p.getWorld().playSound(b.getLocation(), Sound.ENTITY_TNT_PRIMED, 1F, 1F);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
||||||
outputInv.addItem(adding);
|
outputInv.addItem(adding);
|
||||||
}
|
}
|
||||||
@ -1172,12 +1175,6 @@ public final class SlimefunSetup {
|
|||||||
false, false, "magician", 80, new PotionEffect[0])
|
false, false, "magician", 80, new PotionEffect[0])
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
for (Enchantment e : Enchantment.values()) {
|
|
||||||
for (int i = 1; i <= e.getMaxLevel(); i++) {
|
|
||||||
Slimefun.setItemVariable("MAGICIAN_TALISMAN", "allow-enchantments." + e.getKey().getKey() + ".level." + i, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
new Talisman(SlimefunItems.TALISMAN_TRAVELLER, "TRAVELLER_TALISMAN",
|
new Talisman(SlimefunItems.TALISMAN_TRAVELLER, "TRAVELLER_TALISMAN",
|
||||||
new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.STAFF_WIND, SlimefunItems.TALISMAN_ANGEL, SlimefunItems.STAFF_WIND, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3},
|
new ItemStack[] {SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3, SlimefunItems.STAFF_WIND, SlimefunItems.TALISMAN_ANGEL, SlimefunItems.STAFF_WIND, SlimefunItems.MAGIC_LUMP_3, null, SlimefunItems.MAGIC_LUMP_3},
|
||||||
false, false, "traveller", 60, new PotionEffect(PotionEffectType.SPEED, 3600, 2))
|
false, false, "traveller", 60, new PotionEffect(PotionEffectType.SPEED, 3600, 2))
|
||||||
@ -1474,13 +1471,14 @@ public final class SlimefunSetup {
|
|||||||
if(item == null || item.getType() == Material.AIR) {
|
if(item == null || item.getType() == Material.AIR) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
b.getWorld().dropItemNaturally(b.getLocation(), item);
|
b.getWorld().dropItemNaturally(b.getLocation(), item);
|
||||||
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, log.getType());
|
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, log.getType());
|
||||||
log.setAmount(log.getAmount() -1);
|
log.setAmount(log.getAmount() -1);
|
||||||
if(log.getAmount() <= 0)
|
|
||||||
|
if(log.getAmount() <= 0) {
|
||||||
p.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
p.getInventory().setItemInMainHand(new ItemStack(Material.AIR));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1504,15 +1502,7 @@ public final class SlimefunSetup {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onInteract(Player p, MultiBlock mb, Block b) {
|
public boolean onInteract(Player p, MultiBlock mb, Block b) {
|
||||||
if (mb.isMultiBlock(SlimefunItem.getByID("SAW_MILL"))) {
|
if (mb.isMultiBlock(SlimefunItem.getByID("SAW_MILL"))) {
|
||||||
if (CSCoreLib.getLib().getProtectionManager().canBuild(p.getUniqueId(), b.getRelative(BlockFace.UP), true) && Slimefun.hasUnlocked(p, SlimefunItems.SAW_MILL, true) && MaterialHelper.isLog(b.getRelative(BlockFace.UP).getType())) {
|
p.sendMessage(ChatColor.RED + "This Item has been deprecated! Use the Table Saw instead!");
|
||||||
Block log = b.getRelative(BlockFace.UP);
|
|
||||||
if (!BlockStorage.hasBlockInfo(log)) {
|
|
||||||
ItemStack item = new ItemStack(MaterialHelper.getWoodFromLog(log.getType()), 8);
|
|
||||||
log.getWorld().dropItemNaturally(log.getLocation(), item);
|
|
||||||
log.getWorld().playEffect(log.getLocation(), Effect.STEP_SOUND, log.getType());
|
|
||||||
log.setType(Material.AIR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else return false;
|
else return false;
|
||||||
@ -1650,7 +1640,8 @@ public final class SlimefunSetup {
|
|||||||
Bukkit.getScheduler().runTaskLater(SlimefunStartup.instance, () -> {
|
Bukkit.getScheduler().runTaskLater(SlimefunStartup.instance, () -> {
|
||||||
if (j < 3) {
|
if (j < 3) {
|
||||||
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore);
|
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, ore);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
||||||
inv.addItem(adding);
|
inv.addItem(adding);
|
||||||
}
|
}
|
||||||
@ -1671,7 +1662,7 @@ public final class SlimefunSetup {
|
|||||||
new ItemStack[] {SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K})
|
new ItemStack[] {SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K, SlimefunItems.GOLD_24K})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
new SlimefunGadget(Categories.MACHINES_1, SlimefunItems.COMPOSTER, "COMPOSTER", RecipeType.ENHANCED_CRAFTING_TABLE,
|
new Composter(Categories.MACHINES_1, SlimefunItems.COMPOSTER, "COMPOSTER", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
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)},
|
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)},
|
||||||
new ItemStack[] {
|
new ItemStack[] {
|
||||||
new ItemStack(Material.OAK_LEAVES, 8), new ItemStack(Material.DIRT),
|
new ItemStack(Material.OAK_LEAVES, 8), new ItemStack(Material.DIRT),
|
||||||
@ -1691,47 +1682,7 @@ public final class SlimefunSetup {
|
|||||||
new ItemStack(Material.STONE, 4), new ItemStack(Material.NETHERRACK),
|
new ItemStack(Material.STONE, 4), new ItemStack(Material.NETHERRACK),
|
||||||
new ItemStack(Material.SAND, 2), new ItemStack(Material.SOUL_SAND),
|
new ItemStack(Material.SAND, 2), new ItemStack(Material.SOUL_SAND),
|
||||||
new ItemStack(Material.WHEAT, 4), new ItemStack(Material.NETHER_WART)
|
new ItemStack(Material.WHEAT, 4), new ItemStack(Material.NETHER_WART)
|
||||||
}).register(true, new ItemInteractionHandler() {
|
}).register(true);
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) {
|
|
||||||
if (e.getClickedBlock() != null) {
|
|
||||||
SlimefunItem machine = BlockStorage.check(e.getClickedBlock());
|
|
||||||
if (machine != null && machine.getID().equals("COMPOSTER")) {
|
|
||||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
|
|
||||||
final ItemStack input = p.getInventory().getItemInMainHand();
|
|
||||||
final Block b = e.getClickedBlock();
|
|
||||||
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
|
|
||||||
if (convert != null && SlimefunManager.isItemSimiliar(input, convert, true)) {
|
|
||||||
ItemStack removing = input.clone();
|
|
||||||
removing.setAmount(convert.getAmount());
|
|
||||||
p.getInventory().removeItem(removing);
|
|
||||||
final ItemStack adding = RecipeType.getRecipeOutput(machine, convert);
|
|
||||||
|
|
||||||
for (int i = 1; i < 12; i++) {
|
|
||||||
int j = i;
|
|
||||||
Bukkit.getScheduler().runTaskLater(SlimefunStartup.instance, () -> {
|
|
||||||
if (j < 11) {
|
|
||||||
b.getWorld().playEffect(b.getLocation(), Effect.STEP_SOUND, input.getType().isBlock() ? input.getType() : Material.HAY_BLOCK);
|
|
||||||
} else {
|
|
||||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 1F, 1F);
|
|
||||||
b.getWorld().dropItemNaturally(b.getRelative(BlockFace.UP).getLocation(), adding);
|
|
||||||
}
|
|
||||||
}, i*30L);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Messages.local.sendTranslation(p, "machines.wrong-item", true);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.FARMER_SHOES, "FARMER_SHOES", RecipeType.ARMOR_FORGE,
|
new SlimefunItem(Categories.MAGIC_ARMOR, SlimefunItems.FARMER_SHOES, "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)})
|
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)})
|
||||||
@ -1959,82 +1910,37 @@ public final class SlimefunSetup {
|
|||||||
new ItemStack[] {SlimefunItems.CLOTH, null, SlimefunItems.CLOTH, SlimefunItems.GOLD_16K, SlimefunItems.BACKPACK_LARGE, SlimefunItems.GOLD_16K, SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CLOTH})
|
new ItemStack[] {SlimefunItems.CLOTH, null, SlimefunItems.CLOTH, SlimefunItems.GOLD_16K, SlimefunItems.BACKPACK_LARGE, SlimefunItems.GOLD_16K, SlimefunItems.CLOTH, SlimefunItems.CLOTH, SlimefunItems.CLOTH})
|
||||||
.register(true);
|
.register(true);
|
||||||
|
|
||||||
new SlimefunGadget(Categories.MACHINES_1, SlimefunItems.CRUCIBLE, "CRUCIBLE", RecipeType.ENHANCED_CRAFTING_TABLE,
|
new Crucible(Categories.MACHINES_1, SlimefunItems.CRUCIBLE, "CRUCIBLE", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack [] {new ItemStack(Material.TERRACOTTA), null, new ItemStack(Material.TERRACOTTA), new ItemStack(Material.TERRACOTTA), null, new ItemStack(Material.TERRACOTTA), new ItemStack(Material.TERRACOTTA), new ItemStack(Material.FLINT_AND_STEEL), new ItemStack(Material.TERRACOTTA)},
|
new ItemStack [] {new ItemStack(Material.TERRACOTTA), null, new ItemStack(Material.TERRACOTTA), new ItemStack(Material.TERRACOTTA), null, new ItemStack(Material.TERRACOTTA), new ItemStack(Material.TERRACOTTA), new ItemStack(Material.FLINT_AND_STEEL), new ItemStack(Material.TERRACOTTA)},
|
||||||
new ItemStack [] {
|
new ItemStack [] {
|
||||||
new ItemStack(Material.COBBLESTONE, 16), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.COBBLESTONE, 16), new ItemStack(Material.LAVA_BUCKET),
|
||||||
|
new ItemStack(Material.STONE, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
|
|
||||||
new ItemStack(Material.OAK_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
new ItemStack(Material.OAK_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
||||||
new ItemStack(Material.BIRCH_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
new ItemStack(Material.BIRCH_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
||||||
new ItemStack(Material.SPRUCE_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
new ItemStack(Material.SPRUCE_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
||||||
new ItemStack(Material.JUNGLE_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
new ItemStack(Material.JUNGLE_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
||||||
new ItemStack(Material.ACACIA_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
new ItemStack(Material.ACACIA_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
||||||
new ItemStack(Material.DARK_OAK_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
new ItemStack(Material.DARK_OAK_LEAVES, 16), new ItemStack(Material.WATER_BUCKET),
|
||||||
|
|
||||||
new ItemStack(Material.WHITE_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.ORANGE_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.WHITE_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.MAGENTA_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.ORANGE_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.LIGHT_BLUE_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.MAGENTA_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.YELLOW_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.LIGHT_BLUE_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.LIME_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.YELLOW_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.PINK_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.LIME_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.GRAY_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.PINK_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.LIGHT_GRAY_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.GRAY_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.CYAN_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.LIGHT_GRAY_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.PURPLE_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.CYAN_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.BROWN_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.PURPLE_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.GREEN_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.BROWN_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.RED_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
new ItemStack(Material.GREEN_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
new ItemStack(Material.BLACK_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET)
|
new ItemStack(Material.RED_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET),
|
||||||
})
|
new ItemStack(Material.BLACK_TERRACOTTA, 12), new ItemStack(Material.LAVA_BUCKET)
|
||||||
.register(true, new ItemInteractionHandler() {
|
})
|
||||||
|
.register(true);
|
||||||
@Override
|
|
||||||
public boolean onRightClick(ItemUseEvent e, final Player p, ItemStack item) {
|
|
||||||
if (e.getClickedBlock() != null) {
|
|
||||||
SlimefunItem machine = BlockStorage.check(e.getClickedBlock());
|
|
||||||
if (machine != null && machine.getID().equals("CRUCIBLE")) {
|
|
||||||
if (CSCoreLib.getLib().getProtectionManager().canAccessChest(p.getUniqueId(), e.getClickedBlock(), true)) {
|
|
||||||
final ItemStack input = p.getInventory().getItemInMainHand();
|
|
||||||
final Block block = e.getClickedBlock().getRelative(BlockFace.UP);
|
|
||||||
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
|
|
||||||
if (input != null && SlimefunManager.isItemSimiliar(input, convert, true)) {
|
|
||||||
e.setCancelled(true);
|
|
||||||
ItemStack removing = input.clone();
|
|
||||||
removing.setAmount(convert.getAmount());
|
|
||||||
p.getInventory().removeItem(removing);
|
|
||||||
|
|
||||||
for (int i = 1; i < 9; i++) {
|
|
||||||
int j = 8 - i;
|
|
||||||
Bukkit.getScheduler().runTaskLater(SlimefunStartup.instance, () -> {
|
|
||||||
if (input.getType() == Material.COBBLESTONE || input.getType() == Material.TERRACOTTA || MaterialHelper.isTerracotta(input.getType())) {
|
|
||||||
block.setType(Material.LAVA);
|
|
||||||
Levelled le = (Levelled) block.getBlockData();
|
|
||||||
le.setLevel(j);
|
|
||||||
block.setBlockData(le, false);
|
|
||||||
block.getWorld().playSound(block.getLocation(), Sound.BLOCK_LAVA_POP, 1F, 1F);
|
|
||||||
} else if (MaterialHelper.isLeavesBlock(input.getType())) {
|
|
||||||
block.setType(Material.WATER);
|
|
||||||
Levelled le = (Levelled) block.getBlockData();
|
|
||||||
le.setLevel(j);
|
|
||||||
block.setBlockData(le, false);
|
|
||||||
block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F);
|
|
||||||
}
|
|
||||||
}, i*50L);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Messages.local.sendTranslation(p, "machines.wrong-item", true);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
new SlimefunBackpack(45, Categories.PORTABLE, SlimefunItems.GILDED_BACKPACK, "GILDED_BACKPACK", RecipeType.ENHANCED_CRAFTING_TABLE,
|
new SlimefunBackpack(45, Categories.PORTABLE, SlimefunItems.GILDED_BACKPACK, "GILDED_BACKPACK", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack[] {SlimefunItems.GOLD_22K, null, SlimefunItems.GOLD_22K, new ItemStack(Material.LEATHER), SlimefunItems.WOVEN_BACKPACK, new ItemStack(Material.LEATHER), SlimefunItems.GOLD_22K, null, SlimefunItems.GOLD_22K})
|
new ItemStack[] {SlimefunItems.GOLD_22K, null, SlimefunItems.GOLD_22K, new ItemStack(Material.LEATHER), SlimefunItems.WOVEN_BACKPACK, new ItemStack(Material.LEATHER), SlimefunItems.GOLD_22K, null, SlimefunItems.GOLD_22K})
|
||||||
@ -2691,37 +2597,9 @@ public final class SlimefunSetup {
|
|||||||
|
|
||||||
// Slimefun 4
|
// Slimefun 4
|
||||||
|
|
||||||
new SlimefunItem(Categories.ELECTRICITY, SlimefunItems.ENERGY_REGULATOR, "ENERGY_REGULATOR", RecipeType.ENHANCED_CRAFTING_TABLE,
|
new EnergyRegulator(Categories.ELECTRICITY, SlimefunItems.ENERGY_REGULATOR, "ENERGY_REGULATOR", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack[] {SlimefunItems.SILVER_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.SILVER_INGOT})
|
new ItemStack[] {SlimefunItems.SILVER_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.SILVER_INGOT})
|
||||||
.register(true, new BlockTicker() {
|
.register(true);
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSynchronized() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void tick(Block b, SlimefunItem item, Config data) {
|
|
||||||
EnergyNet.getNetworkFromLocationOrCreate(b.getLocation()).tick(b);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
SlimefunItem.registerBlockHandler("ENERGY_REGULATOR", new SlimefunBlockHandler() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onPlace(Player p, Block b, SlimefunItem item) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onBreak(Player p, Block b, SlimefunItem item, UnregisterReason reason) {
|
|
||||||
EnergyHologram.remove(b);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
new SlimefunItem(Categories.MISC, SlimefunItems.DUCT_TAPE, "DUCT_TAPE", RecipeType.ENHANCED_CRAFTING_TABLE,
|
new SlimefunItem(Categories.MISC, SlimefunItems.DUCT_TAPE, "DUCT_TAPE", RecipeType.ENHANCED_CRAFTING_TABLE,
|
||||||
new ItemStack[] {SlimefunItems.ALUMINUM_DUST, SlimefunItems.ALUMINUM_DUST, SlimefunItems.ALUMINUM_DUST, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.PAPER), new ItemStack(Material.PAPER), new ItemStack(Material.PAPER)}, new CustomItem(SlimefunItems.DUCT_TAPE, 2))
|
new ItemStack[] {SlimefunItems.ALUMINUM_DUST, SlimefunItems.ALUMINUM_DUST, SlimefunItems.ALUMINUM_DUST, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.WHITE_WOOL), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.PAPER), new ItemStack(Material.PAPER), new ItemStack(Material.PAPER)}, new CustomItem(SlimefunItems.DUCT_TAPE, 2))
|
||||||
@ -3440,10 +3318,6 @@ public final class SlimefunSetup {
|
|||||||
else Slimefun.getGPSNetwork().updateTransmitter(b.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
else Slimefun.getGPSNetwork().updateTransmitter(b.getLocation(), UUID.fromString(BlockStorage.getLocationInfo(b.getLocation(), "owner")), NetworkStatus.OFFLINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return false;
|
return false;
|
||||||
@ -3480,10 +3354,6 @@ public final class SlimefunSetup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return false;
|
return false;
|
||||||
@ -3520,10 +3390,6 @@ public final class SlimefunSetup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return false;
|
return false;
|
||||||
@ -3560,10 +3426,6 @@ public final class SlimefunSetup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return false;
|
return false;
|
||||||
@ -4608,10 +4470,6 @@ public final class SlimefunSetup {
|
|||||||
new ItemStack[] {null, SlimefunItems.HOLOGRAM_PROJECTOR, null, SlimefunItems.REINFORCED_PLATE, SlimefunItems.CARGO_MOTOR, SlimefunItems.REINFORCED_PLATE, SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.ANDROID_MEMORY_CORE, SlimefunItems.ALUMINUM_BRONZE_INGOT})
|
new ItemStack[] {null, SlimefunItems.HOLOGRAM_PROJECTOR, null, SlimefunItems.REINFORCED_PLATE, SlimefunItems.CARGO_MOTOR, SlimefunItems.REINFORCED_PLATE, SlimefunItems.ALUMINUM_BRONZE_INGOT, SlimefunItems.ANDROID_MEMORY_CORE, SlimefunItems.ALUMINUM_BRONZE_INGOT})
|
||||||
.register(true, new BlockTicker() {
|
.register(true, new BlockTicker() {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void uniqueTick() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(Block b, SlimefunItem item, Config data) {
|
public void tick(Block b, SlimefunItem item, Config data) {
|
||||||
CargoNet.getNetworkFromLocationOrCreate(b.getLocation()).tick(b);
|
CargoNet.getNetworkFromLocationOrCreate(b.getLocation()).tick(b);
|
||||||
@ -4621,6 +4479,7 @@ public final class SlimefunSetup {
|
|||||||
public boolean isSynchronized() {
|
public boolean isSynchronized() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}, new ItemInteractionHandler() {
|
}, new ItemInteractionHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user