RustTip

OnBuildingPrivilege

OxideCarbonEntity

Called when building privilege occurs.

object OnBuildingPrivilege(BaseEntity baseEntity, OBB obb, bool cached, float cacheDuration, BuildingPrivlidge exclude, bool ignorePosition)
Works — the game method in this build is the one the hook was written for.

Parameters

baseEntity
BaseEntity
obb
OBB
cached
bool
cacheDuration
float
exclude
BuildingPrivlidge
ignorePosition
bool

Return value

objectThe returned value replaces the game result; null lets the game decide.

Example

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

private object OnBuildingPrivilege(BaseEntity baseEntity, OBB obb, bool cached, float cacheDuration, BuildingPrivlidge exclude, bool ignorePosition)
{
    Puts("OnBuildingPrivilege");

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

    // to affect the game:
    // return default(BuildingPrivlidge); // your value instead of the game result
}

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

Injection point

Rust.opj (Oxide)
BuildingPrivlidge BaseEntity.GetBuildingPrivilege(OBB, bool, float, BuildingPrivlidge, bool)

Passes: BaseEntity baseEntity, OBB obb, bool cached, float cacheDuration, BuildingPrivlidge exclude, bool ignorePosition

WorksReturnBehavior: ExitWhenValidTypeArgumentBehavior: All (this, a0)Assembly-CSharp.dll

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

public BuildingPrivlidge GetBuildingPrivilege(OBB obb, bool cached, float cacheDuration = 1f, BuildingPrivlidge exclude = null, bool ignorePosition = false)
{
	object returnvar = Interface.CallHook("OnBuildingPrivilege", this, obb, cached, cacheDuration, exclude, ignorePosition);
	if (returnvar is BuildingPrivlidge)
	{
		return (BuildingPrivlidge)returnvar;
	}
	if (cached && IsCacheValid(cachedBuildingPrivilegeTime, cacheDuration, cachedBuildingPrivilegePosition, obb.position, ignorePosition))
	{
		return cachedBuildingPrivilege;
	}
// …

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.