Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Разработка плагинов для новичков' started by andreispas, Sep 8, 2016.

  1. Автор темы
    andreispas

    andreispas Активный участник Пользователь

    Trophy Points:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Всем привет!

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

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

    Code:
    
    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() {
           
        }
    }
    
    

    Code:
    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.bukkit.inventory.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(Значение_из_конфига, Значение_из_конфига));
                }   
            }
        }
    }
    
    
    

    Code:
    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);
        }
    }
    
    
     
  2. Хостинг MineCraft
    <
  3. CoolBoy

    CoolBoy Активный участник Пользователь

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Есть структура гораздо проще.
    Code:
    Drops:
      '1':
        Chance: 80
        Id: 2
        Block-id: 264
        Amount: 2
    
    Дальше просто создай класс твоего дропа и в конструкторе укажи эти аргументы.

    Пример:
    Code:
    for (String key : [главный класс].getConfig().getConfigurationSection("Drops"))
    {
        int chance = [главный класс].getConfig().getInt("Drops." + key + ".Chance");
    }
    
     
  4. Автор темы
    andreispas

    andreispas Активный участник Пользователь

    Trophy Points:
    78
    Skype:
    An.spas98
    Имя в Minecraft:
    cameronh16
    Я знаю про эту структуру и в принципе умею её использовать. Но в данном случае я хотел бы научиться использовать ту структуру, которую я описал выше
     
  5. CoolBoy

    CoolBoy Активный участник Пользователь

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Там нужно использовать split.
    Но, увы, с костылями я помогать не собираюсь.
     

Share This Page