Команда для капы

Версия Minecraft
1.12.2
516
11
39
Всем привет,решил сделать команду ,чтобы можно было перекидывать деньги с 1 аккаунта на другой ,пока дошел до этого и хочу спросить,правильно ли я делаю?

Java:
public class SendMoney extends CommandBase {

    @Override
    public String getName() {
        return "sendMoney";
    }

    @Override
    public String getUsage(ICommandSender sender) {
        return "commands.sendMoney.usage";
    }

    @Override
    public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
    {
         if (args.length <= 0)
            {
                throw new WrongUsageException("commands.sendMoney.usage", new Object[0]);
            }
            else
            {
          
                EntityPlayerMP player = args.length == 0 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[0]);
             IMoneyHandler capa = (IMoneyHandler)player.getCapability(ProviderMoney.CAPABILITY_MONEY, null);
             if(player!=null)
             {
                 if (args[1].equalsIgnoreCase("send"))
                 {
                        int money = parseInt(args[2]);
                        capa.addMoney(money);
                        NetworkHandler.network.sendTo((new MessageMoney(capa.getMoney())), (EntityPlayerMP) player);
    
                 }
             }

        }
        
    }

}
 

tox1cozZ

aka Agravaine
8,455
598
2,892
А у себя забирать бабки кто будет?
Ну и не понятно логика это строки: EntityPlayerMP player = args.length == 0 ? getCommandSenderAsPlayer(sender) : getPlayer(server, sender, args[0]);
Зачем вообще давать возможность передавать себе деньги? В этом же нет смысла)
 
  • Like
Реакции: lnti
7,099
324
1,510
Надо транзакции атомарными делать. Если сервер стопнется до того, как транзакция завершится, то она должна считаться недействительной
 
Сверху