From 03c26bc2f9ce53feb2d542169c6998aebabf19b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Tue, 15 Oct 2024 20:40:45 +0200 Subject: [PATCH] code reformat --- .../eu/mhsl/minecraft/pixelblocks/Main.java | 13 +-- .../pixelblocks/PixelBlockConfiguration.java | 9 +- .../pixelblocks/PixelBlockDatabase.java | 18 ++-- .../minecraft/pixelblocks/PixelBlockItem.java | 1 + .../commands/CreatePixelBlockCommand.java | 2 +- .../commands/ExitWorldCommand.java | 2 +- .../listeners/DiscoverRecipesListener.java | 4 +- .../listeners/EnterPixelBlockListener.java | 10 +-- .../listeners/PlacePixelListener.java | 6 +- .../listeners/PreventInventorysListener.java | 8 +- .../listeners/PreventLiquidsFlowListener.java | 6 +- .../listeners/PreventPistonsListener.java | 2 +- .../pixelblocks/pixelblock/PixelBlock.java | 30 ++++--- .../pixelblock/PixelBlockHitbox.java | 4 +- .../pixelblock/PixelBlockPlaceholder.java | 5 +- .../pixelblock/PixelBlockWorld.java | 87 ++++++++++--------- .../pixelblocks/utils/LocationUtil.java | 8 +- .../pixelblocks/utils/MinMaxUtil.java | 1 + 18 files changed, 120 insertions(+), 96 deletions(-) diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java index 8acbd4b..a50fc23 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java @@ -31,6 +31,7 @@ public final class Main extends JavaPlugin { public static TaskChain chain() { return taskFactory.newChain(); } + public static TaskChain sharedChain(String name) { return taskFactory.newSharedChain(name); } @@ -44,10 +45,10 @@ public final class Main extends JavaPlugin { this.saveConfig(); Main.configuration = new PixelBlockConfiguration( - config.getInt(PixelBlockConfiguration.Keys.PixelsPerBlock.getKey()), - config.getDouble(PixelBlockConfiguration.Keys.HitboxOffset.getKey()), - config.getBoolean(PixelBlockConfiguration.Keys.OnlyBreakableByOwners.getKey()), - config.getBoolean(PixelBlockConfiguration.Keys.OnlyEditableByOwners.getKey()) + config.getInt(PixelBlockConfiguration.Keys.PixelsPerBlock.getKey()), + config.getDouble(PixelBlockConfiguration.Keys.HitboxOffset.getKey()), + config.getBoolean(PixelBlockConfiguration.Keys.OnlyBreakableByOwners.getKey()), + config.getBoolean(PixelBlockConfiguration.Keys.OnlyEditableByOwners.getKey()) ); File databaseFile = new File(plugin.getDataFolder(), "blocks.db"); @@ -80,7 +81,7 @@ public final class Main extends JavaPlugin { new PreventGrowthListener() }; - for (Listener listener : listeners) { + for(Listener listener : listeners) { getServer().getPluginManager().registerEvents(listener, plugin); } @@ -95,7 +96,7 @@ public final class Main extends JavaPlugin { Bukkit.getOnlinePlayers().forEach(QuitWhileInPixelBlockListener::kickPlayerOutOfWorld); try { database.close(); - } catch (SQLException e) { + } catch(SQLException e) { throw new RuntimeException("Failed disabling", e); } } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockConfiguration.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockConfiguration.java index 803e288..e54f8f8 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockConfiguration.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockConfiguration.java @@ -4,10 +4,10 @@ import org.bukkit.configuration.file.FileConfiguration; import org.jetbrains.annotations.NotNull; public record PixelBlockConfiguration( - int pixelsPerBlock, - double hitboxOffset, - boolean onlyBreakableByOwner, - boolean onlyEditableByOwner + int pixelsPerBlock, + double hitboxOffset, + boolean onlyBreakableByOwner, + boolean onlyEditableByOwner ) { public static void setDefaults(FileConfiguration config) { config.addDefault(Keys.PixelsPerBlock.key, 16); @@ -24,6 +24,7 @@ public record PixelBlockConfiguration( OnlyEditableByOwners("onlyEditableByOwners"); private final String key; + Keys(@NotNull String key) { this.key = key; } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockDatabase.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockDatabase.java index 059e2cf..9ba530f 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockDatabase.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockDatabase.java @@ -1,7 +1,7 @@ package eu.mhsl.minecraft.pixelblocks; -import eu.mhsl.minecraft.pixelblocks.utils.Direction; import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock; +import eu.mhsl.minecraft.pixelblocks.utils.Direction; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -21,7 +21,7 @@ public class PixelBlockDatabase { this.db = DriverManager.getConnection(url); this.db.createStatement().execute( - "CREATE TABLE IF NOT EXISTS pixelblocks (" + + "CREATE TABLE IF NOT EXISTS pixelblocks (" + "uuid CHAR(36) PRIMARY KEY, " + "owner CHAR(36), " + "locationWorldName CHAR(36), " + @@ -33,7 +33,7 @@ public class PixelBlockDatabase { "entryLocationY DOUBLE, " + "entryLocationZ DOUBLE, " + "direction CHAR(36)" + - ")" + ")" ); this.deletePixelBlock = this.db.prepareStatement("DELETE FROM pixelblocks WHERE uuid = ?"); @@ -45,7 +45,7 @@ public class PixelBlockDatabase { "VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);" ); - } catch (SQLException | RuntimeException | ClassNotFoundException e) { + } catch(SQLException | RuntimeException | ClassNotFoundException e) { throw new RuntimeException("Error while initializing database", e); } } @@ -62,7 +62,7 @@ public class PixelBlockDatabase { try { this.deletePixelBlock.setString(1, pixelBlock.getBlockUUID().toString()); this.deletePixelBlock.executeUpdate(); - } catch (SQLException e) { + } catch(SQLException e) { throw new RuntimeException("Failed to delete PixelBlock from the database", e); } }); @@ -79,7 +79,7 @@ public class PixelBlockDatabase { this.insertOrReplacePixelBlock.setDouble(5, pixelBlock.getPixelBlockLocation().getY()); this.insertOrReplacePixelBlock.setDouble(6, pixelBlock.getPixelBlockLocation().getZ()); - if (pixelBlock.hasLastEntryLocation()) { + if(pixelBlock.hasLastEntryLocation()) { this.insertOrReplacePixelBlock.setString(7, pixelBlock.getLastEntryLocation().getWorld().getName()); this.insertOrReplacePixelBlock.setDouble(8, pixelBlock.getLastEntryLocation().getX()); this.insertOrReplacePixelBlock.setDouble(9, pixelBlock.getLastEntryLocation().getY()); @@ -94,7 +94,7 @@ public class PixelBlockDatabase { this.insertOrReplacePixelBlock.setString(11, pixelBlock.getFacingDirection().toString()); this.insertOrReplacePixelBlock.executeUpdate(); - } catch (SQLException e) { + } catch(SQLException e) { throw new RuntimeException("Failed to create or update PixelBlock in the database", e); } }); @@ -104,7 +104,7 @@ public class PixelBlockDatabase { try { ResultSet allPixelBlocks = this.getAllPixelBlocks.executeQuery(); - while (allPixelBlocks.next()) { + while(allPixelBlocks.next()) { Location blockLocation = new Location( Bukkit.getWorld(allPixelBlocks.getString("locationWorldName")), allPixelBlocks.getDouble("locationX"), @@ -127,7 +127,7 @@ public class PixelBlockDatabase { entryLocation )); } - } catch (SQLException e) { + } catch(SQLException e) { throw new RuntimeException("Failed loading PixelBlocks from the database", e); } } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockItem.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockItem.java index ffef957..495de65 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockItem.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlockItem.java @@ -33,6 +33,7 @@ public class PixelBlockItem { return owner != null; } } + public static @Nullable BlockInfo getBlockInfo(ItemStack item) { PersistentDataContainer container = item.getItemMeta().getPersistentDataContainer(); if(!container.has(idProperty)) return null; diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/CreatePixelBlockCommand.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/CreatePixelBlockCommand.java index d20750d..0ca7f20 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/CreatePixelBlockCommand.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/CreatePixelBlockCommand.java @@ -1,8 +1,8 @@ package eu.mhsl.minecraft.pixelblocks.commands; +import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock; import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlockWorld; import eu.mhsl.minecraft.pixelblocks.utils.Direction; -import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.Command; diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/ExitWorldCommand.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/ExitWorldCommand.java index 8bd834c..c6e33c6 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/ExitWorldCommand.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/ExitWorldCommand.java @@ -9,7 +9,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.Objects; public class ExitWorldCommand implements CommandExecutor { @Override diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/DiscoverRecipesListener.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/DiscoverRecipesListener.java index 3d10895..b46ffc2 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/DiscoverRecipesListener.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/DiscoverRecipesListener.java @@ -1,12 +1,12 @@ package eu.mhsl.minecraft.pixelblocks.listeners; -import eu.mhsl.minecraft.pixelblocks.PixelBlockItem; import eu.mhsl.minecraft.pixelblocks.Main; +import eu.mhsl.minecraft.pixelblocks.PixelBlockItem; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.inventory.*; +import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; import java.util.List; diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/EnterPixelBlockListener.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/EnterPixelBlockListener.java index 126f910..ef39746 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/EnterPixelBlockListener.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/EnterPixelBlockListener.java @@ -2,7 +2,7 @@ package eu.mhsl.minecraft.pixelblocks.listeners; import eu.mhsl.minecraft.pixelblocks.Main; import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock; -import org.bukkit.*; +import org.bukkit.Location; import org.bukkit.entity.Interaction; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -14,10 +14,10 @@ public class EnterPixelBlockListener implements Listener { if(!(event.getRightClicked() instanceof Interaction)) return; Location interactionLocation = event - .getRightClicked() - .getLocation() - .add(0, Main.configuration().hitboxOffset(), 0) - .toBlockLocation(); + .getRightClicked() + .getLocation() + .add(0, Main.configuration().hitboxOffset(), 0) + .toBlockLocation(); PixelBlock pixelBlock = PixelBlock.getPixelBlockFromPlacedLocation(interactionLocation); if(pixelBlock == null) return; pixelBlock.enterBlock(event.getPlayer()); diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PlacePixelListener.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PlacePixelListener.java index d32622b..ba5d54a 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PlacePixelListener.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PlacePixelListener.java @@ -19,9 +19,9 @@ public class PlacePixelListener implements Listener { @EventHandler public void onBuketEmpty(PlayerBucketEmptyEvent event) { EventCanceling.shouldCancelInPixelBlock( - event, - event.getBlock().getWorld(), - pixelBlock -> !pixelBlock.getPixelWorld().allowPlacements(event.getBlock().getLocation()) + event, + event.getBlock().getWorld(), + pixelBlock -> !pixelBlock.getPixelWorld().allowPlacements(event.getBlock().getLocation()) ); } } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventInventorysListener.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventInventorysListener.java index b1658bc..ea2339e 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventInventorysListener.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventInventorysListener.java @@ -3,7 +3,9 @@ package eu.mhsl.minecraft.pixelblocks.listeners; import eu.mhsl.minecraft.pixelblocks.utils.EventCanceling; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.inventory.*; +import org.bukkit.event.inventory.InventoryInteractEvent; +import org.bukkit.event.inventory.InventoryOpenEvent; +import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.CraftingInventory; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.PlayerInventory; @@ -29,7 +31,7 @@ public class PreventInventorysListener implements Listener { private static boolean isDisallowedInventory(Inventory inventory) { return !(inventory instanceof PlayerInventory - || inventory instanceof CraftingInventory - || inventory.getType() == InventoryType.ENDER_CHEST); + || inventory instanceof CraftingInventory + || inventory.getType() == InventoryType.ENDER_CHEST); } } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventLiquidsFlowListener.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventLiquidsFlowListener.java index a5a5542..4e5e5b3 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventLiquidsFlowListener.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventLiquidsFlowListener.java @@ -9,9 +9,9 @@ public class PreventLiquidsFlowListener implements Listener { @EventHandler public void onLiquidFlow(BlockFromToEvent event) { EventCanceling.shouldCancelInPixelBlock( - event, - event.getToBlock().getWorld(), - pixelBlock -> !pixelBlock.getPixelWorld().allowPlacements(event.getToBlock().getLocation()) + event, + event.getToBlock().getWorld(), + pixelBlock -> !pixelBlock.getPixelWorld().allowPlacements(event.getToBlock().getLocation()) ); } } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventPistonsListener.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventPistonsListener.java index 2b6242f..57cc363 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventPistonsListener.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/listeners/PreventPistonsListener.java @@ -13,7 +13,7 @@ public class PreventPistonsListener implements Listener { event.getBlock().getWorld(), (pixelBlock) -> event.getBlocks().stream() .anyMatch(block -> !pixelBlock.getPixelWorld() - .allowPlacements(block.getLocation().add(event.getDirection().getDirection()))) + .allowPlacements(block.getLocation().add(event.getDirection().getDirection()))) ); } } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlock.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlock.java index e242453..81ae410 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlock.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlock.java @@ -1,18 +1,24 @@ package eu.mhsl.minecraft.pixelblocks.pixelblock; import co.aikar.taskchain.TaskChain; -import eu.mhsl.minecraft.pixelblocks.PixelBlockItem; import eu.mhsl.minecraft.pixelblocks.Main; +import eu.mhsl.minecraft.pixelblocks.PixelBlockItem; import eu.mhsl.minecraft.pixelblocks.utils.Direction; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; -import org.bukkit.*; -import org.bukkit.entity.*; +import org.bukkit.Location; +import org.bukkit.Sound; +import org.bukkit.World; +import org.bukkit.entity.Item; +import org.bukkit.entity.Player; import org.bukkit.util.Vector; import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; -import java.util.*; +import java.util.Collections; +import java.util.List; +import java.util.Objects; +import java.util.UUID; public class PixelBlock { private boolean exists = true; @@ -32,15 +38,15 @@ public class PixelBlock { public static @Nullable PixelBlock getPixelBlockFromBlockWorld(World world) { return Main.pixelBlocks.stream() - .filter(block -> block.blockUUID.equals(getUUIDFromWorld(world))) - .findFirst() - .orElse(null); + .filter(block -> block.blockUUID.equals(getUUIDFromWorld(world))) + .findFirst() + .orElse(null); } public static @Nullable UUID getUUIDFromWorld(@NotNull World world) { try { return UUID.fromString(List.of(world.getName().split("/")).getLast()); - } catch (IllegalArgumentException e) { + } catch(IllegalArgumentException e) { return null; } } @@ -51,14 +57,15 @@ public class PixelBlock { searchLocation.setYaw(0); return Main.pixelBlocks.stream() - .filter(block -> Objects.equals(block.pixelBlockLocation, searchLocation)) - .findFirst() - .orElse(null); + .filter(block -> Objects.equals(block.pixelBlockLocation, searchLocation)) + .findFirst() + .orElse(null); } public static PixelBlock fromExisting(UUID blockUUID, UUID ownerUUID, Location pixelBlockLocation, Direction direction, Location lastEntryLocation) { return new PixelBlock(blockUUID, ownerUUID, pixelBlockLocation, direction, lastEntryLocation); } + private PixelBlock(UUID blockUUID, UUID ownerUUID, Location pixelBlockLocation, Direction direction, Location lastEntryLocation) { this.blockUUID = blockUUID; this.ownerUUID = ownerUUID; @@ -84,6 +91,7 @@ public class PixelBlock { public static PixelBlock createPixelBlock(UUID blockUUID, UUID ownerUUID, Location pixelBlockLocation, Direction direction) { return new PixelBlock(blockUUID, ownerUUID, pixelBlockLocation, direction); } + private PixelBlock(UUID blockUUID, UUID ownerUUID, Location pixelBlockLocation, Direction direction) { if(Main.pixelBlocks.stream().anyMatch(pixelBlock -> pixelBlock.getBlockUUID().equals(blockUUID))) throw new IllegalStateException(String.format("PixelBlock '%s' ist bereits in der Welt vorhanden!", blockUUID)); diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockHitbox.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockHitbox.java index 2133187..5c987ee 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockHitbox.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockHitbox.java @@ -34,8 +34,8 @@ public class PixelBlockHitbox { pixelBlockLocation.clone().add(0.5, -offset, 0.5), EntityType.INTERACTION ); - interaction.setInteractionHeight(1 + 2*offset); - interaction.setInteractionWidth(1 + 2*offset); + interaction.setInteractionHeight(1 + 2 * offset); + interaction.setInteractionWidth(1 + 2 * offset); } else { // double startingX = this.parentBlock.getPixelBlockLocation().x() + MinMaxUtil.getMinProperty(pixels, pixel -> pixel.relativeLocation().getX()) * scale; // double startingY = this.parentBlock.getPixelBlockLocation().y() + MinMaxUtil.getMinProperty(pixels, pixel -> pixel.relativeLocation().getY()) * scale; diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockPlaceholder.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockPlaceholder.java index 1e62799..dd35dad 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockPlaceholder.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockPlaceholder.java @@ -13,7 +13,10 @@ import org.bukkit.persistence.PersistentDataHolder; import org.bukkit.persistence.PersistentDataType; import org.bukkit.util.Transformation; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.UUID; public class PixelBlockPlaceholder { private static final NamespacedKey placeholderOfTag = new NamespacedKey(Main.plugin(), "placeholder_of"); diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockWorld.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockWorld.java index 3c79f9b..fa55aea 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockWorld.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/pixelblock/PixelBlockWorld.java @@ -46,8 +46,8 @@ public class PixelBlockWorld { Location origin = getBuildOrigin(); int offset = pixelsPerBlock - 1; return blockLocation.x() >= origin.x() && blockLocation.x() <= origin.x() + offset - && blockLocation.z() >= origin.z() && blockLocation.z() <= origin.z() + offset - && blockLocation.y() >= origin.y() && blockLocation.y() <= origin.y() + offset; + && blockLocation.z() >= origin.z() && blockLocation.z() <= origin.z() + offset + && blockLocation.y() >= origin.y() && blockLocation.y() <= origin.y() + offset; } public @NotNull String getWorldPathName() { @@ -59,7 +59,7 @@ public class PixelBlockWorld { } public @NotNull Location getPortalLocation() { - return this.getBuildOrigin().add((double) pixelsPerBlock/2 -2, 0, -worldGrassBorderWidth+3); + return this.getBuildOrigin().add((double) pixelsPerBlock / 2 - 2, 0, -worldGrassBorderWidth + 3); } public @NotNull List getPlayersInWorld() { @@ -90,21 +90,27 @@ public class PixelBlockWorld { return getBorderOrigin().add(worldGrassBorderWidth + pixelsPerBlock, 0, worldGrassBorderWidth + pixelsPerBlock); } - public record PixelData(Vector relativeLocation, BlockData block, double scale) {} + public record PixelData(Vector relativeLocation, BlockData block, double scale) { + } + public List getPixels(Direction direction) { List pixelData = new ArrayList<>(); - for (int x = 0; x < pixelsPerBlock; x++) { - for (int y = 0; y < pixelsPerBlock; y++) { - for (int z = 0; z < pixelsPerBlock; z++) { + for(int x = 0; x < pixelsPerBlock; x++) { + for(int y = 0; y < pixelsPerBlock; y++) { + for(int z = 0; z < pixelsPerBlock; z++) { Location relativeLocation = new Location(world, x, y, z); Location blockLocation = this.getBuildOrigin(); - switch (direction) { - case south -> blockLocation.add(relativeLocation.x(), relativeLocation.y(), relativeLocation.z()); - case north -> blockLocation.add((pixelsPerBlock-1)-relativeLocation.x(), relativeLocation.y(), (pixelsPerBlock-1)-relativeLocation.z()); - case east -> blockLocation.add((pixelsPerBlock-1)-relativeLocation.z(), relativeLocation.y(), relativeLocation.x()); - case west -> blockLocation.add(relativeLocation.z(), relativeLocation.y(), (pixelsPerBlock-1)-relativeLocation.x()); + switch(direction) { + case south -> + blockLocation.add(relativeLocation.x(), relativeLocation.y(), relativeLocation.z()); + case north -> + blockLocation.add((pixelsPerBlock - 1) - relativeLocation.x(), relativeLocation.y(), (pixelsPerBlock - 1) - relativeLocation.z()); + case east -> + blockLocation.add((pixelsPerBlock - 1) - relativeLocation.z(), relativeLocation.y(), relativeLocation.x()); + case west -> + blockLocation.add(relativeLocation.z(), relativeLocation.y(), (pixelsPerBlock - 1) - relativeLocation.x()); } BlockData block = blockLocation.getBlock().getBlockData(); @@ -122,7 +128,8 @@ public class PixelBlockWorld { final WorldCreator worldCreator = new WorldCreator(getWorldPathName()); worldCreator.type(WorldType.FLAT); - worldCreator.generator(new ChunkGenerator() {}); + worldCreator.generator(new ChunkGenerator() { + }); World world = Bukkit.createWorld(worldCreator); Objects.requireNonNull(world); @@ -137,7 +144,7 @@ public class PixelBlockWorld { WorldBorder worldBorder = world.getWorldBorder(); worldBorder.setCenter(getBuildOrigin().add((double) pixelsPerBlock / 2, 0, (double) pixelsPerBlock / 2)); - worldBorder.setSize(pixelsPerBlock + (2*worldGrassBorderWidth)); + worldBorder.setSize(pixelsPerBlock + (2 * worldGrassBorderWidth)); worldBorder.setWarningDistance(0); worldBorder.setDamageAmount(0); return world; @@ -145,24 +152,24 @@ public class PixelBlockWorld { private void setBuildingPlatform() { Bukkit.getScheduler().runTask(Main.plugin(), () -> { - for (int x = 0; x < (pixelsPerBlock+2) + 2 * worldGrassBorderWidth; x++) { - for (int z = 0; z < (pixelsPerBlock+2) + 2 * worldGrassBorderWidth; z++) { + for(int x = 0; x < (pixelsPerBlock + 2) + 2 * worldGrassBorderWidth; x++) { + for(int z = 0; z < (pixelsPerBlock + 2) + 2 * worldGrassBorderWidth; z++) { getPlatformOrigin().add(x, 0, z).getBlock().setType(Material.GRASS_BLOCK); } } - for (int x = 0; x < (pixelsPerBlock+2) + 2 * worldGrassBorderWidth; x++) { - for (int z = 0; z < (pixelsPerBlock+2) + 2 * worldGrassBorderWidth; z++) { + for(int x = 0; x < (pixelsPerBlock + 2) + 2 * worldGrassBorderWidth; x++) { + for(int z = 0; z < (pixelsPerBlock + 2) + 2 * worldGrassBorderWidth; z++) { getPlatformOrigin().add(x, -1, z).getBlock().setType(Material.DIRT); } } - for (int x = 0; x < (pixelsPerBlock+2); x++) { - for (int z = 0; z < (pixelsPerBlock+2); z++) { + for(int x = 0; x < (pixelsPerBlock + 2); x++) { + for(int z = 0; z < (pixelsPerBlock + 2); z++) { Location currentLocation = getBorderOrigin().add(x, 0, z); - if (currentLocation.x() == getBorderOrigin().x() || currentLocation.z() == getBorderOrigin().z()) { + if(currentLocation.x() == getBorderOrigin().x() || currentLocation.z() == getBorderOrigin().z()) { currentLocation.getBlock().setType(Material.RED_CONCRETE); - } else if (currentLocation.x() == getBorderOrigin().x() + (pixelsPerBlock+1) || currentLocation.z() == getBorderOrigin().z() + (pixelsPerBlock+1)) { + } else if(currentLocation.x() == getBorderOrigin().x() + (pixelsPerBlock + 1) || currentLocation.z() == getBorderOrigin().z() + (pixelsPerBlock + 1)) { currentLocation.getBlock().setType(Material.RED_CONCRETE); } } @@ -170,22 +177,22 @@ public class PixelBlockWorld { Random random = new Random(); LocationUtil.iterateBlocks(getPlatformOrigin().add(1, 1, 1), getPlatformOriginEnd().add(0, 1, 0), location -> { - if (allowPlacements(location)) return; - if (!location.clone().subtract(0, 1, 0).getBlock().getType().equals(Material.GRASS_BLOCK)) return; - if (!location.getBlock().getType().equals(Material.AIR)) return; + if(allowPlacements(location)) return; + if(!location.clone().subtract(0, 1, 0).getBlock().getType().equals(Material.GRASS_BLOCK)) return; + if(!location.getBlock().getType().equals(Material.AIR)) return; - if (random.nextInt(10) == 0) { + if(random.nextInt(10) == 0) { Material[] flowers = { - Material.DANDELION, - Material.POPPY, - Material.BLUE_ORCHID, - Material.ALLIUM, - Material.AZURE_BLUET, - Material.RED_TULIP, - Material.ORANGE_TULIP, - Material.WHITE_TULIP, - Material.CORNFLOWER, - Material.LILY_OF_THE_VALLEY, + Material.DANDELION, + Material.POPPY, + Material.BLUE_ORCHID, + Material.ALLIUM, + Material.AZURE_BLUET, + Material.RED_TULIP, + Material.ORANGE_TULIP, + Material.WHITE_TULIP, + Material.CORNFLOWER, + Material.LILY_OF_THE_VALLEY, }; Material randomFlower = flowers[random.nextInt(flowers.length)]; @@ -193,13 +200,13 @@ public class PixelBlockWorld { } }); - for (int x = 0; x < 4; x++) { - for (int y = 0; y < 5; y++) { + for(int x = 0; x < 4; x++) { + for(int y = 0; y < 5; y++) { getPortalLocation().add(x, y, 0).getBlock().setType(Material.OBSIDIAN); } } - for (int x = 1; x < 3; x++) { - for (int y = 1; y < 4; y++) { + for(int x = 1; x < 3; x++) { + for(int y = 1; y < 4; y++) { getPortalLocation().add(x, y, 0).getBlock().setType(Material.NETHER_PORTAL); } } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/utils/LocationUtil.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/utils/LocationUtil.java index 83bc1f1..990ea31 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/utils/LocationUtil.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/utils/LocationUtil.java @@ -7,7 +7,7 @@ import java.util.function.Consumer; public class LocationUtil { public static void iterateBlocks(Location loc1, Location loc2, Consumer action) { - if (loc1.getWorld() != loc2.getWorld()) { + if(loc1.getWorld() != loc2.getWorld()) { throw new IllegalArgumentException("Locations must be in the same world"); } @@ -19,9 +19,9 @@ public class LocationUtil { int minZ = Math.min(loc1.getBlockZ(), loc2.getBlockZ()); int maxZ = Math.max(loc1.getBlockZ(), loc2.getBlockZ()); - for (int x = minX; x <= maxX; x++) { - for (int y = minY; y <= maxY; y++) { - for (int z = minZ; z <= maxZ; z++) { + for(int x = minX; x <= maxX; x++) { + for(int y = minY; y <= maxY; y++) { + for(int z = minZ; z <= maxZ; z++) { action.accept(new Location(world, x, y, z)); } } diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/utils/MinMaxUtil.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/utils/MinMaxUtil.java index 861752e..f7ef999 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/utils/MinMaxUtil.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/utils/MinMaxUtil.java @@ -8,6 +8,7 @@ public class MinMaxUtil { public static > O getMinProperty(List list, Function supplier) { return supplier.apply(list.stream().min(Comparator.comparing(supplier)).orElseThrow()); } + public static > O getMaxProperty(List list, Function supplier) { return supplier.apply(list.stream().max(Comparator.comparing(supplier)).orElseThrow()); }