1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Как получить отдельную часть в конфиге

Тема в разделе "Разработка плагинов для новичков", создана пользователем hyndorik, 14 май 2017.

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

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

    Баллы:
    98
    Имя в Minecraft:
    hyndo
    list:
    lightning: 3600
    thor: 3600
    smite: 3600
    shock: 3600

    Как из конфига в этом случае достать именно первые части, ключи? Тоесть lighting,thor и тд
     
  2. xDark

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

    Баллы:
    96
    for (String s : config.getConfigurationSection("list").getKeys(false)) {
    int val = config.getInt("list." + s);
    }
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Решение всех проблем.
    Регаем в главном классе плагина мап сериализатор.

    Код:
        static {
            ConfigurationSerialization.registerClass(MapSer.class, "MapSer");
        }
    MapSer.class
    Код:
    package Example;
    
    import java.util.Map;
    
    import org.bukkit.configuration.serialization.ConfigurationSerializable;
    import org.bukkit.configuration.serialization.SerializableAs;
    
    @SerializableAs(value="MapSer")
    public class MapSer implements ConfigurationSerializable {
    
        Map<String, Object> map;
    
        MapSer(Map<String, Object> map) {
            this.map = map;
        }
    
        @Override
        public Map<String, Object> serialize() {
            return map;
        }
    
        public static MapSer deserialize(Map<String, Object> map) {
            return new MapSer(map);
        }
    
        public Map<String, Object> get() {
            return map;
        }
    }
    

    И радуемся жизни юзая привычные и удобные мапы.

    Условная мапа.
    HashMap map = new HashMap();
    map.put(arg, value);
    Запись мапы в конфиг.
    getConfig().set("name", new MapSer(map));
    Обратно в мапу.
    MapSer ms = (MapSer) getConfig().get("name");
    HashMap map2 = (HashMap) ms.get();
     

Поделиться этой страницей