Перейти к содержимому

Better Whitelist

Настраиваемая система вайтлиста для Minecraft

Fabric
Загрузчики
Fabric
Скачиваний на Modrinth
3,5 тыс.
Подписчиков на Modrinth
13
версий
19
Обновлён
16 сентября 202616 сент.
Опубликован
в 2023

Коротко о моде

Работает на Fabric
Для Minecraft 1.19.4–26.3
Нужен и в игре, и на сервере
Последняя версия — 26.3.0 от 16 сентября 2026
Нужен Fabric API и LibJF
Лицензия MIT — бесплатно
Где нужен
В игреобязателенНа сервереобязателен

Нужен и в игре, и на сервере

Версии игры1.19.4–26.3
Описание переведено автоматическиПоказать оригинал (EN)

Better-Whitelist предоставляет базовую систему вайтлиста для вашего сервера, которую вы можете адаптировать под свои нужды.

Мод требуется как на сервере, так и на всех клиентах, подключающихся к серверу.

Вайтлист настраивается с помощью μScript, но вам не обязательно быть хорошим программистом, чтобы использовать этот мод.

Файл конфигурации с некоторыми дополнительными деталями будет создан при первом запуске сервера с модом.

Простая конфигурация для Better-Whitelist может выглядеть так (обратите внимание, что при использовании этого вам, вероятно, придётся добавить исключения для клиентских модов с опциональными серверными компонентами):

// convert a mod to a simpler representation to save bandwidth
simplify = { mod -> { id = mod.id, version = mod.version } }

// all non-serverside mods present on the server
sharedMods = mods::values()
  ::filter({ v -> v.environment != 'server' & v.id != 'java' })
  ::map(simplify)

// ensure the client has the correct version of every non-serverside mod on the server
clientMissing = challenge({ arg ->
  arg::filter({ v -> !mods::values()::anyMatch({ m -> v.id == m.id & v.version == m.version }) })
}, sharedMods)
assert(clientMissing::isEmpty(), 'You lack required mods: ' || clientMissing)

// ensure the client has no additional mods that would be required on the server
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(), 'You have unsupported mods: ' || clientAdditional)

// filter resource packs for X-Ray packs
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) }) }), "Please don't cheat, " || user.name)

Вашим скриптам доступны следующие вещи:

  • Все методы из стандартной библиотеки μScript (включая дату/время, что позволяет временно добавлять или блокировать пользователей в вайтлисте или создавать обратные отсчёты)
  • resourcePacks (только клиент): список ресурспаков, каждый из которых имеет name, displayName и description
  • println('message') (оба): функция для отладки
  • mods (оба): список загруженных модов с теми же полями, что и результат mod()
  • mod('id') (оба): информация о конкретном моде (или null): id, name, description, authors (список строк), contributors (список строк), version, environment (либо client, server или *), license, contact (то же, что и FMJ), depends (список строк)
  • assert(bool) (сервер): проверить, что что-то истинно, и кикнуть игрока, если это не так (опционально можно добавить сообщение вторым параметром)
  • challenge({->closure}, additional arguments...) (сервер): отправить замыкание клиенту для выполнения там. Аргументы могут содержать другие замыкания.
  • user (сервер): информация о пользователе, пытающемся войти, а именно его id и name

Частые вопросы

Как установить Better Whitelist?

Установите Fabric под свою версию Minecraft, скачайте Better Whitelist под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.

Для каких версий Minecraft есть Better Whitelist?

У Better Whitelist есть сборки для Minecraft 1.19.4–26.3.

Нужен ли Better Whitelist на сервере?

Нужен и в игре, и на сервере

Лицензия и источник
MIT Licenseможно свободно использовать и распространять с указанием автора
Оригинал — Modrinth↗Файлы — без изменений, проверены по SHA-512Это ваш мод? Правообладателям

Сайт использует cookie: необходимые — для входа и темы, а также счётчики посещений Яндекс Метрика и LiveInternet — по ним мы видим, как пользуются сайтом. Рекламных cookie у нас нет. Подробнее