# Пользовательские процессоры и структура функций

Процессор jishaku содержит команды для управления ботами, отладки и экспериментирования.

Обычный способ добавить процессор — использовать модуль в качестве расширения:

```python
bot.load_extension('jishaku')
# или
await bot.load_extension("jishaku")
```

Вы также можете создать собственное расширение для загрузки `Jishaku` cog, но это не рекомендуется:

```python
from jishaku.cog import Jishaku

def setup(bot: commands.Bot):
    # Крайне не рекомендуем так делать!!!
    bot.add_cog(Jishaku(bot=bot))
```

Если вы хотите изменить или добавить функциональность jishaku для вашего конкретного бота, вы должны использовать платформу функций для создания нового процессора.

`Jishaku` cog состоит из нескольких функций, которые реализуют различные части его функциональности. При создании экземпляра процессора унаследованные функции используются для компиляции окончательного дерева команд.

<figure><img src="https://jishaku.readthedocs.io/en/latest/_images/features.png" alt=""><figcaption></figcaption></figure>

Вот пример простого пользовательского процессора, использующего эту настройку:

```python
from discord.ext import commands

from jishaku.features.python import PythonFeature
from jishaku.features.root_command import RootCommand

class CustomDebugCog(PythonFeature, RootCommand):
    pass

def setup(bot: commands.Bot):
    bot.add_cog(CustomDebugCog(bot=bot))
```

В этом примере вы получите шестеренку, включающую в себя `jsk` команда, основная система задач и команды Python, но ничего больше.

Используя эту систему, вы можете выборочно включать или исключать нужные функции в ваших пользовательских Cogs.

`STANDARD_FEATURES` в `jishaku.cog` содержит все функции, которые гарантированно имеются при установке jishaku по умолчанию. Таким образом, вы можете сделать винтик без каких-либо дополнительных функций, например так:

```python
from discord.ext import commands

from jishaku.cog import STANDARD_FEATURES

class CustomDebugCog(*STANDARD_FEATURES):
    pass

def setup(bot: commands.Bot):
    bot.add_cog(CustomDebugCog(bot=bot))
```

`OPTIONAL_FEATURES`, напротив, содержит функции, которые, как обнаружено, поддерживаются в этой среде. Его содержимое может варьироваться в зависимости от того, какие дополнения были установлены или на какой платформе работает jishaku.

Чтобы использовать эти функции, просто добавьте их в свой процессор:

```python
from discord.ext import commands

from jishaku.cog import STANDARD_FEATURES, OPTIONAL_FEATURES

class CustomDebugCog(*OPTIONAL_FEATURES, *STANDARD_FEATURES):
    pass

def setup(bot: commands.Bot):
    bot.add_cog(CustomDebugCog(bot=bot))
```

Это даст вам почти идентичную шестеренку стандартному Джишаку.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mayaais-organization.gitbook.io/dobro-pozhalovat/jishaku-kak-vintik/polzovatelskie-processory-i-struktura-funkcii.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
