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

Плагин [DEV] LightAPI v1.4.2 - Создаём невидимый свет! [1.7.5 - 1.8.8]

Тема в разделе "Неподтвержденные плагины", создана пользователем BeYkeR, 15 мар 2015.

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

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

    Баллы:
    173
    LightAPI - Создаём невидимый свет!
    Версия: 1.4.2

    Описание:

    Маленькая библиотека для разработчиков. В основном создает невидимые источники света.

    Особенности:
    - Создаёт/Удаляет невидимых источников света по координатам.

    Поддерживает следующие "Bukkit-платформы":
    - CraftBukkit/Spigot (от 1.7.5 до 1.8.6)
    - PaperSpigot (Только с 1.8.8)
    - Cauldron (Только 1.7.10) BETA!

    Для начала создайте класс LightRegistry. Все манипуляции идут через этот класс. Его можно получить отсюда:
    Код:
    LightRegistry registry = LightAPI.getRegistry(Plugin plugin);
    Methods:
    • createLight(Location , light level); - Создает невидимый источник света в заданной локацией и уровнем света.
    Код:
    registry.createLight(player.getLocation(), 15);
    • deleteLight(Location); - Удаляет невидимый источник света в заданной локации (Иногда может не работать).
    Код:
    registry.deleteLight(player.getLocation());
    • sendChunks(List<ChunkInfo> list); - Отправляет чанки игрокам из списка измененных чанков.
    Код:
    registry.sendChunks(changesChunks);
    • collectChunks(Location loc); - Собирает и возвращает список измененных чанков.
    Код:
    registry.collectChunks(player.getLocation());
    • sendChunk(ChunkInfo cCoord); - Отправляет измененный чанк игрокам.
    Код:
    registry.sendChunk(cCoord);
    • sendChunkChanges(); - Отправляет ВСЕ не отправленные чанки игрокам.
    Код:
    registry.sendChunkChanges();
    • isAutoSend(); - Проверка автопосылки чанков.
    Код:
    registry.isAutoSend();
    • startAutoSend(int delay); - Запускает Runnable для автопосылки чанков. delay - задержка в тиках.
    Код:
    registry.startAutoSend(delay);
    • stopAutoSend(); - Остановка автопосылки.
    Код:
    registry.stopAutoSend();
    • getPlugin(); - Возвращает плагин, который использует данный LightRegistry.
    Код:
    registry.getPlugin();
    • getChunkCoordsList(); - Возвращает список не отправленных и измененных чанков от getPlugin().
    Код:
    registry.getChunkCoordsList();
    События:
    Известные проблемы:
    - Cauldron: В широких местностях (Типо лес или огромный спавн) свет иногда не работает.
    - All: При частом обновлении чанков сервер может зависнуть.

    Скачать: Spigot
    Исходный код: GitHub / GitLab (???)

    Лог Изменений:
    1.0
    - Релиз
    1.1
    - Добавлена поддержка 1.8.3
    1.2
    - Добавлена новая система обновления чанков. Теперь количество пакетов с чанками зависит от уровня света. Например, уровень света 5 - количество пакетов ~1-4, а уровень света 15 - пакетов ~8-9. На ванильной версии независимо от уровня света отправляет 9 пакетов.
    - Добавлен апдейтер от albionco.
    - Добавлены новые методы.
    1.2.1
    - Изменен доступ к API части. Плагины которые используют данную библиотеку нуждаются перекодировании.
    - Добавлена поддержка CraftBukkit 1.8.4
    - Маленькие багфиксы
    1.3.1
    - Изменен доступ к API части. Плагины которые используют данную библиотеку нуждаются перекодировании.
    - Теперь плагин сам обновляет чанки после установки света.
    - В методах убраны аргументы needUpdate.
    - Добавлен Metrics.
    - Немного оптимизированы ILightRegistry's.
    - Маленькие баг фиксы.
    1.4.1
    - Изменен доступ к API части. Плагины которые используют данную библиотеку нуждаются перекодировании.
    - Теперь автообновление чанков можно отключать/включать/обновлять самим.
    1.4.2
    - Переименованы некоторые методы на более подходящие по смыслу.
    - ChunkCoord переименован в ChunkInfo.
    - Загрузка хандлера теперь зависит от строки getVersion()
    - Добавлена поддержка PaperSpigot 1.8.8 (Код базирован на версии @Den_Abr).
     
    Последнее редактирование: 26 авг 2015
  2. Хостинг MineCraft
    <
  3. Plasticable

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

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    Как реализовано?
     
  4. Автор темы
    BeYkeR

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

    Баллы:
    173
    Посмотрите исходный код - узнаете)
     
  5. Plasticable

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

    Баллы:
    173
    Skype:
    plasticable
    Имя в Minecraft:
    Plasticable
    нет
     
  6. Sonicxd2

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

    Баллы:
    76
    Вроде вот так{
    Block adjacent = getAdjacentAirBlock(location.getBlock());
    recalculateBlockLighting(location.getWorld(), adjacent.getX(), adjacent.getY(), adjacent.getZ());
    updateChunk(location);
    }
     
  7. Studenikin

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

    Баллы:
    123
    Skype:
    vanya.studenikin
    Имя в Minecraft:
    stuvanya
    Интересная идея
     
  8. Автор темы
    BeYkeR

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

    Баллы:
    173
    [17.05.15]
    - Добавлена новая система обновления чанков. Теперь количество пакетов с чанками зависит от уровня света. Например, уровень света 5 - количество пакетов ~1-4, а уровень света 15 - пакетов ~8-9. На ванильной версии независимо от уровня света отправляет 9 пакетов.
    - Добавлен апдейтер от albionco.
    - Добавлены новые методы.[DOUBLEPOST=1431948463,1431870880][/DOUBLEPOST][18.05.15]
    - Изменен доступ к API части. Плагины которые используют данную библиотеку нуждаются перекодировании.
    - Добавлена поддержка CraftBukkit 1.8.4
    - Маленькие багфиксы[DOUBLEPOST=1433312792][/DOUBLEPOST][03.06.15]
    - Изменен доступ к API части. Плагины которые используют данную библиотеку нуждаются перекодировании.
    - Теперь плагин сам обновляет чанки после установки света.
    - В методах убраны аргументы needUpdate.
    - Добавлен Metrics.
    - Немного оптимизированы ILightRegistry's.
    - Маленькие баг фиксы.
     
  9. ql_Nik_lp

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

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Я горжусь тобой x)
     
  10. Автор темы
    BeYkeR

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

    Баллы:
    173
    [21.08.15]
    - Изменен доступ к API части. Плагины которые используют данную библиотеку нуждаются перекодировании.
    - Теперь автообновление чанков можно отключать/включать/обновлять самим.
     
  11. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Если кликнуть по источнику света, он гаснет.

    Не работает на PaperSpigot
    Caused by: java.lang.NoSuchMethodError: net.minecraft.server.v1_8_R3.WorldServer
    .c(Lnet/minecraft/server/v1_8_R3/EnumSkyBlock;Lnet/minecraft/server/v1_8_R3/Bloc
    kPosition; )Z
    at ru.BeYkeRYkt.LightAPI.nms.CraftBukkit.v1_8_R3.NMSHandler.recalculateB
    lockLighting(NMSHandler.java:71) ~[?:?]
    at ru.BeYkeRYkt.LightAPI.nms.CraftBukkit.v1_8_R3.NMSHandler.createLight(
    NMSHandler.java:36) ~[?:?]
    at ru.BeYkeRYkt.LightAPI.LightRegistry.createLight(LightRegistry.java:35
    ) ~[?:?]
     
  12. Автор темы
    BeYkeR

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

    Баллы:
    173
    [26.08.15]
    - Переименованы некоторые методы на более подходящие по смыслу.
    - ChunkCoord переименован в ChunkInfo.
    - Загрузка хандлера теперь зависит от строки getVersion()
    - Добавлена поддержка PaperSpigot 1.8.8 (Код базирован на версии @Den_Abr).
     
  13. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Вот ты вроде бы API делаешь, а с каждой версией переименовываешь методы и классы. Не надо так:)
     
  14. Автор темы
    BeYkeR

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

    Баллы:
    173
    Надо, ещё как надо!
     
  15. Allidan

    Allidan Ньюби Пользователь

    Баллы:
    1
    Автор красава.
     
  16. demkom

    demkom Администратор Пользователь

    Баллы:
    76
    Skype:
    demkom1983
    Имя в Minecraft:
    G_demkom_G
    А можно сделать что бы освещение привязывалось к предмету в руке (с уникальными индификатором или *)?
    Допустим у предмета название Алмазный Меч - LVL 10003 и описание Самый крутой мечик обычный алмазный меч не издает свет, а меч с название и описание выше будет светится... Такое есть или будет?
     
  17. Автор темы
    BeYkeR

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

    Баллы:
    173
    Пусть этой фичей займется другой плагин. Этот все-лишь "инструмент" для разработчиков, чтобы они могли создавать невидимые источники света.
     
  18. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku

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