package org.poopki.duckdns.user_db.Array; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.poopki.duckdns.user_db.UserInfoArray; import java.util.UUID; public class AccountEventHandler implements CommandExecutor { AccountArray m_AccountArray; UserInfoArray m_UserInfoArray; public AccountEventHandler(UserInfoArray UIA, AccountArray AA){ m_AccountArray = AA; m_UserInfoArray = UIA; } 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()) { p.sendMessage("관리자만 실행 가능한 명령어입니다."); return false; } if (args.length < 1) { p.sendMessage("설정 대상이 지정되지 않았습니다."); return false; } UUID op = m_UserInfoArray.getUserUUID(args[1]); if (op == null) { p.sendMessage("잘못된 계좌입니다."); return false; } if (args.length < 2) { p.sendMessage("설정 금액을 입력해주세요."); return false; } if (!isStringDouble(args[2])) { p.sendMessage("설정 금액은 숫자만 가능합니다."); return false; } if(m_AccountArray.getAccountInfo(op)+Long.parseLong(args[2])>2147483647){ p.sendMessage("최대 금액 이상으로 설정할 수 없습니다."); return false; } m_AccountArray.setAccountInfo(m_UserInfoArray.getUserUUID(args[1]), Long.parseLong(args[2])); p.sendMessage(args[1] + "님의 잔액을 " + Integer.parseInt(args[2]) + "원으로 설정하였습니다."); break; } case "입금": { if (args.length < 1) { p.sendMessage("이체 대상이 지정되지 않았습니다."); return false; } UUID op = m_UserInfoArray.getUserUUID(args[1]); if (op == null) { p.sendMessage("잘못된 계좌입니다."); return false; } if (args.length < 2) { p.sendMessage("이체 금액을 입력해주세요."); return false; } if (!isStringDouble(args[2])) { p.sendMessage("이체 금액은 숫자만 가능합니다."); return false; } if(p.getUniqueId() == op) { p.sendMessage("자기 자신에게는 이체할 수 없습니다."); return false; } switch(m_AccountArray.transfer(p.getUniqueId(), op, Long.parseLong(args[2]))) { case 1: { p.sendMessage(args[1] + "농장에 " + Integer.parseInt(args[2]) + "원을 이체하였습니다."); break; } case 2: { p.sendMessage("잔액은 최대 금액을 초과할 수 없습니다."); break; } case 3:{ p.sendMessage("잔액이 부족합니다."); break; } } break; } case "잔액": { p.sendMessage("==잔액: " + m_AccountArray.getAccountInfo(p.getUniqueId()) + "원=="); break; } default: { p.sendMessage("잘못된 명령어"); } } } else{ p.sendMessage("명령어를 입력하세요(잔액 | 이체)"); } return true; } }