1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Merge pull request #3603 from Sefiraat/java16

Java16 Sonar Changes
This commit is contained in:
TheBusyBiscuit 2022-07-03 12:02:28 +02:00 committed by GitHub
commit 261bc443e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
107 changed files with 522 additions and 657 deletions

View File

@ -111,8 +111,8 @@ public class GPSNetwork {
for (Location l : locations) {
SlimefunItem item = BlockStorage.check(l);
if (item instanceof GPSTransmitter) {
level += ((GPSTransmitter) item).getMultiplier(Math.max(l.getBlockY(), 0));
if (item instanceof GPSTransmitter transmitter) {
level += transmitter.getMultiplier(Math.max(l.getBlockY(), 0));
}
}
@ -172,10 +172,10 @@ public class GPSNetwork {
SlimefunItem sfi = BlockStorage.check(l);
if (sfi instanceof GPSTransmitter) {
if (sfi instanceof GPSTransmitter transmitter) {
int slot = inventory[index];
menu.addItem(slot, new CustomItemStack(SlimefunItems.GPS_TRANSMITTER, "&bGPS Transmitter", "&8\u21E8 &7World: &f" + l.getWorld().getName(), "&8\u21E8 &7X: &f" + l.getX(), "&8\u21E8 &7Y: &f" + l.getY(), "&8\u21E8 &7Z: &f" + l.getZ(), "", "&8\u21E8 &7Signal Strength: &f" + ((GPSTransmitter) sfi).getMultiplier(l.getBlockY()), "&8\u21E8 &7Ping: &f" + NumberUtils.roundDecimalNumber(1000D / l.getY()) + "ms"));
menu.addItem(slot, new CustomItemStack(SlimefunItems.GPS_TRANSMITTER, "&bGPS Transmitter", "&8\u21E8 &7World: &f" + l.getWorld().getName(), "&8\u21E8 &7X: &f" + l.getX(), "&8\u21E8 &7Y: &f" + l.getY(), "&8\u21E8 &7Z: &f" + l.getZ(), "", "&8\u21E8 &7Signal Strength: &f" + transmitter.getMultiplier(l.getBlockY()), "&8\u21E8 &7Ping: &f" + NumberUtils.roundDecimalNumber(1000D / l.getY()) + "ms"));
menu.addMenuClickHandler(slot, ChestMenuUtils.getEmptyClickHandler());
index++;

View File

@ -61,8 +61,8 @@ public final class HashedArmorpiece {
this.hash = copy.hashCode();
}
if (item instanceof SlimefunArmorPiece) {
this.item = Optional.of((SlimefunArmorPiece) item);
if (item instanceof SlimefunArmorPiece armorPiece) {
this.item = Optional.of(armorPiece);
} else {
this.item = Optional.empty();
}

View File

@ -128,12 +128,12 @@ public class SlimefunItemStack extends ItemStack {
im.setLore(lines);
}
if (im instanceof LeatherArmorMeta) {
((LeatherArmorMeta) im).setColor(color);
if (im instanceof LeatherArmorMeta leatherArmorMeta) {
leatherArmorMeta.setColor(color);
}
if (im instanceof PotionMeta) {
((PotionMeta) im).setColor(color);
if (im instanceof PotionMeta potionMeta) {
potionMeta.setColor(color);
}
});
}
@ -154,9 +154,9 @@ public class SlimefunItemStack extends ItemStack {
im.setLore(lines);
}
if (im instanceof PotionMeta) {
((PotionMeta) im).setColor(color);
((PotionMeta) im).addCustomEffect(effect, true);
if (im instanceof PotionMeta potionMeta) {
potionMeta.setColor(color);
potionMeta.addCustomEffect(effect, true);
if (effect.getType().equals(PotionEffectType.SATURATION)) {
im.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS);

View File

@ -487,9 +487,7 @@ public class PlayerProfile {
if (!armorPiece.isPresent()) {
setId = null;
} else if (armorPiece.get() instanceof ProtectiveArmor) {
ProtectiveArmor protectedArmor = (ProtectiveArmor) armorPiece.get();
} else if (armorPiece.get() instanceof ProtectiveArmor protectedArmor) {
if (setId == null && protectedArmor.isFullSetRequired()) {
setId = protectedArmor.getArmorSetId();
}

View File

@ -99,8 +99,8 @@ public class RecipeType implements Keyed {
this.key = key;
this.consumer = callback;
if (item instanceof SlimefunItemStack) {
this.machine = ((SlimefunItemStack) item).getItemId();
if (item instanceof SlimefunItemStack slimefunItemStack) {
this.machine = slimefunItemStack.getItemId();
} else {
this.machine = "";
}
@ -109,7 +109,7 @@ public class RecipeType implements Keyed {
public RecipeType(NamespacedKey key, ItemStack item) {
this.key = key;
this.item = item;
this.machine = item instanceof SlimefunItemStack ? ((SlimefunItemStack) item).getItemId() : "";
this.machine = item instanceof SlimefunItemStack slimefunItemStack ? slimefunItemStack.getItemId() : "";
}
public RecipeType(MinecraftRecipe<?> recipe) {
@ -124,8 +124,8 @@ public class RecipeType implements Keyed {
} else {
SlimefunItem slimefunItem = SlimefunItem.getById(this.machine);
if (slimefunItem instanceof MultiBlockMachine) {
((MultiBlockMachine) slimefunItem).addRecipe(recipe, result);
if (slimefunItem instanceof MultiBlockMachine mbm) {
mbm.addRecipe(recipe, result);
}
}
}
@ -149,8 +149,8 @@ public class RecipeType implements Keyed {
@Override
public final boolean equals(Object obj) {
if (obj instanceof RecipeType) {
return ((RecipeType) obj).getKey().equals(this.getKey());
if (obj instanceof RecipeType recipeType) {
return recipeType.getKey().equals(this.getKey());
} else {
return false;
}

View File

@ -80,10 +80,9 @@ public abstract class SubCommand {
*
* @return A possibly localized description of this {@link SubCommand}
*/
@Nonnull
public String getDescription(@Nonnull CommandSender sender) {
if (sender instanceof Player) {
return Slimefun.getLocalization().getMessage((Player) sender, getDescription());
public @Nonnull String getDescription(@Nonnull CommandSender sender) {
if (sender instanceof Player player) {
return Slimefun.getLocalization().getMessage(player, getDescription());
} else {
return Slimefun.getLocalization().getMessage(getDescription());
}

View File

@ -40,7 +40,7 @@ class BackpackCommand extends SubCommand {
@Override
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player) {
if (sender instanceof Player player) {
if (sender.hasPermission("slimefun.command.backpack")) {
if (args.length != 3) {
Slimefun.getLocalization().sendMessage(sender, "messages.usage", true, msg -> msg.replace("%usage%", "/sf backpack <Player> <ID>"));
@ -71,7 +71,7 @@ class BackpackCommand extends SubCommand {
Slimefun.runSync(() -> {
ItemStack item = SlimefunItems.RESTORED_BACKPACK.clone();
Slimefun.getBackpackListener().setBackpackId(backpackOwner, item, 2, id);
((Player) sender).getInventory().addItem(item);
player.getInventory().addItem(item);
Slimefun.getLocalization().sendMessage(sender, "commands.backpack.restored-backpack-given");
});
});

View File

@ -33,14 +33,12 @@ class ChargeCommand extends SubCommand {
@Override
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player) {
if (sender instanceof Player player) {
if (sender.hasPermission("slimefun.command.charge")) {
Player p = (Player) sender;
ItemStack item = p.getInventory().getItemInMainHand();
ItemStack item = player.getInventory().getItemInMainHand();
SlimefunItem slimefunItem = SlimefunItem.getByItem(item);
if (slimefunItem instanceof Rechargeable) {
Rechargeable rechargeableItem = (Rechargeable) slimefunItem;
if (slimefunItem instanceof Rechargeable rechargeableItem) {
rechargeableItem.setItemCharge(item, rechargeableItem.getMaxItemCharge(item));
Slimefun.getLocalization().sendMessage(sender, "commands.charge.charge-success", true);
} else {

View File

@ -19,9 +19,9 @@ class CheatCommand extends SubCommand {
@Override
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player) {
if (sender instanceof Player player) {
if (sender.hasPermission("slimefun.cheat.items")) {
SlimefunGuide.openCheatMenu((Player) sender);
SlimefunGuide.openCheatMenu(player);
} else {
Slimefun.getLocalization().sendMessage(sender, "messages.no-permission", true);
}

View File

@ -19,8 +19,8 @@ class DebugFishCommand extends SubCommand {
@Override
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player && sender.hasPermission("slimefun.debugging")) {
((Player) sender).getInventory().addItem(SlimefunItems.DEBUG_FISH.clone());
if (sender instanceof Player player && sender.hasPermission("slimefun.debugging")) {
player.getInventory().addItem(SlimefunItems.DEBUG_FISH.clone());
} else {
Slimefun.getLocalization().sendMessage(sender, "messages.no-permission", true);
}

View File

@ -20,10 +20,10 @@ class GuideCommand extends SubCommand {
@Override
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player) {
if (sender instanceof Player player) {
if (sender.hasPermission("slimefun.command.guide")) {
SlimefunGuideMode design = SlimefunGuide.getDefaultMode();
((Player) sender).getInventory().addItem(SlimefunGuide.getItem(design).clone());
player.getInventory().addItem(SlimefunGuide.getItem(design).clone());
} else {
Slimefun.getLocalization().sendMessage(sender, "messages.no-permission", true);
}

View File

@ -21,9 +21,9 @@ class OpenGuideCommand extends SubCommand {
@Override
@ParametersAreNonnullByDefault
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player) {
if (sender instanceof Player player) {
if (sender.hasPermission("slimefun.command.open_guide")) {
SlimefunGuide.openGuide((Player) sender, SlimefunGuideMode.SURVIVAL_MODE);
SlimefunGuide.openGuide(player, SlimefunGuideMode.SURVIVAL_MODE);
} else {
Slimefun.getLocalization().sendMessage(sender, "messages.no-permission", true);
}

View File

@ -23,11 +23,11 @@ class SearchCommand extends SubCommand {
@Override
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player) {
if (sender instanceof Player player) {
if (sender.hasPermission("slimefun.command.search")) {
if (args.length > 1) {
String query = String.join(" ", Arrays.copyOfRange(args, 1, args.length));
PlayerProfile.get((Player) sender, profile -> SlimefunGuide.openSearch(profile, query, SlimefunGuideMode.SURVIVAL_MODE, true));
PlayerProfile.get(player, profile -> SlimefunGuide.openSearch(profile, query, SlimefunGuideMode.SURVIVAL_MODE, true));
} else {
Slimefun.getLocalization().sendMessage(sender, "messages.usage", true, msg -> msg.replace("%usage%", "/sf search <SearchTerm>"));
}

View File

@ -35,8 +35,8 @@ class StatsCommand extends SubCommand {
} else {
Slimefun.getLocalization().sendMessage(sender, "messages.no-permission", true);
}
} else if (sender instanceof Player) {
PlayerProfile.get((Player) sender, profile -> profile.sendStats(sender));
} else if (sender instanceof Player player) {
PlayerProfile.get(player, profile -> profile.sendStats(sender));
} else {
Slimefun.getLocalization().sendMessage(sender, "messages.only-players", true);
}

View File

@ -21,18 +21,17 @@ class TeleporterCommand extends SubCommand {
@Override
public void onExecute(CommandSender sender, String[] args) {
if (sender instanceof Player) {
if (sender instanceof Player player) {
if (sender.hasPermission("slimefun.command.teleporter")) {
if (args.length == 1) {
Player p = (Player) sender;
Slimefun.getGPSNetwork().getTeleportationManager().openTeleporterGUI(p, p.getUniqueId(), p.getLocation().getBlock().getRelative(BlockFace.DOWN), 999999999);
Slimefun.getGPSNetwork().getTeleportationManager().openTeleporterGUI(player, player.getUniqueId(), player.getLocation().getBlock().getRelative(BlockFace.DOWN), 999999999);
} else if (args.length == 2) {
@SuppressWarnings("deprecation")
OfflinePlayer player = Bukkit.getOfflinePlayer(args[1]);
OfflinePlayer targetPlayer = Bukkit.getOfflinePlayer(args[1]);
if (player.getName() != null) {
Slimefun.getGPSNetwork().getTeleportationManager().openTeleporterGUI((Player) sender, player.getUniqueId(), ((Player) sender).getLocation().getBlock().getRelative(BlockFace.DOWN), 999999999);
if (targetPlayer.getName() != null) {
Slimefun.getGPSNetwork().getTeleportationManager().openTeleporterGUI(player, targetPlayer.getUniqueId(), player.getLocation().getBlock().getRelative(BlockFace.DOWN), 999999999);
} else {
Slimefun.getLocalization().sendMessage(sender, "messages.unknown-player", msg -> msg.replace("%player%", args[1]));
}

View File

@ -88,8 +88,8 @@ class TimingsCommand extends SubCommand {
@Nonnull
private PerformanceInspector inspectorOf(@Nonnull CommandSender sender, boolean verbose) {
if (sender instanceof Player) {
return new PlayerPerformanceInspector((Player) sender);
if (sender instanceof Player player) {
return new PlayerPerformanceInspector(player);
} else {
return new ConsolePerformanceInspector(sender, verbose);
}

View File

@ -76,10 +76,10 @@ public class RainbowTickHandler extends BlockTicker {
}
for (Material type : materials) {
/**
* This BlockData is purely virtual and only created on startup, it should have
* no impact on performance, in fact it should save performance as it preloads
* the data but also saves heavy calls for other Materials
/*
This BlockData is purely virtual and only created on startup, it should have
no impact on performance, in fact it should save performance as it preloads
the data but also saves heavy calls for other Materials
*/
if (type.createBlockData() instanceof GlassPane) {
return true;
@ -92,9 +92,9 @@ public class RainbowTickHandler extends BlockTicker {
@Override
public void tick(Block b, SlimefunItem item, Config data) {
if (b.getType() == Material.AIR) {
/**
* The block was broken, setting the Material now would result in a
* duplication glitch
/*
The block was broken, setting the Material now would result in a
duplication glitch
*/
return;
}
@ -102,12 +102,9 @@ public class RainbowTickHandler extends BlockTicker {
if (glassPanes) {
BlockData blockData = b.getBlockData();
if (blockData instanceof GlassPane) {
if (blockData instanceof GlassPane previousData) {
BlockData block = material.createBlockData(bd -> {
if (bd instanceof GlassPane) {
GlassPane previousData = (GlassPane) blockData;
GlassPane nextData = (GlassPane) bd;
if (bd instanceof GlassPane nextData) {
nextData.setWaterlogged(previousData.isWaterlogged());
for (BlockFace face : previousData.getAllowedFaces()) {

View File

@ -94,21 +94,14 @@ public class CargoNet extends AbstractItemNetwork implements HologramOwner {
return null;
}
switch (id) {
case "CARGO_MANAGER":
return NetworkComponent.REGULATOR;
case "CARGO_NODE":
return NetworkComponent.CONNECTOR;
case "CARGO_NODE_INPUT":
case "CARGO_NODE_OUTPUT":
case "CARGO_NODE_OUTPUT_ADVANCED":
case "CT_IMPORT_BUS":
case "CT_EXPORT_BUS":
case "CHEST_TERMINAL":
return NetworkComponent.TERMINUS;
default:
return null;
}
return switch (id) {
case "CARGO_MANAGER" -> NetworkComponent.REGULATOR;
case "CARGO_NODE" -> NetworkComponent.CONNECTOR;
case "CARGO_NODE_INPUT",
"CARGO_NODE_OUTPUT",
"CARGO_NODE_OUTPUT_ADVANCED" -> NetworkComponent.TERMINUS;
default -> null;
};
}
@Override
@ -123,15 +116,10 @@ public class CargoNet extends AbstractItemNetwork implements HologramOwner {
if (to == NetworkComponent.TERMINUS) {
String id = BlockStorage.checkID(l);
switch (id) {
case "CARGO_NODE_INPUT":
inputNodes.add(l);
break;
case "CARGO_NODE_OUTPUT":
case "CARGO_NODE_OUTPUT_ADVANCED":
outputNodes.add(l);
break;
default:
break;
case "CARGO_NODE_INPUT" -> inputNodes.add(l);
case "CARGO_NODE_OUTPUT",
"CARGO_NODE_OUTPUT_ADVANCED" -> outputNodes.add(l);
default -> {}
}
}
}

View File

@ -70,21 +70,20 @@ final class CargoUtils {
Material type = block.getType();
switch (type) {
case CHEST:
case TRAPPED_CHEST:
case FURNACE:
case DISPENSER:
case DROPPER:
case HOPPER:
case BREWING_STAND:
case BARREL:
case BLAST_FURNACE:
case SMOKER:
return true;
default:
return SlimefunTag.SHULKER_BOXES.isTagged(type);
}
// TODO: Add designated SlimefunTag
return switch (type) {
case CHEST,
TRAPPED_CHEST,
FURNACE,
DISPENSER,
DROPPER,
HOPPER,
BREWING_STAND,
BARREL,
BLAST_FURNACE,
SMOKER -> true;
default -> SlimefunTag.SHULKER_BOXES.isTagged(type);
};
}
@Nonnull
@ -145,8 +144,8 @@ final class CargoUtils {
BlockState state = PaperLib.getBlockState(target, false).getState();
if (state instanceof InventoryHolder) {
inventory = ((InventoryHolder) state).getInventory();
if (state instanceof InventoryHolder inventoryHolder) {
inventory = inventoryHolder.getInventory();
inventories.put(target.getLocation(), inventory);
return withdrawFromVanillaInventory(network, node, template, inventory);
}
@ -230,8 +229,8 @@ final class CargoUtils {
BlockState state = PaperLib.getBlockState(target, false).getState();
if (state instanceof InventoryHolder) {
inventory = ((InventoryHolder) state).getInventory();
if (state instanceof InventoryHolder inventoryHolder) {
inventory = inventoryHolder.getInventory();
inventories.put(target.getLocation(), inventory);
return withdrawFromVanillaInventory(network, node, inventory);
}
@ -278,8 +277,8 @@ final class CargoUtils {
BlockState state = PaperLib.getBlockState(target, false).getState();
if (state instanceof InventoryHolder) {
inventory = ((InventoryHolder) state).getInventory();
if (state instanceof InventoryHolder inventoryHolder) {
inventory = inventoryHolder.getInventory();
inventories.put(target.getLocation(), inventory);
return insertIntoVanillaInventory(stack, wrapper, smartFill, inventory);
}

View File

@ -75,16 +75,13 @@ public class EnergyNet extends Network implements HologramOwner {
if (component == null) {
return null;
} else {
switch (component.getEnergyComponentType()) {
case CONNECTOR:
case CAPACITOR:
return NetworkComponent.CONNECTOR;
case CONSUMER:
case GENERATOR:
return NetworkComponent.TERMINUS;
default:
return null;
}
return switch (component.getEnergyComponentType()) {
case CONNECTOR,
CAPACITOR -> NetworkComponent.CONNECTOR;
case CONSUMER,
GENERATOR -> NetworkComponent.TERMINUS;
default -> null;
};
}
}
@ -106,10 +103,10 @@ public class EnergyNet extends Network implements HologramOwner {
consumers.put(l, component);
break;
case GENERATOR:
if (component instanceof EnergyNetProvider) {
generators.put(l, (EnergyNetProvider) component);
} else if (component instanceof SlimefunItem) {
((SlimefunItem) component).warn("This Item is marked as a GENERATOR but does not implement the interface EnergyNetProvider!");
if (component instanceof EnergyNetProvider provider) {
generators.put(l, provider);
} else if (component instanceof SlimefunItem item) {
item.warn("This Item is marked as a GENERATOR but does not implement the interface EnergyNetProvider!");
}
break;
default:
@ -275,8 +272,8 @@ public class EnergyNet extends Network implements HologramOwner {
private static EnergyNetComponent getComponent(@Nonnull Location l) {
SlimefunItem item = BlockStorage.check(l);
if (item instanceof EnergyNetComponent) {
return ((EnergyNetComponent) item);
if (item instanceof EnergyNetComponent component) {
return component;
}
return null;

View File

@ -72,9 +72,9 @@ public class BlockDataService implements Keyed {
*/
BlockState state = b.getState();
if (state instanceof TileState) {
if (state instanceof TileState tileState) {
try {
PersistentDataContainer container = ((TileState) state).getPersistentDataContainer();
PersistentDataContainer container = tileState.getPersistentDataContainer();
container.set(namespacedKey, PersistentDataType.STRING, value);
state.update();
} catch (Exception x) {
@ -111,8 +111,8 @@ public class BlockDataService implements Keyed {
@Nullable
private PersistentDataContainer getPersistentDataContainer(@Nonnull BlockState state) {
if (state instanceof TileState) {
return ((TileState) state).getPersistentDataContainer();
if (state instanceof TileState tileState) {
return tileState.getPersistentDataContainer();
} else {
return null;
}
@ -137,31 +137,32 @@ public class BlockDataService implements Keyed {
return false;
}
switch (type) {
case PLAYER_HEAD:
case PLAYER_WALL_HEAD:
case CHEST:
case DISPENSER:
case BREWING_STAND:
case DROPPER:
case FURNACE:
case BLAST_FURNACE:
case HOPPER:
case LECTERN:
case JUKEBOX:
case ENDER_CHEST:
case ENCHANTING_TABLE:
case DAYLIGHT_DETECTOR:
case SMOKER:
case BARREL:
case SPAWNER:
case BEACON:
// TODO: Add designated SlimefunTag
return switch (type) {
case PLAYER_HEAD,
PLAYER_WALL_HEAD,
CHEST,
DISPENSER,
BREWING_STAND,
DROPPER,
FURNACE,
BLAST_FURNACE,
HOPPER,
LECTERN,
JUKEBOX,
ENDER_CHEST,
ENCHANTING_TABLE,
DAYLIGHT_DETECTOR,
SMOKER,
BARREL,
SPAWNER,
BEACON ->
// All of the above Materials are Tile Entities
return true;
default:
true;
default ->
// Otherwise we assume they're not Tile Entities
return false;
}
false;
};
}
}

View File

@ -82,7 +82,7 @@ class GitHubTask implements Runnable {
}
for (GitHubConnector connector : gitHubService.getConnectors()) {
if (connector instanceof ContributionsConnector && !((ContributionsConnector) connector).hasFinished()) {
if (connector instanceof ContributionsConnector contributionsConnector && !contributionsConnector.hasFinished()) {
return;
}
}

View File

@ -62,9 +62,9 @@ class Hologram {
ArmorStand getArmorStand() {
Entity n = Bukkit.getEntity(uniqueId);
if (n instanceof ArmorStand && n.isValid()) {
if (n instanceof ArmorStand armorStand && n.isValid()) {
this.lastAccess = System.currentTimeMillis();
return (ArmorStand) n;
return armorStand;
} else {
this.lastAccess = 0;
return null;

View File

@ -191,11 +191,9 @@ public class HologramsService {
* @return Whether this could be a hologram
*/
private boolean isHologram(@Nonnull Entity n) {
if (n instanceof ArmorStand) {
ArmorStand armorstand = (ArmorStand) n;
if (n instanceof ArmorStand armorStand) {
// The absolute minimum requirements to count as a hologram
return !armorstand.isVisible() && armorstand.isSilent() && !armorstand.hasGravity();
return !armorStand.isVisible() && armorStand.isSilent() && !armorStand.hasGravity();
} else {
return false;
}
@ -216,22 +214,20 @@ public class HologramsService {
*/
@Nullable
private Hologram getAsHologram(@Nonnull BlockPosition position, @Nonnull Entity entity, @Nonnull PersistentDataContainer container) {
if (entity instanceof ArmorStand) {
ArmorStand armorstand = (ArmorStand) entity;
armorstand.setVisible(false);
armorstand.setInvulnerable(true);
armorstand.setSilent(true);
armorstand.setMarker(true);
armorstand.setAI(false);
armorstand.setGravity(false);
armorstand.setRemoveWhenFarAway(false);
if (entity instanceof ArmorStand armorStand) {
armorStand.setVisible(false);
armorStand.setInvulnerable(true);
armorStand.setSilent(true);
armorStand.setMarker(true);
armorStand.setAI(false);
armorStand.setGravity(false);
armorStand.setRemoveWhenFarAway(false);
// Set a persistent tag to re-identify the correct hologram later
container.set(persistentDataKey, PersistentDataType.LONG, position.getPosition());
// Store in cache for faster access
Hologram hologram = new Hologram(armorstand.getUniqueId());
Hologram hologram = new Hologram(armorStand.getUniqueId());
cache.put(position, hologram);
return hologram;

View File

@ -348,8 +348,8 @@ public abstract class SlimefunLocalization implements Keyed {
String prefix = addPrefix ? getChatPrefix() : "";
if (recipient instanceof Player) {
recipient.sendMessage(ChatColors.color(prefix + getMessage((Player) recipient, key)));
if (recipient instanceof Player player) {
recipient.sendMessage(ChatColors.color(prefix + getMessage(player, key)));
} else {
recipient.sendMessage(ChatColor.stripColor(ChatColors.color(prefix + getMessage(key))));
}
@ -383,8 +383,8 @@ public abstract class SlimefunLocalization implements Keyed {
String prefix = addPrefix ? getChatPrefix() : "";
if (recipient instanceof Player) {
recipient.sendMessage(ChatColors.color(prefix + function.apply(getMessage((Player) recipient, key))));
if (recipient instanceof Player player) {
recipient.sendMessage(ChatColors.color(prefix + function.apply(getMessage(player, key))));
} else {
recipient.sendMessage(ChatColor.stripColor(ChatColors.color(prefix + function.apply(getMessage(key)))));
}
@ -393,8 +393,8 @@ public abstract class SlimefunLocalization implements Keyed {
public void sendMessages(@Nonnull CommandSender recipient, @Nonnull String key) {
String prefix = getChatPrefix();
if (recipient instanceof Player) {
for (String translation : getMessages((Player) recipient, key)) {
if (recipient instanceof Player player) {
for (String translation : getMessages(player, key)) {
String message = ChatColors.color(prefix + translation);
recipient.sendMessage(message);
}
@ -410,8 +410,8 @@ public abstract class SlimefunLocalization implements Keyed {
public void sendMessages(CommandSender recipient, String key, boolean addPrefix, UnaryOperator<String> function) {
String prefix = addPrefix ? getChatPrefix() : "";
if (recipient instanceof Player) {
for (String translation : getMessages((Player) recipient, key)) {
if (recipient instanceof Player player) {
for (String translation : getMessages(player, key)) {
String message = ChatColors.color(prefix + function.apply(translation));
recipient.sendMessage(message);
}

View File

@ -95,9 +95,9 @@ class PerformanceSummary {
List<Entry<String, Long>> results = stream.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).collect(Collectors.toList());
String prefix = count + " " + name + (count != 1 ? 's' : "");
if (inspector instanceof PlayerPerformanceInspector) {
if (inspector instanceof PlayerPerformanceInspector playerPerformanceInspector) {
TextComponent component = summarizeAsTextComponent(count, prefix, results, formatter);
((PlayerPerformanceInspector) inspector).sendMessage(component);
playerPerformanceInspector.sendMessage(component);
} else {
String text = summarizeAsString(inspector, count, prefix, results, formatter);
inspector.sendMessage(text);

View File

@ -143,9 +143,8 @@ final class ProfiledBlock {
@Override
public boolean equals(Object obj) {
if (obj instanceof ProfiledBlock) {
ProfiledBlock block = (ProfiledBlock) obj;
return position == block.position && Objects.equals(world, block.world);
if (obj instanceof ProfiledBlock profiledBlock) {
return position == profiledBlock.position && Objects.equals(world, profiledBlock.world);
}
return false;

View File

@ -54,7 +54,7 @@ public class CheatSheetSlimefunGuide extends SurvivalSlimefunGuide {
List<ItemGroup> groups = new LinkedList<>();
for (ItemGroup group : Slimefun.getRegistry().getAllItemGroups()) {
if (!(group instanceof FlexItemGroup) || ((FlexItemGroup) group).isVisible(p, profile, getMode())) {
if (!(group instanceof FlexItemGroup flexItemGroup) || flexItemGroup.isVisible(p, profile, getMode())) {
groups.add(group);
}
}

View File

@ -119,8 +119,8 @@ public class SurvivalSlimefunGuide implements SlimefunGuideImplementation {
for (ItemGroup group : Slimefun.getRegistry().getAllItemGroups()) {
try {
if (group instanceof FlexItemGroup) {
if (((FlexItemGroup) group).isVisible(p, profile, getMode())) {
if (group instanceof FlexItemGroup flexItemGroup) {
if (flexItemGroup.isVisible(p, profile, getMode())) {
groups.add(group);
}
} else if (!group.isHidden(p)) {
@ -233,8 +233,8 @@ public class SurvivalSlimefunGuide implements SlimefunGuideImplementation {
return;
}
if (itemGroup instanceof FlexItemGroup) {
((FlexItemGroup) itemGroup).open(p, profile, getMode());
if (itemGroup instanceof FlexItemGroup flexItemGroup) {
flexItemGroup.open(p, profile, getMode());
return;
}
@ -493,19 +493,19 @@ public class SurvivalSlimefunGuide implements SlimefunGuideImplementation {
private <T extends Recipe> void showRecipeChoices(T recipe, ItemStack[] recipeItems, AsyncRecipeChoiceTask task) {
RecipeChoice[] choices = Slimefun.getMinecraftRecipeService().getRecipeShape(recipe);
if (choices.length == 1 && choices[0] instanceof MaterialChoice) {
recipeItems[4] = new ItemStack(((MaterialChoice) choices[0]).getChoices().get(0));
if (choices.length == 1 && choices[0] instanceof MaterialChoice materialChoice) {
recipeItems[4] = new ItemStack(materialChoice.getChoices().get(0));
if (((MaterialChoice) choices[0]).getChoices().size() > 1) {
task.add(recipeSlots[4], (MaterialChoice) choices[0]);
if (materialChoice.getChoices().size() > 1) {
task.add(recipeSlots[4], materialChoice);
}
} else {
for (int i = 0; i < choices.length; i++) {
if (choices[i] instanceof MaterialChoice) {
recipeItems[i] = new ItemStack(((MaterialChoice) choices[i]).getChoices().get(0));
if (choices[i] instanceof MaterialChoice materialChoice) {
recipeItems[i] = new ItemStack(materialChoice.getChoices().get(0));
if (((MaterialChoice) choices[i]).getChoices().size() > 1) {
task.add(recipeSlots[i], (MaterialChoice) choices[i]);
if (materialChoice.getChoices().size() > 1) {
task.add(recipeSlots[i], materialChoice);
}
}
}
@ -545,8 +545,8 @@ public class SurvivalSlimefunGuide implements SlimefunGuideImplementation {
displayItem(menu, profile, p, item, result, recipeType, recipe, task);
if (item instanceof RecipeDisplayItem) {
displayRecipes(p, profile, menu, (RecipeDisplayItem) item, 0);
if (item instanceof RecipeDisplayItem recipeDisplayItem) {
displayRecipes(p, profile, menu, recipeDisplayItem, 0);
}
menu.open(p);

View File

@ -78,8 +78,8 @@ public class VanillaInventoryDropHandler<T extends BlockState & InventoryHolder>
@Nonnull
protected Inventory getInventory(@Nonnull T inventoryHolder) {
if (inventoryHolder instanceof Chest) {
return ((Chest) inventoryHolder).getBlockInventory();
if (inventoryHolder instanceof Chest chest) {
return chest.getBlockInventory();
} else {
return inventoryHolder.getInventory();
}

View File

@ -86,8 +86,8 @@ public class AncientPedestal extends SimpleSlimefunItem<BlockDispenseHandler> {
Location l = pedestal.getLocation().add(0.5, 1.2, 0.5);
for (Entity n : l.getWorld().getNearbyEntities(l, 0.5, 0.5, 0.5, this::testItem)) {
if (n instanceof Item) {
return Optional.of((Item) n);
if (n instanceof Item item) {
return Optional.of(item);
}
}
@ -95,8 +95,7 @@ public class AncientPedestal extends SimpleSlimefunItem<BlockDispenseHandler> {
}
private boolean testItem(@Nullable Entity n) {
if (n instanceof Item && n.isValid()) {
Item item = (Item) n;
if (n instanceof Item item && n.isValid()) {
ItemMeta meta = item.getItemStack().getItemMeta();
return meta.hasDisplayName() && meta.getDisplayName().startsWith(ITEM_PREFIX);

View File

@ -34,24 +34,15 @@ public class ButcherAndroid extends ProgrammableAndroid {
double damage = getTier() >= 3 ? 20D : 4D * getTier();
double radius = 4.0 + getTier();
for (Entity n : b.getWorld().getNearbyEntities(b.getLocation(), radius, radius, radius, n -> n instanceof LivingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.isValid() && predicate.test((LivingEntity) n))) {
for (Entity n : b.getWorld().getNearbyEntities(b.getLocation(), radius, radius, radius, n -> n instanceof LivingEntity livingEntity && !(n instanceof ArmorStand) && !(n instanceof Player) && n.isValid() && predicate.test(livingEntity))) {
boolean attack = false;
switch (face) {
case NORTH:
attack = n.getLocation().getZ() < b.getZ();
break;
case EAST:
attack = n.getLocation().getX() > b.getX();
break;
case SOUTH:
attack = n.getLocation().getZ() > b.getZ();
break;
case WEST:
attack = n.getLocation().getX() < b.getX();
break;
default:
break;
case NORTH -> attack = n.getLocation().getZ() < b.getZ();
case EAST -> attack = n.getLocation().getX() > b.getX();
case SOUTH -> attack = n.getLocation().getZ() > b.getZ();
case WEST -> attack = n.getLocation().getX() < b.getX();
default -> {}
}
if (attack) {

View File

@ -42,7 +42,7 @@ public class FarmerAndroid extends ProgrammableAndroid {
return;
}
if (data instanceof Ageable && ((Ageable) data).getAge() >= ((Ageable) data).getMaximumAge()) {
if (data instanceof Ageable ageable && ageable.getAge() >= ageable.getMaximumAge()) {
drop = getDropFromCrop(blockType);
}
@ -57,8 +57,8 @@ public class FarmerAndroid extends ProgrammableAndroid {
if (drop != null && menu.pushItem(drop, getOutputSlots()) == null) {
block.getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, blockType);
if (data instanceof Ageable) {
((Ageable) data).setAge(0);
if (data instanceof Ageable ageable) {
ageable.setAge(0);
block.setBlockData(data);
}
}
@ -68,24 +68,16 @@ public class FarmerAndroid extends ProgrammableAndroid {
private ItemStack getDropFromCrop(Material crop) {
Random random = ThreadLocalRandom.current();
switch (crop) {
case WHEAT:
return new ItemStack(Material.WHEAT, random.nextInt(2) + 1);
case POTATOES:
return new ItemStack(Material.POTATO, random.nextInt(3) + 1);
case CARROTS:
return new ItemStack(Material.CARROT, random.nextInt(3) + 1);
case BEETROOTS:
return new ItemStack(Material.BEETROOT, random.nextInt(3) + 1);
case COCOA:
return new ItemStack(Material.COCOA_BEANS, random.nextInt(3) + 1);
case NETHER_WART:
return new ItemStack(Material.NETHER_WART, random.nextInt(3) + 1);
case SWEET_BERRY_BUSH:
return new ItemStack(Material.SWEET_BERRIES, random.nextInt(3) + 1);
default:
return null;
}
return switch (crop) {
case WHEAT -> new ItemStack(Material.WHEAT, random.nextInt(2) + 1);
case POTATOES -> new ItemStack(Material.POTATO, random.nextInt(3) + 1);
case CARROTS -> new ItemStack(Material.CARROT, random.nextInt(3) + 1);
case BEETROOTS -> new ItemStack(Material.BEETROOT, random.nextInt(3) + 1);
case COCOA -> new ItemStack(Material.COCOA_BEANS, random.nextInt(3) + 1);
case NETHER_WART -> new ItemStack(Material.NETHER_WART, random.nextInt(3) + 1);
case SWEET_BERRY_BUSH -> new ItemStack(Material.SWEET_BERRIES, random.nextInt(3) + 1);
default -> null;
};
}
}

View File

@ -156,8 +156,8 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
BlockStorage.addBlockInfo(b, "paused", "true");
BlockData blockData = Material.PLAYER_HEAD.createBlockData(data -> {
if (data instanceof Rotatable) {
((Rotatable) data).setRotation(p.getFacing());
if (data instanceof Rotatable rotatable) {
rotatable.setRotation(p.getFacing());
}
});
@ -207,16 +207,12 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
* @return The required type of fuel
*/
public AndroidFuelSource getFuelSource() {
switch (getTier()) {
case 1:
return AndroidFuelSource.SOLID;
case 2:
return AndroidFuelSource.LIQUID;
case 3:
return AndroidFuelSource.NUCLEAR;
default:
throw new IllegalStateException("Cannot convert the following Android tier to a fuel type: " + getTier());
}
return switch (getTier()) {
case 1 -> AndroidFuelSource.SOLID;
case 2 -> AndroidFuelSource.LIQUID;
case 3 -> AndroidFuelSource.NUCLEAR;
default -> throw new IllegalStateException("Cannot convert the following Android tier to a fuel type: " + getTier());
};
}
@Override
@ -602,7 +598,7 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
private void registerDefaultFuelTypes() {
switch (getFuelSource()) {
case SOLID:
case SOLID -> {
registerFuelType(new MachineFuel(80, new ItemStack(Material.COAL_BLOCK)));
registerFuelType(new MachineFuel(45, new ItemStack(Material.BLAZE_ROD)));
registerFuelType(new MachineFuel(70, new ItemStack(Material.DRIED_KELP_BLOCK)));
@ -620,20 +616,18 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
for (Material mat : Tag.PLANKS.getValues()) {
registerFuelType(new MachineFuel(1, new ItemStack(mat)));
}
break;
case LIQUID:
}
case LIQUID -> {
registerFuelType(new MachineFuel(100, new ItemStack(Material.LAVA_BUCKET)));
registerFuelType(new MachineFuel(200, SlimefunItems.OIL_BUCKET));
registerFuelType(new MachineFuel(500, SlimefunItems.FUEL_BUCKET));
break;
case NUCLEAR:
}
case NUCLEAR -> {
registerFuelType(new MachineFuel(2500, SlimefunItems.URANIUM));
registerFuelType(new MachineFuel(1200, SlimefunItems.NEPTUNIUM));
registerFuelType(new MachineFuel(3000, SlimefunItems.BOOSTED_URANIUM));
break;
default:
throw new IllegalStateException("Unhandled Fuel Source: " + getFuelSource());
}
default -> throw new IllegalStateException("Unhandled Fuel Source: " + getFuelSource());
}
}
@ -760,8 +754,7 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
BlockFace rotation = POSSIBLE_ROTATIONS.get(index);
BlockData blockData = Material.PLAYER_HEAD.createBlockData(data -> {
if (data instanceof Rotatable) {
Rotatable rotatable = ((Rotatable) data);
if (data instanceof Rotatable rotatable) {
rotatable.setRotation(rotation.getOppositeFace());
}
});
@ -774,14 +767,12 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
if (facedBlock.getType() == Material.DISPENSER && BlockStorage.check(facedBlock, "ANDROID_INTERFACE_ITEMS")) {
BlockState state = PaperLib.getBlockState(facedBlock, false).getState();
if (state instanceof Dispenser) {
Dispenser d = (Dispenser) state;
if (state instanceof Dispenser dispenser) {
for (int slot : getOutputSlots()) {
ItemStack stack = menu.getItemInSlot(slot);
if (stack != null) {
Optional<ItemStack> optional = d.getInventory().addItem(stack).values().stream().findFirst();
Optional<ItemStack> optional = dispenser.getInventory().addItem(stack).values().stream().findFirst();
if (optional.isPresent()) {
menu.replaceExistingItem(slot, optional.get());
@ -798,14 +789,12 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
if (facedBlock.getType() == Material.DISPENSER && BlockStorage.check(facedBlock, "ANDROID_INTERFACE_FUEL")) {
BlockState state = PaperLib.getBlockState(facedBlock, false).getState();
if (state instanceof Dispenser) {
Dispenser d = (Dispenser) state;
if (state instanceof Dispenser dispenser) {
for (int slot = 0; slot < 9; slot++) {
ItemStack item = d.getInventory().getItem(slot);
ItemStack item = dispenser.getInventory().getItem(slot);
if (item != null) {
insertFuel(menu, d.getInventory(), slot, menu.getItemInSlot(43), item);
insertFuel(menu, dispenser.getInventory(), slot, menu.getItemInSlot(43), item);
}
}
}
@ -897,8 +886,7 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
}
BlockData blockData = Material.PLAYER_HEAD.createBlockData(data -> {
if (data instanceof Rotatable) {
Rotatable rotatable = ((Rotatable) data);
if (data instanceof Rotatable rotatable) {
rotatable.setRotation(face.getOppositeFace());
}
});

View File

@ -51,7 +51,7 @@ public class StomperBoots extends SlimefunItem {
player.setVelocity(new Vector(0, 0.7, 0));
for (Entity entity : player.getNearbyEntities(4, 4, 4)) {
if (entity instanceof LivingEntity && canPush(player, (LivingEntity) entity)) {
if (entity instanceof LivingEntity livingEntity && canPush(player, livingEntity)) {
Vector velocity = getShockwave(player.getLocation(), entity.getLocation());
entity.setVelocity(velocity);
@ -61,7 +61,7 @@ public class StomperBoots extends SlimefunItem {
Bukkit.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
((LivingEntity) entity).damage(event.getDamage());
livingEntity.damage(event.getDamage());
}
}
}

View File

@ -175,8 +175,8 @@ public abstract class AbstractAutoCrafter extends SlimefunItem implements Energy
if (isValidInventory(targetBlock)) {
BlockState state = PaperLib.getBlockState(targetBlock, false).getState();
if (state instanceof InventoryHolder) {
Inventory inv = ((InventoryHolder) state).getInventory();
if (state instanceof InventoryHolder inventoryHolder) {
Inventory inv = inventoryHolder.getInventory();
if (craft(inv, recipe)) {
// We are done crafting!
@ -202,14 +202,13 @@ public abstract class AbstractAutoCrafter extends SlimefunItem implements Energy
protected boolean isValidInventory(@Nonnull Block block) {
Material type = block.getType();
switch (type) {
case CHEST:
case TRAPPED_CHEST:
case BARREL:
return true;
default:
return SlimefunTag.SHULKER_BOXES.isTagged(type);
}
// TODO: Add designated SlimefunTag
return switch (type) {
case CHEST,
TRAPPED_CHEST,
BARREL -> true;
default -> SlimefunTag.SHULKER_BOXES.isTagged(type);
};
}
/**
@ -251,16 +250,16 @@ public abstract class AbstractAutoCrafter extends SlimefunItem implements Energy
BlockStateSnapshotResult result = PaperLib.getBlockState(b, false);
BlockState state = result.getState();
if (state instanceof Skull) {
if (state instanceof Skull skull) {
if (recipe == null) {
// Clear the value from persistent data storage
PersistentDataAPI.remove((Skull) state, recipeStorageKey);
PersistentDataAPI.remove(skull, recipeStorageKey);
// Also remove the "enabled" state since this should be per-recipe.
PersistentDataAPI.remove((Skull) state, recipeEnabledKey);
PersistentDataAPI.remove(skull, recipeEnabledKey);
} else {
// Store the value to persistent data storage
PersistentDataAPI.setString((Skull) state, recipeStorageKey, recipe.toString());
PersistentDataAPI.setString(skull, recipeStorageKey, recipe.toString());
}
// Fixes #2899 - Update the BlockState if necessary
@ -337,12 +336,12 @@ public abstract class AbstractAutoCrafter extends SlimefunItem implements Energy
BlockState state = PaperLib.getBlockState(b, false).getState();
// Make sure the block is still a Skull
if (state instanceof Skull) {
if (state instanceof Skull skull) {
if (enabled) {
PersistentDataAPI.remove((Skull) state, recipeEnabledKey);
PersistentDataAPI.remove(skull, recipeEnabledKey);
Slimefun.getLocalization().sendMessage(p, "messages.auto-crafting.re-enabled");
} else {
PersistentDataAPI.setByte((Skull) state, recipeEnabledKey, (byte) 1);
PersistentDataAPI.setByte(skull, recipeEnabledKey, (byte) 1);
Slimefun.getLocalization().sendMessage(p, "messages.auto-crafting.temporarily-disabled");
}
}

View File

@ -136,10 +136,10 @@ public abstract class AbstractRecipe {
*/
@Nullable
public static AbstractRecipe of(@Nullable Recipe recipe) {
if (recipe instanceof ShapedRecipe) {
return new VanillaRecipe((ShapedRecipe) recipe);
} else if (recipe instanceof ShapelessRecipe) {
return new VanillaRecipe((ShapelessRecipe) recipe);
if (recipe instanceof ShapedRecipe shapedRecipe) {
return new VanillaRecipe(shapedRecipe);
} else if (recipe instanceof ShapelessRecipe shapelessRecipe) {
return new VanillaRecipe(shapelessRecipe);
} else {
return null;
}

View File

@ -60,9 +60,9 @@ public class SlimefunAutoCrafter extends AbstractAutoCrafter {
BlockState state = PaperLib.getBlockState(b, false).getState();
if (state instanceof Skull) {
if (state instanceof Skull skull) {
// Read the stored value from persistent data storage
PersistentDataContainer container = ((Skull) state).getPersistentDataContainer();
PersistentDataContainer container = skull.getPersistentDataContainer();
String value = container.get(recipeStorageKey, PersistentDataType.STRING);
SlimefunItem item = SlimefunItem.getById(value);

View File

@ -61,9 +61,9 @@ public class VanillaAutoCrafter extends AbstractAutoCrafter {
public @Nullable AbstractRecipe getSelectedRecipe(@Nonnull Block b) {
BlockState state = PaperLib.getBlockState(b, false).getState();
if (state instanceof Skull) {
if (state instanceof Skull skull) {
// Read the stored value from persistent data storage
PersistentDataContainer container = ((Skull) state).getPersistentDataContainer();
PersistentDataContainer container = skull.getPersistentDataContainer();
String value = container.get(recipeStorageKey, PersistentDataType.STRING);
if (value != null) {

View File

@ -81,19 +81,19 @@ class VanillaRecipe extends AbstractRecipe {
RecipeChoice[] choices = Slimefun.getMinecraftRecipeService().getRecipeShape(recipe);
ItemStack[] items = new ItemStack[9];
if (choices.length == 1 && choices[0] instanceof MaterialChoice) {
items[4] = new ItemStack(((MaterialChoice) choices[0]).getChoices().get(0));
if (choices.length == 1 && choices[0] instanceof MaterialChoice materialChoice) {
items[4] = new ItemStack(materialChoice.getChoices().get(0));
if (((MaterialChoice) choices[0]).getChoices().size() > 1) {
task.add(slots[4], (MaterialChoice) choices[0]);
if (materialChoice.getChoices().size() > 1) {
task.add(slots[4], materialChoice);
}
} else {
for (int i = 0; i < choices.length; i++) {
if (choices[i] instanceof MaterialChoice) {
items[i] = new ItemStack(((MaterialChoice) choices[i]).getChoices().get(0));
if (choices[i] instanceof MaterialChoice materialChoice) {
items[i] = new ItemStack(materialChoice.getChoices().get(0));
if (((MaterialChoice) choices[i]).getChoices().size() > 1) {
task.add(slots[i], (MaterialChoice) choices[i]);
if (materialChoice.getChoices().size() > 1) {
task.add(slots[i], materialChoice);
}
}
}
@ -107,8 +107,8 @@ class VanillaRecipe extends AbstractRecipe {
@Override
public String toString() {
if (recipe instanceof Keyed) {
return ((Keyed) recipe).getKey().toString();
if (recipe instanceof Keyed keyed) {
return keyed.getKey().toString();
} else {
return "invalid-recipe";
}

View File

@ -83,12 +83,11 @@ public abstract class AbstractMonsterSpawner extends SlimefunItem {
ItemMeta meta = item.getItemMeta();
// Fixes #2583 - Proper NBT handling of Spawners
if (meta instanceof BlockStateMeta) {
BlockStateMeta stateMeta = (BlockStateMeta) meta;
if (meta instanceof BlockStateMeta stateMeta) {
BlockState state = stateMeta.getBlockState();
if (state instanceof CreatureSpawner) {
((CreatureSpawner) state).setSpawnedType(type);
if (state instanceof CreatureSpawner spawner) {
spawner.setSpawnedType(type);
}
stateMeta.setBlockState(state);

View File

@ -222,8 +222,7 @@ public class BlockPlacer extends SlimefunItem {
if (meta.hasDisplayName()) {
BlockStateSnapshotResult blockState = PaperLib.getBlockState(facedBlock, false);
if ((blockState.getState() instanceof Nameable)) {
Nameable nameable = ((Nameable) blockState.getState());
if (blockState.getState() instanceof Nameable nameable) {
nameable.setCustomName(meta.getDisplayName());
if (blockState.isSnapshot()) {

View File

@ -203,10 +203,9 @@ public class Crucible extends SimpleSlimefunItem<BlockUseHandler> implements Rec
// Fixes #2903 - Cancel physics update to resolve weird overlapping
block.setType(water ? Material.WATER : Material.LAVA, false);
} else {
if (water && block.getBlockData() instanceof Waterlogged) {
Waterlogged wl = (Waterlogged) block.getBlockData();
wl.setWaterlogged(true);
block.setBlockData(wl, false);
if (water && block.getBlockData() instanceof Waterlogged waterlogged) {
waterlogged.setWaterlogged(true);
block.setBlockData(waterlogged, false);
block.getWorld().playSound(block.getLocation(), Sound.ENTITY_PLAYER_SPLASH, 1F, 1F);
return;
}

View File

@ -87,8 +87,8 @@ public class EnhancedFurnace extends SimpleSlimefunItem<BlockTicker> {
BlockState state = result.getState();
// Check if the BlockState is a Furnace and cooking something
if (state instanceof Furnace && ((Furnace) state).getCookTime() > 0) {
setProgress((Furnace) state);
if (state instanceof Furnace furnace && furnace.getCookTime() > 0) {
setProgress(furnace);
// Only update if necessary
if (result.isSnapshot()) {

View File

@ -140,11 +140,11 @@ public class HologramProjector extends SlimefunItem implements HologramOwner {
Location l = new Location(projector.getWorld(), projector.getX() + 0.5, projector.getY() + offset, projector.getZ() + 0.5);
for (Entity n : l.getChunk().getEntities()) {
if (n instanceof ArmorStand && l.distanceSquared(n.getLocation()) < 0.4) {
if (n instanceof ArmorStand armorStand && l.distanceSquared(n.getLocation()) < 0.4) {
String customName = n.getCustomName();
if (customName != null && customName.equals(nametag)) {
return (ArmorStand) n;
return armorStand;
}
}
}

View File

@ -116,8 +116,8 @@ public class IgnitionChamber extends SlimefunItem {
if (block.getType() == Material.DROPPER && BlockStorage.check(block) instanceof IgnitionChamber) {
BlockState state = PaperLib.getBlockState(b.getRelative(face), false).getState();
if (state instanceof Dropper) {
return ((Dropper) state).getInventory();
if (state instanceof Dropper dropper) {
return dropper.getInventory();
}
}
}

View File

@ -83,8 +83,8 @@ public class OutputChest extends SlimefunItem {
// Found the output chest! Now, let's check if we can fit the product in it.
BlockState state = PaperLib.getBlockState(potentialOutput, false).getState();
if (state instanceof Chest) {
Inventory inv = ((Chest) state).getInventory();
if (state instanceof Chest chest) {
Inventory inv = chest.getInventory();
// Check if the Item fits into that inventory.
if (InvUtils.fits(inv, item)) {

View File

@ -43,9 +43,7 @@ public class Multimeter extends SimpleSlimefunItem<ItemUseHandler> {
if (e.getClickedBlock().isPresent() && block.isPresent()) {
SlimefunItem item = block.get();
if (item instanceof EnergyNetComponent) {
EnergyNetComponent component = (EnergyNetComponent) item;
if (item instanceof EnergyNetComponent component) {
if (component.isChargeable()) {
e.cancel();

View File

@ -67,8 +67,8 @@ public class SolarHelmet extends SlimefunItem {
private void recharge(@Nullable ItemStack item) {
SlimefunItem sfItem = SlimefunItem.getByItem(item);
if (sfItem instanceof Rechargeable) {
((Rechargeable) sfItem).addItemCharge(item, charge.getValue().floatValue());
if (sfItem instanceof Rechargeable rechargeable) {
rechargeable.addItemCharge(item, charge.getValue().floatValue());
}
}

View File

@ -53,10 +53,10 @@ public class ChargingBench extends AContainer {
private boolean charge(Block b, BlockMenu inv, int slot, ItemStack item) {
SlimefunItem sfItem = SlimefunItem.getByItem(item);
if (sfItem instanceof Rechargeable) {
if (sfItem instanceof Rechargeable rechargeable) {
float charge = getEnergyConsumption() / 2F;
if (((Rechargeable) sfItem).addItemCharge(item, charge)) {
if (rechargeable.addItemCharge(item, charge)) {
removeCharge(b.getLocation(), getEnergyConsumption());
} else if (inv.fits(item, getOutputSlots())) {
inv.pushItem(item, getOutputSlots());

View File

@ -37,8 +37,8 @@ public class ElectricFurnace extends AContainer implements NotHopperable {
for (FurnaceRecipe recipe : snapshot.getRecipes(FurnaceRecipe.class)) {
RecipeChoice choice = recipe.getInputChoice();
if (choice instanceof MaterialChoice) {
for (Material input : ((MaterialChoice) choice).getChoices()) {
if (choice instanceof MaterialChoice materialChoice) {
for (Material input : materialChoice.getChoices()) {
registerRecipe(4, new ItemStack[] { new ItemStack(input) }, new ItemStack[] { recipe.getResult() });
}
}

View File

@ -227,16 +227,14 @@ public class FluidPump extends SimpleSlimefunItem<BlockTicker> implements Invent
}
private @Nonnull ItemStack getFilledBucket(@Nonnull Block fluid) {
switch (fluid.getType()) {
case LAVA:
return new ItemStack(Material.LAVA_BUCKET);
case WATER:
case BUBBLE_COLUMN:
return new ItemStack(Material.WATER_BUCKET);
default:
return switch (fluid.getType()) {
case LAVA -> new ItemStack(Material.LAVA_BUCKET);
case WATER,
BUBBLE_COLUMN -> new ItemStack(Material.WATER_BUCKET);
default ->
// Fallback for any new liquids
return new ItemStack(Material.BUCKET);
}
new ItemStack(Material.BUCKET);
};
}
/**
@ -251,9 +249,8 @@ public class FluidPump extends SimpleSlimefunItem<BlockTicker> implements Invent
if (block.isLiquid()) {
BlockData data = block.getBlockData();
if (data instanceof Levelled) {
if (data instanceof Levelled levelled) {
// Check if this is a full block.
Levelled levelled = (Levelled) data;
return levelled.getLevel() == 0;
}
}

View File

@ -62,7 +62,7 @@ public class AnimalGrowthAccelerator extends AbstractGrowthAccelerator {
}
private boolean isReadyToGrow(Entity n) {
return n instanceof Ageable && n.isValid() && !((Ageable) n).isAdult();
return n instanceof Ageable ageable && n.isValid() && !ageable.isAdult();
}
}

View File

@ -128,9 +128,7 @@ public class AutoBreeder extends SlimefunItem implements InventoryBlock, EnergyN
}
private boolean canBreed(@Nonnull Entity n) {
if (n.isValid() && n instanceof Animals) {
Animals animal = (Animals) n;
if (n.isValid() && n instanceof Animals animal) {
return animal.isAdult() && animal.canBreed() && !animal.isLoveMode();
}

View File

@ -75,8 +75,8 @@ public class ProduceCollector extends AContainer implements RecipeDisplayItem {
// Mushroom Stew from Mooshrooms
addProduce(new AnimalProduce(new ItemStack(Material.BOWL), new ItemStack(Material.MUSHROOM_STEW), n -> {
if (n instanceof MushroomCow) {
return ((MushroomCow) n).isAdult();
if (n instanceof MushroomCow mushroomCow) {
return mushroomCow.isAdult();
} else {
return false;
}
@ -158,8 +158,8 @@ public class ProduceCollector extends AContainer implements RecipeDisplayItem {
@ParametersAreNonnullByDefault
private boolean isValidAnimal(Entity n, Predicate<LivingEntity> predicate) {
if (n instanceof LivingEntity) {
return predicate.test((LivingEntity) n);
if (n instanceof LivingEntity livingEntity) {
return predicate.test(livingEntity);
} else {
return false;
}

View File

@ -44,8 +44,8 @@ public abstract class NetherStarReactor extends Reactor {
public void extraTick(@Nonnull Location l) {
Slimefun.runSync(() -> {
for (Entity entity : l.getWorld().getNearbyEntities(l, 5, 5, 5, n -> n instanceof LivingEntity && n.isValid())) {
if (entity instanceof LivingEntity) {
((LivingEntity) entity).addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 60, 1));
if (entity instanceof LivingEntity livingEntity) {
livingEntity.addPotionEffect(new PotionEffect(PotionEffectType.WITHER, 60, 1));
}
}
});

View File

@ -49,8 +49,8 @@ public class Juice extends SimpleSlimefunItem<ItemConsumptionHandler> {
ItemMeta meta = item.getItemMeta();
if (meta instanceof PotionMeta) {
effects = ((PotionMeta) meta).getCustomEffects();
if (meta instanceof PotionMeta potionMeta) {
effects = potionMeta.getCustomEffects();
} else {
effects = new ArrayList<>();
}

View File

@ -107,8 +107,7 @@ public class InfusedHopper extends SimpleSlimefunItem<BlockTicker> {
}
private boolean isValidItem(@Nonnull Location l, @Nonnull Entity entity) {
if (entity instanceof Item && entity.isValid()) {
Item item = (Item) entity;
if (entity instanceof Item item && entity.isValid()) {
// Check if the item cannot be picked up or has the "no pickup" metadata
return item.getPickupDelay() <= 0 && !SlimefunUtils.hasNoPickupFlag(item) && item.getLocation().distanceSquared(l) > 0.25;
}

View File

@ -61,12 +61,12 @@ public class MagicalZombiePills extends SimpleSlimefunItem<EntityInteractHandler
Player p = e.getPlayer();
if (entity instanceof ZombieVillager) {
if (entity instanceof ZombieVillager zombieVillager) {
useItem(p, item);
healZombieVillager((ZombieVillager) entity, p);
} else if (Slimefun.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_16) && entity instanceof PigZombie) {
healZombieVillager(zombieVillager, p);
} else if (Slimefun.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_16) && entity instanceof PigZombie pigZombie) {
useItem(p, item);
healZombifiedPiglin((PigZombie) entity);
healZombifiedPiglin(pigZombie);
}
};
}

View File

@ -183,9 +183,7 @@ public class EnchantmentRune extends SimpleSlimefunItem<ItemDropHandler> {
}
private boolean findCompatibleItem(@Nonnull Entity n) {
if (n instanceof Item) {
Item item = (Item) n;
if (n instanceof Item item) {
return !isItem(item.getItemStack());
}

View File

@ -43,10 +43,8 @@ public class VillagerRune extends SimpleSlimefunItem<EntityInteractHandler> {
return;
}
if (e.getRightClicked() instanceof Villager) {
Villager v = (Villager) e.getRightClicked();
if (v.getProfession() == Profession.NONE || v.getProfession() == Profession.NITWIT) {
if (e.getRightClicked() instanceof Villager villager) {
if (villager.getProfession() == Profession.NONE || villager.getProfession() == Profession.NITWIT) {
return;
}
@ -55,16 +53,16 @@ public class VillagerRune extends SimpleSlimefunItem<EntityInteractHandler> {
}
// Reset Villager
v.setVillagerExperience(0);
v.setVillagerLevel(1);
v.setProfession(Profession.NONE);
villager.setVillagerExperience(0);
villager.setVillagerLevel(1);
villager.setProfession(Profession.NONE);
e.setCancelled(true);
double offset = ThreadLocalRandom.current().nextDouble(0.5);
v.getWorld().playSound(v.getLocation(), Sound.ENTITY_VILLAGER_CELEBRATE, 1, 1.4F);
v.getWorld().spawnParticle(Particle.CRIMSON_SPORE, v.getLocation(), 10, 0, offset / 2, 0, 0);
v.getWorld().spawnParticle(Particle.ENCHANTMENT_TABLE, v.getLocation(), 5, 0.04, 1, 0.04);
villager.getWorld().playSound(villager.getLocation(), Sound.ENTITY_VILLAGER_CELEBRATE, 1, 1.4F);
villager.getWorld().spawnParticle(Particle.CRIMSON_SPORE, villager.getLocation(), 10, 0, offset / 2, 0, 0);
villager.getWorld().spawnParticle(Particle.ENCHANTMENT_TABLE, villager.getLocation(), 5, 0.04, 1, 0.04);
}
};
}

View File

@ -162,12 +162,10 @@ public class Talisman extends SlimefunItem {
@ParametersAreNonnullByDefault
public static boolean trigger(Event e, SlimefunItem item, boolean sendMessage) {
if (!(item instanceof Talisman)) {
if (!(item instanceof Talisman talisman)) {
return false;
}
Talisman talisman = (Talisman) item;
if (ThreadLocalRandom.current().nextInt(100) > talisman.getChance()) {
return false;
}
@ -239,8 +237,8 @@ public class Talisman extends SlimefunItem {
@ParametersAreNonnullByDefault
private static void cancelEvent(Event e, Talisman talisman) {
if (e instanceof Cancellable && talisman.isEventCancelled()) {
((Cancellable) e).setCancelled(true);
if (e instanceof Cancellable cancellable && talisman.isEventCancelled()) {
cancellable.setCancelled(true);
}
}
@ -301,18 +299,18 @@ public class Talisman extends SlimefunItem {
@Nullable
private static Player getPlayerByEventType(@Nonnull Event e) {
if (e instanceof EntityDeathEvent) {
return ((EntityDeathEvent) e).getEntity().getKiller();
} else if (e instanceof BlockBreakEvent) {
return ((BlockBreakEvent) e).getPlayer();
} else if (e instanceof BlockDropItemEvent) {
return ((BlockDropItemEvent) e).getPlayer();
} else if (e instanceof PlayerEvent) {
return ((PlayerEvent) e).getPlayer();
} else if (e instanceof EntityEvent) {
return (Player) ((EntityEvent) e).getEntity();
} else if (e instanceof EnchantItemEvent) {
return ((EnchantItemEvent) e).getEnchanter();
if (e instanceof EntityDeathEvent entityDeathEvent) {
return entityDeathEvent.getEntity().getKiller();
} else if (e instanceof BlockBreakEvent blockBreakEvent) {
return blockBreakEvent.getPlayer();
} else if (e instanceof BlockDropItemEvent blockDropItemEvent) {
return blockDropItemEvent.getPlayer();
} else if (e instanceof PlayerEvent playerEvent) {
return playerEvent.getPlayer();
} else if (e instanceof EntityEvent entityEvent) {
return (Player) entityEvent.getEntity();
} else if (e instanceof EnchantItemEvent enchantItemEvent) {
return enchantItemEvent.getEnchanter();
}
return null;

View File

@ -70,10 +70,8 @@ public class StrangeNetherGoo extends SimpleSlimefunItem<ItemUseHandler> impleme
private EntityInteractHandler onRightClickEntity() {
return (e, item, hand) -> {
if (e.getRightClicked() instanceof Sheep) {
Sheep s = (Sheep) e.getRightClicked();
if (s.getCustomName() != null) {
if (e.getRightClicked() instanceof Sheep sheep) {
if (sheep.getCustomName() != null) {
e.setCancelled(true);
return;
}
@ -83,9 +81,9 @@ public class StrangeNetherGoo extends SimpleSlimefunItem<ItemUseHandler> impleme
}
// Give Sheep color, name and effect
s.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 60, 2));
s.setColor(DyeColor.PURPLE);
s.setCustomName(ChatColor.DARK_PURPLE + "Tainted Sheep");
sheep.addPotionEffect(new PotionEffect(PotionEffectType.POISON, 60, 2));
sheep.setColor(DyeColor.PURPLE);
sheep.setCustomName(ChatColor.DARK_PURPLE + "Tainted Sheep");
e.setCancelled(true);
}

View File

@ -38,12 +38,11 @@ abstract class AbstractSmeltery extends MultiBlockMachine {
@Override
public void onInteract(Player p, Block b) {
Block dispBlock = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(dispBlock, false).getState();
Block possibleDispenser = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(possibleDispenser, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
List<ItemStack[]> inputs = RecipeType.getRecipeInputList(this);
for (int i = 0; i < inputs.size(); i++) {
@ -51,7 +50,7 @@ abstract class AbstractSmeltery extends MultiBlockMachine {
ItemStack output = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone();
if (SlimefunUtils.canPlayerUseItem(p, output, true)) {
Inventory outputInv = findOutputInventory(output, dispBlock, inv);
Inventory outputInv = findOutputInventory(output, possibleDispenser, inv);
if (outputInv != null) {
craft(p, b, inv, inputs.get(i), output, outputInv);

View File

@ -31,12 +31,11 @@ public class ArmorForge extends AbstractCraftingTable {
@Override
public void onInteract(Player p, Block b) {
Block dispenser = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(dispenser, false).getState();
Block possibleDispenser = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(possibleDispenser, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
List<ItemStack[]> inputs = RecipeType.getRecipeInputList(this);
for (int i = 0; i < inputs.size(); i++) {
@ -44,7 +43,7 @@ public class ArmorForge extends AbstractCraftingTable {
ItemStack output = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone();
if (SlimefunUtils.canPlayerUseItem(p, output, true)) {
craft(p, output, inv, dispenser);
craft(p, output, inv, possibleDispenser);
}
return;

View File

@ -57,9 +57,8 @@ public class Compressor extends MultiBlockMachine {
Block dispBlock = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(dispBlock, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
for (ItemStack item : inv.getContents()) {
for (ItemStack recipeInput : RecipeType.getRecipeInputs(this)) {

View File

@ -33,12 +33,11 @@ public class EnhancedCraftingTable extends AbstractCraftingTable {
@Override
public void onInteract(Player p, Block b) {
Block dispenser = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(dispenser, false).getState();
Block possibleDispenser = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(possibleDispenser, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
List<ItemStack[]> inputs = RecipeType.getRecipeInputList(this);
for (int i = 0; i < inputs.size(); i++) {
@ -46,7 +45,7 @@ public class EnhancedCraftingTable extends AbstractCraftingTable {
ItemStack output = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone();
if (SlimefunUtils.canPlayerUseItem(p, output, true)) {
craft(inv, dispenser, p, b, output);
craft(inv, possibleDispenser, p, b, output);
}
return;
@ -68,8 +67,8 @@ public class EnhancedCraftingTable extends AbstractCraftingTable {
if (outputInv != null) {
SlimefunItem sfItem = SlimefunItem.getByItem(output);
if (sfItem instanceof SlimefunBackpack) {
upgradeBackpack(p, inv, (SlimefunBackpack) sfItem, output);
if (sfItem instanceof SlimefunBackpack backpack) {
upgradeBackpack(p, inv, backpack, output);
}
for (int j = 0; j < 9; j++) {

View File

@ -106,18 +106,17 @@ public class GrindStone extends MultiBlockMachine {
@Override
public void onInteract(Player p, Block b) {
Block dispBlock = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(dispBlock, false).getState();
Block possibleDispenser = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(possibleDispenser, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
for (ItemStack current : inv.getContents()) {
for (ItemStack convert : RecipeType.getRecipeInputs(this)) {
if (convert != null && SlimefunUtils.isItemSimilar(current, convert, true)) {
ItemStack output = RecipeType.getRecipeOutput(this, convert);
Inventory outputInv = findOutputInventory(output, dispBlock, inv);
Inventory outputInv = findOutputInventory(output, possibleDispenser, inv);
if (outputInv != null) {
ItemStack removing = current.clone();

View File

@ -50,18 +50,17 @@ public class Juicer extends MultiBlockMachine {
@Override
public void onInteract(Player p, Block b) {
Block dispBlock = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(dispBlock, false).getState();
Block possibleDispenser = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(possibleDispenser, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
for (ItemStack current : inv.getContents()) {
for (ItemStack convert : RecipeType.getRecipeInputs(this)) {
if (convert != null && SlimefunUtils.isItemSimilar(current, convert, true)) {
ItemStack adding = RecipeType.getRecipeOutput(this, convert);
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
Inventory outputInv = findOutputInventory(adding, possibleDispenser, inv);
if (outputInv != null) {
ItemStack removing = current.clone();

View File

@ -34,18 +34,17 @@ public class MagicWorkbench extends AbstractCraftingTable {
@Override
public void onInteract(Player p, Block b) {
Block dispenser = locateDispenser(b);
Block possibleDispener = locateDispenser(b);
if (dispenser == null) {
if (possibleDispener == null) {
// How even...
return;
}
BlockState state = PaperLib.getBlockState(dispenser, false).getState();
BlockState state = PaperLib.getBlockState(possibleDispener, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
List<ItemStack[]> inputs = RecipeType.getRecipeInputList(this);
for (int i = 0; i < inputs.size(); i++) {
@ -53,7 +52,7 @@ public class MagicWorkbench extends AbstractCraftingTable {
ItemStack output = RecipeType.getRecipeOutputList(this, inputs.get(i)).clone();
if (SlimefunUtils.canPlayerUseItem(p, output, true)) {
craft(inv, dispenser, p, b, output);
craft(inv, possibleDispener, p, b, output);
}
return;
@ -76,8 +75,8 @@ public class MagicWorkbench extends AbstractCraftingTable {
if (outputInv != null) {
SlimefunItem sfItem = SlimefunItem.getByItem(output);
if (sfItem instanceof SlimefunBackpack) {
upgradeBackpack(p, inv, (SlimefunBackpack) sfItem, output);
if (sfItem instanceof SlimefunBackpack backpack) {
upgradeBackpack(p, inv, backpack, output);
}
for (int j = 0; j < 9; j++) {

View File

@ -173,18 +173,17 @@ public class OreCrusher extends MultiBlockMachine {
@Override
public void onInteract(Player p, Block b) {
Block dispBlock = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(dispBlock, false).getState();
Block possibleDispenser = b.getRelative(BlockFace.DOWN);
BlockState state = PaperLib.getBlockState(possibleDispenser, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
for (ItemStack current : inv.getContents()) {
for (ItemStack convert : RecipeType.getRecipeInputs(this)) {
if (convert != null && SlimefunUtils.isItemSimilar(current, convert, true)) {
ItemStack adding = RecipeType.getRecipeOutput(this, convert);
Inventory outputInv = findOutputInventory(adding, dispBlock, inv);
Inventory outputInv = findOutputInventory(adding, possibleDispenser, inv);
if (SlimefunUtils.canPlayerUseItem(p, adding, true)) {
if (outputInv != null) {

View File

@ -39,25 +39,24 @@ public class PressureChamber extends MultiBlockMachine {
@Override
public void onInteract(Player p, Block b) {
Block dispBlock = b.getRelative(BlockFace.UP).getRelative(BlockFace.UP);
BlockState state = PaperLib.getBlockState(dispBlock, false).getState();
Block possibleDispenser = b.getRelative(BlockFace.UP).getRelative(BlockFace.UP);
BlockState state = PaperLib.getBlockState(possibleDispenser, false).getState();
if (state instanceof Dispenser) {
Dispenser disp = (Dispenser) state;
Inventory inv = disp.getInventory();
if (state instanceof Dispenser dispenser) {
Inventory inv = dispenser.getInventory();
for (ItemStack current : inv.getContents()) {
for (ItemStack convert : RecipeType.getRecipeInputs(this)) {
if (convert != null && SlimefunUtils.isItemSimilar(current, convert, true)) {
ItemStack output = RecipeType.getRecipeOutput(this, convert);
Inventory outputInv = findOutputInventory(output, dispBlock, inv);
Inventory outputInv = findOutputInventory(output, possibleDispenser, inv);
if (outputInv != null) {
ItemStack removing = current.clone();
removing.setAmount(convert.getAmount());
inv.removeItem(removing);
craft(p, b, output, inv, dispBlock);
craft(p, b, output, inv, possibleDispenser);
} else {
Slimefun.getLocalization().sendMessage(p, "machines.full-inventory", true);
}

View File

@ -143,7 +143,6 @@ class MiningTask implements Runnable {
if (fuelLevel <= 0) {
// This Miner has not enough fuel.
stop(MinerStoppingReason.NO_FUEL);
return;
}
});
@ -268,8 +267,8 @@ class MiningTask implements Runnable {
if (chest.getType() == Material.CHEST) {
BlockState state = PaperLib.getBlockState(chest, false).getState();
if (state instanceof Chest) {
Inventory inv = ((Chest) state).getBlockInventory();
if (state instanceof Chest chest) {
Inventory inv = chest.getBlockInventory();
if (InvUtils.fits(inv, item)) {
inv.addItem(item);
@ -299,7 +298,7 @@ class MiningTask implements Runnable {
if (chest.getType() == Material.CHEST) {
BlockState state = PaperLib.getBlockState(chest, false).getState();
if (state instanceof Chest) {
if (state instanceof Chest chest) {
Inventory inv = ((Chest) state).getBlockInventory();
this.fuelLevel = grabFuelFrom(inv);
}

View File

@ -19,26 +19,17 @@ class OreDictionary14 implements OreDictionary {
@Override
@ParametersAreNonnullByDefault
public @Nonnull ItemStack getDrops(Material material, Random random) {
switch (material) {
case COAL_ORE:
return new ItemStack(Material.COAL);
case DIAMOND_ORE:
return new ItemStack(Material.DIAMOND);
case EMERALD_ORE:
return new ItemStack(Material.EMERALD);
case REDSTONE_ORE:
return new ItemStack(Material.REDSTONE, 4 + random.nextInt(2));
case LAPIS_ORE:
return new ItemStack(Material.LAPIS_LAZULI, 4 + random.nextInt(4));
case NETHER_QUARTZ_ORE:
return new ItemStack(Material.QUARTZ);
case IRON_ORE:
return new ItemStack(Material.IRON_ORE);
case GOLD_ORE:
return new ItemStack(Material.GOLD_ORE);
default:
return new ItemStack(material);
}
return switch (material) {
case COAL_ORE -> new ItemStack(Material.COAL);
case DIAMOND_ORE -> new ItemStack(Material.DIAMOND);
case EMERALD_ORE -> new ItemStack(Material.EMERALD);
case REDSTONE_ORE -> new ItemStack(Material.REDSTONE, 4 + random.nextInt(2));
case LAPIS_ORE -> new ItemStack(Material.LAPIS_LAZULI, 4 + random.nextInt(4));
case NETHER_QUARTZ_ORE -> new ItemStack(Material.QUARTZ);
case IRON_ORE -> new ItemStack(Material.IRON_ORE);
case GOLD_ORE -> new ItemStack(Material.GOLD_ORE);
default -> new ItemStack(material);
};
}
}

View File

@ -19,15 +19,12 @@ class OreDictionary16 extends OreDictionary14 {
@Override
@ParametersAreNonnullByDefault
public @Nonnull ItemStack getDrops(Material material, Random random) {
switch (material) {
case NETHER_GOLD_ORE:
// In 1.16, breaking nether gold ores should get gold nuggets
return new ItemStack(Material.GOLD_NUGGET, 2 + random.nextInt(4));
case ANCIENT_DEBRIS:
return new ItemStack(Material.ANCIENT_DEBRIS);
default:
return super.getDrops(material, random);
}
return switch (material) {
// In 1.16, breaking nether gold ores should get gold nuggets
case NETHER_GOLD_ORE -> new ItemStack(Material.GOLD_NUGGET, 2 + random.nextInt(4));
case ANCIENT_DEBRIS -> new ItemStack(Material.ANCIENT_DEBRIS);
default -> super.getDrops(material, random);
};
}
}

View File

@ -19,34 +19,25 @@ class OreDictionary17 extends OreDictionary16 {
@ParametersAreNonnullByDefault
public ItemStack getDrops(Material material, Random random) {
// In 1.17, breaking metal ores should get raw metals. Also support deepslate ores.
switch (material) {
case COAL_ORE:
case DEEPSLATE_COAL_ORE:
return new ItemStack(Material.COAL);
case DIAMOND_ORE:
case DEEPSLATE_DIAMOND_ORE:
return new ItemStack(Material.DIAMOND);
case EMERALD_ORE:
case DEEPSLATE_EMERALD_ORE:
return new ItemStack(Material.EMERALD);
case REDSTONE_ORE:
case DEEPSLATE_REDSTONE_ORE:
return new ItemStack(Material.REDSTONE, 4 + random.nextInt(2));
case LAPIS_ORE:
case DEEPSLATE_LAPIS_ORE:
return new ItemStack(Material.LAPIS_LAZULI, 4 + random.nextInt(4));
case COPPER_ORE:
case DEEPSLATE_COPPER_ORE:
return new ItemStack(Material.RAW_COPPER);
case IRON_ORE:
case DEEPSLATE_IRON_ORE:
return new ItemStack(Material.RAW_IRON);
case GOLD_ORE:
case DEEPSLATE_GOLD_ORE:
return new ItemStack(Material.RAW_GOLD);
default:
return super.getDrops(material, random);
}
return switch (material) {
case COAL_ORE,
DEEPSLATE_COAL_ORE -> new ItemStack(Material.COAL);
case DIAMOND_ORE,
DEEPSLATE_DIAMOND_ORE -> new ItemStack(Material.DIAMOND);
case EMERALD_ORE,
DEEPSLATE_EMERALD_ORE -> new ItemStack(Material.EMERALD);
case REDSTONE_ORE,
DEEPSLATE_REDSTONE_ORE -> new ItemStack(Material.REDSTONE, 4 + random.nextInt(2));
case LAPIS_ORE,
DEEPSLATE_LAPIS_ORE -> new ItemStack(Material.LAPIS_LAZULI, 4 + random.nextInt(4));
case COPPER_ORE,
DEEPSLATE_COPPER_ORE -> new ItemStack(Material.RAW_COPPER);
case IRON_ORE,
DEEPSLATE_IRON_ORE -> new ItemStack(Material.RAW_IRON);
case GOLD_ORE,
DEEPSLATE_GOLD_ORE -> new ItemStack(Material.RAW_GOLD);
default -> super.getDrops(material, random);
};
}
}

View File

@ -61,9 +61,9 @@ public class PickaxeOfContainment extends SimpleSlimefunItem<ToolUseHandler> {
private @Nonnull ItemStack breakSpawner(@Nonnull Block b) {
AbstractMonsterSpawner spawner;
/**
* If the spawner's BlockStorage has BlockInfo, then it's not a vanilla spawner
* and should not give a broken spawner but a repaired one instead.
/*
If the spawner's BlockStorage has BlockInfo, then it's not a vanilla spawner
and should not give a broken spawner but a repaired one instead.
*/
if (BlockStorage.hasBlockInfo(b)) {
spawner = (AbstractMonsterSpawner) SlimefunItems.REPAIRED_SPAWNER.getItem();
@ -73,8 +73,8 @@ public class PickaxeOfContainment extends SimpleSlimefunItem<ToolUseHandler> {
BlockState state = PaperLib.getBlockState(b, false).getState();
if (state instanceof CreatureSpawner) {
EntityType entityType = ((CreatureSpawner) state).getSpawnedType();
if (state instanceof CreatureSpawner creatureSpawner) {
EntityType entityType = creatureSpawner.getSpawnedType();
return spawner.getItemForEntityType(entityType);
}

View File

@ -36,16 +36,14 @@ public class IcyBow extends SlimefunBow {
@Override
public BowShootHandler onShoot() {
return (e, n) -> {
if (n instanceof Player) {
Player p = (Player) n;
if (n instanceof Player player) {
// Fixes #3060 - Don't apply effects if the arrow was successfully blocked.
if (p.isBlocking() && e.getFinalDamage() <= 0) {
if (player.isBlocking() && e.getFinalDamage() <= 0) {
return;
}
if (Slimefun.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_17)) {
p.setFreezeTicks(60);
player.setFreezeTicks(60);
}
}
n.getWorld().playEffect(n.getLocation(), Effect.STEP_SOUND, Material.ICE);

View File

@ -57,7 +57,7 @@ public class AutoCrafterListener implements Listener {
SlimefunItem block = slimefunBlock.get();
if (block instanceof AbstractAutoCrafter) {
if (block instanceof AbstractAutoCrafter crafter) {
Optional<SlimefunItem> slimefunItem = e.getSlimefunItem();
if (!e.getPlayer().isSneaking() && slimefunItem.isPresent() && slimefunItem.get() instanceof Multimeter) {
@ -80,8 +80,6 @@ public class AutoCrafterListener implements Listener {
}
// Fixes 2896 - Forward the interaction before items get handled.
AbstractAutoCrafter crafter = (AbstractAutoCrafter) block;
try {
crafter.onRightClick(clickedBlock.get(), e.getPlayer());
} catch (Exception | LinkageError x) {
@ -94,7 +92,7 @@ public class AutoCrafterListener implements Listener {
@ParametersAreNonnullByDefault
private boolean hasUnlockedRecipe(Player p, ItemStack item) {
for (Recipe recipe : Slimefun.getMinecraftRecipeService().getRecipesFor(item)) {
if (recipe instanceof Keyed && !p.hasDiscoveredRecipe(((Keyed) recipe).getKey())) {
if (recipe instanceof Keyed keyed && !p.hasDiscoveredRecipe(keyed.getKey())) {
return false;
}
}

View File

@ -94,12 +94,12 @@ public class BackpackListener implements Listener {
if (item != null) {
SlimefunItem backpack = SlimefunItem.getByItem(item);
if (backpack instanceof SlimefunBackpack) {
if (backpack instanceof SlimefunBackpack slimefunBackpack) {
if (e.getClick() == ClickType.NUMBER_KEY) {
if (e.getClickedInventory().getType() != InventoryType.PLAYER) {
ItemStack hotbarItem = e.getWhoClicked().getInventory().getItem(e.getHotbarButton());
if (!isAllowed((SlimefunBackpack) backpack, hotbarItem)) {
if (!isAllowed(slimefunBackpack, hotbarItem)) {
e.setCancelled(true);
}
}
@ -107,10 +107,10 @@ public class BackpackListener implements Listener {
// Fixes #3265
ItemStack offHandItem = e.getWhoClicked().getInventory().getItemInOffHand();
if (!isAllowed((SlimefunBackpack) backpack, offHandItem)) {
if (!isAllowed(slimefunBackpack, offHandItem)) {
e.setCancelled(true);
}
} else if (!isAllowed((SlimefunBackpack) backpack, e.getCurrentItem())) {
} else if (!isAllowed(slimefunBackpack, e.getCurrentItem())) {
e.setCancelled(true);
}
}

View File

@ -49,8 +49,8 @@ public class ButcherAndroidListener implements Listener {
// Collect any nearby dropped items
for (Entity n : e.getEntity().getNearbyEntities(0.5D, 0.5D, 0.5D)) {
if (n instanceof Item && n.isValid() && !SlimefunUtils.hasNoPickupFlag((Item) n)) {
items.add(((Item) n).getItemStack());
if (n instanceof Item item && n.isValid() && !SlimefunUtils.hasNoPickupFlag(item)) {
items.add(item.getItemStack());
n.remove();
}
}

View File

@ -49,19 +49,17 @@ public class CoolerListener implements Listener {
@EventHandler
public void onHungerLoss(FoodLevelChangeEvent e) {
if (e.getEntity() instanceof Player) {
Player p = (Player) e.getEntity();
if (e.getFoodLevel() < p.getFoodLevel()) {
checkAndConsume(p);
if (e.getEntity() instanceof Player player) {
if (e.getFoodLevel() < player.getFoodLevel()) {
checkAndConsume(player);
}
}
}
@EventHandler
public void onHungerDamage(EntityDamageEvent e) {
if (e.getEntity() instanceof Player && e.getCause() == DamageCause.STARVATION) {
checkAndConsume((Player) e.getEntity());
if (e.getEntity() instanceof Player player && e.getCause() == DamageCause.STARVATION) {
checkAndConsume(player);
}
}

View File

@ -168,8 +168,7 @@ public class DebugFishListener implements Listener {
p.sendMessage(ChatColors.color(" &dChunk Timings: &e" + Slimefun.getProfiler().getTime(b.getChunk())));
}
if (item instanceof EnergyNetComponent) {
EnergyNetComponent component = (EnergyNetComponent) item;
if (item instanceof EnergyNetComponent component) {
p.sendMessage(ChatColors.color("&dEnergyNet Component"));
p.sendMessage(ChatColors.color(" &dType: &e" + component.getEnergyComponentType()));

View File

@ -46,8 +46,7 @@ public class DispenserListener implements Listener {
machine.callItemHandler(BlockDispenseHandler.class, handler -> {
BlockState state = PaperLib.getBlockState(b, false).getState();
if (state instanceof Dispenser) {
Dispenser dispenser = (Dispenser) state;
if (state instanceof Dispenser dispenser) {
BlockFace face = ((Directional) b.getBlockData()).getFacing();
Block block = b.getRelative(face);
handler.onBlockDispense(e, dispenser, block, machine);

View File

@ -60,8 +60,8 @@ public class ElytraImpactListener implements Listener {
e.setDamage(0);
p.playSound(p.getLocation(), Sound.BLOCK_STONE_HIT, 20, 1);
if (item instanceof DamageableItem) {
((DamageableItem) item).damageItem(p, p.getInventory().getHelmet());
if (item instanceof DamageableItem damageableItem) {
damageableItem.damageItem(p, p.getInventory().getHelmet());
}
}
}

View File

@ -47,9 +47,9 @@ public class EnhancedFurnaceListener implements Listener {
SlimefunItem furnace = BlockStorage.check(e.getBlock());
if (furnace instanceof EnhancedFurnace && ((EnhancedFurnace) furnace).getFuelEfficiency() > 0) {
if (furnace instanceof EnhancedFurnace enhancedFurnace && enhancedFurnace.getFuelEfficiency() > 0) {
int burnTime = e.getBurnTime();
int newBurnTime = ((EnhancedFurnace) furnace).getFuelEfficiency() * burnTime;
int newBurnTime = enhancedFurnace.getFuelEfficiency() * burnTime;
e.setBurnTime(Math.min(newBurnTime, Short.MAX_VALUE - 1));
}
@ -64,14 +64,14 @@ public class EnhancedFurnaceListener implements Listener {
SlimefunItem sfItem = BlockStorage.check(e.getBlock());
if (sfItem instanceof EnhancedFurnace) {
if (sfItem instanceof EnhancedFurnace enhancedFurnace) {
BlockState state = PaperLib.getBlockState(e.getBlock(), false).getState();
if (state instanceof Furnace) {
FurnaceInventory inventory = ((Furnace) state).getInventory();
if (state instanceof Furnace furnace) {
FurnaceInventory inventory = furnace.getInventory();
boolean multiplier = SlimefunTag.ENHANCED_FURNACE_LUCK_MATERIALS.isTagged(inventory.getSmelting().getType());
int amount = multiplier ? ((EnhancedFurnace) sfItem).getRandomOutputAmount() : 1;
int amount = multiplier ? enhancedFurnace.getRandomOutputAmount() : 1;
Optional<ItemStack> result = Slimefun.getMinecraftRecipeService().getFurnaceOutput(inventory.getSmelting());
if (result.isPresent()) {

View File

@ -70,8 +70,8 @@ public class GadgetsListener implements Listener {
return;
}
if (chestplate instanceof Jetpack) {
double thrust = ((Jetpack) chestplate).getThrust();
if (chestplate instanceof Jetpack jetpack) {
double thrust = jetpack.getThrust();
if (thrust > 0.2) {
new JetpackTask(p, (Jetpack) chestplate).scheduleRepeating(0, 3);
@ -82,8 +82,8 @@ public class GadgetsListener implements Listener {
}
private void handleBoots(@Nonnull Player p, @Nullable SlimefunItem boots) {
if (boots instanceof JetBoots && boots.canUse(p, true)) {
double speed = ((JetBoots) boots).getSpeed();
if (boots instanceof JetBoots jetBoots && boots.canUse(p, true)) {
double speed = jetBoots.getSpeed();
if (speed > 0.2) {
new JetBootsTask(p, (JetBoots) boots).scheduleRepeating(0, 2);

View File

@ -61,8 +61,8 @@ public class GrapplingHookListener implements Listener {
return;
}
if (e.getDamager() instanceof Arrow) {
handleGrapplingHook((Arrow) e.getDamager());
if (e.getDamager() instanceof Arrow arrow) {
handleGrapplingHook(arrow);
}
}
@ -73,8 +73,8 @@ public class GrapplingHookListener implements Listener {
}
Slimefun.runSync(() -> {
if (e.getEntity() instanceof Arrow) {
handleGrapplingHook((Arrow) e.getEntity());
if (e.getEntity() instanceof Arrow arrow) {
handleGrapplingHook(arrow);
}
}, 2L);
}
@ -86,8 +86,8 @@ public class GrapplingHookListener implements Listener {
}
// This is called when the arrow shoots off a painting or an item frame
if (e.getRemover() instanceof Arrow) {
handleGrapplingHook((Arrow) e.getRemover());
if (e.getRemover() instanceof Arrow arrow) {
handleGrapplingHook(arrow);
}
}
@ -130,8 +130,8 @@ public class GrapplingHookListener implements Listener {
return;
}
if (e.getEntity() instanceof Arrow) {
handleGrapplingHook((Arrow) e.getEntity());
if (e.getEntity() instanceof Arrow arrow) {
handleGrapplingHook(arrow);
}
}
@ -153,9 +153,8 @@ public class GrapplingHookListener implements Listener {
}
private void handleGrapplingHook(@Nullable Arrow arrow) {
if (arrow != null && arrow.isValid() && arrow.getShooter() instanceof Player) {
Player p = (Player) arrow.getShooter();
GrapplingHookEntity hook = activeHooks.get(p.getUniqueId());
if (arrow != null && arrow.isValid() && arrow.getShooter() instanceof Player player) {
GrapplingHookEntity hook = activeHooks.get(player.getUniqueId());
if (hook != null) {
Location target = arrow.getLocation();
@ -163,14 +162,14 @@ public class GrapplingHookListener implements Listener {
Vector velocity = new Vector(0.0, 0.2, 0.0);
if (p.getLocation().distance(target) < 3.0) {
if (target.getY() <= p.getLocation().getY()) {
velocity = target.toVector().subtract(p.getLocation().toVector());
if (player.getLocation().distance(target) < 3.0) {
if (target.getY() <= player.getLocation().getY()) {
velocity = target.toVector().subtract(player.getLocation().toVector());
}
} else {
Location l = p.getLocation();
Location l = player.getLocation();
l.setY(l.getY() + 0.5);
p.teleport(l);
player.teleport(l);
double g = -0.08;
double d = target.distance(l);
@ -179,16 +178,16 @@ public class GrapplingHookListener implements Listener {
double vY = (1.0 + 0.04 * t) * (target.getY() - l.getY()) / t - 0.5D * g * t;
double vZ = (1.0 + 0.08 * t) * (target.getZ() - l.getZ()) / t;
velocity = p.getVelocity();
velocity = player.getVelocity();
velocity.setX(vX);
velocity.setY(vY);
velocity.setZ(vZ);
}
p.setVelocity(velocity);
player.setVelocity(velocity);
hook.remove();
Slimefun.runSync(() -> activeHooks.remove(p.getUniqueId()), 20L);
Slimefun.runSync(() -> activeHooks.remove(player.getUniqueId()), 20L);
}
}
}

View File

@ -68,9 +68,9 @@ public class SlimefunBootsListener implements Listener {
return;
}
if (boots instanceof StomperBoots) {
if (boots instanceof StomperBoots stomperBoots) {
e.setCancelled(true);
((StomperBoots) boots).stomp(e);
stomperBoots.stomp(e);
} else if (boots instanceof LongFallBoots) {
e.setCancelled(true);

View File

@ -55,8 +55,8 @@ public class SlimefunBowListener implements Listener {
if (e.getEntity() instanceof Player && e.getProjectile() instanceof Arrow) {
SlimefunItem bow = SlimefunItem.getByItem(e.getBow());
if (bow instanceof SlimefunBow) {
projectiles.put(e.getProjectile().getUniqueId(), (SlimefunBow) bow);
if (bow instanceof SlimefunBow slimefunBow) {
projectiles.put(e.getProjectile().getUniqueId(), slimefunBow);
}
}
}

View File

@ -99,8 +99,8 @@ public class TalismanListener implements Listener {
Talisman.trigger(e, SlimefunItems.TALISMAN_WARRIOR);
break;
case PROJECTILE:
if (e instanceof EntityDamageByEntityEvent) {
onProjectileDamage((EntityDamageByEntityEvent) e);
if (e instanceof EntityDamageByEntityEvent entityDamageByEntityEvent) {
onProjectileDamage(entityDamageByEntityEvent);
}
break;
default:
@ -111,9 +111,7 @@ public class TalismanListener implements Listener {
private void onProjectileDamage(@Nonnull EntityDamageByEntityEvent e) {
// "Fixes" #1022 - We just ignore Tridents now.
if (e.getDamager() instanceof Projectile && !(e.getDamager() instanceof Trident)) {
Projectile projectile = (Projectile) e.getDamager();
if (e.getDamager() instanceof Projectile projectile && !(e.getDamager() instanceof Trident)) {
if (Talisman.trigger(e, SlimefunItems.TALISMAN_WHIRLWIND)) {
Player p = (Player) e.getEntity();
returnProjectile(p, projectile);
@ -138,8 +136,7 @@ public class TalismanListener implements Listener {
returnedProjectile.setShooter(projectile.getShooter());
returnedProjectile.setVelocity(direction);
if (projectile instanceof AbstractArrow) {
AbstractArrow firedArrow = (AbstractArrow) projectile;
if (projectile instanceof AbstractArrow firedArrow) {
AbstractArrow returnedArrow = (AbstractArrow) returnedProjectile;
returnedArrow.setDamage(firedArrow.getDamage());
@ -188,14 +185,12 @@ public class TalismanListener implements Listener {
List<ItemStack> items = new ArrayList<>(drops);
// Prevent duplication of items stored inside a Horse's chest
if (entity instanceof ChestedHorse) {
ChestedHorse horse = (ChestedHorse) entity;
if (horse.isCarryingChest()) {
if (entity instanceof ChestedHorse chestedHorse) {
if (chestedHorse.isCarryingChest()) {
// The chest is not included in getStorageContents()
items.remove(new ItemStack(Material.CHEST));
for (ItemStack item : horse.getInventory().getStorageContents()) {
for (ItemStack item : chestedHorse.getInventory().getStorageContents()) {
items.remove(item);
}
}
@ -252,8 +247,8 @@ public class TalismanListener implements Listener {
ItemStack item = e.getBrokenItem().clone();
ItemMeta meta = item.getItemMeta();
if (meta instanceof Damageable) {
((Damageable) meta).setDamage(0);
if (meta instanceof Damageable damageable) {
damageable.setDamage(0);
}
item.setItemMeta(meta);

View File

@ -64,7 +64,7 @@ public class TeleporterListener implements Listener {
// Pressure plate was an elevator
ElevatorPlate elevator = SlimefunItems.ELEVATOR_PLATE.getItem(ElevatorPlate.class);
elevator.openInterface(p, b);
} else if (item instanceof AbstractTeleporterPlate && ((AbstractTeleporterPlate) item).hasAccess(p, b)) {
} else if (item instanceof AbstractTeleporterPlate teleporterPlate && teleporterPlate.hasAccess(p, b)) {
// Pressure plate was a teleporter
SlimefunItem teleporter = BlockStorage.check(b.getRelative(BlockFace.DOWN));

View File

@ -28,13 +28,13 @@ public class AnvilListener implements SlimefunCraftingListener {
@EventHandler(ignoreCancelled = true)
public void onAnvil(InventoryClickEvent e) {
if (e.getRawSlot() == 2 && e.getInventory().getType() == InventoryType.ANVIL && e.getWhoClicked() instanceof Player) {
if (e.getRawSlot() == 2 && e.getInventory().getType() == InventoryType.ANVIL && e.getWhoClicked() instanceof Player player) {
ItemStack item1 = e.getInventory().getContents()[0];
ItemStack item2 = e.getInventory().getContents()[1];
if (hasUnallowedItems(item1, item2)) {
e.setResult(Result.DENY);
Slimefun.getLocalization().sendMessage((Player) e.getWhoClicked(), "anvil.not-working", true);
Slimefun.getLocalization().sendMessage(player, "anvil.not-working", true);
}
}
}

View File

@ -28,13 +28,13 @@ public class CartographyTableListener implements SlimefunCraftingListener {
@EventHandler(ignoreCancelled = true)
public void onCartographyTable(InventoryClickEvent e) {
if (e.getRawSlot() == 2 && e.getInventory().getType() == InventoryType.CARTOGRAPHY && e.getWhoClicked() instanceof Player) {
if (e.getRawSlot() == 2 && e.getInventory().getType() == InventoryType.CARTOGRAPHY && e.getWhoClicked() instanceof Player player) {
ItemStack item1 = e.getInventory().getContents()[0];
ItemStack item2 = e.getInventory().getContents()[1];
if (hasUnallowedItems(item1, item2)) {
e.setResult(Result.DENY);
Slimefun.getLocalization().sendMessage((Player) e.getWhoClicked(), "cartography_table.not-working", true);
Slimefun.getLocalization().sendMessage(player, "cartography_table.not-working", true);
}
}
}

View File

@ -28,15 +28,14 @@ public class FireworksListener implements Listener {
@EventHandler
public void onResearchFireworkDamage(EntityDamageByEntityEvent e) {
if (e.getDamager() instanceof Firework) {
Firework firework = (Firework) e.getDamager();
if (e.getDamager() instanceof Firework firework) {
FireworkMeta meta = firework.getFireworkMeta();
/**
* We could use Peristent Data for this in the future, but ItemMeta display names
* work pretty reliably too and they don't cause any memory leaks like metadata.
*
* Entity display names do not work either as Firework cannot be named.
/*
We could use Peristent Data for this in the future, but ItemMeta display names
work pretty reliably too and they don't cause any memory leaks like metadata.
Entity display names do not work either as Firework cannot be named.
*/
if (meta.hasDisplayName() && meta.getDisplayName().equals(ChatColor.GREEN + "Slimefun Research")) {
e.setCancelled(true);

View File

@ -67,16 +67,16 @@ public class MobDropListener implements Listener {
if (sfItem == null) {
return true;
} else if (sfItem.canUse(p, true)) {
if (sfItem instanceof RandomMobDrop) {
if (sfItem instanceof RandomMobDrop randomMobDrop) {
int random = ThreadLocalRandom.current().nextInt(100);
if (((RandomMobDrop) sfItem).getMobDropChance() <= random) {
if (randomMobDrop.getMobDropChance() <= random) {
return false;
}
}
if (sfItem instanceof BasicCircuitBoard) {
return ((BasicCircuitBoard) sfItem).isDroppedFromGolems();
if (sfItem instanceof BasicCircuitBoard basicCircuitBoard) {
return basicCircuitBoard.isDroppedFromGolems();
}
return true;

View File

@ -90,8 +90,8 @@ public class PiglinListener implements Listener {
SlimefunItem sfi = SlimefunItem.getByItem(is);
// Check the getBarteringLootChance and compare against a random number 0-100,
// if the random number is greater then replace the item.
if (sfi instanceof PiglinBarterDrop) {
int chance = ((PiglinBarterDrop) sfi).getBarteringLootChance();
if (sfi instanceof PiglinBarterDrop piglinBarterDrop) {
int chance = piglinBarterDrop.getBarteringLootChance();
if (chance < 1 || chance >= 100) {
sfi.warn("The Piglin Bartering chance must be between 1-99% on item: " + sfi.getId());

View File

@ -36,9 +36,9 @@ public class WitherListener implements Listener {
SlimefunItem item = BlockStorage.check(e.getBlock());
// Hardened Glass is excluded from here
if (item instanceof WitherProof && !item.getId().equals(SlimefunItems.HARDENED_GLASS.getItemId())) {
if (item instanceof WitherProof witherProofBlock && !item.getId().equals(SlimefunItems.HARDENED_GLASS.getItemId())) {
e.setCancelled(true);
((WitherProof) item).onAttack(e.getBlock(), (Wither) e.getEntity());
witherProofBlock.onAttack(e.getBlock(), (Wither) e.getEntity());
}
}
}

View File

@ -193,9 +193,7 @@ public final class PostSetup {
}
for (SlimefunItem item : Slimefun.getRegistry().getEnabledSlimefunItems()) {
if (item instanceof AContainer) {
AContainer machine = (AContainer) item;
if (item instanceof AContainer machine) {
if (machine.getMachineIdentifier().equals("ELECTRIC_SMELTERY")) {
List<MachineRecipe> recipes = machine.getMachineRecipes();
Collections.sort(recipes, Comparator.comparingInt(recipe -> recipe == null ? 0 : -recipe.getInput().length));
@ -233,12 +231,8 @@ public final class PostSetup {
private static void registerMachineRecipe(String machine, int seconds, ItemStack[] input, ItemStack[] output) {
for (SlimefunItem item : Slimefun.getRegistry().getEnabledSlimefunItems()) {
if (item instanceof AContainer) {
AContainer container = (AContainer) item;
if (container.getMachineIdentifier().equals(machine)) {
container.registerRecipe(seconds, input, output);
}
if (item instanceof AContainer container && container.getMachineIdentifier().equals(machine)) {
container.registerRecipe(seconds, input, output);
}
}
}

View File

@ -137,8 +137,8 @@ public class ArmorTask implements Runnable {
SlimefunItem item = SlimefunItem.getByItem(helmet);
if (item instanceof SolarHelmet && item.canUse(p, true)) {
((SolarHelmet) item).rechargeItems(p);
if (item instanceof SolarHelmet solarHelmet && item.canUse(p, true)) {
solarHelmet.rechargeItems(p);
}
}

Some files were not shown because too many files have changed in this diff Show More