# Добавление или изменение команд

Если вы хотите добавить или изменить команды в своем пользовательском процессоре, вы можете использовать `Feature.Command`.

Это работает аналогично `commands.command`, но он допускает перекрестные ссылки команд между различными функциями и гарантирует, что отдельные экземпляры шестерен джишаку будут иметь уникальные состояния.

```python
from jishaku.features.baseclass import Feature

class CustomDebugCog(*OPTIONAL_FEATURES, *STANDARD_FEATURES):
    @Feature.Command(parent="jsk", name="foobar")
    async def jsk_foobar(self, ctx: commands.Context):
        await ctx.send("Hello there!")
```

`parent` Аргумент относится к тому, какая команда является родительской для этой команды, и работает во всех функциях. Используемое в нем имя — это **имя функции обратного вызова для команды** , а не имя самой команды, поэтому имейте это в виду.

Если вам нужно проверить имя команды, против которой вы хотите создать родительскую команду, вы можете использовать `jsk source jsk <whatever>`.

Команды, у которых есть дочерние элементы при создании экземпляра процессора, будут автоматически преобразованы в `Group` s, и это относится к подкомандам подкоманд и т. д.

Если вы хотите переопределить существующие команды, процесс будет более или менее таким же:

```python
class CustomDebugCog(*OPTIONAL_FEATURES, *STANDARD_FEATURES):
    @Feature.Command(parent="jsk", name="debug")
    async def jsk_debug(self, ctx: commands.Context):
        await ctx.send("Not so debuggy any more!")
```

Как и при стандартном наследовании, для правильной работы требуется, **чтобы имя функции было одинаковым** , так что имейте это в виду.

Вы даже можете переопределить базовую команду jishaku, используя этот метод:

```python
class CustomDebugCog(*OPTIONAL_FEATURES, *STANDARD_FEATURES):
    @Feature.Command(name="jishaku", aliases=["jsk"], invoke_without_command=True, ignore_extra=False)
    async def jsk(self, ctx: commands.Context):
        await ctx.send("I'm walking on a Star!")
```


---

# 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/dobavlenie-ili-izmenenie-komand.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.
