Прежде всего, вам потребуется какая-либо среда для просмотра баз данных. Так как audit использует SQLite, я рекомендую DB Browser for SQLite.
Кроме того, вам пригодятся файлы audit.db, user.db, audit.db-shm и audit.db-wal (если присутствуют). Если сервер запущен на удаленной машине, вам стоит скопировать эти файлы на ваш компьютер.
Так же audit должен быть включен. Для этого проверьте, что в файле конфигурации (custom.yaml) следующие значения установлены как true.
mod-enabled: true mod-default-enabled: true
mods: Audit: enabled: true
Имена файлов баз данных могут отличаться в зависимости от установленных вами в файле конфигурации.
Мы будем рассматривать базы данных audit.db и user.db. Чтобы открыть их, просто нажмите кнопку Open Database (Открыть базу данных) и выберите нужный файл. Также можно просто дважды нажать левой кнопкой мыши по файлу .db. ¯\_(ツ)_/¯
Эта база данных содержит три таблицы.
Таблица со всеми когда-либо входившими игроками. Содержит три поля. К этой таблице мы будем обращаться каждый раз, когда нам потребуется связать uuid во всех остальных таблицах с конкретным человеком
uuid - Универсальный уникальный идентификатор. Используется внутри баз данных, к нему мы будем обращаться почти всегда. Хранится в бинарной форме, никак не расшифровывается, всегда имеет длину 16 байт.
xuid - Уникальный идентификатор аккаунта xbox. Используется для идентификации игрока в whitelist и в моде ban. Всегда имеет длину в 16 десятичных цифр.
name - Читабельный никнейм игрока. Именно он отображается в игре.
Таблица с логами входов игроков. Имеет три поля.
uuid - Тот самый идентификатор.
address - Запись ip адреса и порта, с которого был вход. Хранится в форме 255.255.255.255|65535.
time - Дата и время входа игрока. В формате 2020-09-18 19:51:34.771
Таблица с логами выходов игроков. Имеет всего два поля.
uuid - Без комментариев
time - Дата и время выхода игрока.
Больше ничего интересного в этой базе данных нет, перейдем к audit.db.
Содержит три таблицы.
Содержит 10 полей. Сюда записывается содержание пакета PlayerActionPacket.
time - Дата действия. В формате 2020-09-28 17:25:23.548
session - uuid сессии игрока. В бинарном формате, всегда длиной 16 байтов.
player - uuid игрока. Все так же блоб длиной 16 байтов.
dimension - Измерение, в котором произошло событие.
0 - Верхний мир
1 - Нижний мир (ад)
2 - Край (The end)
blocked - Нет информации
type - Тип события. Выражается числом от 0 до 25, означает код события. Расшифровывается по таблице.
x - Координата по x места в мире, где произошло событие
y - Координата по y.
z - Координата по оси z.
face - Вероятно направление события, нет информации. Предположительно число от -1 до 99.
Структура аналогична audit_action за исключением того, что отсутствуют поля type и face. Записывается содержание пакета ItemFrameDropItemPacket. Скорее всего хранит данные об изъятиях предметов из рамки.
Структура аналогична вышеприведенным таблицам за исключением того, что содержит только поля time, session, player, dimension и blocked. Кроме них есть уникальное поле data, которое хранит бинарные данные действия с инвентарем. Хранит пакеты InventoryTransactionPacket. Код пакета 0x1e. Документацию к пакету можно найти в репозитории MiNET
Код | Событие | Комментарий |
---|---|---|
0 | ACTION_START_BREAK | Начат процесс копания блока |
1 | ACTION_ABORT_BREAK | Процесс копания блока прерван |
2 | ACTION_STOP_BREAK | Блок выкопан |
3 | ACTION_GET_UPDATED_BLOCK | - |
4 | ACTION_DROP_ITEM | - |
5 | ACTION_START_SLEEPING | Игрок начал спать |
6 | ACTION_STOP_SLEEPING | Игрок перестал спать |
7 | ACTION_RESPAWN | Игрок возродился |
8 | ACTION_JUMP | Игрок прыгнул |
9 | ACTION_START_SPRINT | Игрок перешел на бег |
10 | ACTION_STOP_SPRINT | Игрок прекратил бег |
11 | ACTION_START_SNEAK | Игрок начал красться |
12 | ACTION_STOP_SNEAK | Игрок прекратил красться |
13 | ACTION_DIMENSION_CHANGE_REQUEST | Отправляется при смерти в другом измерении |
14 | ACTION_DIMENSION_CHANGE_ACK | Отправляется при возрождении в другом измерении, чтобы сообщить серверу, что игрок возродился |
15 | ACTION_START_GLIDE | Игрок начал скользить |
16 | ACTION_STOP_GLIDE | Игрок прекратил скользить |
17 | ACTION_BUILD_DENIED | - |
18 | ACTION_CONTINUE_BREAK | Игрок продолжил ломать |
19 | ACTION_CHANGE_SKIN | Игрок изменил скин |
20 | ACTION_SET_ENCHANTMENT_SEED | Не используется |
21 | ACTION_START_SWIMMING | Игрок начал плавать |
22 | ACTION_STOP_SWIMMING | Игрок перестал плавать |
23 | ACTION_START_SPIN_ATTACK | - |
24 | ACTION_STOP_SPIN_ATTACK | - |
25 | ACTION_INTERACT_BLOCK | Игрок взаимодействует с блоком |