Вход

Регистрация

Восстановление доступа

LuaInMineBukkit

LuaInMineBukkit

|

smileyik01

Плагин предоставляет среду выполнения Lua, позволяя писать и перезагружать Bukkit-плагины в виде легковесных скриптов без компиляции.

Скачать

Версия игры

1.14.4

1.15

1.15.1

1.15.2

1.16

1.16.1

1.16.2

1.16.3

1.16.4

1.16.5

1.17

1.17.1

1.18

1.18.1

1.18.2

1.19

1.19.1

1.19.2

1.19.3

1.19.4

1.20

1.20.1

1.20.2

1.20.3

1.20.4

1.20.5

1.20.6

1.21

1.21.1

1.21.10

1.21.2

1.21.3

1.21.4

1.21.5

1.21.6

1.21.7

1.21.8

1.21.9

Ссылка на сайт

modrinth.com

Разработчик

Лицензия

MIT

Скачиваний:

0

Обновлено:

31.10.2026

ID:

Похожие плагины20

Связанные материалы3

LuaInMineBukkit II позволяет использовать язык Lua для взаимодействия с Bukkit-сервером, обеспечивая высокую скорость выполнения и простоту разработки.

logo
logo

LuaInMineBukkit II — это серверный плагин для Bukkit, предназначенный для интеграции скриптов на языке Lua в логику сервера. Использование Lua позволяет разработчикам создавать функционал плагинов с простым синтаксисом, который не требует предварительной компиляции. Изменения вносятся непосредственно в файлы скриптов с возможностью их мгновенной перезагрузки.

В отличие от предыдущих поколений, текущая версия ориентирована на использование нативной виртуальной машины Lua. Проект базируется на модифицированном репозитории luajava, где были полностью переписаны части функционала отражения (reflection). Это упростило процесс вызова методов Java из Lua и обеспечило более информативные сообщения об ошибках на стороне языка C.

LuaInMineBukkit — изображение проекта
LuaInMineBukkit — изображение проекта

Плагин предоставляет инструменты для создания полноценных расширений сервера, позволяя работать с основными механиками Bukkit напрямую из скриптов.

Основные возможности проекта включают:

  • Регистрация команд: создание любых команд с автоматической генерацией иерархии и справочной информации.
  • Слушатели событий: поддержка любых событий Bukkit, включая кастомные события из других установленных плагинов.
  • Быстрое отражение (Fast Reflection): использование MethodHandle обеспечивает значительно более высокую производительность по сравнению со стандартным Java-отражением.
  • Автоматическая перезагрузка: плагин отслеживает изменения в файлах Lua-скриптов и обновляет их в реальном времени.
  • Поддержка Java-типов: благодаря динамическим прокси и отражению, скрипты могут наследовать интерфейсы Java и вызывать публичные методы или атрибуты типов Java.

Хотя плагин предоставляет широкий доступ к функционалу Java, отражение не является универсальным решением. В случаях, где возможности Lua ограничены, плагину требуется Java-мост для заполнения пробелов в логике.

🚀 Lua Pooling и многопоточность

Для обеспечения производительности при параллельных задачах реализована система пулинга (pooling). В стандартном режиме выполнение Lua-кода в разных потоках (например, при обработке событий или асинхронных задач) блокирует основную виртуальную машину (VM). Если один поток выполняет длительную операцию, остальные задачи вынуждены ждать освобождения ресурсов.

С включенным Lua Pooling при поступлении задачи из другого потока, она немедленно передается в свободную виртуальную машину из пула. Это позволяет основному потоку мгновенно освобождаться и отвечать на другие вызовы, обеспечивая истинно параллельное выполнение кода.

Пример использования асинхронных вызовов с пулингом:

local import = require "import"
local Thread = import "java.lang.Thread"

for i = 1, 2 do
    luaBukkit.helper:asyncCall(luaBukkit.env:pooledCallable(
        function ()
            while true do
                luaBukkit.log:info(Thread:currentThread():getName() .. " async call " .. i .. "!")
                Thread:sleep(1000)
            end
        end
    ))
end

При включенном пулинге (с емкостью 2) сервер сможет одновременно выводить сообщения из двух разных потоков. Если пулинг отключен, выполнение бесконечного цикла в одном потоке заблокирует основную VM, и сервер не сможет корректно завершить работу по команде stop, так как не сможет освободить ресурсы.

🔗 Интеграция с динамическими библиотеками (JNIBridge)

Благодаря поддержке cffi, в плагин интегрирован JNIBridge, позволяющий взаимодействовать с динамическими библиотеками (DLL/SO). Это открывает возможности для использования кода, написанного на C/C++.

На текущем этапе функционал JNIBridge включает:

  • Вызов методов Java
  • Базовая конвертация типов

В планах разработки добавлены доступ к полям (Field access) и работа с массивами (Array access).

ffi-plugin
ffi-plugin

Войдите, чтобы поставить оценку и оставить отзыв.

Отзывов пока нет — будьте первым!
Канал Файл Игра Модлоадер Язык Скачиваний Загружен
Релиз LuaInMinecraftBukkitII-1.1.0-all.jar 4.71 MB 1.21.10, 1.21.9, 1.21.8, 1.21.7, 1.21.6, 1.21.5, 1.21.4, 1.21.3, 1.21.2, 1.21.1, 1.21, 1.20.6, 1.20.5, 1.20.4, 1.20.3, 1.20.2, 1.20.1, 1.20, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19, 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16, 1.15.2, 1.15.1, 1.15, 1.14.4 PaperSpigotPurpurBukkit — 0 08.11.2025
Релиз LuaInMinecraftBukkitII-1.1.0+folia-all.jar 4.71 MB 1.21.10, 1.21.9, 1.21.8, 1.21.7, 1.21.6, 1.21.5, 1.21.4, 1.21.3, 1.21.2, 1.21.1, 1.21, 1.20.6, 1.20.5, 1.20.4, 1.20.3, 1.20.2, 1.20.1, 1.20, 1.19.4, 1.19.3, 1.19.2, 1.19.1, 1.19, 1.18.2, 1.18.1, 1.18, 1.17.1, 1.17, 1.16.5, 1.16.4, 1.16.3, 1.16.2, 1.16.1, 1.16, 1.15.2, 1.15.1, 1.15, 1.14.4 PaperSpigotPurpurBukkitFolia — 0 08.11.2025
Зависимостей нет.

Скачать

Версия игры

1.14.4

1.15

1.15.1

1.15.2

1.16

1.16.1

1.16.2

1.16.3

1.16.4

1.16.5

1.17

1.17.1

1.18

1.18.1

1.18.2

1.19

1.19.1

1.19.2

1.19.3

1.19.4

1.20

1.20.1

1.20.2

1.20.3

1.20.4

1.20.5

1.20.6

1.21

1.21.1

1.21.10

1.21.2

1.21.3

1.21.4

1.21.5

1.21.6

1.21.7

1.21.8

1.21.9

Ссылка на сайт

modrinth.com

Разработчик

Лицензия

MIT

Скачиваний:

0

Обновлено:

31.10.2026

ID:

Похожие плагины20

Связанные материалы3