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

Помогите Объяснение .setMetadata()

Тема в разделе "Разработка плагинов для новичков", создана пользователем BeYkeR, 17 фев 2014.

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

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

    Баллы:
    173
    Несмотря на свой какбэ опыт "Продвинутого пользователя" у меня как-то все равно появляются глупые вопросы :D. Вопрос: Объясните мне пожалуйста как пользоваться .setMetadata() и для чего он вообще нужен ?
     
  2. Хостинг MineCraft
    <
  3. dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Имя в Minecraft:
    dark32
    Похоже на ассоциативный массив (key->value) прикреплённый к объекту, обычно упоминается в кросс плагином взаимодействие.
    Доки: http://jd.bukkit.org/rb/apidocs/org/bukkit/metadata/Metadatable.html
    Но это говорит о не многом.
    Присоединяюсь к вопросу. Особенно интересует время жизни (н-р: сохранение после перезахода), внутренние ограничения и скорость.
    Вики: http://wiki.bukkit.org/Plugin_Tutorial#Metadata
     
    ql_Nik_lp и BeYkeR нравится это.
  4. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Так и есть, это key-value хранилище.
    Но оно глобальное а не прикреплённое к объекту.
    метадата об объекте сбрасываетя при выходе, при уничтожении, при анлоаде энтити, а также при перезагрзке сервера сервера.
    Скорость как у хэшапа в хэшпапе, то бишь достаточно быстро.

    По крайней мере такая реализация была в 1.6.4, в 1.7.2 не смотрел были ли изменения или нет.

    С блоками та же самая байда, только в качестве ключа используется расположение блока, а не сам блок.
     
  5. dark32

    dark32 А где твой ТЗ? Пользователь

    Баллы:
    123
    Имя в Minecraft:
    dark32
    Всё таки оно крепится к объекту - энтети. Смотрите пример из Вики. Возможно и существует глобальный МетаДата, я не искал ещё. Хотя... похоже там глобальный хешмап с ключами UID в котором хешмап с пользовательскими ключами.

    С каких пор ХешМапы быстрые? они всегда были медленными, особенно по не примитивным ключам. А уж хешмапы в хешмапе...
     
  6. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    В реальности это глобальное хранилище.
    А хешмапы достаточно быстрые, хеширование ключа дотаточно быстрое.
     

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