diff --git a/.idea/modules.xml b/.idea/modules.xml index 8f15c85..87190ce 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,7 @@ + \ No newline at end of file diff --git a/.idea/modules/PixelBlocks.main.iml b/.idea/modules/PixelBlocks.main.iml index bbeeb3e..746f1fd 100644 --- a/.idea/modules/PixelBlocks.main.iml +++ b/.idea/modules/PixelBlocks.main.iml @@ -11,4 +11,8 @@ + + + + \ No newline at end of file diff --git a/.idea/modules/eu.mhsl.minecraft.PixelBlocks.main.iml b/.idea/modules/eu.mhsl.minecraft.PixelBlocks.main.iml new file mode 100644 index 0000000..bbeeb3e --- /dev/null +++ b/.idea/modules/eu.mhsl.minecraft.PixelBlocks.main.iml @@ -0,0 +1,14 @@ + + + + + + + PAPER + ADVENTURE + + 1 + + + + \ No newline at end of file diff --git a/src/main/java/commands/ChessCommand.java b/src/main/java/commands/ChessCommand.java new file mode 100644 index 0000000..94318b7 --- /dev/null +++ b/src/main/java/commands/ChessCommand.java @@ -0,0 +1,47 @@ +package commands; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.BlockDisplay; +import org.bukkit.entity.Player; +import org.jetbrains.annotations.NotNull; + +public class ChessCommand implements CommandExecutor { + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(sender instanceof Player p) { + Location playerLocation = p.getLocation(); + + for (int i = 0; i < 8; i++) { + int finalI = i+1; + for (int j = 0; j < 8; j++) { + int finalJ = j+1; + p.getWorld().spawn( + new Location(p.getWorld(), + playerLocation.x()+i, + playerLocation.y(), + playerLocation.z()+j), + BlockDisplay.class, blockDisplay -> { + if(finalI % 2 == 0 && finalJ % 2 == 0) { + blockDisplay.setBlock(Material.BLACK_CONCRETE.createBlockData()); + } else if(finalI % 2 != 0 && finalJ % 2 != 0) { + blockDisplay.setBlock(Material.BLACK_CONCRETE.createBlockData()); + } else { + blockDisplay.setBlock(Material.WHITE_CONCRETE.createBlockData()); + } + blockDisplay.setDisplayHeight(0.5f); + blockDisplay.setDisplayWidth(0.5f); + } + ); + } + } + + } else { + return(true); + } + return true; + } +} diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlocks.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlocks.java index 52563a3..949d965 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlocks.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/PixelBlocks.java @@ -1,7 +1,11 @@ package eu.mhsl.minecraft.pixelblocks; +import commands.ChessCommand; +import listeners.PlayerJumpListener; import org.bukkit.plugin.java.JavaPlugin; +import java.util.Objects; + public final class PixelBlocks extends JavaPlugin { public static PixelBlocks plugin; @@ -9,6 +13,8 @@ public final class PixelBlocks extends JavaPlugin { public void onEnable() { PixelBlocks.plugin = this; this.getLogger().info("Hello World"); + getServer().getPluginManager().registerEvents(new PlayerJumpListener(), this); + Objects.requireNonNull(getCommand("chess")).setExecutor(new ChessCommand()); } @Override diff --git a/src/main/java/listeners/PlayerJoinListener.java b/src/main/java/listeners/PlayerJoinListener.java new file mode 100644 index 0000000..46d35a6 --- /dev/null +++ b/src/main/java/listeners/PlayerJoinListener.java @@ -0,0 +1,12 @@ +package listeners; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; + +public class PlayerJoinListener implements Listener { + @EventHandler + static void onPlayerJoin(PlayerJoinEvent event) { + + } +} diff --git a/src/main/java/listeners/PlayerJumpListener.java b/src/main/java/listeners/PlayerJumpListener.java new file mode 100644 index 0000000..315c8cb --- /dev/null +++ b/src/main/java/listeners/PlayerJumpListener.java @@ -0,0 +1,17 @@ +package listeners; + +import com.destroystokyo.paper.event.player.PlayerJumpEvent; +import org.bukkit.Material; +import org.bukkit.entity.BlockDisplay; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class PlayerJumpListener implements Listener { + @EventHandler + static void onPlayerJump(PlayerJumpEvent event) { + event.getPlayer().getWorld().spawn(event.getPlayer().getLocation(), BlockDisplay.class, blockDisplay -> { + blockDisplay.setBlock(Material.OAK_LOG.createBlockData()); + }); + + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 803ccac..96f8af1 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,3 +2,5 @@ name: PixelBlocks version: '${version}' main: eu.mhsl.minecraft.pixelblocks.PixelBlocks api-version: '1.21' +commands: + chess: