Как сканировать инвентарь

Dedik_

Пользователь
Сообщения
66
Как сканировать инвентарь игрока при перемещении алмаза в любом инвентаре и отправлять ему сообщение?
 
Как сканировать инвентарь игрока при перемещении алмаза в любом инвентаре и отправлять ему сообщение?
Слушайте ивенты типа InventoryClickEvent, InventoryDragEvent и т.д. и т.п., что связано с инвентарём и нужно вам. Там получаете игрока, дальше его инвентарь (метод Player#getInventory(), если не знали), дальше получаете массив из ItemStack методом Inventory#getContents() и проходитесь по нему циклом forEach, делая, что вам нужно.


Погу написать за приятную цену:
Мы находимся в разделе помощи по разработке плагинов spigot, а не запросах на разработку или поиске исполнителей, такие сообщения здесь не одобряются.
 
Код:
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.CommandExecutor;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class ScanInventoryPlugin extends JavaPlugin implements CommandExecutor {

    @Override
    public void onEnable() {
        // Регистрация команды /scan
        getCommand("scan").setExecutor(this);
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase("scan")) {
            if (args.length == 1) {
                // Получение игрока по нику
                Player targetPlayer = Bukkit.getPlayer(args[0]);

                if (targetPlayer != null) {
                    // Вызов метода для сканирования инвентаря игрока
                    scanPlayerInventory(sender, targetPlayer);
                } else {
                    sender.sendMessage("Игрок с таким ником не найден.");
                }
            } else {
                sender.sendMessage("Использование: /scan <ник игрока>");
            }
            return true;
        }
        return false;
    }

    private void scanPlayerInventory(CommandSender sender, Player player) {
        Inventory playerInventory = player.getInventory()
;

Плагин не полностью, и да не забудь о регистрации команды и тд
 
Последнее редактирование:
Код:
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.CommandExecutor;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

public class ScanInventoryPlugin extends JavaPlugin implements CommandExecutor {

    @Override
    public void onEnable() {
        // Регистрация команды /scan
        getCommand("scan").setExecutor(this);
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (cmd.getName().equalsIgnoreCase("scan")) {
            if (args.length == 1) {
                // Получение игрока по нику
                Player targetPlayer = Bukkit.getPlayer(args[0]);

                if (targetPlayer != null) {
                    // Вызов метода для сканирования инвентаря игрока
                    scanPlayerInventory(sender, targetPlayer);
                } else {
                    sender.sendMessage("Игрок с таким ником не найден.");
                }
            } else {
                sender.sendMessage("Использование: /scan <ник игрока>");
            }
            return true;
        }
        return false;
    }

    private void scanPlayerInventory(CommandSender sender, Player player) {
        Inventory playerInventory = player.getInventory()
;

Плагин не полностью, и да не забудь о регистрации команды и тд
offtop Это вообще не связано с запросом ТС
 
Назад
Сверху Снизу