Better Whitelist
Активный0.0
Установок
Последнее обновление
Версии
Better Whitelist
Better Whitelist предлагает гибкую систему вайтлиста для вашего сервера Minecraft, которую можно настроить под конкретные нужды.
Требования к установке: Мод должен быть установлен как на сервере, так и на всех клиентах, подключающихся к нему.
Настройка через μScript: Конфигурация вайтлиста осуществляется с помощью языка μScript, но для работы с ним не требуется глубоких знаний программирования. При первом запуске сервера с установленным модом автоматически создается файл конфигурации с подробными инструкциями.
Пример простой конфигурации:
// преобразование мода в упрощенное представление для экономии трафика
simplify = { mod -> { id = mod.id, version = mod.version } }
// все не-серверные моды, присутствующие на сервере
sharedMods = mods::values()
::filter({ v -> v.environment != 'server' & v.id != 'java' })
::map(simplify)
// проверка наличия у клиента правильных версий всех не-серверных модов сервера
clientMissing = challenge({ arg ->
arg::filter({ v -> !mods::values()::anyMatch({ m -> v.id == m.id & v.version == m.version }) })
}, sharedMods)
assert(clientMissing::isEmpty(), 'Вам не хватает необходимых модов: ' || clientMissing)
// проверка отсутствия у клиента дополнительных модов, которые требуются на сервере
clientAdditional = challenge({ arg, fn ->
clientSideMods = mods::values()::filter({ v -> v.environment != 'client' & v.id != 'java' })
clientSideMods::filter({ v -> !arg::anyMatch({ m -> v.id == m.id & v.version == m.version }) })::map(fn)
}, sharedMods, simplify)
assert(clientAdditional::isEmpty(), 'У вас есть неподдерживаемые моды: ' || clientAdditional)
// фильтрация ресурспаков для блокировки X-Ray пакетов
bannedWords = listOf('xray', 'x-ray', 'cheat')
assert(!challenge({ ->
resourcePacks::map({ pack -> pack.name || ' ' || pack.displayName || ' ' || pack.description })
})::anyMatch({ v -> bannedWords::anyMatch({ word -> v::toLower()::contains(word) }) }), "Пожалуйста, не читерите, " || user.name)
Доступные возможности в скриптах:
- Все методы из стандартной библиотеки μScript (включая работу с датой/временем, что позволяет создавать временные вайтлисты, черные списки или обратные отсчеты)
resourcePacks(только клиент): список ресурспаков с полямиname,displayNameиdescriptionprintln('сообщение')(оба): функция для отладкиmods(оба): список загруженных модов с теми же полями, что и результатmod()mod('id')(оба): информация о конкретном моде (или null):id,name,description,authors(список строк),contributors(список строк),version,environment(client,serverили*),license,contact(как в FMJ),depends(список строк)assert(bool)(сервер): проверка истинности условия с киком игрока при ложном результате (опционально можно добавить сообщение вторым параметром)challenge({->closure}, дополнительные аргументы...)(сервер): отправка замыкания на клиент для выполнения там. Аргументы могут содержать другие замыкания.user(сервер): информация о пользователе, пытающемся войти, а именно егоidиname