local PLUGIN = PLUGIN

-- Обработка действий администратора
net.Receive("ixScoreboardAction", function(len, client)
    if not IsValid(client) or not client:IsAdmin() then return end
    
    local action = net.ReadString()
    local target = net.ReadEntity()
    
    if not IsValid(target) or not target:IsPlayer() then return end
    
    if action == "goto" then
        client:SetPos(target:GetPos())
        client:Notify("Телепортирован к " .. target:Nick())
        
    elseif action == "bring" then
        target:SetPos(client:GetPos() + client:GetForward() * 100)
        client:Notify("Телепортирован " .. target:Nick())
        
    elseif action == "respawn" then
        target:Spawn()
        client:Notify("Респавн " .. target:Nick())
        
    elseif action == "return" then
        local char = target:GetCharacter()
        if char and char.lastPos then
            target:SetPos(char.lastPos)
            client:Notify("Возвращен " .. target:Nick())
        end
        
    elseif action == "whitelist" then
        -- Открыть меню whitelist для целевого игрока
        -- Реализация зависит от вашей системы whitelist
        
    elseif action == "mute" then
        target:SetNWBool("IsMuted", not target:GetNWBool("IsMuted", false))
        client:Notify((target:GetNWBool("IsMuted") and "Замучен " or "Размучен ") .. target:Nick())
        
    elseif action == "ban" then
        -- Открыть меню бана
        -- Реализация через SAM или другую систему администрирования
        
    elseif action == "kick" then
        target:Kick("Kicked by " .. client:Nick())
        client:Notify("Кикнут " .. target:Nick())
    end
end)
