RustTip

OnPlayerReported

OxideCarbonPlayer

Called when a player is reported.

void OnPlayerReported(BasePlayer local1, string local6, string targetId, string local2, string local3, string local5)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

local1
BasePlayer
local6
string
targetId
string
local2
string
local3
string
local5
string

Возвращаемое значение

voidВозвращаемое значение игнорируется — хук только уведомляет.

Пример

private void OnPlayerReported(BasePlayer local1, string local6, string targetId, string local2, string local3, string local5)
{
    Puts("OnPlayerReported");
}

Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.

Место встраивания

Rust.opj (Oxide)
void BasePlayer.<OnPlayerReported>d__778.MoveNext()

Передаёт: BasePlayer local1, string local6, string targetId, string local2, string local3, string local5

РаботаетReturnBehavior: ContinueArgumentBehavior: UseArgumentString (l1, l6, this.<targetId>5__2, l2, l3, l5)Assembly-CSharp.dll

Где вызывается (код игры этой ветки)

// …
	PlayerId = basePlayer.UserIDString,
	PlayerName = basePlayer.displayName,
	TargetId = <targetId>5__2,
	TargetName = text4,
	Subject = text,
	Message = message,
	Type = text3
});
Interface.CallHook("OnPlayerReported", basePlayer, text4, this.<targetId>5__2, text, text2, text3);
if (string.IsNullOrEmpty(Server.reportsServerEndpoint))
{
	goto IL_0203;
}
ReportType type = ReportType.Abuse;
if (text3.Equals("cheat"))
{
	type = ReportType.Cheat;
// …

Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.