diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java index 1aecd1f..7a443c1 100644 --- a/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/Main.java @@ -5,6 +5,7 @@ import co.aikar.taskchain.TaskChain; import co.aikar.taskchain.TaskChainFactory; import eu.mhsl.minecraft.pixelblocks.commands.CreatePixelBlockCommand; import eu.mhsl.minecraft.pixelblocks.commands.ExitWorldCommand; +import eu.mhsl.minecraft.pixelblocks.commands.GivePixelBlockCommand; import eu.mhsl.minecraft.pixelblocks.listeners.*; import eu.mhsl.minecraft.pixelblocks.pixelblock.PixelBlock; import org.bukkit.Bukkit; @@ -82,6 +83,7 @@ public final class Main extends JavaPlugin { } Objects.requireNonNull(getCommand("createpixelblock")).setExecutor(new CreatePixelBlockCommand()); + Objects.requireNonNull(getCommand("givepixelblock")).setExecutor(new GivePixelBlockCommand()); Objects.requireNonNull(getCommand("exitworld")).setExecutor(new ExitWorldCommand()); Bukkit.addRecipe(PixelBlockItem.getRecipe()); diff --git a/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/GivePixelBlockCommand.java b/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/GivePixelBlockCommand.java new file mode 100644 index 0000000..697d3f9 --- /dev/null +++ b/src/main/java/eu/mhsl/minecraft/pixelblocks/commands/GivePixelBlockCommand.java @@ -0,0 +1,40 @@ +package eu.mhsl.minecraft.pixelblocks.commands; + +import eu.mhsl.minecraft.pixelblocks.PixelBlockItem; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.persistence.PersistentDataContainer; +import org.bukkit.persistence.PersistentDataType; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; +import java.util.UUID; + +import static eu.mhsl.minecraft.pixelblocks.PixelBlockItem.getEmptyPixelBlock; + +public class GivePixelBlockCommand implements CommandExecutor { + @Override + public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(sender instanceof Player p) { + ItemStack result = getEmptyPixelBlock(); + ItemMeta itemMeta = result.getItemMeta(); + PersistentDataContainer dataContainer = itemMeta.getPersistentDataContainer(); + if(!dataContainer.has(PixelBlockItem.idProperty)) return false; + String currentId = dataContainer.get(PixelBlockItem.idProperty, PersistentDataType.STRING); + Objects.requireNonNull(currentId); + if(!UUID.fromString(currentId).equals(PixelBlockItem.emptyBlockUUID)) return false; + + dataContainer.set(PixelBlockItem.idProperty, PersistentDataType.STRING, args[0]); + + result.setItemMeta(itemMeta); + + + p.getInventory().addItem(result); + } + return true; + } +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0f5cb33..756002a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,3 +5,4 @@ api-version: '1.21' commands: createpixelblock: exitworld: + givepixelblock: \ No newline at end of file