> For the complete documentation index, see [llms.txt](https://nayzeee-dev.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nayzeee-dev.gitbook.io/docs/nayzeee-scripts/nayzeee-admin-jail/exports.md).

# Exports

***

### Client Exports

<details>

<summary>IsJailed</summary>

Check if the local player is currently jailed.

```lua
local isJailed = exports['nayzeee-adminjail']:IsJailed()
```

**Returns:** `boolean`

</details>

<details>

<summary>GetJailTime</summary>

Get the local player's remaining jail time.

```lua
local timeRemaining = exports['nayzeee-adminjail']:GetJailTime()
```

**Returns:** `number` - Minutes remaining

</details>

<details>

<summary>GetLocation</summary>

Get the local player's current jail location ID.

```lua
local locationId = exports['nayzeee-adminjail']:GetLocation()
```

**Returns:** `string` - Location ID or `nil`

</details>

***

### Server Exports

<details>

<summary>IsPlayerJailed</summary>

Check if a specific player is jailed.

```lua
local isJailed = exports['nayzeee-adminjail']:IsPlayerJailed(source)
```

**Parameters:**

| Parameter | Type   | Description      |
| --------- | ------ | ---------------- |
| `source`  | number | Player server ID |

**Returns:** `boolean`

</details>

<details>

<summary>GetJailedData</summary>

Get all jail data for a player.

```lua
local data = exports['nayzeee-adminjail']:GetJailedData(source)
```

**Parameters:**

| Parameter | Type   | Description      |
| --------- | ------ | ---------------- |
| `source`  | number | Player server ID |

**Returns:**

```lua
{
    identifier = string,
    name = string,
    time = number,
    originalTime = number,
    reason = string,
    admin = string,
    locationId = string,
    escapes = number,
    workDone = number,
    timeReduced = number,
    jailedAt = number
}
```

</details>

<details>

<summary>JailPlayer</summary>

Jail a player programmatically.

```lua
local success = exports['nayzeee-adminjail']:JailPlayer(target, time, reason, locationId, adminName)
```

**Parameters:**

| Parameter    | Type   | Description              |
| ------------ | ------ | ------------------------ |
| `target`     | number | Player server ID         |
| `time`       | number | Jail time in minutes     |
| `reason`     | string | Reason for jailing       |
| `locationId` | string | Jail location ID         |
| `adminName`  | string | Admin name (or "System") |

**Returns:** `boolean`

**Example:**

```lua
-- Jail player for 30 minutes
exports['nayzeee-adminjail']:JailPlayer(playerId, 30, 'Breaking rules', 'aircraft_carrier', 'Console')
```

</details>

<details>

<summary>ReleasePlayer</summary>

Release a player from jail.

```lua
local success = exports['nayzeee-adminjail']:ReleasePlayer(target)
```

**Parameters:**

| Parameter | Type   | Description      |
| --------- | ------ | ---------------- |
| `target`  | number | Player server ID |

**Returns:** `boolean`

</details>

<details>

<summary>GetAllJailed</summary>

Get all currently jailed players.

```lua
local jailedPlayers = exports['nayzeee-adminjail']:GetAllJailed()
```

**Returns:** `table` - Dictionary of jailed players keyed by server ID

**Example:**

```lua
local jailed = exports['nayzeee-adminjail']:GetAllJailed()
for source, data in pairs(jailed) do
    print(data.name .. ' has ' .. data.time .. ' minutes remaining')
end
```

</details>

***

### Integration Examples

#### Check Before Action

```lua
-- Prevent actions while jailed
if exports['nayzeee-adminjail']:IsJailed() then
    return notify('You cannot do this while jailed!')
end
```

#### Auto-Jail System

```lua
-- Jail player after too many rule breaks
RegisterNetEvent('yourscript:rulebreak')
AddEventHandler('yourscript:rulebreak', function(playerId, severity)
    if severity >= 3 then
        exports['nayzeee-adminjail']:JailPlayer(
            playerId, 
            60, -- 1 hour
            'Automated: Multiple rule violations',
            'aircraft_carrier',
            'Anti-Cheat'
        )
    end
end)
```

#### Display Jail Status

```lua
-- Show jail info in UI
CreateThread(function()
    while true do
        if exports['nayzeee-adminjail']:IsJailed() then
            local time = exports['nayzeee-adminjail']:GetJailTime()
            DrawText('Jail Time: ' .. time .. ' minutes', 0.5, 0.1)
        end
        Wait(1000)
    end
end)
```
