RustTip

OnLootEntityEnd

OxidePlayer
void OnLootEntityEnd(BasePlayer player, LootableCorpse lootableCorpse)
void OnLootEntityEnd(BasePlayer player, StorageContainer storageContainer)
void OnLootEntityEnd(BasePlayer player, ContainerIOEntity containerIOEntity)
void OnLootEntityEnd(BasePlayer player, DroppedItemContainer droppedItemContainer)
void OnLootEntityEnd(BasePlayer player, ItemBasedFlowRestrictor itemBasedFlowRestrictor)
Works — the game method in this build is the one the hook was written for.

Parameters

player
BasePlayer
lootableCorpse
LootableCorpse

Return value

voidThe return value is ignored — the hook only notifies.

Example

private void OnLootEntityEnd(BasePlayer player, LootableCorpse lootableCorpse)
{
    Puts("OnLootEntityEnd");
}

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

Injection point 1

Rust.opj (Oxide)
void LootableCorpse.PlayerStoppedLooting(BasePlayer)

Passes: BasePlayer player, LootableCorpse lootableCorpse

WorksReturnBehavior: ContinueArgumentBehavior: UseArgumentString (a0, this)Assembly-CSharp.dll

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

public void PlayerStoppedLooting(BasePlayer player)
{
	Interface.CallHook("OnLootEntityEnd", player, this);
	ResetRemovalTime();
	SetFlagLocal(Flags.Open, b: false);
	SendNetworkUpdate();
}

Injection point 2

Rust.opj (Oxide)
void StorageContainer.PlayerStoppedLooting(BasePlayer)

Passes: BasePlayer player, StorageContainer storageContainer

WorksReturnBehavior: ContinueArgumentBehavior: UseArgumentString (a0, this)Assembly-CSharp.dll

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

public virtual void PlayerStoppedLooting(BasePlayer player)
{
	Interface.CallHook("OnLootEntityEnd", player, this);
	SetFlagLocal(Flags.Open, b: false);
	SendNetworkUpdate();
}

Injection point 3

Rust.opj (Oxide)
void ContainerIOEntity.PlayerStoppedLooting(BasePlayer)

Passes: BasePlayer player, ContainerIOEntity containerIOEntity

WorksReturnBehavior: ContinueArgumentBehavior: UseArgumentString (a0, this)Assembly-CSharp.dll

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

public virtual void PlayerStoppedLooting(BasePlayer player)
{
	Interface.CallHook("OnLootEntityEnd", player, this);
	SetFlagLocal(Flags.Open, b: false);
	SendNetworkUpdate();
}

Injection point 4

Rust.opj (Oxide)
void DroppedItemContainer.PlayerStoppedLooting(BasePlayer)

Passes: BasePlayer player, DroppedItemContainer droppedItemContainer

WorksReturnBehavior: ContinueArgumentBehavior: UseArgumentString (a0, this)Assembly-CSharp.dll

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

public void PlayerStoppedLooting(BasePlayer player)
{
	Interface.CallHook("OnLootEntityEnd", player, this);
	if (inventory == null || inventory.itemList == null || inventory.itemList.Count == 0)
	{
		Kill();
	}
	else
	{
		ResetRemovalTime();
		SetFlagLocal(Flags.Open, b: false);
// …

Injection point 5

Rust.opj (Oxide)
void ItemBasedFlowRestrictor.PlayerStoppedLooting(BasePlayer)

Passes: BasePlayer player, ItemBasedFlowRestrictor itemBasedFlowRestrictor

WorksReturnBehavior: ContinueArgumentBehavior: UseArgumentString (a0, this)Assembly-CSharp.dll

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

public void PlayerStoppedLooting(BasePlayer player)
{
Interface.CallHook("OnLootEntityEnd", player, this);
}

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.