Получение отчетов
Когда игрок отправляет отчёт с помощью диалогового окна F7, этот отчёт отправляется в Facepunch. Также существуют инструменты для получения таких отчётов на ваших собственных серверах. Это поможет вам быстро реагировать на проблемы, с которыми сталкиваются игроки на вашем сервере.
Вывод на консоль
Самый простой способ получать уведомления об отчётах игроков — использовать переменную server.printReportsToConsole
convar. Она будет выводиться в журнал консоли сервера каждый раз, когда игрок отправляет отчёт, вместе с кратким содержанием отчёта (из соображений производительности).
Отправка отчетов на внешнюю конечную точку
Чтобы получить полный отчёт, можно также отправить отчёт во внешний сервис с помощью переменной server.reportsServerEndpoint
convar. После присвоения HTTP-адреса все отчёты, отправленные игроком, будут полностью передаваться на указанную конечную точку.
Рекомендуется также назначить приватный пароль для переменной server.reportsServerEndpointKey
convar. Он будет указан в любых отчётах и может использоваться для проверки подлинности отчёта.
Данные отправляются как POST - Dictionary<string,string>
и поля являются:
Клавиша | Значение |
---|---|
data | Отчет в формате JSON |
userid | Идентификатор Steam игрока, отправившего отчёт. Он также указан в поле данных |
key | Если ключ присвоен server.reportsServerEndpointKey , он будет включен сюда |
Пример данных:
{
"Subject":"Subject goes here",
"Message":"Message goes here",
"Type":0,
"TargetReportType":null,
"TargetId":null,
"TargetName":null,
"AppInfo":{
"Version":3,
"Build":{
"Date":0,
"Scm":{
"Type":null,
"ChangeId":null,
"Branch":null,
"Repo":null,
"Comment":null,
"Author":null,
"Date":null
},
"Build":{
"Id":null,
"Number":null,
"Tag":null,
"Url":null,
"Name":null,
"Node":null
},
"Valid":false
},
"Name":"COMPUTERNAME",
"Os":"Windows 10 (10.0.0) 64bit",
"Cpu":"Intel(R) Core(TM) i9-9920X CPU @ 3.50GHz",
"CpuCount":24,
"Mem":11049,
"Gpu":"NVIDIA GeForce RTX 2080 Ti",
"GpuMem":11049,
"Arch":"x64",
"UserId":"123456789123456",
"UserName":"USERNAME",
"ServerAddress":"127.0.0.1:28015",
"ServerName":"My Untitled Rust Server",
"LevelName":"Playground",
"LevelPos":"(2.6, 8.5, 44.8)",
"LevelRot":"(1.9, 214.7, 0.0)",
"MinutesPlayed":0,
"Image":""
}
}
Пример доступа к данным в PHP:
$data = json_decode($_POST['data'], true);
echo 'Reporter: ' . $_POST['userid']
echo 'Subject: ' . $data['Subject']
echo 'Msg: '. $data['Message']
В поле «Тип» указывается тип сообщения (Общее=0, Ошибка=1, Чит=2, Нарушение=3, Идея=4). В полях «Идентификатор цели» и «Имя цели» в случае сообщения о игроке будет указан целевой игрок. В поле «Изображение» будет указан закодированный в Base64 JPG-файл со скриншотом, сделанным диалоговым окном сообщения о неприемлемом контенте.