@Override
public CommandResult execute(CommandSource src, CommandContext args) throws CommandException {
if(src instanceof Player) {
Player player = (Player) src;
Optional<ItemStack> opIS = player.getItemInHand(HandTypes.MAIN_HAND);
ItemStack handItem = opIS.orElse(null);
if(handItem == null) {
player.sendMessage(Text.of("Take some item in your main hand. :)"));
return CommandResult.empty();
}
AEnergyData energy = handItem.getOrCreate(AEnergyData.class).get();
String arg = (String) args.getOne("ID").orElseGet(String::new);
if(energy.id().exists()) {
player.sendMessage(Text.of("Old id: " + energy.id().get()));
}
if(!arg.isEmpty()) {
energy.id().set(arg);
player.sendMessage(Text.of("New id: " + energy.id().get()));
}
return CommandResult.success();
}
return CommandResult.empty();
}