User Tools

Site Tools


ru:tutorial:commands

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
ru:tutorial:commands [2022/02/28 21:23] – основная информация переведена furnygoru:tutorial:commands [2022/03/03 12:50] furnygo
Line 2: Line 2:
  
 Создание команд позволяет разработчику наращивать функционал и способ воздействия с пользователем через, собственно, команды. Создание команд позволяет разработчику наращивать функционал и способ воздействия с пользователем через, собственно, команды.
-Это руководство расскажет как регистрировать команды и общую инофрмацию о структуре Brigadier.+Это руководство расскажет как регистрировать команды и общую информацию о структуре Brigadier.
  
 Примечание: Весь код, описанный здесь, написан для 1.14.4. Что-то может быть изменено в yarn, но большая часть кода всё ещё применима и там. Примечание: Весь код, описанный здесь, написан для 1.14.4. Что-то может быть изменено в yarn, но большая часть кода всё ещё применима и там.
Line 105: Line 105:
 CommandManager находится в ''net.minecraft.server.command'' CommandManager находится в ''net.minecraft.server.command''
  
-==== Подкоманда ====+===== Подкоманда =====
  
 Чтобы добавить команде подкоманду, сначала необходимо зарегистрировать ветвь с буквальным вводом. Чтобы добавить команде подкоманду, сначала необходимо зарегистрировать ветвь с буквальным вводом.
Line 218: Line 218:
  
 ^ Страница                                                           ^ Описание                                                                     ^ ^ Страница                                                           ^ Описание                                                                     ^
-| [[ru:tutorials:commands:requirements|Требования]]| Разрешать пользователям выполнять команды только в определенных сценариях.| +| [[ru:tutorial:commands:requirements|Условия]]| Разрешать пользователям выполнять команды только в определенных сценариях.| 
-| [[ru:tutorials:commands:exceptions|Исключения]]| Сбой выполнения команды с описательным сообщением и в определенных контекстах.|                                                                   +| [[ru:tutorial:commands:exceptions|Исключения]]| Сбой выполнения команды с описательным сообщением и в определенных контекстах.|                                                                   
-| [[ru:tutorial:command_suggestions|Предложения]]| Предложение входных данных для отправки клиенту.| +| [[ru:tutorial:commands:suggestions|Предложения]]| Предложение входных данных для отправки клиенту.| 
-| [[ru:tutorials:commands:redirects_aliases|Перенаправления (Разные вариации)]]| Разрешить использование разновидностей команд.| +| [[ru:tutorial:commands:redirects_aliases|Редиректы (Разные вариации)]]| Разрешить использование разновидностей команд.| 
-| [[ru:tutorials:commands:redirects_chaining|Перенаправления (Цепочки)]]| Разрешить командам иметь повторяющиеся элементы и флаги.| +| [[ru:tutorial:commands:redirects_chaining|Редиректы (Цепочки)]]| Разрешить командам иметь повторяющиеся элементы и флаги.| 
-| [[ru:tutorials:commands:argument_types|Свои типы аргументов]]| Анализируйте свои аргументы и возвращайте свои типы.| +| [[ru:tutorial:commands:argument_types|Свои типы аргументов]]| Анализируйте свои аргументы и возвращайте свои типы.|
- +
-**Будет сделано позже:** Разделы перемещаются в подкатегории и будут добавлены в соответствующие статьи по мере их переноса.+
  
 ====== Часто задаваемые вопросы ====== ====== Часто задаваемые вопросы ======
  
-===== Why does my command not compile =====+===== Почему моя команда не компилируется? =====
  
-There are two immediate possibilities for why this could occur.+Есть две непосредственные возможности того, почему это могло произойти.
  
-==== Catch or throw a CommandSyntaxException ====+==== Поймать или вызвать исключение CommandSyntaxException ====
  
-The solution to this issue is to make the run or suggest methods throw a CommandSyntaxException. Don't worrybrigadier will handle the exceptions and output the proper error message.+Решение этой проблемы состоит в том, чтобы заставить методы run или suggest вызывать исключение CommandSyntaxException. Не волнуйтесьBrigadier обработает исключения и выдаст соответствующее сообщение об ошибке.
  
-==== Issues with generics ====+==== Проблемы с дженериками ====
  
-You may have an issue with generic types once in a whileVerify you are using ''CommandManager.literal(...)'' or ''CommandManager.argument(...)'' instead ''LiteralArgumentBuilder'' or ''RequiredArgumentBuilder''.+Время от времени у вас могут возникать проблемы с типами дженерикаУбедитесь, что вы используете ''CommandManager.literal(...)'' или ''CommandManager.argument(...)'' вместо ''LiteralArgumentBuilder'' или ''RequiredArgumentBuilder''.
  
-===== Can I register client side commands? =====+===== Могу ли я зарегистрировать команды на стороне клиента? =====
  
-Fabric doesn't currently support client side commandsThere is a [[https://github.com/CottonMC/ClientCommands|third-party mod]] by the Cotton team that adds this functionality.+Fabric в настоящее время не поддерживает команды на стороне клиентаСуществует [[https://github.com/CottonMC/ClientCommands|сторонний мод]] от команды Cotton, которая добавляет эту функциональность.
  
-===== Dark Arts =====+===== "Темные искусства" =====
  
-A few things we don't recommendbut are possible.+Несколько вещейкоторые мы не рекомендуем, но которые возможны.
  
-==== Can I register commands in runtime? ====+==== Могу ли я регистрировать команды во время выполнения? ====
  
-You can do this but it is not recommendedYou would get the ''CommandManager'' from the server and add anything commands you wish to it'''CommandDispatcher''.+Вы можете это сделать, но это не рекомендуетсяВы получите ''CommandManager'' с сервера и добавите любые команды, которые пожелаете, в его ''CommandDispatcher''.
  
-After that you need to send the command tree to every player again using ''sendCommandTree(ServerPlayerEntity)''This is required because the client locally caches the command tree it receives during login (or when operator packets are sentfor local completions rich error messages.+После этого вам нужно снова отправить дерево команд каждому игроку, используя ''sendCommandTree(ServerPlayerEntity)''Это необходимо, поскольку клиент локально кэширует дерево команд, которое он получает во время входа в систему (или при отправке пакетов операторадля локальных завершений и сообщений об ошибках.
  
-==== Can I unregister commands in runtime? ====+==== Могу ли я отменить регистрацию команд во время выполнения? ====
  
-You can also do thishowever it is much less stable than registering commands and could cause unwanted side effectsTo keep things simpleyou need to use reflection on brigadier and remove the nodesAfter thisyou need to send the command tree to every player again using ''sendCommandTree(ServerPlayerEntity)''If you don't send the updated command treethe client may think a command still existseven though the server will fail execution.+Вы также можете сделать этооднако это гораздо менее стабильно, чем регистрация команд, и может вызвать нежелательные побочные эффектыЧтобы все было простовам нужно использовать отражение для бригадира и удалить узлыПосле этого вам нужно снова отправить дерево команд каждому игрокуиспользуя ''sendCommandTree(ServerPlayerEntity)''Если вы не отправите обновленное дерево команд, клиент может подуматьчто команда все еще существуетдаже если сервер завершит выполнение с ошибкой.
  
 ---- ----
  
-====== Sorry for the mess ======+====== Со временем уберётся ======
  
 **__Currently this article is being migrated, so things may be a mess. Below is are the parts of the article that are yet to be migrated to the new format.__** **__Currently this article is being migrated, so things may be a mess. Below is are the parts of the article that are yet to be migrated to the new format.__**
ru/tutorial/commands.txt · Last modified: 2022/03/03 13:27 by furnygo