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

Помогите Оптимизировать конфиг - хранить все в HashMap.

Тема в разделе "Разработка плагинов для новичков", создана пользователем Mr_RoboMan, 15 апр 2016.

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

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

    Баллы:
    123
    На днях подумал, что надо немного оптимизировать дело с конфигами в моем плагине...
    Я думаю, что если на сервере будет хотя-бы 20 игроков, чуть ли не при каждом евенте - доставать что-о с конфигов будет варварством...
    Потому решил хранить ВСЕ значение конфигов в хэшмапах <String, Object>! Ну а когда понадобится обновить конфиг (допустим пользователь что-то вписал в него), буду просто заново грузить мапу.
    Но... Ребята, прошу помощи, как занести в эту мапу ВСЕ значения конфига? С условием что я могу не знать все переменные которые там будут, и также их тип...
     
  2. Хостинг MineCraft
    <
  3. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Хоть до кого то дошло.
    Решение не верное.
     
  4. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Есть более оптимальное? Так поделитесь =)
     
  5. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Да мне для начала бы просто узнать как получить все значения конфига...[DOUBLEPOST=1460704808,1460704770][/DOUBLEPOST]А более оптимальный вариант уже потом обсудим)[DOUBLEPOST=1460708547][/DOUBLEPOST]Ээ... Так что, есть идеи как достать мапу путь-значение из конфига?..
     
  6. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Не проще ли сразу использовать нормальный способ?
     
  7. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Какой? Чем плох вариант с мапой?
     
  8. fall.us

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

    Баллы:
    76
    Имя в Minecraft:
    fallus
    В классе конфигурации Bukkit все данные уже храняться в Map. Файл с конфигом загружается только один раз, занося "пути" и значения в Map, и класс больше к файлам не обращается. Все, что достается из конфига - достается из Map. Все достаточно оптимизированно. Не надо себе придумывать лишние проблемы)
     
    Последнее редактирование: 15 апр 2016
  9. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Хм, даже не думал о таком. По сути - с конфигом тогда особо заморачиваться не стоит, верно? Честно - просветили.
     
  10. Автор темы
    Mr_RoboMan

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

    Баллы:
    123
    Хм... Тогда круто... Значит ничего делать не надо, и можно просто всегда брать значения из конфига?
    Это не будет грузить сервер?
     
  11. Reality_SC

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

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Да, по сути это вроде как так.
    Естественно, у тебя всё ещё есть отдельные методы для обновления конфига (перечитать с диска в память) и сохранения из памяти на диск. А всё остальное и так нормально работает.
    Обычно, всегда есть способы упростить логику плагина в каком-нибудь другом месте.
     
  12. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Выходит, да.
     
  13. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Можно, но это не эффективно.
    Если тебе нужно изменить структуру конфига, то тебе придётся бегать по всем классам и изменять ключи к значениям.
     
  14. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Вся проблема в том что оно всё хранится во вложенных хэшмапах, и при вынимании парсится с учётом разделителя (.). Я тупо обычно все значения вынимаю в поля отдельного класса конфигурации.
     

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