RustTip

OnRfBroadcasterAdded

OxideCarbonRadio

Called when an RF broadcaster is added.

void OnRfBroadcasterAdded(IRFObject obj, int frequency)
Работает — метод игры в этой сборке тот же, под который написан хук.

Параметры

obj
IRFObject
frequency
int

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

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

Пример

private void OnRfBroadcasterAdded(IRFObject obj, int frequency)
{
    Puts("OnRfBroadcasterAdded");
}

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

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

Rust.opj (Oxide)
void RFManager.AddBroadcaster(int, IRFObject)

Передаёт: IRFObject obj, int frequency

РаботаетReturnBehavior: ContinueArgumentBehavior: UseArgumentString (a1, a0)Assembly-CSharp.dll

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

// …
	frequency = ClampFrequency(frequency);
	HashSet<IRFObject> broadcasterSet = GetBroadcasterSet(frequency);
	if (broadcasterSet.RemoveWhere((IRFObject b) => b == null || !b.IsValidEntityReference()) > 0)
	{
		Debug.LogWarning($"Found null entries in the RF broadcaster set for frequency {frequency}... cleaning up.");
	}
	if (broadcasterSet.Add(obj) && (!_isFrequencyBroadcasting.TryGetValue(frequency, out var value) || !value))
	{
		Interface.CallHook("OnRfBroadcasterAdded", obj, frequency);
		_isFrequencyBroadcasting[frequency] = true;
		UpdateListenersForFrequency(frequency, isBroadcasting: true);
	}
}

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