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/10 18:30] – немного исправлений грамматических ошибок, перевод комментариев в коде furnygoru:tutorial:commands [2022/02/28 12:58] furnygo
Line 53: Line 53:
     // Не обращайте внимание, мы объясним про это далее.     // Не обращайте внимание, мы объясним про это далее.
     dispatcher.register(CommandManager.literal("foo"))     dispatcher.register(CommandManager.literal("foo"))
-        .executes(this::execute); // Это относится к приведённому ранее методу "выполнить".+        .executes(this::execute); // Это относится к приведённому ниже методу "выполнить".
 } }
  
Line 79: Line 79:
  
 ''CommandManager.literal("foo")'' даёт brigadier'у понять, что у команды только одна ветвь, это **буквальный ввод** foo. Чтобы команда была выполнена, нужно ввести ''/foo''. Если введено ''/Foo'', ''/FoO'', ''/FOO'', ''/fOO'' или ''/fooo'', команда не будет считаться верной. ''CommandManager.literal("foo")'' даёт brigadier'у понять, что у команды только одна ветвь, это **буквальный ввод** foo. Чтобы команда была выполнена, нужно ввести ''/foo''. Если введено ''/Foo'', ''/FoO'', ''/FOO'', ''/fOO'' или ''/fooo'', команда не будет считаться верной.
 +
 +===== Статические импорты =====
 +Вы можете вводить ''CommandManager.literal("foo")'' каждый раз, когда хотите создать литерал. Это работает, но вы можете статически импортировать аргументы и сократить оператор до ''literal("foo")''. Это также работает для получения значения аргумента. Это сокращает ''StringArgumentType.getString(ctx, "string")'' до ''getString(ctx, "string")''.
 +Это также работает для собственных типов аргументов Minecraft.
 +
 +И ваш импорт будет выглядеть примерно так:
 +<code java [enable_line_numbers="true"]>
 +// getString(ctx, "string")
 +import static com.mojang.brigadier.arguments.StringArgumentType.getString;
 +// word()
 +import static com.mojang.brigadier.arguments.StringArgumentType.word;
 + // literal("foo")
 +import static net.minecraft.server.command.CommandManager.literal;
 + // argument("bar", word())
 +import static net.minecraft.server.command.CommandManager.argument;
 +// Импортировать всё
 +import static net.minecraft.server.command.CommandManager.*;
 +</code>
 +
 +Примечание: Пожалуйста, убедитесь, что вы используете ''literal'' и ''argument'' из CommandManager, иначе у вас могут возникнуть проблемы с дженериками при попытке компиляции.
 +
 +Аргументы бригадира по умолчанию находятся в ''com.mojang.brigadier.arguments''
 +
 +Аргументы Minecraft находятся в разделе ''net.minecraft.command.arguments''.
 +CommandManager находится в ''net.minecraft.server.command''
  
 ==== Подкоманда ==== ==== Подкоманда ====
Line 187: Line 212:
  
 **TODO:** Go into more detail on how to use arguments **TODO:** Go into more detail on how to use arguments
- 
-===== Static Imports ===== 
-You could type out ''CommandManager.literal("foo")'' every time you want to create a literal. This works, but you can statically import the arguments and shorten the statement to ''literal("foo")''. This also works for getting the value of an argument. This shortens ''StringArgumentType.getString(ctx, "string")'' to ''getString(ctx, "string")''. 
-This also works for Minecraft's own argument types. 
- 
-And your imports would look something like this: 
-<code java [enable_line_numbers="true"]> 
-// getString(ctx, "string") 
-import static com.mojang.brigadier.arguments.StringArgumentType.getString; 
-// word() 
-import static com.mojang.brigadier.arguments.StringArgumentType.word; 
- // literal("foo") 
-import static net.minecraft.server.command.CommandManager.literal; 
- // argument("bar", word()) 
-import static net.minecraft.server.command.CommandManager.argument; 
-// Import everything 
-import static net.minecraft.server.command.CommandManager.*; 
-</code> 
- 
-Note: Please be sure you use the ''literal'' and ''argument'' from CommandManager or you may have issues with generics when trying to compile. 
- 
-Brigadier's default arguments are at ''com.mojang.brigadier.arguments'' 
- 
-Minecraft's arguments are in ''net.minecraft.command.arguments''. 
-CommandManager is in ''net.minecraft.server.command'' 
  
 ====== Advanced concepts ====== ====== Advanced concepts ======
ru/tutorial/commands.txt · Last modified: 2022/03/03 13:27 by furnygo