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

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

Discussion in 'Разработка плагинов для новичков' started by BeYkeR, Feb 17, 2014.

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

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

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

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

    Trophy Points:
    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 and BeYkeR like this.
  4. Shevchik

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

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

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

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

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

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

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

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

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

Share This Page