RustTip

OnTeamUpdated

OxideCarbonTeam

Called when a team is updated.

object OnTeamUpdated(ulong currentTeam, ProtoBuf.PlayerTeam local3, BasePlayer basePlayer)
Works — the game method in this build is the one the hook was written for.

Parameters

currentTeam
ulong
local3
ProtoBuf.PlayerTeam
basePlayer
BasePlayer

Return value

objectReturn non-null to cancel the game action.

Example

object — you can affect the game: return a value to change or cancel the action.

private object OnTeamUpdated(ulong currentTeam, ProtoBuf.PlayerTeam local3, BasePlayer basePlayer)
{
    Puts("OnTeamUpdated");

    // change nothing — the game continues as usual
    return null;

    // to affect the game:
    // return false; // non-null cancels the game action
}

Works in both Oxide and Carbon: Carbon loads Oxide plugins as is.

Injection point

Rust.opj (Oxide)
void BasePlayer.TeamUpdate(bool)

Passes: ulong currentTeam, ProtoBuf.PlayerTeam local3, BasePlayer basePlayer

WorksReturnBehavior: ExitWhenValidTypeArgumentBehavior: UseArgumentString (this.currentTeam, l3, this)Assembly-CSharp.dll

Where it is called (this branch's game code)

// …
PlayerState playerState = SingletonComponent<ServerMgr>.Instance.playerStateManager.Get(playerTeam.teamLeader);
if (playerState?.pointsOfInterest != null)
{
	foreach (MapNote item in playerState.pointsOfInterest)
	{
		playerTeam2.leaderMapNotes.Add(item);
	}
}
if (Interface.CallHook("OnTeamUpdated", this.currentTeam, local3, this) != null)
{
	return;
}
ClientRPC(RpcTarget.PlayerAndSpectators("CLIENT_ReceiveTeamInfo", this), playerTeam2);
if (playerTeam2.leaderMapNotes != null)
{
	playerTeam2.leaderMapNotes.Clear();
}
// …

Sources: Rust.opj from OxideMod/Oxide.Rust (MIT) and hook metadata of the Carbon documentation (MIT). Method code is decompiled from this branch's server.