OnPlayerUnbanned
OxideCarbonPlayerCalled when a player is unbanned.
void OnPlayerUnbanned(string playerName, ulong steamId, string address)Работает — метод игры в этой сборке тот же, под который написан хук.
Параметры
- playerName
- string
- steamId
- ulong
- address
- string
Возвращаемое значение
voidВозвращаемое значение игнорируется — хук только уведомляет.
Пример
private void OnPlayerUnbanned(string playerName, ulong steamId, string address)
{
Puts("OnPlayerUnbanned");
}Работает и в Oxide, и в Carbon: Carbon загружает плагины Oxide без изменений.
Где вызывается
ядро Oxide (Oxide.Rust)
RustCore::OnServerUserRemove(ulong steamId)
Код ядра Oxide — отсюда вызывается хук
private void OnServerUserRemove(ulong steamId)
{
if (serverInitialized && ServerUsers.users.ContainsKey(steamId) && ServerUsers.users[steamId].group == ServerUsers.UserGroup.Banned)
{
string playerId = steamId.ToString();
IPlayer player = Covalence.PlayerManager.FindPlayerById(playerId);
Interface.CallHook("OnPlayerUnbanned", player?.Name ?? "Unnamed", steamId, player?.Address ?? "0");
Interface.CallHook("OnUserUnbanned", player?.Name ?? "Unnamed", playerId, player?.Address ?? "0");
}
}Место встраивания
Rust.opj (Oxide)
void ServerUsers.Remove(ulong)
Встроен служебный хук OnServerUserRemove — этот хук вызывает его обработчик в ядре Oxide/Carbon
РаботаетReturnBehavior: ContinueArgumentBehavior: JustParamsAssembly-CSharp.dll
Где вызывается (код игры этой ветки)
public static void Remove(ulong uid)
{
Interface.CallHook("OnServerUserRemove", uid);
users.Remove(uid);
}Источники: Rust.opj из OxideMod/Oxide.Rust (MIT) и метаданные хуков документации Carbon (MIT). Код методов — декомпиляция сервера этой ветки.