listener and commands

This commit is contained in:
MeexReay 2024-12-30 18:37:51 +03:00
parent c95955d7c4
commit 8a21fb53d2
7 changed files with 128 additions and 2 deletions

View File

@ -1,6 +1,6 @@
package ru.themixray.puton;
import org.bukkit.Material;
import ru.themixray.puton.util.UnrealConfig;
import java.util.List;

View File

@ -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);
}
}
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -1,4 +1,4 @@
package ru.themixray.puton;
package ru.themixray.puton.util;
import org.yaml.snakeyaml.Yaml;