package org.poopki.duckdns.user_db; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class AccountEventHandler implements CommandExecutor { AccountArray m_AccountArray; public AccountEventHandler(AccountArray AA){ m_AccountArray = AA; } public static boolean isStringDouble(String s) { try { Double.parseDouble(s); return true; } catch (NumberFormatException e) { return false; } } @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { Player p = (Player) sender; if (args.length != 0) { switch (args[0]) { case "설정": { if (p.isOp()) { if (args[1] != null) { Player op = Bukkit.getPlayer(args[1]); if (op != null) { try{ if(isStringDouble(args[2])){ m_AccountArray.setAccountInfo(op.getUniqueId(), Integer.parseInt(args[2])); p.sendMessage(op.getName()+"님의 잔액을"+Integer.parseInt(args[2])+"원으로 설정하였습니다."); } else { p.sendMessage("설정 금액은 숫자만 가능합니다."); } } catch(Exception e){ p.sendMessage("설정 대상의 닉네임을 모두 작성해야합니다."); } } else { p.sendMessage("잘못된 계좌입니다."); } } } else { p.sendMessage("OP만 실행 가능한 명령어"); } break; } case "잔액": { p.sendMessage("잔액: " + m_AccountArray.getAccountInfo(p.getUniqueId()) + "원"); break; } case "이체": { if (args.length > 1) { Player op = Bukkit.getPlayer(args[1]); if (op != null) { if(isStringDouble(args[2])){ try{ boolean temp = m_AccountArray.transfer(p.getUniqueId(), op.getUniqueId(), Integer.parseInt(args[2])); if(temp) p.sendMessage(op.getName()+"님 에게 "+Integer.parseInt(args[2])+"원을 이체하였습니다."); else p.sendMessage("잔액이 부족합니다."); }catch (Exception e){ p.sendMessage("이체 대상의 닉네임을 모두 작성해야합니다."); } } else p.sendMessage("이체 금액은 숫자만 가능합니다."); } else { p.sendMessage("잘못된 계좌입니다."); } } else { p.sendMessage("이체 대상이 지정되지 않았습니다."); } break; } default: { p.sendMessage("잘못된 명령어"); } } } else{ p.sendMessage("명령어를 입력하세요(잔액 | 이체)"); } return false; } }