From 8a21fb53d28f9293291ce157a33e27edafe53706 Mon Sep 17 00:00:00 2001 From: MeexReay Date: Mon, 30 Dec 2024 18:37:51 +0300 Subject: [PATCH] listener and commands --- src/main/java/ru/themixray/puton/Config.java | 2 +- src/main/java/ru/themixray/puton/Main.java | 38 +++++++++++++++++++ .../puton/commands/BootsCommand.java | 22 +++++++++++ .../puton/commands/ChestplateCommand.java | 22 +++++++++++ .../puton/commands/HelmetCommand.java | 22 +++++++++++ .../puton/commands/LeggingsCommand.java | 22 +++++++++++ .../puton/{ => util}/UnrealConfig.java | 2 +- 7 files changed, 128 insertions(+), 2 deletions(-) create mode 100644 src/main/java/ru/themixray/puton/commands/BootsCommand.java create mode 100644 src/main/java/ru/themixray/puton/commands/ChestplateCommand.java create mode 100644 src/main/java/ru/themixray/puton/commands/HelmetCommand.java create mode 100644 src/main/java/ru/themixray/puton/commands/LeggingsCommand.java rename src/main/java/ru/themixray/puton/{ => util}/UnrealConfig.java (95%) diff --git a/src/main/java/ru/themixray/puton/Config.java b/src/main/java/ru/themixray/puton/Config.java index 2a14e03..39d3eac 100644 --- a/src/main/java/ru/themixray/puton/Config.java +++ b/src/main/java/ru/themixray/puton/Config.java @@ -1,6 +1,6 @@ package ru.themixray.puton; -import org.bukkit.Material; +import ru.themixray.puton.util.UnrealConfig; import java.util.List; diff --git a/src/main/java/ru/themixray/puton/Main.java b/src/main/java/ru/themixray/puton/Main.java index 644a0b1..f3f2e22 100644 --- a/src/main/java/ru/themixray/puton/Main.java +++ b/src/main/java/ru/themixray/puton/Main.java @@ -1,12 +1,50 @@ package ru.themixray.puton; import org.bukkit.Bukkit; +import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; +import ru.themixray.puton.util.UnrealConfig; + +import java.util.Objects; public class Main extends JavaPlugin implements Listener { public void onEnable() { Config.loadConfig(new UnrealConfig(this, getDataFolder(), "config.yml")); Bukkit.getPluginManager().registerEvents(this, this); } + + public static final int HELMET_SLOT = 39; + public static final int CHESTPLATE_SLOT = 40; + public static final int LEGGINGS_SLOT = 41; + public static final int BOOTS_SLOT = 42; + + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + ItemStack item = e.getCursor(); + + if (e.getSlotType() == InventoryType.SlotType.ARMOR) { + if (e.getSlot() == HELMET_SLOT && Config.ALLOW_HELMET) { + e.getWhoClicked().setItemOnCursor(e.getCurrentItem()); + e.getWhoClicked().getInventory().setHelmet(item); + e.setCancelled(true); + } else if (e.getSlot() == CHESTPLATE_SLOT && Config.ALLOW_CHESTPLATE) { + e.getWhoClicked().setItemOnCursor(e.getCurrentItem()); + e.getWhoClicked().getInventory().setHelmet(item); + e.setCancelled(true); + } else if (e.getSlot() == LEGGINGS_SLOT && Config.ALLOW_LEGGINGS) { + e.getWhoClicked().setItemOnCursor(e.getCurrentItem()); + e.getWhoClicked().getInventory().setHelmet(item); + e.setCancelled(true); + } else if (e.getSlot() == BOOTS_SLOT && Config.ALLOW_BOOTS) { + e.getWhoClicked().setItemOnCursor(e.getCurrentItem()); + e.getWhoClicked().getInventory().setHelmet(item); + e.setCancelled(true); + } + } + } } \ No newline at end of file diff --git a/src/main/java/ru/themixray/puton/commands/BootsCommand.java b/src/main/java/ru/themixray/puton/commands/BootsCommand.java new file mode 100644 index 0000000..352e890 --- /dev/null +++ b/src/main/java/ru/themixray/puton/commands/BootsCommand.java @@ -0,0 +1,22 @@ +package ru.themixray.puton.commands; + +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; + +public class BootsCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) { + if (sender instanceof Player player) { + ItemStack a = player.getInventory().getItemInMainHand(); + ItemStack b = player.getInventory().getBoots(); + + player.getInventory().setBoots(a); + player.getInventory().setItemInMainHand(b); + } + + return true; + } +} diff --git a/src/main/java/ru/themixray/puton/commands/ChestplateCommand.java b/src/main/java/ru/themixray/puton/commands/ChestplateCommand.java new file mode 100644 index 0000000..c1d4d5b --- /dev/null +++ b/src/main/java/ru/themixray/puton/commands/ChestplateCommand.java @@ -0,0 +1,22 @@ +package ru.themixray.puton.commands; + +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; + +public class ChestplateCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) { + if (sender instanceof Player player) { + ItemStack a = player.getInventory().getItemInMainHand(); + ItemStack b = player.getInventory().getChestplate(); + + player.getInventory().setChestplate(a); + player.getInventory().setItemInMainHand(b); + } + + return true; + } +} diff --git a/src/main/java/ru/themixray/puton/commands/HelmetCommand.java b/src/main/java/ru/themixray/puton/commands/HelmetCommand.java new file mode 100644 index 0000000..6655a94 --- /dev/null +++ b/src/main/java/ru/themixray/puton/commands/HelmetCommand.java @@ -0,0 +1,22 @@ +package ru.themixray.puton.commands; + +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; + +public class HelmetCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) { + if (sender instanceof Player player) { + ItemStack a = player.getInventory().getItemInMainHand(); + ItemStack b = player.getInventory().getHelmet(); + + player.getInventory().setHelmet(a); + player.getInventory().setItemInMainHand(b); + } + + return true; + } +} diff --git a/src/main/java/ru/themixray/puton/commands/LeggingsCommand.java b/src/main/java/ru/themixray/puton/commands/LeggingsCommand.java new file mode 100644 index 0000000..2f51a58 --- /dev/null +++ b/src/main/java/ru/themixray/puton/commands/LeggingsCommand.java @@ -0,0 +1,22 @@ +package ru.themixray.puton.commands; + +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; + +public class LeggingsCommand implements CommandExecutor { + @Override + public boolean onCommand(CommandSender sender, Command cmd, String alias, String[] args) { + if (sender instanceof Player player) { + ItemStack a = player.getInventory().getItemInMainHand(); + ItemStack b = player.getInventory().getLeggings(); + + player.getInventory().setLeggings(a); + player.getInventory().setItemInMainHand(b); + } + + return true; + } +} diff --git a/src/main/java/ru/themixray/puton/UnrealConfig.java b/src/main/java/ru/themixray/puton/util/UnrealConfig.java similarity index 95% rename from src/main/java/ru/themixray/puton/UnrealConfig.java rename to src/main/java/ru/themixray/puton/util/UnrealConfig.java index b08e0c5..acfbe22 100755 --- a/src/main/java/ru/themixray/puton/UnrealConfig.java +++ b/src/main/java/ru/themixray/puton/util/UnrealConfig.java @@ -1,4 +1,4 @@ -package ru.themixray.puton; +package ru.themixray.puton.util; import org.yaml.snakeyaml.Yaml;