mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-20 03:35:51 +00:00
Optimized SlimefunManager.isItemSimilar
This commit is contained in:
parent
2075c103cd
commit
a22068b9ff
@ -1,4 +1,4 @@
|
||||
package me.mrCookieSlime.Slimefun.services;
|
||||
package io.github.thebusybiscuit.slimefun4.core.services;
|
||||
|
||||
import java.util.Optional;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.mrCookieSlime.Slimefun.services;
|
||||
package io.github.thebusybiscuit.slimefun4.core.services;
|
||||
|
||||
import java.util.Optional;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.mrCookieSlime.Slimefun.services;
|
||||
package io.github.thebusybiscuit.slimefun4.core.services;
|
||||
|
||||
import java.util.Collection;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.mrCookieSlime.Slimefun.services;
|
||||
package io.github.thebusybiscuit.slimefun4.core.services;
|
||||
|
||||
import org.bstats.bukkit.Metrics;
|
||||
|
@ -314,8 +314,8 @@ public class SlimefunItem implements Placeable {
|
||||
return sfi;
|
||||
}
|
||||
}
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BROKEN_SPAWNER, false)) return getByID("BROKEN_SPAWNER");
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.REPAIRED_SPAWNER, false)) return getByID("REINFORCED_SPAWNER");
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.BROKEN_SPAWNER, false)) return getByID("BROKEN_SPAWNER");
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.REPAIRED_SPAWNER, false)) return getByID("REINFORCED_SPAWNER");
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -329,11 +329,11 @@ public class SlimefunItem implements Placeable {
|
||||
}
|
||||
}
|
||||
|
||||
if (this instanceof ChargableItem && SlimefunManager.isItemSimiliar(item, this.item, false)) return true;
|
||||
else if (this instanceof DamagableChargableItem && SlimefunManager.isItemSimiliar(item, this.item, false)) return true;
|
||||
else if (this instanceof ChargedItem && SlimefunManager.isItemSimiliar(item, this.item, false)) return true;
|
||||
else if (this instanceof SlimefunBackpack && SlimefunManager.isItemSimiliar(item, this.item, false)) return true;
|
||||
else return SlimefunManager.isItemSimiliar(item, this.item, true);
|
||||
if (this instanceof ChargableItem && SlimefunManager.isItemSimilar(item, this.item, false)) return true;
|
||||
else if (this instanceof DamagableChargableItem && SlimefunManager.isItemSimilar(item, this.item, false)) return true;
|
||||
else if (this instanceof ChargedItem && SlimefunManager.isItemSimilar(item, this.item, false)) return true;
|
||||
else if (this instanceof SlimefunBackpack && SlimefunManager.isItemSimilar(item, this.item, false)) return true;
|
||||
else return SlimefunManager.isItemSimilar(item, this.item, true);
|
||||
}
|
||||
|
||||
public void load() {
|
||||
@ -483,7 +483,7 @@ public class SlimefunItem implements Placeable {
|
||||
ItemStack[] recipe = sfi.getRecipe();
|
||||
|
||||
for (int i = 0; i < 9; i++) {
|
||||
if (SlimefunManager.isItemSimiliar(recipe[i], old, true)) recipe[i] = stack;
|
||||
if (SlimefunManager.isItemSimilar(recipe[i], old, true)) recipe[i] = stack;
|
||||
}
|
||||
sfi.setRecipe(recipe);
|
||||
}
|
||||
|
@ -210,7 +210,7 @@ public abstract class AContainer extends SlimefunItem implements InventoryBlock
|
||||
for (MachineRecipe recipe: recipes) {
|
||||
for (ItemStack input: recipe.getInput()) {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(inv.getItemInSlot(slot), input, true)) {
|
||||
if (SlimefunManager.isItemSimilar(inv.getItemInSlot(slot), input, true)) {
|
||||
found.put(slot, input.getAmount());
|
||||
break;
|
||||
}
|
||||
|
@ -188,9 +188,9 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt
|
||||
}
|
||||
else {
|
||||
ItemStack fuel = processing.get(l).getInput();
|
||||
if (SlimefunManager.isItemSimiliar(fuel, new ItemStack(Material.LAVA_BUCKET), true)
|
||||
|| SlimefunManager.isItemSimiliar(fuel, SlimefunItems.BUCKET_OF_FUEL, true)
|
||||
|| SlimefunManager.isItemSimiliar(fuel, SlimefunItems.BUCKET_OF_OIL, true)) {
|
||||
if (SlimefunManager.isItemSimilar(fuel, new ItemStack(Material.LAVA_BUCKET), true)
|
||||
|| SlimefunManager.isItemSimilar(fuel, SlimefunItems.BUCKET_OF_FUEL, true)
|
||||
|| SlimefunManager.isItemSimilar(fuel, SlimefunItems.BUCKET_OF_OIL, true)) {
|
||||
inv.pushItem(new ItemStack(Material.BUCKET), getOutputSlots());
|
||||
}
|
||||
inv.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "));
|
||||
@ -226,7 +226,7 @@ public abstract class AGenerator extends SlimefunItem implements RecipeDisplayIt
|
||||
private MachineFuel findRecipe(BlockMenu menu, Map<Integer, Integer> found) {
|
||||
for (MachineFuel recipe: recipes) {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), recipe.getInput(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), recipe.getInput(), true)) {
|
||||
found.put(slot, recipe.getInput().getAmount());
|
||||
return recipe;
|
||||
}
|
||||
|
@ -283,7 +283,7 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem
|
||||
if (coolant) {
|
||||
if (port != null) {
|
||||
for (int slot: getCoolantSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(port.getItemInSlot(slot), getCoolant(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(port.getItemInSlot(slot), getCoolant(), true)) {
|
||||
port.replaceExistingItem(slot, menu.pushItem(port.getItemInSlot(slot), getCoolantSlots()));
|
||||
}
|
||||
}
|
||||
@ -291,7 +291,7 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem
|
||||
|
||||
boolean explosion = true;
|
||||
for (int slot: getCoolantSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), getCoolant(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), getCoolant(), true)) {
|
||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
||||
ReactorHologram.update(l, "&b\u2744 &7100%");
|
||||
explosion = false;
|
||||
@ -372,7 +372,7 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem
|
||||
private void restockFuel(BlockMenu menu, BlockMenu port) {
|
||||
for (int slot: getFuelSlots()) {
|
||||
for (MachineFuel recipe: recipes) {
|
||||
if (SlimefunManager.isItemSimiliar(port.getItemInSlot(slot), recipe.getInput(), true) && menu.fits(new CustomItem(port.getItemInSlot(slot), 1), getFuelSlots())) {
|
||||
if (SlimefunManager.isItemSimilar(port.getItemInSlot(slot), recipe.getInput(), true) && menu.fits(new CustomItem(port.getItemInSlot(slot), 1), getFuelSlots())) {
|
||||
port.replaceExistingItem(slot, menu.pushItem(port.getItemInSlot(slot), getFuelSlots()));
|
||||
return;
|
||||
}
|
||||
@ -383,7 +383,7 @@ public abstract class AReactor extends SlimefunItem implements RecipeDisplayItem
|
||||
private MachineFuel findRecipe(BlockMenu menu, Map<Integer, Integer> found) {
|
||||
for (MachineFuel recipe: recipes) {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), recipe.getInput(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), recipe.getInput(), true)) {
|
||||
found.put(slot, recipe.getInput().getAmount());
|
||||
return recipe;
|
||||
}
|
||||
|
@ -9,7 +9,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class DietCookie extends SimpleSlimefunItem<ItemConsumptionHandler> {
|
||||
@ -21,7 +20,7 @@ public class DietCookie extends SimpleSlimefunItem<ItemConsumptionHandler> {
|
||||
@Override
|
||||
public ItemConsumptionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
p.sendMessage(ChatColor.YELLOW + "You feel so light...");
|
||||
p.playSound(p.getLocation(), Sound.ENTITY_GENERIC_EAT, 1, 1);
|
||||
|
||||
|
@ -4,11 +4,9 @@ import org.bukkit.Sound;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class EnderBackpack extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@ -20,7 +18,7 @@ public class EnderBackpack extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@Override
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.ENDER_BACKPACK, true)) {
|
||||
if (isItem(item)) {
|
||||
e.setCancelled(true);
|
||||
p.openInventory(p.getEnderChest());
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 1, 1);
|
||||
|
@ -11,7 +11,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class FortuneCookie extends SimpleSlimefunItem<ItemConsumptionHandler> {
|
||||
@ -25,7 +24,7 @@ public class FortuneCookie extends SimpleSlimefunItem<ItemConsumptionHandler> {
|
||||
@Override
|
||||
public ItemConsumptionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
List<String> messages = SlimefunPlugin.getLocal().getMessages("messages.fortune-cookie");
|
||||
String message = messages.get(random.nextInt(messages.size()));
|
||||
|
||||
|
@ -18,7 +18,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
||||
@ -36,7 +35,7 @@ public class GrapplingHook extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
Utilities utilities = SlimefunPlugin.getUtilities();
|
||||
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
UUID uuid = p.getUniqueId();
|
||||
|
||||
if (e.getClickedBlock() == null && !utilities.jumpState.containsKey(uuid)) {
|
||||
|
@ -9,7 +9,6 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockBreakHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class HerculesPickaxe extends SimpleSlimefunItem<BlockBreakHandler> {
|
||||
@ -26,7 +25,7 @@ public class HerculesPickaxe extends SimpleSlimefunItem<BlockBreakHandler> {
|
||||
@Override
|
||||
public BlockBreakHandler getItemHandler() {
|
||||
return (e, item, fortune, drops) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.HERCULES_PICKAXE, true) && e.getBlock().getType().toString().endsWith("_ORE")) {
|
||||
if (isItem(item) && e.getBlock().getType().toString().endsWith("_ORE")) {
|
||||
if (e.getBlock().getType() == Material.IRON_ORE) {
|
||||
drops.add(new CustomItem(SlimefunItems.IRON_DUST, 2));
|
||||
}
|
||||
|
@ -11,7 +11,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class InfernalBonemeal extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@ -23,7 +22,7 @@ public class InfernalBonemeal extends SimpleSlimefunItem<ItemInteractionHandler>
|
||||
@Override
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
if (e.getClickedBlock() != null && e.getClickedBlock().getType() == Material.NETHER_WART) {
|
||||
Ageable ageable = (Ageable) e.getClickedBlock().getBlockData();
|
||||
if (ageable.getAge() < ageable.getMaximumAge()) {
|
||||
|
@ -29,7 +29,7 @@ public class KnowledgeTome extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@Override
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, getItem(), true)) {
|
||||
List<String> lore = item.getItemMeta().getLore();
|
||||
lore.set(0, ChatColor.translateAlternateColorCodes('&', "&7Owner: &b" + p.getName()));
|
||||
lore.set(1, ChatColor.BLACK + "" + p.getUniqueId());
|
||||
@ -40,7 +40,7 @@ public class KnowledgeTome extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1F, 1F);
|
||||
return true;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, getItem(), false)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, getItem(), false)) {
|
||||
PlayerProfile.get(p, profile -> {
|
||||
PlayerProfile.fromUUID(UUID.fromString(ChatColor.stripColor(item.getItemMeta().getLore().get(1))), owner -> {
|
||||
Set<Research> researches = owner.getResearches();
|
||||
|
@ -16,7 +16,6 @@ import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.NotPlaceable;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockBreakHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class LumberAxe extends SimpleSlimefunItem<BlockBreakHandler> implements NotPlaceable {
|
||||
@ -33,7 +32,7 @@ public class LumberAxe extends SimpleSlimefunItem<BlockBreakHandler> implements
|
||||
@Override
|
||||
public BlockBreakHandler getItemHandler() {
|
||||
return (e, item, fortune, drops) -> {
|
||||
if (SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getItemInMainHand(), getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
if (MaterialCollections.getAllLogs().contains(e.getBlock().getType())) {
|
||||
List<Block> logs = Vein.find(e.getBlock(), 100, b -> MaterialCollections.getAllLogs().contains(b.getType()));
|
||||
|
||||
|
@ -24,7 +24,12 @@ public class MagicEyeOfEnder extends SimpleSlimefunItem<ItemInteractionHandler>
|
||||
if (isItem(item)) {
|
||||
e.getParentEvent().setCancelled(true);
|
||||
|
||||
if (p.getInventory().getHelmet() != null && p.getInventory().getChestplate() != null && p.getInventory().getLeggings() != null && p.getInventory().getBoots() != null && SlimefunManager.isItemSimiliar(p.getInventory().getHelmet(), SlimefunItems.ENDER_HELMET, true) && SlimefunManager.isItemSimiliar(p.getInventory().getChestplate(), SlimefunItems.ENDER_CHESTPLATE, true) && SlimefunManager.isItemSimiliar(p.getInventory().getLeggings(), SlimefunItems.ENDER_LEGGINGS, true) && SlimefunManager.isItemSimiliar(p.getInventory().getBoots(), SlimefunItems.ENDER_BOOTS, true)) {
|
||||
if (
|
||||
SlimefunManager.isItemSimilar(p.getInventory().getHelmet(), SlimefunItems.ENDER_HELMET, true) &&
|
||||
SlimefunManager.isItemSimilar(p.getInventory().getChestplate(), SlimefunItems.ENDER_CHESTPLATE, true) &&
|
||||
SlimefunManager.isItemSimilar(p.getInventory().getLeggings(), SlimefunItems.ENDER_LEGGINGS, true) &&
|
||||
SlimefunManager.isItemSimilar(p.getInventory().getBoots(), SlimefunItems.ENDER_BOOTS, true)
|
||||
) {
|
||||
p.launchProjectile(EnderPearl.class);
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_ENDERMAN_TELEPORT, 1, 1);
|
||||
}
|
||||
|
@ -9,7 +9,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemConsumptionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class MonsterJerky extends SimpleSlimefunItem<ItemConsumptionHandler> {
|
||||
@ -21,7 +20,7 @@ public class MonsterJerky extends SimpleSlimefunItem<ItemConsumptionHandler> {
|
||||
@Override
|
||||
public ItemConsumptionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
SlimefunPlugin.instance.getServer().getScheduler().runTaskLater(SlimefunPlugin.instance, () -> {
|
||||
if (p.hasPotionEffect(PotionEffectType.HUNGER)) {
|
||||
p.removePotionEffect(PotionEffectType.HUNGER);
|
||||
|
@ -14,7 +14,6 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.BlockBreakHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
@ -32,7 +31,7 @@ public class PickaxeOfContainment extends SimpleSlimefunItem<BlockBreakHandler>
|
||||
@Override
|
||||
public BlockBreakHandler getItemHandler() {
|
||||
return (e, item, fortune, drops) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
// Refactored it into this so we don't need to call e.getBlock() all the time.
|
||||
Block b = e.getBlock();
|
||||
if (b.getType() != Material.SPAWNER) return true;
|
||||
|
@ -4,11 +4,9 @@ import org.bukkit.Sound;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class PortableCrafter extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@ -20,7 +18,7 @@ public class PortableCrafter extends SimpleSlimefunItem<ItemInteractionHandler>
|
||||
@Override
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PORTABLE_CRAFTER, true)) {
|
||||
if (isItem(item)) {
|
||||
p.openWorkbench(p.getLocation(), true);
|
||||
p.getWorld().playSound(p.getLocation(), Sound.BLOCK_WOODEN_BUTTON_CLICK_ON, 1, 1);
|
||||
return true;
|
||||
|
@ -6,11 +6,9 @@ import org.bukkit.Sound;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class PortableDustbin extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@ -22,7 +20,7 @@ public class PortableDustbin extends SimpleSlimefunItem<ItemInteractionHandler>
|
||||
@Override
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PORTABLE_DUSTBIN, true)) {
|
||||
if (isItem(item)) {
|
||||
e.setCancelled(true);
|
||||
p.openInventory(Bukkit.createInventory(null, 9 * 3, ChatColor.DARK_RED + "Delete Items"));
|
||||
p.playSound(p.getLocation(), Sound.BLOCK_ANVIL_LAND, 1, 1);
|
||||
|
@ -38,7 +38,7 @@ public class SoulboundRune extends SimpleSlimefunItem<ItemDropHandler> {
|
||||
public ItemDropHandler getItemHandler() {
|
||||
return (e, p, i) -> {
|
||||
ItemStack item = i.getItemStack();
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.RUNE_SOULBOUND, true)) {
|
||||
if (isItem(item)) {
|
||||
|
||||
if (!Slimefun.hasUnlocked(p, SlimefunItems.RUNE_SOULBOUND, true)) {
|
||||
return true;
|
||||
@ -50,8 +50,9 @@ public class SoulboundRune extends SimpleSlimefunItem<ItemDropHandler> {
|
||||
|
||||
Location l = i.getLocation();
|
||||
Collection<Entity> entites = l.getWorld().getNearbyEntities(l, 1.5, 1.5, 1.5,
|
||||
entity -> entity instanceof Item && !SlimefunManager.isItemSoulbound(((Item) entity).getItemStack()) &&
|
||||
!SlimefunManager.isItemSimiliar(((Item) entity).getItemStack(), SlimefunItems.RUNE_SOULBOUND, true)
|
||||
entity -> entity instanceof Item &&
|
||||
!SlimefunManager.isItemSoulbound(((Item) entity).getItemStack()) &&
|
||||
!SlimefunManager.isItemSimilar(((Item) entity).getItemStack(), SlimefunItems.RUNE_SOULBOUND, true)
|
||||
);
|
||||
|
||||
if (entites.isEmpty()) return;
|
||||
@ -68,7 +69,7 @@ public class SoulboundRune extends SimpleSlimefunItem<ItemDropHandler> {
|
||||
|
||||
// This lightning is just an effect, it deals no damage.
|
||||
l.getWorld().strikeLightningEffect(l);
|
||||
Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunPlugin.instance, () -> {
|
||||
Slimefun.runSync(() -> {
|
||||
|
||||
// Being sure entities are still valid and not picked up or whatsoever.
|
||||
if (i.isValid() && ent.isValid()) {
|
||||
|
@ -21,7 +21,6 @@ import me.mrCookieSlime.Slimefun.Lists.SlimefunItems;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class StormStaff extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@ -49,9 +48,7 @@ public class StormStaff extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@Override
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
//Not checking if lores equals because we need a special one for that.
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), false)) {
|
||||
|
||||
if (isItem(item)) {
|
||||
if (!item.hasItemMeta()) return false;
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
if (!itemMeta.hasLore()) return false;
|
||||
|
@ -16,7 +16,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.EntityKillHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
@ -42,7 +41,7 @@ public class SwordOfBeheading extends SimpleSlimefunItem<EntityKillHandler> {
|
||||
@Override
|
||||
public EntityKillHandler getItemHandler() {
|
||||
return (e, entity, killer, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
if (e.getEntity() instanceof Zombie) {
|
||||
if (random.nextInt(100) < chanceZombie) {
|
||||
e.getDrops().add(new ItemStack(Material.ZOMBIE_HEAD));
|
||||
|
@ -13,7 +13,6 @@ import me.mrCookieSlime.Slimefun.Lists.RecipeType;
|
||||
import me.mrCookieSlime.Slimefun.Objects.Category;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SimpleSlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class WindStaff extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@ -25,7 +24,7 @@ public class WindStaff extends SimpleSlimefunItem<ItemInteractionHandler> {
|
||||
@Override
|
||||
public ItemInteractionHandler getItemHandler() {
|
||||
return (e, p, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, getItem(), true)) {
|
||||
if (isItem(item)) {
|
||||
if (p.getFoodLevel() >= 2) {
|
||||
if (p.getInventory().getItemInMainHand().getType() != Material.SHEARS && p.getGameMode() != GameMode.CREATIVE) {
|
||||
FoodLevelChangeEvent event = new FoodLevelChangeEvent(p, p.getFoodLevel() - 2);
|
||||
|
@ -71,7 +71,7 @@ public class Composter extends SlimefunGadget {
|
||||
SlimefunItem machine = SlimefunItem.getByID(id);
|
||||
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
|
||||
if (convert != null && SlimefunManager.isItemSimiliar(input, convert, true)) {
|
||||
if (convert != null && SlimefunManager.isItemSimilar(input, convert, true)) {
|
||||
ItemStack removing = input.clone();
|
||||
removing.setAmount(convert.getAmount());
|
||||
p.getInventory().removeItem(removing);
|
||||
|
@ -3,7 +3,6 @@ package me.mrCookieSlime.Slimefun.Objects.SlimefunItem.machines;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.Tag;
|
||||
@ -24,6 +23,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.handlers.ItemInteractionHandler;
|
||||
import me.mrCookieSlime.Slimefun.Setup.SlimefunManager;
|
||||
import me.mrCookieSlime.Slimefun.api.BlockStorage;
|
||||
import me.mrCookieSlime.Slimefun.api.Slimefun;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public class Crucible extends SlimefunGadget {
|
||||
@ -74,7 +74,7 @@ public class Crucible extends SlimefunGadget {
|
||||
SlimefunItem machine = SlimefunItem.getByID(id);
|
||||
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(machine)) {
|
||||
if (input != null && SlimefunManager.isItemSimiliar(input, convert, true)) {
|
||||
if (SlimefunManager.isItemSimilar(input, convert, true)) {
|
||||
e.setCancelled(true);
|
||||
ItemStack removing = input.clone();
|
||||
removing.setAmount(convert.getAmount());
|
||||
@ -82,7 +82,7 @@ public class Crucible extends SlimefunGadget {
|
||||
p.getInventory().removeItem(removing);
|
||||
|
||||
for (int i = 1; i < 9; i++) {int j = 8 - i;
|
||||
Bukkit.getScheduler().runTaskLater(SlimefunPlugin.instance, () -> {
|
||||
Slimefun.runSync(() -> {
|
||||
if (input.getType() == Material.COBBLESTONE || input.getType() == Material.TERRACOTTA || MaterialCollections.getAllTerracottaColors().contains(input.getType())) {
|
||||
block.setType(Material.LAVA);
|
||||
Levelled le = (Levelled) block.getBlockData();
|
||||
@ -97,7 +97,7 @@ public class Crucible extends SlimefunGadget {
|
||||
block.setBlockData(le, false);
|
||||
block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F);
|
||||
}
|
||||
}, i*50L);
|
||||
}, i * 50L);
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -76,8 +76,8 @@ public class ReactorAccessPort extends SlimefunItem {
|
||||
@Override
|
||||
public int[] getSlotsAccessedByItemTransport(BlockMenu menu, ItemTransportFlow flow, ItemStack item) {
|
||||
if (flow == ItemTransportFlow.INSERT) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.REACTOR_COOLANT_CELL, true)) return getCoolantSlots();
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.NETHER_ICE_COOLANT_CELL, true)) return getCoolantSlots();
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.REACTOR_COOLANT_CELL, true)) return getCoolantSlots();
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.NETHER_ICE_COOLANT_CELL, true)) return getCoolantSlots();
|
||||
else return getFuelSlots();
|
||||
}
|
||||
else return getOutputSlots();
|
||||
|
@ -90,7 +90,7 @@ public class AnimalGrowthAccelerator extends SlimefunItem implements InventoryBl
|
||||
protected void tick(Block b) {
|
||||
for (Entity n : b.getWorld().getNearbyEntities(b.getLocation(), 3.0, 3.0, 3.0, n -> n instanceof Ageable && n.isValid() && !((Ageable) n).isAdult())) {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.ORGANIC_FOOD, false)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.ORGANIC_FOOD, false)) {
|
||||
if (ChargableBlock.getCharge(b) < energyConsumption) return;
|
||||
|
||||
ChargableBlock.addCharge(b, -energyConsumption);
|
||||
|
@ -80,7 +80,7 @@ public abstract class AutoAnvil extends AContainer {
|
||||
ItemStack item = menu.getItemInSlot(slot);
|
||||
|
||||
if (item != null && item.getType().getMaxDurability() > 0 && ((Damageable) item.getItemMeta()).getDamage() > 0) {
|
||||
if (SlimefunManager.isItemSimiliar(target, SlimefunItems.DUCT_TAPE, true)) {
|
||||
if (SlimefunManager.isItemSimilar(target, SlimefunItems.DUCT_TAPE, true)) {
|
||||
ItemStack newItem = item.clone();
|
||||
short durability = (short) (((Damageable) newItem.getItemMeta()).getDamage() - (item.getType().getMaxDurability() / getRepairFactor()));
|
||||
if (durability < 0) durability = 0;
|
||||
|
@ -83,7 +83,7 @@ public class AutoBreeder extends SlimefunItem implements InventoryBlock {
|
||||
protected void tick(Block b) {
|
||||
for (Entity n : b.getWorld().getNearbyEntities(b.getLocation(), 4.0, 2.0, 4.0, n -> n instanceof Animals && n.isValid() && ((Animals) n).isAdult() && !((Animals) n).isLoveMode())) {
|
||||
for (int slot : getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.ORGANIC_FOOD, false)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.ORGANIC_FOOD, false)) {
|
||||
if (ChargableBlock.getCharge(b) < energyConsumption) return;
|
||||
|
||||
ChargableBlock.addCharge(b, -energyConsumption);
|
||||
|
@ -120,7 +120,7 @@ public class AutoDrier extends AContainer implements RecipeDisplayItem {
|
||||
ItemStack output = null;
|
||||
|
||||
for (int i = 0; i < recipeList.size(); i += 2) {
|
||||
if (SlimefunManager.isItemSimiliar(item, recipeList.get(i), true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, recipeList.get(i), true)) {
|
||||
output = recipeList.get(i + 1);
|
||||
}
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ public abstract class CropGrowthAccelerator extends SlimefunItem implements Inve
|
||||
protected void tick(Block b) {
|
||||
if (work(b) > 0) {
|
||||
for (int slot : getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.FERTILIZER, false)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.FERTILIZER, false)) {
|
||||
BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), 1));
|
||||
break;
|
||||
}
|
||||
@ -121,7 +121,7 @@ public abstract class CropGrowthAccelerator extends SlimefunItem implements Inve
|
||||
Block block = b.getRelative(x, 0, z);
|
||||
if (crops.containsKey(block.getType()) && ((Ageable) block.getBlockData()).getAge() < crops.get(block.getType())) {
|
||||
for (int slot : getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.FERTILIZER, false)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.FERTILIZER, false)) {
|
||||
if (work > (getSpeed() - 1) || ChargableBlock.getCharge(b) < getEnergyConsumption()) return work;
|
||||
ChargableBlock.addCharge(b, -getEnergyConsumption());
|
||||
|
||||
|
@ -69,7 +69,7 @@ public abstract class ElectricDustWasher extends AContainer {
|
||||
ItemStack[] items = SlimefunPlugin.getUtilities().oreWasherOutputs;
|
||||
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), SlimefunItems.SIFTED_ORE, true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.SIFTED_ORE, true)) {
|
||||
if (!SlimefunPlugin.getSettings().legacyDustWasher) {
|
||||
boolean emptySlot = false;
|
||||
|
||||
@ -90,7 +90,7 @@ public abstract class ElectricDustWasher extends AContainer {
|
||||
progress.put(b, r.getTicks());
|
||||
break;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), SlimefunItems.PULVERIZED_ORE, true)) {
|
||||
else if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), SlimefunItems.PULVERIZED_ORE, true)) {
|
||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {SlimefunItems.PURE_ORE_CLUSTER});
|
||||
if (!menu.fits(r.getOutput()[0], getOutputSlots())) return;
|
||||
menu.replaceExistingItem(slot, InvUtils.decreaseItem(menu.getItemInSlot(slot), 1));
|
||||
|
@ -116,7 +116,7 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
||||
}
|
||||
else {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), new ItemStack(Material.GRAVEL), true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.GRAVEL), true)) {
|
||||
ItemStack output = randomizer.getRandom();
|
||||
|
||||
MachineRecipe r = new MachineRecipe(3 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
||||
@ -127,7 +127,7 @@ public abstract class ElectricGoldPan extends AContainer implements RecipeDispla
|
||||
progress.put(b, r.getTicks());
|
||||
break;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||
ItemStack output = randomizerNether.getRandom();
|
||||
|
||||
MachineRecipe r = new MachineRecipe(4 / getSpeed(), new ItemStack[0], new ItemStack[] {output});
|
||||
|
@ -58,7 +58,7 @@ public abstract class ElectricSmeltery extends AContainer {
|
||||
List<Integer> slots = new ArrayList<>();
|
||||
|
||||
for (int slot : getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), item, true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), item, true)) {
|
||||
slots.add(slot);
|
||||
}
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ public class FluidPump extends SlimefunItem implements InventoryBlock {
|
||||
if (output != null && ChargableBlock.getCharge(b) >= energyConsumption) {
|
||||
BlockMenu menu = BlockStorage.getInventory(b);
|
||||
for (int slot : getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), new ItemStack(Material.BUCKET), true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), new ItemStack(Material.BUCKET), true)) {
|
||||
if (!menu.fits(output, getOutputSlots())) return;
|
||||
|
||||
ChargableBlock.addCharge(b, -energyConsumption);
|
||||
|
@ -62,7 +62,7 @@ public abstract class HeatedPressureChamber extends AContainer {
|
||||
List<Integer> slots = new ArrayList<>();
|
||||
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), item, true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), item, true)) {
|
||||
slots.add(slot);
|
||||
}
|
||||
}
|
||||
@ -180,7 +180,7 @@ public abstract class HeatedPressureChamber extends AContainer {
|
||||
for (MachineRecipe recipe: recipes) {
|
||||
for (ItemStack input: recipe.getInput()) {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(menu.getItemInSlot(slot), input, true)) {
|
||||
if (SlimefunManager.isItemSimilar(menu.getItemInSlot(slot), input, true)) {
|
||||
found.put(slot, input.getAmount());
|
||||
break;
|
||||
}
|
||||
|
@ -71,7 +71,7 @@ public abstract class Refinery extends AContainer implements RecipeDisplayItem {
|
||||
}
|
||||
else {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.BUCKET_OF_OIL, true)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), SlimefunItems.BUCKET_OF_OIL, true)) {
|
||||
MachineRecipe r = new MachineRecipe(40, new ItemStack[0], new ItemStack[] {SlimefunItems.BUCKET_OF_FUEL});
|
||||
if (!fits(b, r.getOutput())) return;
|
||||
BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), 1));
|
||||
|
@ -98,7 +98,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
@Override
|
||||
public int[] getSlotsAccessedByItemTransport(BlockMenu menu, ItemTransportFlow flow, ItemStack item) {
|
||||
if (flow == ItemTransportFlow.INSERT) {
|
||||
if (SlimefunManager.isItemSimiliar(item, new ItemStack(Material.SOUL_SAND), true)) return getSoulSandSlots();
|
||||
if (SlimefunManager.isItemSimilar(item, new ItemStack(Material.SOUL_SAND), true)) return getSoulSandSlots();
|
||||
else return getWitherSkullSlots();
|
||||
}
|
||||
else return new int[0];
|
||||
@ -194,7 +194,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
int skulls = 0;
|
||||
|
||||
for (int slot : getSoulSandSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||
soulsand = soulsand + BlockStorage.getInventory(b).getItemInSlot(slot).getAmount();
|
||||
if (soulsand > 3) {
|
||||
soulsand = 4;
|
||||
@ -204,7 +204,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
}
|
||||
|
||||
for (int slot : getWitherSkullSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
||||
skulls = skulls + BlockStorage.getInventory(b).getItemInSlot(slot).getAmount();
|
||||
if (skulls > 2) {
|
||||
skulls = 3;
|
||||
@ -215,7 +215,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
|
||||
if (soulsand > 3 && skulls > 2) {
|
||||
for (int slot : getSoulSandSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.SOUL_SAND), true)) {
|
||||
final int amount = BlockStorage.getInventory(b).getItemInSlot(slot).getAmount();
|
||||
if (amount >= soulsand) {
|
||||
BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), soulsand));
|
||||
@ -229,7 +229,7 @@ public class WitherAssembler extends SlimefunItem {
|
||||
}
|
||||
|
||||
for (int slot : getWitherSkullSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
||||
if (SlimefunManager.isItemSimilar(BlockStorage.getInventory(b).getItemInSlot(slot), new ItemStack(Material.WITHER_SKELETON_SKULL), true)) {
|
||||
final int amount = BlockStorage.getInventory(b).getItemInSlot(slot).getAmount();
|
||||
if (amount >= skulls) {
|
||||
BlockStorage.getInventory(b).replaceExistingItem(slot, InvUtils.decreaseItem(BlockStorage.getInventory(b).getItemInSlot(slot), skulls));
|
||||
|
@ -101,7 +101,7 @@ public abstract class OilPump extends AContainer {
|
||||
|
||||
if (supplies > 0) {
|
||||
for (int slot: getInputSlots()) {
|
||||
if (SlimefunManager.isItemSimiliar(inv.getItemInSlot(slot), new ItemStack(Material.BUCKET), true)) {
|
||||
if (SlimefunManager.isItemSimilar(inv.getItemInSlot(slot), new ItemStack(Material.BUCKET), true)) {
|
||||
MachineRecipe r = new MachineRecipe(26, new ItemStack[0], new ItemStack[] {SlimefunItems.BUCKET_OF_OIL});
|
||||
|
||||
if (!inv.fits(SlimefunItems.BUCKET_OF_OIL, getOutputSlots())) {
|
||||
|
@ -44,7 +44,7 @@ public class ArmorForge extends MultiBlockMachine {
|
||||
for (int i = 0; i < inputs.size(); i++) {
|
||||
boolean craft = true;
|
||||
for (int j = 0; j < inv.getContents().length; j++) {
|
||||
if (!SlimefunManager.isItemSimiliar(inv.getContents()[j], inputs.get(i)[j], true)) {
|
||||
if (!SlimefunManager.isItemSimilar(inv.getContents()[j], inputs.get(i)[j], true)) {
|
||||
craft = false;
|
||||
break;
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ public class AutomatedPanningMachine extends MultiBlockMachine {
|
||||
public void onInteract(Player p, Block b) {
|
||||
final ItemStack input = p.getInventory().getItemInMainHand();
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(input, new ItemStack(Material.GRAVEL), true) || SlimefunManager.isItemSimiliar(input, new ItemStack(Material.SOUL_SAND), true)) {
|
||||
if (SlimefunManager.isItemSimilar(input, new ItemStack(Material.GRAVEL), true) || SlimefunManager.isItemSimilar(input, new ItemStack(Material.SOUL_SAND), true)) {
|
||||
final Material block = input.getType();
|
||||
|
||||
if (p.getGameMode() != GameMode.CREATIVE) {
|
||||
|
@ -48,7 +48,7 @@ public class Compressor extends MultiBlockMachine {
|
||||
Inventory inv = disp.getInventory();
|
||||
for (ItemStack current: inv.getContents()) {
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(this)) {
|
||||
if (convert != null && SlimefunManager.isItemSimiliar(current, convert, true)) {
|
||||
if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) {
|
||||
final ItemStack adding = RecipeType.getRecipeOutput(this, convert);
|
||||
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
||||
if (outputInv != null) {
|
||||
|
@ -55,9 +55,9 @@ public class EnhancedCraftingTable extends MultiBlockMachine {
|
||||
for (int i = 0; i < inputs.size(); i++) {
|
||||
boolean craft = true;
|
||||
for (int j = 0; j < inv.getContents().length; j++) {
|
||||
if (!SlimefunManager.isItemSimiliar(inv.getContents()[j], inputs.get(i)[j], true)) {
|
||||
if (!SlimefunManager.isItemSimilar(inv.getContents()[j], inputs.get(i)[j], true)) {
|
||||
if (SlimefunItem.getByItem(inputs.get(i)[j]) instanceof SlimefunBackpack) {
|
||||
if (!SlimefunManager.isItemSimiliar(inv.getContents()[j], inputs.get(i)[j], false)) {
|
||||
if (!SlimefunManager.isItemSimilar(inv.getContents()[j], inputs.get(i)[j], false)) {
|
||||
craft = false;
|
||||
break;
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ public class GrindStone extends MultiBlockMachine {
|
||||
|
||||
for (ItemStack current: inv.getContents()) {
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(this)) {
|
||||
if (convert != null && SlimefunManager.isItemSimiliar(current, convert, true)) {
|
||||
if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) {
|
||||
ItemStack output = RecipeType.getRecipeOutput(this, convert);
|
||||
Inventory outputInv = findOutputInventory(output, dispBlock, inv);
|
||||
|
||||
|
@ -45,7 +45,7 @@ public class Juicer extends MultiBlockMachine {
|
||||
Inventory inv = disp.getInventory();
|
||||
for (ItemStack current: inv.getContents()) {
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(this)) {
|
||||
if (convert != null && SlimefunManager.isItemSimiliar(current, convert, true)) {
|
||||
if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) {
|
||||
ItemStack adding = RecipeType.getRecipeOutput(this, convert);
|
||||
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
||||
|
||||
|
@ -58,9 +58,9 @@ public class MagicWorkbench extends MultiBlockMachine {
|
||||
for (int i = 0; i < inputs.size(); i++) {
|
||||
boolean craft = true;
|
||||
for (int j = 0; j < inv.getContents().length; j++) {
|
||||
if (!SlimefunManager.isItemSimiliar(inv.getContents()[j], inputs.get(i)[j], true)) {
|
||||
if (!SlimefunManager.isItemSimilar(inv.getContents()[j], inputs.get(i)[j], true)) {
|
||||
if (SlimefunItem.getByItem(inputs.get(i)[j]) instanceof SlimefunBackpack) {
|
||||
if (!SlimefunManager.isItemSimiliar(inv.getContents()[j], inputs.get(i)[j], false)) {
|
||||
if (!SlimefunManager.isItemSimilar(inv.getContents()[j], inputs.get(i)[j], false)) {
|
||||
craft = false;
|
||||
break;
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ public class OreCrusher extends MultiBlockMachine {
|
||||
Inventory inv = disp.getInventory();
|
||||
for (ItemStack current: inv.getContents()) {
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(this)) {
|
||||
if (convert != null && SlimefunManager.isItemSimiliar(current, convert, true)) {
|
||||
if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) {
|
||||
ItemStack adding = RecipeType.getRecipeOutput(this, convert);
|
||||
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
||||
if (outputInv != null) {
|
||||
|
@ -50,7 +50,7 @@ public class OreWasher extends MultiBlockMachine {
|
||||
|
||||
for (ItemStack current: inv.getContents()) {
|
||||
if (current != null) {
|
||||
if (SlimefunManager.isItemSimiliar(current, SlimefunItems.SIFTED_ORE, true)) {
|
||||
if (SlimefunManager.isItemSimilar(current, SlimefunItems.SIFTED_ORE, true)) {
|
||||
ItemStack adding = items[new Random().nextInt(items.length)];
|
||||
Inventory outputInv = null;
|
||||
|
||||
@ -77,7 +77,7 @@ public class OreWasher extends MultiBlockMachine {
|
||||
|
||||
return;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(current, new ItemStack(Material.SAND, 4), false)) {
|
||||
else if (SlimefunManager.isItemSimilar(current, new ItemStack(Material.SAND, 4), false)) {
|
||||
ItemStack adding = SlimefunItems.SALT;
|
||||
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
||||
|
||||
@ -93,7 +93,7 @@ public class OreWasher extends MultiBlockMachine {
|
||||
|
||||
return;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(current, SlimefunItems.PULVERIZED_ORE, true)) {
|
||||
else if (SlimefunManager.isItemSimilar(current, SlimefunItems.PULVERIZED_ORE, true)) {
|
||||
ItemStack adding = SlimefunItems.PURE_ORE_CLUSTER;
|
||||
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
||||
|
||||
|
@ -55,7 +55,7 @@ public class PressureChamber extends MultiBlockMachine {
|
||||
|
||||
for (ItemStack current: inv.getContents()) {
|
||||
for (ItemStack convert: RecipeType.getRecipeInputs(this)) {
|
||||
if (convert != null && SlimefunManager.isItemSimiliar(current, convert, true)) {
|
||||
if (convert != null && SlimefunManager.isItemSimilar(current, convert, true)) {
|
||||
final ItemStack adding = RecipeType.getRecipeOutput(this, convert);
|
||||
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
|
||||
if (outputInv != null) {
|
||||
|
@ -73,11 +73,11 @@ public class Smeltery extends MultiBlockMachine {
|
||||
for (ItemStack converting: inputs.get(i)) {
|
||||
if (converting != null) {
|
||||
for (int j = 0; j < inv.getContents().length; j++) {
|
||||
if (j == (inv.getContents().length - 1) && !SlimefunManager.isItemSimiliar(converting, inv.getContents()[j], true)) {
|
||||
if (j == (inv.getContents().length - 1) && !SlimefunManager.isItemSimilar(converting, inv.getContents()[j], true)) {
|
||||
craft = false;
|
||||
break;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(inv.getContents()[j], converting, true)) break;
|
||||
else if (SlimefunManager.isItemSimilar(inv.getContents()[j], converting, true)) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -89,7 +89,7 @@ public class Smeltery extends MultiBlockMachine {
|
||||
if (outputInv != null) {
|
||||
for (ItemStack removing: inputs.get(i)) {
|
||||
if (removing != null) {
|
||||
InvUtils.removeItem(inv, removing.getAmount(), true, stack -> SlimefunManager.isItemSimiliar(stack, removing, true));
|
||||
InvUtils.removeItem(inv, removing.getAmount(), true, stack -> SlimefunManager.isItemSimilar(stack, removing, true));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -71,7 +71,7 @@ public class ArmorTask implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(p.getInventory().getHelmet(), SlimefunItems.SOLAR_HELMET, true)
|
||||
if (SlimefunManager.isItemSimilar(p.getInventory().getHelmet(), SlimefunItems.SOLAR_HELMET, true)
|
||||
&& Slimefun.hasUnlocked(p, SlimefunItem.getByID("SOLAR_HELMET"), true)
|
||||
&& (p.getWorld().getTime() < 12300 || p.getWorld().getTime() > 23850)
|
||||
&& p.getEyeLocation().getBlock().getLightFromSky() == 15)
|
||||
@ -83,10 +83,10 @@ public class ArmorTask implements Runnable {
|
||||
if (SlimefunManager.containsSimilarItem(p.getInventory(), radioactive, true)) {
|
||||
// Check if player is wearing the hazmat suit
|
||||
// If so, break the loop
|
||||
if (SlimefunManager.isItemSimiliar(SlimefunItems.SCUBA_HELMET, p.getInventory().getHelmet(), true) &&
|
||||
SlimefunManager.isItemSimiliar(SlimefunItems.HAZMATSUIT_CHESTPLATE, p.getInventory().getChestplate(), true) &&
|
||||
SlimefunManager.isItemSimiliar(SlimefunItems.HAZMATSUIT_LEGGINGS, p.getInventory().getLeggings(), true) &&
|
||||
SlimefunManager.isItemSimiliar(SlimefunItems.RUBBER_BOOTS, p.getInventory().getBoots(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(SlimefunItems.SCUBA_HELMET, p.getInventory().getHelmet(), true) &&
|
||||
SlimefunManager.isItemSimilar(SlimefunItems.HAZMATSUIT_CHESTPLATE, p.getInventory().getChestplate(), true) &&
|
||||
SlimefunManager.isItemSimilar(SlimefunItems.HAZMATSUIT_LEGGINGS, p.getInventory().getLeggings(), true) &&
|
||||
SlimefunManager.isItemSimilar(SlimefunItems.RUBBER_BOOTS, p.getInventory().getBoots(), true)) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -177,15 +177,15 @@ public final class MiscSetup {
|
||||
for (ItemStack i: input) {
|
||||
if (i != null) {
|
||||
inputs.add(i);
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.ALUMINUM_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.COPPER_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.GOLD_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.IRON_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.LEAD_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.MAGNESIUM_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.SILVER_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.TIN_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimiliar(i, SlimefunItems.ZINC_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.ALUMINUM_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.COPPER_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.GOLD_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.IRON_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.LEAD_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.MAGNESIUM_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.SILVER_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.TIN_DUST, true)) dust = true;
|
||||
if (SlimefunManager.isItemSimilar(i, SlimefunItems.ZINC_DUST, true)) dust = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package me.mrCookieSlime.Slimefun.Setup;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
@ -10,6 +11,7 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.ImmutableItemMeta;
|
||||
import me.mrCookieSlime.EmeraldEnchants.EmeraldEnchants;
|
||||
import me.mrCookieSlime.EmeraldEnchants.ItemEnchantment;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
@ -21,6 +23,7 @@ import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunArmorPiece;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.SlimefunItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.VanillaItem;
|
||||
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.interfaces.Soulbound;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
|
||||
public final class SlimefunManager {
|
||||
|
||||
@ -73,30 +76,78 @@ public final class SlimefunManager {
|
||||
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static boolean isItemSimiliar(ItemStack item, ItemStack sfitem, boolean lore) {
|
||||
return isItemSimilar(item, sfitem, lore);
|
||||
}
|
||||
|
||||
public static boolean isItemSimilar(ItemStack item, ItemStack sfitem, boolean checkLore) {
|
||||
if (item == null) return sfitem == null;
|
||||
if (sfitem == null) return false;
|
||||
|
||||
if (item.getType() == sfitem.getType() && item.getAmount() >= sfitem.getAmount()) {
|
||||
if (item.hasItemMeta() && sfitem.hasItemMeta()) {
|
||||
if (item.getItemMeta().hasDisplayName() && sfitem.getItemMeta().hasDisplayName()) {
|
||||
if (item.getItemMeta().getDisplayName().equals(sfitem.getItemMeta().getDisplayName())) {
|
||||
if (lore) {
|
||||
if (item.getItemMeta().hasLore() && sfitem.getItemMeta().hasLore()) {
|
||||
return equalsLore(item.getItemMeta().getLore(), sfitem.getItemMeta().getLore());
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
ItemMeta sfitemMeta = sfitem.getItemMeta();
|
||||
|
||||
if (sfitem instanceof SlimefunItemStack) {
|
||||
System.out.println(sfitem.clone().getClass().getName());
|
||||
|
||||
Optional<String> id = SlimefunPlugin.getItemDataService().getItemData(itemMeta);
|
||||
|
||||
if (id.isPresent()) {
|
||||
return id.equals(((SlimefunItemStack) sfitem).getItemID());
|
||||
}
|
||||
else return !item.getItemMeta().hasLore() && !sfitem.getItemMeta().hasLore();
|
||||
|
||||
ImmutableItemMeta meta = ((SlimefunItemStack) sfitem).getImmutableMeta();
|
||||
|
||||
Optional<String> displayName = meta.getDisplayName();
|
||||
|
||||
if (itemMeta.hasDisplayName() && displayName.isPresent()) {
|
||||
if (itemMeta.getDisplayName().equals(displayName.get())) {
|
||||
Optional<List<String>> itemLore = meta.getLore();
|
||||
|
||||
if (checkLore) {
|
||||
if (itemMeta.hasLore() && itemLore.isPresent()) {
|
||||
return equalsLore(itemMeta.getLore(), itemLore.get());
|
||||
}
|
||||
else return !itemMeta.hasLore() && !itemLore.isPresent();
|
||||
}
|
||||
else return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
else if (!item.getItemMeta().hasDisplayName() && !sfitem.getItemMeta().hasDisplayName()) {
|
||||
if (lore) {
|
||||
if (item.getItemMeta().hasLore() && sfitem.getItemMeta().hasLore()) {
|
||||
return equalsLore(item.getItemMeta().getLore(), sfitem.getItemMeta().getLore());
|
||||
else if (!itemMeta.hasDisplayName() && !displayName.isPresent()) {
|
||||
Optional<List<String>> itemLore = meta.getLore();
|
||||
|
||||
if (checkLore) {
|
||||
if (itemMeta.hasLore() && itemLore.isPresent()) {
|
||||
return equalsLore(itemMeta.getLore(), itemLore.get());
|
||||
}
|
||||
else return !item.getItemMeta().hasLore() && !sfitem.getItemMeta().hasLore();
|
||||
else return !itemMeta.hasLore() && !itemLore.isPresent();
|
||||
}
|
||||
else return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
else if (itemMeta.hasDisplayName() && sfitemMeta.hasDisplayName()) {
|
||||
if (itemMeta.getDisplayName().equals(sfitemMeta.getDisplayName())) {
|
||||
if (checkLore) {
|
||||
if (itemMeta.hasLore() && sfitemMeta.hasLore()) {
|
||||
return equalsLore(itemMeta.getLore(), sfitemMeta.getLore());
|
||||
}
|
||||
else return !itemMeta.hasLore() && !sfitemMeta.hasLore();
|
||||
}
|
||||
else return true;
|
||||
}
|
||||
else return false;
|
||||
}
|
||||
else if (!itemMeta.hasDisplayName() && !sfitemMeta.hasDisplayName()) {
|
||||
if (checkLore) {
|
||||
if (itemMeta.hasLore() && sfitemMeta.hasLore()) {
|
||||
return equalsLore(itemMeta.getLore(), sfitemMeta.getLore());
|
||||
}
|
||||
else return !itemMeta.hasLore() && !sfitemMeta.hasLore();
|
||||
}
|
||||
else return true;
|
||||
}
|
||||
@ -128,13 +179,15 @@ public final class SlimefunManager {
|
||||
StringBuilder string2 = new StringBuilder();
|
||||
|
||||
String colors = ChatColor.YELLOW.toString() + ChatColor.YELLOW.toString() + ChatColor.GRAY.toString();
|
||||
for (String string: lore) {
|
||||
|
||||
for (String string : lore) {
|
||||
if (!string.equals(ChatColor.GRAY + "Soulbound") && !string.startsWith(colors)) string1.append("-NEW LINE-").append(string);
|
||||
}
|
||||
|
||||
for (String string: lore2) {
|
||||
for (String string : lore2) {
|
||||
if (!string.equals(ChatColor.GRAY + "Soulbound") && !string.startsWith(colors)) string2.append("-NEW LINE-").append(string);
|
||||
}
|
||||
|
||||
return string1.toString().equals(string2.toString());
|
||||
}
|
||||
|
||||
|
@ -611,7 +611,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.STAFF_WATER, true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.STAFF_WATER, true)) {
|
||||
p.setFireTicks(0);
|
||||
SlimefunPlugin.getLocal().sendMessage(p, "messages.fire-extinguish", true);
|
||||
return true;
|
||||
@ -896,7 +896,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.RAG, true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.RAG, true)) {
|
||||
if (p.getGameMode() != GameMode.CREATIVE) ItemUtils.consumeItem(item, false);
|
||||
p.getWorld().playEffect(p.getLocation(), Effect.STEP_SOUND, Material.WHITE_WOOL);
|
||||
p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 0));
|
||||
@ -914,7 +914,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BANDAGE, true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.BANDAGE, true)) {
|
||||
if (p.getGameMode() != GameMode.CREATIVE) ItemUtils.consumeItem(item, false);
|
||||
p.getWorld().playEffect(p.getLocation(), Effect.STEP_SOUND, Material.WHITE_WOOL);
|
||||
p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 1));
|
||||
@ -932,7 +932,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.SPLINT, true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.SPLINT, true)) {
|
||||
if (p.getGameMode() != GameMode.CREATIVE) ItemUtils.consumeItem(item, false);
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_SKELETON_HURT, 1, 1);
|
||||
p.addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 0));
|
||||
@ -952,7 +952,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.VITAMINS, true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.VITAMINS, true)) {
|
||||
if (p.getGameMode() != GameMode.CREATIVE) ItemUtils.consumeItem(item, false);
|
||||
p.getWorld().playSound(p.getLocation(), Sound.ENTITY_GENERIC_EAT, 1, 1);
|
||||
if (p.hasPotionEffect(PotionEffectType.POISON)) p.removePotionEffect(PotionEffectType.POISON);
|
||||
@ -977,7 +977,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onConsume(PlayerItemConsumeEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.MEDICINE, true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.MEDICINE, true)) {
|
||||
if (p.hasPotionEffect(PotionEffectType.POISON)) p.removePotionEffect(PotionEffectType.POISON);
|
||||
if (p.hasPotionEffect(PotionEffectType.WITHER)) p.removePotionEffect(PotionEffectType.WITHER);
|
||||
if (p.hasPotionEffect(PotionEffectType.SLOW)) p.removePotionEffect(PotionEffectType.SLOW);
|
||||
@ -1364,7 +1364,7 @@ public final class SlimefunSetup {
|
||||
new SlimefunItem(Categories.MAGIC, (SlimefunItemStack) SlimefunItems.REPAIRED_SPAWNER, RecipeType.ANCIENT_ALTAR,
|
||||
new ItemStack[] {SlimefunItems.RUNE_ENDER, new CustomItem(Material.EXPERIENCE_BOTTLE, "&aFlask of Knowledge"), SlimefunItems.ESSENCE_OF_AFTERLIFE, new CustomItem(Material.EXPERIENCE_BOTTLE, "&aFlask of Knowledge"), SlimefunItems.BROKEN_SPAWNER, new CustomItem(Material.EXPERIENCE_BOTTLE, "&aFlask of Knowledge"), SlimefunItems.ESSENCE_OF_AFTERLIFE, new CustomItem(Material.EXPERIENCE_BOTTLE, "&aFlask of Knowledge"), SlimefunItems.RUNE_ENDER})
|
||||
.register(true, (BlockPlaceHandler) (e, item) -> {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.REPAIRED_SPAWNER, false)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.REPAIRED_SPAWNER, false)) {
|
||||
EntityType type = null;
|
||||
|
||||
for (String line: item.getItemMeta().getLore()) {
|
||||
@ -1469,7 +1469,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onHit(EntityDamageByEntityEvent e, LivingEntity n) {
|
||||
if (SlimefunManager.isItemSimiliar(SlimefunPlugin.getUtilities().arrows.get(e.getDamager().getUniqueId()), SlimefunItems.EXPLOSIVE_BOW, true)) {
|
||||
if (SlimefunManager.isItemSimilar(SlimefunPlugin.getUtilities().arrows.get(e.getDamager().getUniqueId()), SlimefunItems.EXPLOSIVE_BOW, true)) {
|
||||
Vector vector = n.getVelocity();
|
||||
vector.setY(0.6);
|
||||
n.setVelocity(vector);
|
||||
@ -1487,7 +1487,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onHit(EntityDamageByEntityEvent e, LivingEntity n) {
|
||||
if (SlimefunManager.isItemSimiliar(SlimefunPlugin.getUtilities().arrows.get(e.getDamager().getUniqueId()), SlimefunItems.ICY_BOW, true)) {
|
||||
if (SlimefunManager.isItemSimilar(SlimefunPlugin.getUtilities().arrows.get(e.getDamager().getUniqueId()), SlimefunItems.ICY_BOW, true)) {
|
||||
n.getWorld().playEffect(n.getLocation(), Effect.STEP_SOUND, Material.ICE);
|
||||
n.getWorld().playEffect(n.getEyeLocation(), Effect.STEP_SOUND, Material.ICE);
|
||||
n.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 20 * 2, 10));
|
||||
@ -1576,7 +1576,7 @@ public final class SlimefunSetup {
|
||||
|
||||
@Override
|
||||
public boolean onRightClick(ItemUseEvent e, Player p, ItemStack item) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.EASTER_EGG, true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.EASTER_EGG, true)) {
|
||||
e.setCancelled(true);
|
||||
if (p.getGameMode() != GameMode.CREATIVE) ItemUtils.consumeItem(item, false);
|
||||
FireworkShow.launchRandom(e.getPlayer(), 2);
|
||||
|
@ -88,13 +88,13 @@ public final class SlimefunGuide {
|
||||
}
|
||||
|
||||
public static void openGuide(Player p, ItemStack guide) {
|
||||
if (SlimefunManager.isItemSimiliar(guide, getItem(SlimefunGuideLayout.CHEST), true)) {
|
||||
if (SlimefunManager.isItemSimilar(guide, getItem(SlimefunGuideLayout.CHEST), true)) {
|
||||
openGuide(p, SlimefunGuideLayout.CHEST);
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(guide, getItem(SlimefunGuideLayout.BOOK), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(guide, getItem(SlimefunGuideLayout.BOOK), true)) {
|
||||
openGuide(p, SlimefunGuideLayout.BOOK);
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(guide, getItem(SlimefunGuideLayout.CHEAT_SHEET), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(guide, getItem(SlimefunGuideLayout.CHEAT_SHEET), true)) {
|
||||
openGuide(p, SlimefunGuideLayout.CHEAT_SHEET);
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,10 @@ import io.github.thebusybiscuit.cscorelib2.reflection.ReflectionUtils;
|
||||
import io.github.thebusybiscuit.cscorelib2.updater.BukkitUpdater;
|
||||
import io.github.thebusybiscuit.cscorelib2.updater.GitHubBuildsUpdater;
|
||||
import io.github.thebusybiscuit.cscorelib2.updater.Updater;
|
||||
import io.github.thebusybiscuit.slimefun4.core.services.BlockDataService;
|
||||
import io.github.thebusybiscuit.slimefun4.core.services.CustomItemDataService;
|
||||
import io.github.thebusybiscuit.slimefun4.core.services.CustomTextureService;
|
||||
import io.github.thebusybiscuit.slimefun4.core.services.MetricsService;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.CSCoreLib;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.PluginUtils;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.Configuration.Config;
|
||||
@ -74,10 +78,6 @@ import me.mrCookieSlime.Slimefun.listeners.TalismanListener;
|
||||
import me.mrCookieSlime.Slimefun.listeners.TeleporterListener;
|
||||
import me.mrCookieSlime.Slimefun.listeners.ToolListener;
|
||||
import me.mrCookieSlime.Slimefun.listeners.WorldListener;
|
||||
import me.mrCookieSlime.Slimefun.services.BlockDataService;
|
||||
import me.mrCookieSlime.Slimefun.services.CustomItemDataService;
|
||||
import me.mrCookieSlime.Slimefun.services.CustomTextureService;
|
||||
import me.mrCookieSlime.Slimefun.services.MetricsService;
|
||||
import me.mrCookieSlime.Slimefun.utils.Settings;
|
||||
import me.mrCookieSlime.Slimefun.utils.Utilities;
|
||||
|
||||
|
@ -52,7 +52,7 @@ public final class Pedestals {
|
||||
public static ItemStack getRecipeOutput(ItemStack catalyst, List<ItemStack> input) {
|
||||
if (input.size() != 8) return null;
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(catalyst, SlimefunItems.BROKEN_SPAWNER, false)) {
|
||||
if (SlimefunManager.isItemSimilar(catalyst, SlimefunItems.BROKEN_SPAWNER, false)) {
|
||||
if (checkRecipe(SlimefunItems.BROKEN_SPAWNER, input) == null) return null;
|
||||
final ItemStack spawner = SlimefunItems.REPAIRED_SPAWNER.clone();
|
||||
ItemMeta im = spawner.getItemMeta();
|
||||
@ -66,11 +66,11 @@ public final class Pedestals {
|
||||
|
||||
private static ItemStack checkRecipe(ItemStack catalyst, List<ItemStack> items) {
|
||||
for (AltarRecipe recipe: SlimefunPlugin.getUtilities().altarRecipes) {
|
||||
if (SlimefunManager.isItemSimiliar(catalyst, recipe.getCatalyst(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(catalyst, recipe.getCatalyst(), true)) {
|
||||
for (int i = 0; i < 8; i++) {
|
||||
if (SlimefunManager.isItemSimiliar(items.get(i), recipe.getInput().get(0), true)) {
|
||||
if (SlimefunManager.isItemSimilar(items.get(i), recipe.getInput().get(0), true)) {
|
||||
for (int j = 1; j < 8; j++) {
|
||||
if (!SlimefunManager.isItemSimiliar(items.get((i + j) % items.size()), recipe.getInput().get(j), true)) {
|
||||
if (!SlimefunManager.isItemSimilar(items.get((i + j) % items.size()), recipe.getInput().get(j), true)) {
|
||||
break;
|
||||
}
|
||||
else if (j == 7) {
|
||||
|
@ -254,7 +254,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem implements Invent
|
||||
|
||||
if (item != null) {
|
||||
for (MachineFuel recipe: recipes) {
|
||||
if (SlimefunManager.isItemSimiliar(item, recipe.getInput(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, recipe.getInput(), true)) {
|
||||
menu.replaceExistingItem(43, InvUtils.decreaseItem(item, 1));
|
||||
|
||||
if (getTier() == 2) {
|
||||
@ -371,7 +371,7 @@ public abstract class ProgrammableAndroid extends SlimefunItem implements Invent
|
||||
d.getInventory().setItem(slot, null);
|
||||
break;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, menu.getItemInSlot(43), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, menu.getItemInSlot(43), true)) {
|
||||
int rest = item.getType().getMaxStackSize() - menu.getItemInSlot(43).getAmount();
|
||||
|
||||
if (rest > 0) {
|
||||
|
@ -9,12 +9,14 @@ import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import io.github.thebusybiscuit.cscorelib2.item.ImmutableItemMeta;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
|
||||
public class SlimefunItemStack extends CustomItem {
|
||||
|
||||
private String id;
|
||||
private ImmutableItemMeta immutableMeta;
|
||||
|
||||
public SlimefunItemStack(String id, Material type, String name, String... lore) {
|
||||
super(type, name, lore);
|
||||
@ -77,4 +79,15 @@ public class SlimefunItemStack extends CustomItem {
|
||||
return id;
|
||||
}
|
||||
|
||||
public ImmutableItemMeta getImmutableMeta() {
|
||||
return immutableMeta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setItemMeta(ItemMeta meta) {
|
||||
immutableMeta = new ImmutableItemMeta(meta);
|
||||
|
||||
return super.setItemMeta(meta);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public final class CargoManager {
|
||||
UniversalBlockMenu menu = storage.getUniversalInventory(target);
|
||||
for (int slot: menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) {
|
||||
final ItemStack is = menu.getItemInSlot(slot);
|
||||
if (SlimefunManager.isItemSimiliar(is, template, true) && matchesFilter(node, is, -1)) {
|
||||
if (SlimefunManager.isItemSimilar(is, template, true) && matchesFilter(node, is, -1)) {
|
||||
if (is.getAmount() > template.getAmount()) {
|
||||
menu.replaceExistingItem(slot, new CustomItem(is, is.getAmount() - template.getAmount()));
|
||||
return template;
|
||||
@ -40,7 +40,7 @@ public final class CargoManager {
|
||||
BlockMenu menu = BlockStorage.getInventory(target.getLocation());
|
||||
for (int slot: menu.getPreset().getSlotsAccessedByItemTransport(menu, ItemTransportFlow.WITHDRAW, null)) {
|
||||
final ItemStack is = menu.getItemInSlot(slot);
|
||||
if (SlimefunManager.isItemSimiliar(is, template, true) && matchesFilter(node, is, -1)) {
|
||||
if (SlimefunManager.isItemSimilar(is, template, true) && matchesFilter(node, is, -1)) {
|
||||
if (is.getAmount() > template.getAmount()) {
|
||||
menu.replaceExistingItem(slot, new CustomItem(is, is.getAmount() - template.getAmount()));
|
||||
return template;
|
||||
@ -56,7 +56,7 @@ public final class CargoManager {
|
||||
Inventory inv = ((InventoryHolder) target.getState()).getInventory();
|
||||
for (int slot = 0; slot < inv.getContents().length; slot++) {
|
||||
final ItemStack is = inv.getContents()[slot];
|
||||
if (SlimefunManager.isItemSimiliar(is, template, true) && matchesFilter(node, is, -1)) {
|
||||
if (SlimefunManager.isItemSimilar(is, template, true) && matchesFilter(node, is, -1)) {
|
||||
if (is.getAmount() > template.getAmount()) {
|
||||
inv.setItem(slot, ChestManipulator.trigger(target, slot, is, new CustomItem(is, is.getAmount() - template.getAmount())));
|
||||
return template;
|
||||
@ -115,7 +115,7 @@ public final class CargoManager {
|
||||
menu.replaceExistingItem(slot, stack.clone());
|
||||
return null;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(new CustomItem(is, 1), new CustomItem(stack, 1), true) && is.getAmount() < is.getType().getMaxStackSize()) {
|
||||
else if (SlimefunManager.isItemSimilar(new CustomItem(is, 1), new CustomItem(stack, 1), true) && is.getAmount() < is.getType().getMaxStackSize()) {
|
||||
int amount = is.getAmount() + stack.getAmount();
|
||||
|
||||
if (amount > is.getType().getMaxStackSize()) {
|
||||
@ -140,7 +140,7 @@ public final class CargoManager {
|
||||
menu.replaceExistingItem(slot, stack.clone());
|
||||
return null;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(new CustomItem(is, 1), new CustomItem(stack, 1), true) && is.getAmount() < is.getType().getMaxStackSize()) {
|
||||
else if (SlimefunManager.isItemSimilar(new CustomItem(is, 1), new CustomItem(stack, 1), true) && is.getAmount() < is.getType().getMaxStackSize()) {
|
||||
int amount = is.getAmount() + stack.getAmount();
|
||||
|
||||
if (amount > is.getType().getMaxStackSize()) {
|
||||
@ -166,7 +166,7 @@ public final class CargoManager {
|
||||
inv.setItem(slot, ChestManipulator.trigger(target, slot, null, stack.clone()));
|
||||
return null;
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(new CustomItem(is, 1), new CustomItem(stack, 1), true) && is.getAmount() < is.getType().getMaxStackSize()) {
|
||||
else if (SlimefunManager.isItemSimilar(new CustomItem(is, 1), new CustomItem(stack, 1), true) && is.getAmount() < is.getType().getMaxStackSize()) {
|
||||
ItemStack prev = is.clone();
|
||||
int amount = is.getAmount() + stack.getAmount();
|
||||
|
||||
@ -220,18 +220,18 @@ public final class CargoManager {
|
||||
|
||||
BlockStorage.addBlockInfo(block, "index", String.valueOf(index));
|
||||
|
||||
return SlimefunManager.isItemSimiliar(item, items.get(index), lore);
|
||||
return SlimefunManager.isItemSimilar(item, items.get(index), lore);
|
||||
}
|
||||
else {
|
||||
for (ItemStack stack: items) {
|
||||
if (SlimefunManager.isItemSimiliar(item, stack, lore)) return true;
|
||||
if (SlimefunManager.isItemSimilar(item, stack, lore)) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
for (int slot: slots) {
|
||||
if (menu.getItemInSlot(slot) != null && SlimefunManager.isItemSimiliar(item, new CustomItem(menu.getItemInSlot(slot), 1), lore)) {
|
||||
if (menu.getItemInSlot(slot) != null && SlimefunManager.isItemSimilar(item, new CustomItem(menu.getItemInSlot(slot), 1), lore)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -286,7 +286,7 @@ public class CargoNet extends Network {
|
||||
int slot = request.getSlot();
|
||||
ItemStack prevStack = menu.getItemInSlot(slot);
|
||||
|
||||
if (!(prevStack == null || (prevStack.getAmount() + request.getItem().getAmount() <= prevStack.getMaxStackSize() && SlimefunManager.isItemSimiliar(prevStack, new CustomItem(request.getItem(), 1), true)))) {
|
||||
if (!(prevStack == null || (prevStack.getAmount() + request.getItem().getAmount() <= prevStack.getMaxStackSize() && SlimefunManager.isItemSimilar(prevStack, new CustomItem(request.getItem(), 1), true)))) {
|
||||
iterator.remove();
|
||||
break;
|
||||
}
|
||||
@ -419,7 +419,7 @@ public class CargoNet extends Network {
|
||||
if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) {
|
||||
boolean add = true;
|
||||
for (StoredItem item: items) {
|
||||
if (SlimefunManager.isItemSimiliar(is, item.getItem(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(is, item.getItem(), true)) {
|
||||
add = false;
|
||||
item.add(is.getAmount() + stored);
|
||||
}
|
||||
@ -521,7 +521,7 @@ public class CargoNet extends Network {
|
||||
if (is != null && CargoManager.matchesFilter(l.getBlock(), is, -1)) {
|
||||
boolean add = true;
|
||||
for (StoredItem item: items) {
|
||||
if (SlimefunManager.isItemSimiliar(is, item.getItem(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(is, item.getItem(), true)) {
|
||||
add = false;
|
||||
item.add(is.getAmount());
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ public final class GuideSettings {
|
||||
menu.addMenuClickHandler(i, (pl, slot, item, action) -> false);
|
||||
}
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(guide, getItem(SlimefunGuideLayout.CHEST), true)) {
|
||||
if (SlimefunManager.isItemSimilar(guide, getItem(SlimefunGuideLayout.CHEST), true)) {
|
||||
if (p.hasPermission("slimefun.cheat.items")) {
|
||||
menu.addItem(19, new CustomItem(new ItemStack(Material.CHEST), "&7Guide Layout: &eChest GUI", "", "&aChest GUI", "&7Book GUI", "&7Cheat Sheet", "", "&e Click &8\u21E8 &7Change Layout"));
|
||||
menu.addMenuClickHandler(19, (pl, slot, item, action) -> {
|
||||
@ -68,7 +68,7 @@ public final class GuideSettings {
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(guide, getItem(SlimefunGuideLayout.BOOK), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(guide, getItem(SlimefunGuideLayout.BOOK), true)) {
|
||||
if (p.hasPermission("slimefun.cheat.items")) {
|
||||
menu.addItem(19, new CustomItem(new ItemStack(Material.BOOK), "&7Guide Layout: &eBook GUI", "", "&7Chest GUI", "&aBook GUI", "&7Cheat Sheet", "", "&e Click &8\u21E8 &7Change Layout"));
|
||||
menu.addMenuClickHandler(19, (pl, slot, item, action) -> {
|
||||
@ -86,7 +86,7 @@ public final class GuideSettings {
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(guide, getItem(SlimefunGuideLayout.CHEAT_SHEET), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(guide, getItem(SlimefunGuideLayout.CHEAT_SHEET), true)) {
|
||||
menu.addItem(19, new CustomItem(new ItemStack(Material.COMMAND_BLOCK), "&7Guide Layout: &eCheat Sheet", "", "&7Chest GUI", "&7Book GUI", "&aCheat Sheet", "", "&e Click &8\u21E8 &7Change Layout"));
|
||||
menu.addMenuClickHandler(19, (pl, slot, item, action) -> {
|
||||
pl.getInventory().setItemInMainHand(getItem(SlimefunGuideLayout.CHEST));
|
||||
|
@ -94,7 +94,7 @@ public class ArmorListener implements Listener {
|
||||
if (e.getAction() == Action.PHYSICAL
|
||||
&& e.getClickedBlock() != null
|
||||
&& e.getClickedBlock().getType() == Material.FARMLAND
|
||||
&& SlimefunManager.isItemSimiliar(e.getPlayer().getInventory().getBoots(),
|
||||
&& SlimefunManager.isItemSimilar(e.getPlayer().getInventory().getBoots(),
|
||||
SlimefunItems.FARMER_SHOES, true)
|
||||
)
|
||||
e.setCancelled(true);
|
||||
|
@ -67,7 +67,7 @@ public class BackpackListener implements Listener {
|
||||
}
|
||||
else if (e.getCurrentItem() != null && e.getCurrentItem().getType() != Material.AIR) {
|
||||
SlimefunItem sfItem = SlimefunItem.getByItem(e.getCurrentItem());
|
||||
if ((SlimefunManager.isItemSimiliar(item, SlimefunItems.COOLER, false) && !(sfItem instanceof Juice)) ||
|
||||
if ((SlimefunManager.isItemSimilar(item, SlimefunItems.COOLER, false) && !(sfItem instanceof Juice)) ||
|
||||
e.getCurrentItem().getType().toString().contains("SHULKER_BOX") ||
|
||||
sfItem instanceof SlimefunBackpack)
|
||||
|
||||
|
@ -28,7 +28,7 @@ public class CoolerListener implements Listener {
|
||||
if (e.getFoodLevel() < ((Player) e.getEntity()).getFoodLevel()) {
|
||||
Player p = (Player) e.getEntity();
|
||||
for (ItemStack item: p.getInventory().getContents()) {
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.COOLER, false)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.COOLER, false)) {
|
||||
BackpackInventory backpack = PlayerProfile.getBackpack(item);
|
||||
if (backpack != null) {
|
||||
Inventory inv = backpack.getInventory();
|
||||
|
@ -89,14 +89,14 @@ public class ItemListener implements Listener {
|
||||
e.setCancelled(true);
|
||||
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(slot0, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true))
|
||||
if (SlimefunManager.isItemSimilar(slot0, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true))
|
||||
e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(slot0, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true))
|
||||
else if (SlimefunManager.isItemSimilar(slot0, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true))
|
||||
e.setCancelled(true);
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(slot1, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true))
|
||||
if (SlimefunManager.isItemSimilar(slot1, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true))
|
||||
e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(slot1, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true))
|
||||
else if (SlimefunManager.isItemSimilar(slot1, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true))
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
@ -122,7 +122,7 @@ public class ItemListener implements Listener {
|
||||
|
||||
Player p = e.getPlayer();
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(e.getItem(), SlimefunItems.DEBUG_FISH, true)) {
|
||||
if (SlimefunManager.isItemSimilar(e.getItem(), SlimefunItems.DEBUG_FISH, true)) {
|
||||
e.setCancelled(true);
|
||||
if (p.isOp()) {
|
||||
switch (e.getAction()) {
|
||||
@ -211,19 +211,19 @@ public class ItemListener implements Listener {
|
||||
final Player p = e.getPlayer();
|
||||
ItemStack item = e.getItem();
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true)) {
|
||||
if (p.isSneaking()) GuideSettings.openSettings(p, item);
|
||||
else SlimefunGuide.openGuide(p, SlimefunGuideLayout.BOOK);
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true)) {
|
||||
if (p.isSneaking()) GuideSettings.openSettings(p, item);
|
||||
else SlimefunGuide.openGuide(p, SlimefunGuideLayout.CHEST);
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunGuide.getItem(SlimefunGuideLayout.CHEAT_SHEET), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunGuide.getItem(SlimefunGuideLayout.CHEAT_SHEET), true)) {
|
||||
if (p.isSneaking()) GuideSettings.openSettings(p, item);
|
||||
else p.chat("/sf cheat");
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.DEBUG_FISH, true)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.DEBUG_FISH, true)) {
|
||||
// Ignore the debug fish in here
|
||||
}
|
||||
else {
|
||||
@ -265,7 +265,7 @@ public class ItemListener implements Listener {
|
||||
utilities.mode.put(p.getUniqueId(), index);
|
||||
}
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.HEAVY_CREAM, true)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.HEAVY_CREAM, true)) e.setCancelled(true);
|
||||
}
|
||||
else {
|
||||
e.setCancelled(true);
|
||||
@ -308,11 +308,11 @@ public class ItemListener implements Listener {
|
||||
}
|
||||
|
||||
private boolean canPlaceCargoNodes(Player p, ItemStack item, Block b) {
|
||||
if (canPlaceBlock(p, b) && SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_INPUT, true)) return true;
|
||||
else if (canPlaceBlock(p, b) && SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_OUTPUT, true)) return true;
|
||||
else if (canPlaceBlock(p, b) && SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_OUTPUT_ADVANCED, true)) return true;
|
||||
else if (canPlaceBlock(p, b) && SlimefunManager.isItemSimiliar(item, SlimefunItems.CT_IMPORT_BUS, true)) return true;
|
||||
else if (canPlaceBlock(p, b) && SlimefunManager.isItemSimiliar(item, SlimefunItems.CT_EXPORT_BUS, true)) return true;
|
||||
if (canPlaceBlock(p, b) && SlimefunManager.isItemSimilar(item, SlimefunItems.CARGO_INPUT, true)) return true;
|
||||
else if (canPlaceBlock(p, b) && SlimefunManager.isItemSimilar(item, SlimefunItems.CARGO_OUTPUT, true)) return true;
|
||||
else if (canPlaceBlock(p, b) && SlimefunManager.isItemSimilar(item, SlimefunItems.CARGO_OUTPUT_ADVANCED, true)) return true;
|
||||
else if (canPlaceBlock(p, b) && SlimefunManager.isItemSimilar(item, SlimefunItems.CT_IMPORT_BUS, true)) return true;
|
||||
else if (canPlaceBlock(p, b) && SlimefunManager.isItemSimilar(item, SlimefunItems.CT_EXPORT_BUS, true)) return true;
|
||||
else return false;
|
||||
}
|
||||
|
||||
@ -339,7 +339,7 @@ public class ItemListener implements Listener {
|
||||
|
||||
// Determine from which hand the juice is being drunk, and its amount
|
||||
int mode = 0;
|
||||
if (SlimefunManager.isItemSimiliar(item, p.getInventory().getItemInMainHand(), true)) {
|
||||
if (SlimefunManager.isItemSimilar(item, p.getInventory().getItemInMainHand(), true)) {
|
||||
if (p.getInventory().getItemInMainHand().getAmount() == 1) {
|
||||
mode = 0;
|
||||
}
|
||||
@ -347,7 +347,7 @@ public class ItemListener implements Listener {
|
||||
mode = 2;
|
||||
}
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, p.getInventory().getItemInOffHand(), true)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, p.getInventory().getItemInOffHand(), true)) {
|
||||
if (p.getInventory().getItemInOffHand().getAmount() == 1) {
|
||||
mode = 1;
|
||||
}
|
||||
@ -422,16 +422,16 @@ public class ItemListener implements Listener {
|
||||
ItemStack slot0 = e.getInventory().getContents()[0];
|
||||
ItemStack slot1 = e.getInventory().getContents()[1];
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(slot0, SlimefunItems.ELYTRA, true)) return;
|
||||
if (SlimefunManager.isItemSimilar(slot0, SlimefunItems.ELYTRA, true)) return;
|
||||
|
||||
if (SlimefunItem.getByItem(slot0) != null && !SlimefunItem.isDisabled(slot0) ||
|
||||
SlimefunItem.getByItem(slot1) != null && !SlimefunItem.isDisabled(slot1) ||
|
||||
|
||||
SlimefunManager.isItemSimiliar(slot0, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true) ||
|
||||
SlimefunManager.isItemSimiliar(slot0, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true)||
|
||||
SlimefunManager.isItemSimilar(slot0, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true) ||
|
||||
SlimefunManager.isItemSimilar(slot0, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true)||
|
||||
|
||||
SlimefunManager.isItemSimiliar(slot1, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true) ||
|
||||
SlimefunManager.isItemSimiliar(slot1, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true)) {
|
||||
SlimefunManager.isItemSimilar(slot1, SlimefunGuide.getItem(SlimefunGuideLayout.BOOK), true) ||
|
||||
SlimefunManager.isItemSimilar(slot1, SlimefunGuide.getItem(SlimefunGuideLayout.CHEST), true)) {
|
||||
|
||||
e.setCancelled(true);
|
||||
SlimefunPlugin.getLocal().sendMessage((Player) e.getWhoClicked(), "anvil.not-working", true);
|
||||
|
@ -49,7 +49,7 @@ public class TalismanListener implements Listener {
|
||||
@EventHandler(priority=EventPriority.MONITOR)
|
||||
public void onDamageGet(EntityDamageEvent e) {
|
||||
if (!e.isCancelled()) {
|
||||
if (e instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) e).getDamager() instanceof Player && random.nextInt(100) < 45 && SlimefunManager.isItemSimiliar(((Player) ((EntityDamageByEntityEvent) e).getDamager()).getInventory().getItemInMainHand(), SlimefunItems.BLADE_OF_VAMPIRES, true)) {
|
||||
if (e instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) e).getDamager() instanceof Player && random.nextInt(100) < 45 && SlimefunManager.isItemSimilar(((Player) ((EntityDamageByEntityEvent) e).getDamager()).getInventory().getItemInMainHand(), SlimefunItems.BLADE_OF_VAMPIRES, true)) {
|
||||
((Player) ((EntityDamageByEntityEvent) e).getDamager()).playSound(((EntityDamageByEntityEvent) e).getDamager().getLocation(), Sound.ENTITY_ARROW_HIT_PLAYER, 0.7F, 0.7F);
|
||||
((Player) ((EntityDamageByEntityEvent) e).getDamager()).addPotionEffect(new PotionEffect(PotionEffectType.HEAL, 1, 1));
|
||||
}
|
||||
|
@ -108,38 +108,38 @@ public class ToolListener implements Listener {
|
||||
if (utilities.cancelPlace.remove(e.getPlayer().getUniqueId()))
|
||||
e.setCancelled(true);
|
||||
|
||||
if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BASIC_CIRCUIT_BOARD, true)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.ADVANCED_CIRCUIT_BOARD, true)) e.setCancelled(true);
|
||||
if (SlimefunManager.isItemSimilar(item, SlimefunItems.BASIC_CIRCUIT_BOARD, true)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.ADVANCED_CIRCUIT_BOARD, true)) e.setCancelled(true);
|
||||
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PORTABLE_CRAFTER, true)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.PORTABLE_DUSTBIN, true)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.PORTABLE_CRAFTER, true)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.PORTABLE_DUSTBIN, true)) e.setCancelled(true);
|
||||
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_SMALL, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_MEDIUM, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BACKPACK_LARGE, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.WOVEN_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GILDED_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.RADIANT_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BOUND_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.COOLER, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.ENDER_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BACKPACK_SMALL, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BACKPACK_MEDIUM, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BACKPACK_LARGE, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.WOVEN_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.GILDED_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.RADIANT_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BOUND_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.COOLER, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.ENDER_BACKPACK, false)) e.setCancelled(true);
|
||||
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBON, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.COMPRESSED_CARBON, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARBON_CHUNK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.CARBON, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.COMPRESSED_CARBON, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.CARBON_CHUNK, false)) e.setCancelled(true);
|
||||
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.ANDROID_MEMORY_CORE, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.LAVA_CRYSTAL, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.ANDROID_MEMORY_CORE, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.LAVA_CRYSTAL, false)) e.setCancelled(true);
|
||||
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.TINY_URANIUM, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.SMALL_URANIUM, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.TINY_URANIUM, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.SMALL_URANIUM, false)) e.setCancelled(true);
|
||||
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.BROKEN_SPAWNER, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.GPS_MARKER_TOOL, true)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BROKEN_SPAWNER, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.GPS_MARKER_TOOL, true)) {
|
||||
e.setCancelled(true);
|
||||
Slimefun.getGPSNetwork().addWaypoint(e.getPlayer(), e.getBlock().getLocation());
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CHRISTMAS_PRESENT, false)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.CHRISTMAS_PRESENT, false)) {
|
||||
e.setCancelled(true);
|
||||
|
||||
if (e.getPlayer().getGameMode() != GameMode.CREATIVE) {
|
||||
@ -164,25 +164,25 @@ public class ToolListener implements Listener {
|
||||
|
||||
e.getBlockPlaced().getWorld().dropItemNaturally(e.getBlockPlaced().getLocation(), gifts.get(random.nextInt(gifts.size())));
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_INPUT, false)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.CARGO_INPUT, false)) {
|
||||
if (e.getBlock().getY() != e.getBlockAgainst().getY()) {
|
||||
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true);
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_OUTPUT, false)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.CARGO_OUTPUT, false)) {
|
||||
if (e.getBlock().getY() != e.getBlockAgainst().getY()) {
|
||||
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true);
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CARGO_OUTPUT_ADVANCED, false)) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.CARGO_OUTPUT_ADVANCED, false)) {
|
||||
if (e.getBlock().getY() != e.getBlockAgainst().getY()) {
|
||||
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true);
|
||||
e.setCancelled(true);
|
||||
}
|
||||
}
|
||||
else if (SlimefunManager.isItemSimiliar(item, SlimefunItems.CT_IMPORT_BUS, false) && e.getBlock().getY() != e.getBlockAgainst().getY()) {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.CT_IMPORT_BUS, false) && e.getBlock().getY() != e.getBlockAgainst().getY()) {
|
||||
SlimefunPlugin.getLocal().sendMessage(e.getPlayer(), "machines.CARGO_NODES.must-be-placed", true);
|
||||
e.setCancelled(true);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user