Помогите Работа с конфигом

andreispas

Активный участник
Пользователь
Баллы
78
Имя в Minecraft
cameronh16
Всем привет!

Кто может подсказать как перебрать конфиг такого типа:

Код:
[вероятность_выпадения_дропа, id_блока, id_дропа, количество_дропа]
0: [80, 1, 264, 4]
1: [80, 2, 264, 1]

Код плагина:

Код:
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public class BlockDrop extends JavaPlugin {
    private static BlockDrop plugin;
    public static BlockDrop instance() {
        return plugin;
    }
    @Override
    public void onEnable() {
       
        Bukkit.getPluginManager().registerEvents(new Event(), this);
       
        Config.config = getConfig();
       
        if(Config.config.getString("BlockDrop") == null) {
        Config.onConfig();
        }
       
        saveConfig();
    }
    @Override
    public void onDisable() {
       
    }
}

Код:
import java.util.Random;

import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.*********ventory.ItemStack;

public class Event implements Listener {
   
    @EventHandler
    public void onBlockBreak(BlockBreakEvent event) {
        if(event.getBlock().getTypeId() == Значение_из_конфига) {
            if(new Random().nextInt(101 - Значение_из_конфига) == 0) {
                   
                event.getBlock().setType(Material.AIR);
                event.getBlock().getWorld().dropItemNaturally(event.getBlock().getLocation(), new ItemStack(Значение_из_конфига, Значение_из_конфига));
            }   
        }
    }
}

Код:
import org.bukkit.configuration.file.FileConfiguration;

public class Config {
    static FileConfiguration config;
    private static String[] list = new String[]{
       
        "0: [80, 1, 264, 4]",
        "1: [80, 2, 264, 1]"
        };
   
    public static void onConfig() {
        config.set("BlockDrop", list);
    }
}
 
Всем привет!

Кто может подсказать как перебрать конфиг такого типа:

Код:
[вероятность_выпадения_дропа, id_блока, id_дропа, количество_дропа]
0: [80, 1, 264, 4]
1: [80, 2, 264, 1]

Код плагина:

Код:
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

public class BlockDrop extends JavaPlugin {
    private static BlockDrop plugin;
    public static BlockDrop instance() {
        return plugin;
    }
    @Override
    public void onEnable() {
    
        Bukkit.getPluginManager().registerEvents(new Event(), this);
    
        Config.config = getConfig();
    
        if(Config.config.getString("BlockDrop") == null) {
        Config.onConfig();
        }
    
        saveConfig();
    }
    @Override
    public void onDisable() {
    
    }
}

Код:
import java.util.Random;

import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.*********ventory.ItemStack;

public class Event implements Listener {

    @EventHandler
    public void onBlockBreak(BlockBreakEvent event) {
        if(event.getBlock().getTypeId() == Значение_из_конфига) {
            if(new Random().nextInt(101 - Значение_из_конфига) == 0) {
                
                event.getBlock().setType(Material.AIR);
                event.getBlock().getWorld().dropItemNaturally(event.getBlock().getLocation(), new ItemStack(Значение_из_конфига, Значение_из_конфига));
            }
        }
    }
}

Код:
import org.bukkit.configuration.file.FileConfiguration;

public class Config {
    static FileConfiguration config;
    private static String[] list = new String[]{
    
        "0: [80, 1, 264, 4]",
        "1: [80, 2, 264, 1]"
        };

    public static void onConfig() {
        config.set("BlockDrop", list);
    }
}
Есть структура гораздо проще.
Java:
Drops:
  '1':
    Chance: 80
    Id: 2
    Block-id: 264
    Amount: 2
Дальше просто создай класс твоего дропа и в конструкторе укажи эти аргументы.

Пример:
Java:
for (String key : [главный класс].getConfig().getConfigurationSection("Drops"))
{
    int chance = [главный класс].getConfig().getInt("Drops." + key + ".Chance");
}
 
Есть структура гораздо проще.
Java:
Drops:
  '1':
    Chance: 80
    Id: 2
    Block-id: 264
    Amount: 2
Дальше просто создай класс твоего дропа и в конструкторе укажи эти аргументы.

Пример:
Java:
for (String key : [главный класс].getConfig().getConfigurationSection("Drops"))
{
    int chance = [главный класс].getConfig().getInt("Drops." + key + ".Chance");
}
Я знаю про эту структуру и в принципе умею её использовать. Но в данном случае я хотел бы научиться использовать ту структуру, которую я описал выше
 
Я знаю про эту структуру и в принципе умею её использовать. Но в данном случае я хотел бы научиться использовать ту структуру, которую я описал выше
Там нужно использовать split.
Но, увы, с костылями я помогать не собираюсь.
 
Назад
Верх