
Better Whitelist
Активный0.0
Установок
0
Последнее обновление
2 недели назад
Версии
1.19.4 — 1.21.9
Клиент и сервер
Fabric
Управление
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
иdescription
println('сообщение')
(оба): функция для отладки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