- Документация
- https://modrinth.com/datapack/detect-afk
Detect AFK Players — это датапак для Minecraft, предназначенный для определения бездействующих игроков. Согласно официальному описанию, он определяет состояние AFK по повороту головы игрока, а не по изменению координат. По умолчанию игрок считается неактивным после трёх минут отсутствия движения мышью, однако этот интервал можно изменить. Проект ориентирован прежде всего на использование администраторами серверов и как библиотечная основа для других датапаков.
Проект распространяется по лицензии MIT, относится к категориям library, management и utility, устанавливается как ZIP-архив без распаковки в папку datapacks выбранного мира и не имеет обязательных project dependencies в выбранных версиях. Клиентская сторона обозначена как необязательная, серверная — как обязательная. Представленные архивы не запускались: подтверждены только будущая загрузка по официальному HTTPS, сверка контрольных сумм и статическая проверка архивов.
Основная задача проекта — предоставить быстрый и точный механизм определения бездействия игрока, который затем может использоваться другими датапаками или средствами администрирования.
Подтверждённые возможности:
• автоматическое определение AFK;
• присвоение игроку тега afk;
• использование как библиотеки для других проектов;
• поддержка дополнительных модульных расширений;
• настройка времени перехода в AFK;
• предоставление API для обработки событий ухода и возвращения игрока.
Официальное описание отдельно подчёркивает, что сам по себе датапак выполняет немного функций без дополнительных расширений, поскольку его основное назначение заключается именно в определении состояния игрока.
Определение активности основано на анализе поворота головы игрока.
Высокоуровневая последовательность выглядит следующим образом:
• Датапак периодически проверяет поворот головы игрока.
• Если движение отсутствует достаточно долго, начинается переход в состояние AFK.
• После достижения установленного порога игрок получает тег afk.
• При возобновлении активности состояние снимается.
• Дополнительные датапаки могут выполнить собственные действия через предоставленные точки интеграции.
В официальной информации не описываются внутренние структуры хранения данных, поэтому более подробное описание алгоритма отсутствует.
По умолчанию игрок становится AFK через три минуты.
Официальное описание указывает, что значение по умолчанию составляет:
• 3600 тиков;
• примерно три минуты игрового времени.
Для изменения порога используется команда:
/scoreboard players set.threshold afk.settings NUMBEROFTICKS
Вместо NUMBEROFTICKS указывается необходимое количество тиков.
Иные способы изменения интервала официальным описанием не подтверждены.
Проект поддерживает использование команды /trigger afk, однако она недоступна автоматически для всех игроков.
Чтобы разрешить конкретному игроку пользоваться этим триггером, администратор применяет команду:
/scoreboard players enable PLAYER afk
Таким образом, возможность ручного перехода в AFK контролируется администратором сервера.
Других способов выдачи такого разрешения в предоставленной основе не описано.
Detect AFK Players поддерживает модульную архитектуру.
В официальном описании перечислены следующие дополнения:
• Pause Day Cycle — приостанавливает течение времени, когда все игроки находятся в AFK;
• AFK Sleep — позволяет учитывать игроков в AFK при сне и корректно работает с измерениями и обновлениями;
• AFK Dim Names — делает имена игроков менее яркими во время AFK;
• AFK Message — отображает уведомления о смене статуса;
• AFK Sit — переводит игроков в сидячее положение во время AFK.
Эти дополнения являются отдельными проектами. В метаданных выбранных выпусков они не указаны как обязательные зависимости.
Автор сравнивает Detect AFK Players с распространёнными методами определения бездействия.
Согласно официальному описанию, многие альтернативные решения регулярно проверяют:
• координаты X, Y и Z;
• изменения инвентаря;
• взаимодействие с блоками.
Detect AFK Players использует иной подход:
• выполняется одна проверка NBT-поворота головы;
• проверка проводится для каждого игрока один раз примерно каждые 1,5 секунды.
Официально заявляется значительно меньший объём вычислений по сравнению с альтернативными подходами, в отдельных случаях — до двух порядков.
Кроме того, такой способ уменьшает ложные срабатывания из-за:
• взаимодействия с существами;
• взрывов;
• некоторых анти-AFK-механизмов, например потоков воды.
Другие показатели производительности официальная информация не приводит.
Проект предоставляет две точки интеграции:
• afk:away — выполняется от имени игрока при переходе в AFK;
• afk:back — выполняется от имени игрока после возвращения из AFK.
Официальный текст приводит пример использования этих функциональных тегов для автоматического исключения AFK-игроков с сервера.
Другие функции API в предоставленной основе не описаны.
Подтверждённая платформа:
• datapack.
Подтверждённые версии Minecraft:
• 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.2.
Метаданные также содержат сведения о сторонах установки:
• client = optional;
• server = required.
В выбранных версиях отсутствуют обязательные project dependencies.
Подтверждённый порядок установки:
• Выбрать совместимый ZIP-архив.
• Не распаковывать файл.
• Поместить архив в папку datapacks выбранного мира.
Подтверждены два выпуска:
Версия 1.2.2
• файл afk+v1.2.2+mc1.18-1.21.8.zip;
• размер — 14513 байт;
• опубликованы SHA-512 и SHA-1.
Версия 1.2.1
• файл afk+v1.2.1+mc1.20.3-1.21.5.zip;
• размер — 14398 байт;
• опубликованы SHA-512 и SHA-1.
Описание различий между версиями официальной информацией не приводится.
Detect AFK Players распространяется по лицензии MIT.
Следует учитывать ограничения подтверждённых сведений:
• отсутствует описание внутренней реализации;
• не опубликованы системные требования;
• не приведены пользовательские интерфейсы;
• не описаны все возможные интеграции API;
• без дополнительных расширений функциональность ограничивается определением AFK.
Файлы этой карточки загружены с официального HTTPS-источника; размеры и опубликованные SHA-1/SHA-512 сверены, целостность и безопасные пути внутри архивов проверены статически. Файлы не запускались, поэтому динамическое поведение не заявляется как протестированное.
Он автоматически определяет бездействующих игроков и присваивает им тег afk.
Согласно официальному описанию, используется изменение поворота головы игрока.
По умолчанию — через 3600 тиков, что соответствует примерно трём минутам. Это значение можно изменить.
Нет. В выбранных метаданных обязательные project dependencies отсутствуют.
Они расширяют возможности базового определения AFK, например управляют временем суток, сообщениями или отображением игроков.
Нет. ZIP-файл помещается в папку datapacks без распаковки.
Два функциональных тега: afk:away и afk:back, которые выполняются при переходе игрока в AFK и при возвращении.
Нет. Подтверждены только будущая загрузка по официальному HTTPS, сверка контрольных сумм и статическая проверка архивов; динамическое тестирование не заявлено.
Проект распространяется по лицензии MIT, относится к категориям library, management и utility, устанавливается как ZIP-архив без распаковки в папку datapacks выбранного мира и не имеет обязательных project dependencies в выбранных версиях. Клиентская сторона обозначена как необязательная, серверная — как обязательная. Представленные архивы не запускались: подтверждены только будущая загрузка по официальному HTTPS, сверка контрольных сумм и статическая проверка архивов.
Назначение Detect AFK Players
Основная задача проекта — предоставить быстрый и точный механизм определения бездействия игрока, который затем может использоваться другими датапаками или средствами администрирования.
Подтверждённые возможности:
• автоматическое определение AFK;
• присвоение игроку тега afk;
• использование как библиотеки для других проектов;
• поддержка дополнительных модульных расширений;
• настройка времени перехода в AFK;
• предоставление API для обработки событий ухода и возвращения игрока.
Официальное описание отдельно подчёркивает, что сам по себе датапак выполняет немного функций без дополнительных расширений, поскольку его основное назначение заключается именно в определении состояния игрока.
Скриншоты и внешний вид
Принцип работы на высоком уровне
Определение активности основано на анализе поворота головы игрока.
Высокоуровневая последовательность выглядит следующим образом:
• Датапак периодически проверяет поворот головы игрока.
• Если движение отсутствует достаточно долго, начинается переход в состояние AFK.
• После достижения установленного порога игрок получает тег afk.
• При возобновлении активности состояние снимается.
• Дополнительные датапаки могут выполнить собственные действия через предоставленные точки интеграции.
В официальной информации не описываются внутренние структуры хранения данных, поэтому более подробное описание алгоритма отсутствует.
Порог бездействия и настройка
По умолчанию игрок становится AFK через три минуты.
Официальное описание указывает, что значение по умолчанию составляет:
• 3600 тиков;
• примерно три минуты игрового времени.
Для изменения порога используется команда:
/scoreboard players set.threshold afk.settings NUMBEROFTICKS
Вместо NUMBEROFTICKS указывается необходимое количество тиков.
Иные способы изменения интервала официальным описанием не подтверждены.
Ручной переход в AFK
Проект поддерживает использование команды /trigger afk, однако она недоступна автоматически для всех игроков.
Чтобы разрешить конкретному игроку пользоваться этим триггером, администратор применяет команду:
/scoreboard players enable PLAYER afk
Таким образом, возможность ручного перехода в AFK контролируется администратором сервера.
Других способов выдачи такого разрешения в предоставленной основе не описано.
Дополнительные расширения
Detect AFK Players поддерживает модульную архитектуру.
В официальном описании перечислены следующие дополнения:
• Pause Day Cycle — приостанавливает течение времени, когда все игроки находятся в AFK;
• AFK Sleep — позволяет учитывать игроков в AFK при сне и корректно работает с измерениями и обновлениями;
• AFK Dim Names — делает имена игроков менее яркими во время AFK;
• AFK Message — отображает уведомления о смене статуса;
• AFK Sit — переводит игроков в сидячее положение во время AFK.
Эти дополнения являются отдельными проектами. В метаданных выбранных выпусков они не указаны как обязательные зависимости.
Производительность
Автор сравнивает Detect AFK Players с распространёнными методами определения бездействия.
Согласно официальному описанию, многие альтернативные решения регулярно проверяют:
• координаты X, Y и Z;
• изменения инвентаря;
• взаимодействие с блоками.
Detect AFK Players использует иной подход:
• выполняется одна проверка NBT-поворота головы;
• проверка проводится для каждого игрока один раз примерно каждые 1,5 секунды.
Официально заявляется значительно меньший объём вычислений по сравнению с альтернативными подходами, в отдельных случаях — до двух порядков.
Кроме того, такой способ уменьшает ложные срабатывания из-за:
• взаимодействия с существами;
• взрывов;
• некоторых анти-AFK-механизмов, например потоков воды.
Другие показатели производительности официальная информация не приводит.
API
Проект предоставляет две точки интеграции:
• afk:away — выполняется от имени игрока при переходе в AFK;
• afk:back — выполняется от имени игрока после возвращения из AFK.
Официальный текст приводит пример использования этих функциональных тегов для автоматического исключения AFK-игроков с сервера.
Другие функции API в предоставленной основе не описаны.
Совместимость
Подтверждённая платформа:
• datapack.
Подтверждённые версии Minecraft:
• 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.2.
Метаданные также содержат сведения о сторонах установки:
• client = optional;
• server = required.
Зависимости, установка и версии
В выбранных версиях отсутствуют обязательные project dependencies.
Подтверждённый порядок установки:
• Выбрать совместимый ZIP-архив.
• Не распаковывать файл.
• Поместить архив в папку datapacks выбранного мира.
Подтверждены два выпуска:
Версия 1.2.2
• файл afk+v1.2.2+mc1.18-1.21.8.zip;
• размер — 14513 байт;
• опубликованы SHA-512 и SHA-1.
Версия 1.2.1
• файл afk+v1.2.1+mc1.20.3-1.21.5.zip;
• размер — 14398 байт;
• опубликованы SHA-512 и SHA-1.
Описание различий между версиями официальной информацией не приводится.
Лицензия, ограничения и безопасность
Detect AFK Players распространяется по лицензии MIT.
Следует учитывать ограничения подтверждённых сведений:
• отсутствует описание внутренней реализации;
• не опубликованы системные требования;
• не приведены пользовательские интерфейсы;
• не описаны все возможные интеграции API;
• без дополнительных расширений функциональность ограничивается определением AFK.
Файлы этой карточки загружены с официального HTTPS-источника; размеры и опубликованные SHA-1/SHA-512 сверены, целостность и безопасные пути внутри архивов проверены статически. Файлы не запускались, поэтому динамическое поведение не заявляется как протестированное.
FAQ
Что делает Detect AFK Players?
Он автоматически определяет бездействующих игроков и присваивает им тег afk.
Как определяется бездействие?
Согласно официальному описанию, используется изменение поворота головы игрока.
Через какое время игрок становится AFK?
По умолчанию — через 3600 тиков, что соответствует примерно трём минутам. Это значение можно изменить.
Есть ли обязательные зависимости?
Нет. В выбранных метаданных обязательные project dependencies отсутствуют.
Для чего нужны дополнения?
Они расширяют возможности базового определения AFK, например управляют временем суток, сообщениями или отображением игроков.
Нужно ли распаковывать архив?
Нет. ZIP-файл помещается в папку datapacks без распаковки.
Что предоставляет API?
Два функциональных тега: afk:away и afk:back, которые выполняются при переходе игрока в AFK и при возвращении.
Проверялся ли датапак запуском?
Нет. Подтверждены только будущая загрузка по официальному HTTPS, сверка контрольных сумм и статическая проверка архивов; динамическое тестирование не заявлено.