> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qwacks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# الحظر

> سجِّل معلومات حظر مفصّلة ومرتبطة بكل ميزة للاعبيك.

export const Scope = ({children}) => <Info>
    <b>النطاق:</b> {children}
  </Info>;

الحظر في Flock **إعلامي**. يُشتق الحظر من **إعداد الميزات** لديك ويُطبَّق على أساس **كل ميزة
على حدة**: توفّر Flock الأدوات لتسجيل تفاصيل حظر غنية وكشف حالة حظر اللاعب، لكن **قرار ما
يجب فعله حيال الحظر يعود للعبتك** — نحن لا نمنع أي شيء نيابةً عنك.

<Scope>يُشتق الحظر من **إعداد الميزات** ويُطبَّق لكل **ميزة**.</Scope>

<Tabs>
  <Tab title="لوحة التحكم">
    يعتمد الحظر على **إعداد الميزات** لديك (الإعدادات ← الميزات). أنشئ سجلات حظر مفصّلة وأدرها
    من صفحة **إدارة الحظر**، ضمن نطاق الميزة المعنية.

    <Frame caption="أنشئ سجلات حظر مفصّلة من لوحة التحكم.">
      <img src="https://mintcdn.com/qwacks/TGGmq_oWzDacAqHl/images/guides/bans.png?fit=max&auto=format&n=TGGmq_oWzDacAqHl&q=85&s=cd9a010ccfa21645179da909c30abb11" alt="إدارة الحظر" width="1440" height="866" data-path="images/guides/bans.png" />
    </Frame>
  </Tab>

  <Tab title="Unity">
    تُعيد `GetBanAsync` سجل الحظر الخاص بلاعب. تكشف Flock الحالة، و**التنفيذ يعود إليك** — تقييد
    ميزة، أو عرض رسالة، أو أي إجراء آخر.

    ```csharp theme={null}
    PlayerBan ban = await FlockClient.Instance.Player.GetBanAsync(FlockClient.Instance.CurrentPlayerId);

    if (ban?.Data != null && ban.Data.TryGetValue("multiplayer", out FeatureBan feature))
        Debug.Log($"Banned from multiplayer: {feature.Reason} (until {feature.EffectiveDatetime})");
    ```

    ومعرّف اللاعب مطلوب — فلا قيمة افتراضية للاعب المسجَّل دخوله، لذا مرّر `CurrentPlayerId`.

    و**الحظر لكل ميزة مُفهرَس باسم الميزة** في خريطة `Data` داخل السجل، ويحمل كل مدخل الحقول
    `Reason` و`BanDuration` و`EffectiveDatetime`. أما اللاعب غير المحظور فهو **نجاح لا يحمل شيئًا
    في `Data`**، لا فشل — لذا افحص الخريطة بدل معاملة الاستدعاء على أنه نجاح/فشل.

    ولا يُخزَّن الحظر مؤقتًا أبدًا: فهو حالة أمنية قد تتغيّر على الخادم في أي لحظة.
  </Tab>

  <Tab title="Unreal">
    تُعيد `Flock Get Player Ban` سجل اللاعب المسجَّل دخوله، أو لاعبٍ آخر إن مرّرت معرّفه.

    ```cpp theme={null}
    Sdk->GetPlayerProvider()->GetBan(FString(),
        [](TFlockResult<FFlockPlayerBan> Ban)
        {
            if (Ban.bSuccess && Ban.Value.IsBanned()) { /* ... */ }
        });
    ```

    **اللاعب غير المحظور نجاح لا فشل** — إذ تحصل على سجل فارغ، لذا افحص `IsBanned()` بدل راية
    النتيجة. أما الحظر لكل ميزة فمُفهرَس باسم الميزة في خريطة `Data` داخل السجل.

    ولا يُخزَّن الحظر مؤقتًا أبدًا: فهو حالة أمنية قد تتغيّر على الخادم في أي لحظة.
  </Tab>
</Tabs>

<Note>
  الحظر إعلامي بحت — توفّر Flock البيانات، ولعبتك تقرّر الإجراء. تنفيذ ما يترتب على حالة حظر
  اللاعب يقع على عاتقك داخل اللعبة.
</Note>
