Skip to content

CanUnlock

Usage

  • Return a non-null value to override default behavior

Example Autogenerated

csharp
private object CanUnlock( BasePlayer player, CodeLock instance )
{
    Puts( "CanUnlock works!" );
    return null;
}
csharp
private object CanUnlock( BasePlayer player, KeyLock instance )
{
    Puts( "CanUnlock works!" );
    return null;
}
csharp
private bool? CanUnlock( BasePlayer player, ModularCarCodeLock instance, string codeEntered )
{
    Puts( "CanUnlock works!" );
    return null;
}

Location

  • CodeLock::TryUnlock(BaseEntity.RPCMessage rpc)
  • KeyLock::RPC_Unlock(BaseEntity.RPCMessage rpc)
  • ModularCarCodeLock::TryOpenWithCode(BasePlayer player, string codeEntered)
csharp
[RPC_Server.MaxDistance(3f, CheckParent = true)]
[RPC_Server]
private void TryUnlock(RPCMessage rpc)
{
	if (rpc.player.CanInteract() && IsLocked() && Interface.CallHook("CanUnlock", rpc.player, this) == null && !IsCodeEntryBlocked() && whitelistPlayers.Contains(rpc.player.userID))
	{
		DoEffect(effectUnlocked.resourcePath);
		SetFlag(Flags.Locked, b: false);
		SendNetworkUpdate();
	}
//---
csharp
[RPC_Server]
[RPC_Server.MaxDistance(3f, CheckParent = true)]
private void RPC_Unlock(RPCMessage rpc)
{
	if (rpc.player.CanInteract() && IsLocked() && Interface.CallHook("CanUnlock", rpc.player, this) == null && HasLockPermission(rpc.player))
	{
		SetFlag(Flags.Locked, b: false);
		SendNetworkUpdate();
	}
}
csharp
public bool TryOpenWithCode(BasePlayer player, string codeEntered)
{
	object obj = Interface.CallHook("CanUnlock", player, this, codeEntered);
	if (obj is bool)
	{
		return (bool)obj;
	}
	if (CodeEntryBlocked(player))
//---

Released under the MIT License.