Помогите Логирование дропа вещей

HamBurgeR

Участник
Пользователь
Баллы
31
Всем привет. Пытаюсь писать лёгкие плагины, но параллельно с их полезностью для сервера.
Никак не могу найти функцию выбрасывания вещей, дык и с записью в .txt Ник:Вещь:Кол-во не выходит. Не могу понять в чём ошибка. Сюда кидать не буду, так как всё очень криво и скорее всего даже рядом не похоже на нужную функцию. Решил ещё раз попробовать сначала. Спасибо больше тем, кто поможет!
 
В обработчике ивента PlayerDropItemEvent записываешь нужную вещь и её нужные характеристики.Для записи можно использовать какие-нибудь BufferedWriter'ы, таких достаточно.
Вот, как сырой пример:
Java:
    @EventHandler
    private void onPlayerDropItem(PlayerDropItemEvent event) {
        writer.println(event.getPlayer().getName() + ": " + event.getItemDrop().getItemStack().getAmount());
    }
Где writer это PrintWriter, который можешь инициализировать при включении и закрывать при выключении плагина.
 
Крч, запили я что-то, вроде работает. Создаётся файл \players.yml, а после дропа записывает его название в конфиг, в каталог players.<ign>.drop, конечно же с количеством ;)

https://cloud.mail.ru/home/RuBukkit.java
Код:
File players = new File(getDataFolder() + "/players.yml");
    FileConfiguration playersConfig = YamlConfiguration.loadConfiguration(players);

    public void saveCustomYml(FileConfiguration ymlConfig, File ymlFile) {
        try {
            ymlConfig.save(ymlFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
        playersConfig.options().copyDefaults(true);
    }
    public void onDisable() {
        saveCustomYml(playersConfig, players);
    }

    @EventHandler
    public void drop(PlayerDropItemEvent e) {
        playersConfig.set("players." + e.getPlayer().getName() + ".drop." + e.getItemDrop().getItemStack().getType(),
                playersConfig.getInt("players." + e.getPlayer().getName() + ".drop." + e.getItemDrop().getItemStack().getType()) + e.getItemDrop().getItemStack().getAmount());
        saveCustomYml(playersConfig, players);
    }

Заранее извини, если что-то не так. Плагин я проверил, всё работает без ошибок. Единственный минус - не записывается data в конфиг, но тоже поправимо.
 
Последнее редактирование:
Крч, запили я что-то, вроде работает. Создаётся файл \players.yml, а после дропа записывает его название в конфиг, в каталог players.<ign>.drop, конечно же с количеством ;)

https://cloud.mail.ru/home/RuBukkit.java
Код:
File players = new File(getDataFolder() + "/players.yml");
    FileConfiguration playersConfig = YamlConfiguration.loadConfiguration(players);

    public void saveCustomYml(FileConfiguration ymlConfig, File ymlFile) {
        try {
            ymlConfig.save(ymlFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);

        playersConfig.options().copyDefaults(true);
        saveCustomYml(playersConfig, players);
    }
    public void onDisable() {
        saveCustomYml(playersConfig, players);
    }

    @EventHandler
    public void drop(PlayerDropItemEvent e) {
        playersConfig.set("players." + e.getPlayer().getName() + ".drop." + e.getItemDrop().getItemStack().getType(),
                playersConfig.getInt("players." + e.getPlayer().getName() + ".drop." + e.getItemDrop().getItemStack().getType()) + e.getItemDrop().getItemStack().getAmount());
        saveCustomYml(playersConfig, players);
    }

Заранее извини, если что-то не так. Плагин я проверил, всё работает без ошибок. Единственный минус - не записывается data в конфиг, но тоже поправимо.
Ух тыж блин. Не ожидал такого. Спасибо огромного тебе. И с наступающим, зайчик, котик, самолётик с:
 
Крч, запили я что-то, вроде работает. Создаётся файл \players.yml, а после дропа записывает его название в конфиг, в каталог players.<ign>.drop, конечно же с количеством ;)

https://cloud.mail.ru/home/RuBukkit.java
Код:
File players = new File(getDataFolder() + "/players.yml");
    FileConfiguration playersConfig = YamlConfiguration.loadConfiguration(players);

    public void saveCustomYml(FileConfiguration ymlConfig, File ymlFile) {
        try {
            ymlConfig.save(ymlFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);

        playersConfig.options().copyDefaults(true);
        saveCustomYml(playersConfig, players);
    }
    public void onDisable() {
        saveCustomYml(playersConfig, players);
    }

    @EventHandler
    public void drop(PlayerDropItemEvent e) {
        playersConfig.set("players." + e.getPlayer().getName() + ".drop." + e.getItemDrop().getItemStack().getType(),
                playersConfig.getInt("players." + e.getPlayer().getName() + ".drop." + e.getItemDrop().getItemStack().getType()) + e.getItemDrop().getItemStack().getAmount());
        saveCustomYml(playersConfig, players);
    }

Заранее извини, если что-то не так. Плагин я проверил, всё работает без ошибок. Единственный минус - не записывается data в конфиг, но тоже поправимо.
сейчас бы каждый раз конфиг сохранять... ну ок.
 
Назад
Верх