1
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:
TheBusyBiscuit 2019-12-08 12:58:05 +01:00
parent 2075c103cd
commit a22068b9ff
70 changed files with 277 additions and 224 deletions

View File

@ -1,4 +1,4 @@
package me.mrCookieSlime.Slimefun.services;
package io.github.thebusybiscuit.slimefun4.core.services;
import java.util.Optional;

View File

@ -1,4 +1,4 @@
package me.mrCookieSlime.Slimefun.services;
package io.github.thebusybiscuit.slimefun4.core.services;
import java.util.Optional;

View File

@ -1,4 +1,4 @@
package me.mrCookieSlime.Slimefun.services;
package io.github.thebusybiscuit.slimefun4.core.services;
import java.util.Collection;

View File

@ -1,4 +1,4 @@
package me.mrCookieSlime.Slimefun.services;
package io.github.thebusybiscuit.slimefun4.core.services;
import org.bstats.bukkit.Metrics;

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -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()));

View File

@ -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)) {

View File

@ -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));
}

View File

@ -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()) {

View File

@ -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();

View File

@ -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()));

View File

@ -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);
}

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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()) {

View File

@ -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;

View File

@ -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));

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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();

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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());

View File

@ -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));

View File

@ -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});

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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));

View File

@ -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));

View File

@ -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())) {

View File

@ -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;
}

View File

@ -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) {

View File

@ -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) {

View File

@ -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;
}

View File

@ -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);

View File

@ -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);

View File

@ -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;
}

View File

@ -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) {

View File

@ -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);

View File

@ -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) {

View File

@ -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));
}
}

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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());
}

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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) {

View File

@ -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) {

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -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());
}

View File

@ -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));

View File

@ -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);

View File

@ -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)

View File

@ -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();

View File

@ -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);

View File

@ -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));
}

View File

@ -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);
}