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

Помогите Хранение данных игроков

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

Статус темы:
Закрыта.
  1. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Всем доброго времени суток!
    Недавно занялся разработкой Плагинов под CB, и вот уже возник первый вопрос, а именно вопрос о типах хранения данных.
    Я лично знаю 3(2) типа хранения информации о игроках:
    1) YAML
    2) База данных (.db)
    3) База данных типа (MySQL / PostgreSQL / etc)

    Хотелось бы узнать, есть ли альтернативы, и если таковые есть, в чем их преимущества или недостатки.

    Заранее благодарю.
     
    Оригинало_о нравится это.
  2. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    @ql_Nik_lp,
    Все зависит от того, какое количество данных и какого типа нужно хранить.
    Формат YAML - подходит для хранения конфига, либо небольшого списка параметров (ключ-значение)
    у Java есть встроенные функции обработки этого формата. Главное и самое большое преимущество - возможность редактирования файлов вручную.
    Базу данных в виде файла использовать категорически не рекомендую. Это может потребоваться только в редких случаях - когда плагин хранит большое количество информации, и скорость поиска ее является критическим значением (для плагинов типа logBlock)
    Внешние БД - могут предоставить доступ к своим данным разным веб-обвязкам и другим приложениям. Я считаю, что этот метод надежнее всех. Но опять же - стоит ли использовать БД для хранения небольшого количества информации.

    Есть еще один вариант, подходит для хранения игровых данных. Например, сохранить состояние инвентаря, игрока, всех мобов в определенном регионе или же блоки. Суть такова:
    Вытаскиваем нужные данные в виде NBT-объекта, модифицируем их или дополняем (если нужно), сохраняем в файл.
    Когда потребуется - загружаем файл, по полученным данным восстанавливаем объект.
    Где-то в недрах пакета net.minecraft.server есть обфусцированный класс, который проводит сохранение NBT-тега в файл и, соответственно, чтение. Файлы при этом gzipятся.
    Например, WorldEdit использует такой способ для сохранения schematic файлов.
     
    ql_Nik_lp нравится это.
  3. Dr.Death

    Dr.Death Старожил Пользователь

    Баллы:
    153
    Skype:
    asn008
    Имя в Minecraft:
    DrDeath
    Ложь. В целом для хранения небольших объемов данных вида ключ-значение я рекомендую использовать java. util.Properties, т.к. он будет быстрее Yaml (если мне не изменяет память). Во всех остальных случаях лучше рассматривать SQL, т.к. он быстрее flatfile. NBT лучше использовать на очень больших объемах данных
     
    stew и ql_Nik_lp нравится это.
  4. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Огромное спасибо!
    Именно то что хотел услышать :)
     
Статус темы:
Закрыта.

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