CanPlaceOnRack
CarbonGlobalCalled to determine whether to place on rack.
Return true to allow the action and false to block it.
object CanPlaceOnRack(WeaponRack rack, BasePlayer player, Item item, int gridCellIndex, int rotation)Works — the game method in this build is the one the hook was written for.
Parameters
- rack
- WeaponRack
- player
- BasePlayer
- item
- Item
- gridCellIndex
- int
- rotation
- int
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 CanPlaceOnRack(WeaponRack rack, BasePlayer player, Item item, int gridCellIndex, int rotation)
{
Puts("CanPlaceOnRack");
// 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
Carbon
bool WeaponRack.MountWeapon(Item item, BasePlayer player, int gridCellIndex, int rotation, bool sendUpdate)
WorksAssembly-CSharp
Where it is called (this branch's game code)
private bool MountWeapon(Item item, BasePlayer player, int gridCellIndex, int rotation, bool sendUpdate = true)
{
if (Interface.CallHook("CanPlaceOnRack", this, player, item, gridCellIndex, rotation) is bool result)
{
return result;
}
if (item == null)
{
return false;
}
if (player == null)
// …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.