Как использовать ник игрока как аргумент команды

Версия Minecraft
1.16.5
API
Forge
Еле нашел документацию по командам, но там ничего не было сказано о использовании ника игрока в качестве аргумента
код :
public  HideCommand(CommandDispatcher<CommandSource> dispatcher){
        dispatcher.register(Commands.literal("hide").then(Commands.literal("add").executes((command) ->{
            return 0;
        })));
    }
заранее спасибо за помощь
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Это из 1.18, в 1.16 могут отличаться пакеты, не уверен, но сами классы есть:
Java:
import static net.minecraft.commands.Commands.argument;
import static net.minecraft.commands.Commands.literal;
import static net.minecraft.commands.arguments.EntityArgument.getPlayers;
import static net.minecraft.commands.arguments.EntityArgument.players;
import static net.minecraft.commands.arguments.item.ItemArgument.getItem;
import static net.minecraft.commands.arguments.item.ItemArgument.item;

// ...

literal("test")
            .then(argument("player", players())
                .then(argument("item", item())
                    .executes(context -> doSomethingWith(
                        getItem(context, "item"), // предметы, к примеру, там есть ещё другие типы агрументов
                        getPlayers(context, "player") // список игроков (список потому-что селекторы, хотя вроде и getPlayer должен был быть наверн)
                   ))))
 

necauqua

когда-то был anti344
Администратор
1,216
27
172

necauqua

когда-то был anti344
Администратор
1,216
27
172
Всё ещё не совсем понял)
У тебя клиентский мод и ты хочешь чтобы команды были только на клиенте? (работало только на клиентской стороне)
Или твои команды не появляются на клиенте? (на серверах ничего не работает)

Команды регистрируются на сервере, и на клиент сервер их там сам отсылает, регистрируются просто вот так в ивенте (ивент причём форджевский, то бишь MinecraftForge.EVENT_BUS, а не мода):
Java:
@SubscribeEvent
public static void on(RegisterCommandsEvent e) {
    e.getDispatcher().register(MY_COMMAND);
}
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Хм, таб меню на сервере? В смысле в гуишке этой серверной?

Ну а работает-то команда, если её ручками полностью прописать?

Может в той гуишке (или что там у тебя) неванильные команды не показываются, хызы
 
Сверху