RustTip

CanUseUI

OxideCarbonCUI

Called to determine whether to use ui.

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

object CanUseUI(BasePlayer player, string json)

Параметры

player
BasePlayer
json
string

Возвращаемое значение

objectВерните не null, чтобы отменить действие игры.

Пример

object — можно повлиять на игру: вернуть значение, чтобы изменить или отменить действие.

private object CanUseUI(BasePlayer player, string json)
{
    Puts("CanUseUI");

    // ничего не меняем — игра продолжит как обычно
    return null;

    // повлиять на игру:
    // return false; // не null — действие игры отменяется
}

Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.

Где вызывается

ядро Oxide (Oxide.Rust)
JsonWriterResources::AddUi(BasePlayer player, string json)

Код ядра Oxide — отсюда вызывается хук

public static bool AddUi(BasePlayer player, string json)
{
    if (player?.net != null && Interface.CallHook("CanUseUI", player, json) == null)
    {
        CommunityEntity.ServerInstance.ClientRPC(RpcTarget.Player("AddUI", player.net.connection), json);
        return true;
    }

    return false;
}

Место встраивания

Carbon
Oxide.Game.Rust.Cui.CuiHelper.AddUi
Внутри CarbonCarbon.Common

Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.