RustTip

CanAdministerVending

OxideCarbonVending

Called to determine whether to administer vending.

Return true to allow the action and false to block it.

object CanAdministerVending(BasePlayer player, VendingMachine vendingMachine)
object CanAdministerVending(BasePlayer player, NPCVendingMachine nPCVendingMachine)
Works — the game method in this build is the one the hook was written for.

Parameters

player
BasePlayer
vendingMachine
VendingMachine

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 CanAdministerVending(BasePlayer player, VendingMachine vendingMachine)
{
    Puts("CanAdministerVending");

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

    // to affect the game:
    // return false; // your value instead of the game result
}

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

Injection point 1

Rust.opj (Oxide)
bool VendingMachine.CanPlayerAdmin(BasePlayer)

Passes: BasePlayer player, VendingMachine vendingMachine

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

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

public virtual bool CanPlayerAdmin(BasePlayer player)
{
	object returnvar = Interface.CallHook("CanAdministerVending", player, this);
	if (returnvar is bool)
	{
		return (bool)returnvar;
	}
	if (PlayerBehind(player))
	{
		return OccupiedCheck(player);
	}
// …

Injection point 2

Rust.opj (Oxide)
bool NPCVendingMachine.CanPlayerAdmin(BasePlayer)

Passes: BasePlayer player, NPCVendingMachine nPCVendingMachine

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

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

public override bool CanPlayerAdmin(BasePlayer player)
{
	object returnvar = Interface.CallHook("CanAdministerVending", player, this);
	if (returnvar is bool)
	{
		return (bool)returnvar;
	}
	return false;
}

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.