parent
d464d5a77d
commit
b3e5851b05
16 changed files with 976 additions and 505 deletions
@ -0,0 +1,10 @@ |
|||||||
|
package org.poopki.duckdns.user_db.Array; |
||||||
|
|
||||||
|
import java.util.List; |
||||||
|
import java.util.UUID; |
||||||
|
|
||||||
|
public class Squad extends Group{ |
||||||
|
public Squad(String Name, List<UUID> uuid_list){ |
||||||
|
super(Name, uuid_list); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
package org.poopki.duckdns.user_db.Array; |
||||||
|
|
||||||
|
import org.poopki.duckdns.user_db.UserInfoArray; |
||||||
|
|
||||||
|
public class SquadArray extends GroupArray{ |
||||||
|
public SquadArray(UserInfoArray m_UIA){ |
||||||
|
super(m_UIA, 8); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,292 @@ |
|||||||
|
package org.poopki.duckdns.user_db.Array; |
||||||
|
|
||||||
|
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 SquadEventHandler implements CommandExecutor { |
||||||
|
|
||||||
|
SquadArray m_SquadArray; |
||||||
|
UserInfoArray m_UserInfoArray; |
||||||
|
AccountArray m_AccountArray; |
||||||
|
UUID ZERO_UUID = new UUID(0,0); |
||||||
|
public SquadEventHandler(UserInfoArray UIA, SquadArray GA, AccountArray AA){ |
||||||
|
m_SquadArray = GA; |
||||||
|
m_UserInfoArray = UIA; |
||||||
|
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 "생성":{ |
||||||
|
UUID tempUUID = UUID.randomUUID(); |
||||||
|
if(!m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad").equals(ZERO_UUID)){ |
||||||
|
p.sendMessage("이미 분대를 소유중"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad")); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
if(!m_SquadArray.CreateGroup(tempUUID, args[1], p.getUniqueId())){ |
||||||
|
p.sendMessage("이미 존재하는 분대 이름"); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
m_UserInfoArray.setUserGroupUUID("Squad",p.getUniqueId(), tempUUID); |
||||||
|
m_AccountArray.putAccountInfo(tempUUID,0); |
||||||
|
|
||||||
|
for (UUID key: m_UserInfoArray.getKeySet()){ |
||||||
|
p.sendMessage("------------"+p.getUniqueId()); |
||||||
|
p.sendMessage(""+m_UserInfoArray.getUserGroupUUID(key,"Squad")); |
||||||
|
} |
||||||
|
|
||||||
|
p.sendMessage(args[1]+"분대이 생성되었습니다."); |
||||||
|
p.sendMessage("분대 멤버 목록: "); |
||||||
|
|
||||||
|
for (String Name: m_SquadArray.GetGroupMembersName(tempUUID)){ |
||||||
|
p.sendMessage(Name); |
||||||
|
} |
||||||
|
|
||||||
|
p.sendMessage("분대 목록:"); |
||||||
|
|
||||||
|
for (String Name: m_SquadArray.GetGroupNameList()){ |
||||||
|
p.sendMessage(Name); |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
case "가입":{ |
||||||
|
p.sendMessage("플레이어 UUID:"+p.getUniqueId()+" 분대 UUID:"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad")); |
||||||
|
p.sendMessage("ZERO UUID:"+ZERO_UUID); |
||||||
|
if(!m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad").equals(ZERO_UUID)){ |
||||||
|
p.sendMessage("이미 가입한 분대가 존재"); |
||||||
|
return false; |
||||||
|
} |
||||||
|
else{ |
||||||
|
p.sendMessage("가입 완료"); |
||||||
|
m_SquadArray.SignUpGroup("Squad",m_SquadArray.m_GroupNameList.get(args[1]),p.getUniqueId()); |
||||||
|
p.sendMessage("분대 멤버 목록: "); |
||||||
|
for (String Name: m_SquadArray.GetGroupMembersName(m_SquadArray.m_GroupNameList.get(args[1]))){ |
||||||
|
p.sendMessage(Name); |
||||||
|
} |
||||||
|
p.sendMessage("분대 목록:"); |
||||||
|
for (String Name: m_SquadArray.GetGroupNameList()){ |
||||||
|
p.sendMessage(Name); |
||||||
|
} |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
case "초대":{ |
||||||
|
p.sendMessage("초대 테스트"); |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
case "강퇴":{ |
||||||
|
p.sendMessage("강퇴 테스트"+args[1]); |
||||||
|
if(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad").equals(ZERO_UUID)){ |
||||||
|
p.sendMessage("가입한 분대이 없습니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad")); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
if(!m_SquadArray.isOwner(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad"), p.getUniqueId())){ |
||||||
|
p.sendMessage("분대장만 사용 가능한 명령어"+ p.getUniqueId()); |
||||||
|
} |
||||||
|
|
||||||
|
if (args.length < 1) { |
||||||
|
p.sendMessage("강퇴할 대상을 지정"); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
UUID op = m_UserInfoArray.getUserUUID(args[1]); |
||||||
|
if (op == null) { |
||||||
|
p.sendMessage("잘못된 대상"); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
if(!m_SquadArray.isGroupMember(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad"),op)) { |
||||||
|
p.sendMessage("분대에 가입되지 않은 유저"); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
m_SquadArray.ExpulsionGroupPlayer("Squad", m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad"), op); |
||||||
|
break; |
||||||
|
} |
||||||
|
case "탈퇴": { |
||||||
|
if(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad").equals(ZERO_UUID)){ |
||||||
|
p.sendMessage("가입한 분대이 없습니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad")); |
||||||
|
return false; |
||||||
|
} |
||||||
|
else{ |
||||||
|
p.sendMessage("탈퇴 플레이어 UUID:"+p.getUniqueId()+" 분대 UUID:"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Squad")); |
||||||
|
m_SquadArray.ExpulsionGroupPlayer("Squad",m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Squad"),p.getUniqueId()); |
||||||
|
|
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
case "이름":{ |
||||||
|
//p.sendMessage("현재 파티 이름"+m_SquadArray.GetGroupName(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Squad")));
|
||||||
|
p.sendMessage("현재 파티 이름"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Squad")); |
||||||
|
p.sendMessage(""+m_SquadArray.getKeySet()); |
||||||
|
break; |
||||||
|
} |
||||||
|
case "정보": { |
||||||
|
p.sendMessage("분대 이름:"); |
||||||
|
for (String Name: m_SquadArray.GetGroupNameList()){ |
||||||
|
p.sendMessage("분대 이름:"); |
||||||
|
p.sendMessage(Name); |
||||||
|
p.sendMessage("인원 목록"); |
||||||
|
for (String Name2: m_SquadArray.GetGroupMembersName(m_SquadArray.m_GroupNameList.get(Name))) { |
||||||
|
p.sendMessage(Name2); |
||||||
|
} |
||||||
|
p.sendMessage("계좌 잔액:"+m_AccountArray.getAccountInfo(m_SquadArray.m_GroupNameList.get(Name))); |
||||||
|
} |
||||||
|
break; |
||||||
|
} |
||||||
|
case "계좌설정":{ |
||||||
|
if (!p.isOp()) { |
||||||
|
p.sendMessage("관리자만 실행 가능한 명령어입니다."); |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (args.length < 1) { |
||||||
|
p.sendMessage("설정 대상이 지정되지 않았습니다."); |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (args[1] == null) { |
||||||
|
p.sendMessage("설정 대상이 지정되지 않았습니다."); |
||||||
|
return false; |
||||||
|
} |
||||||
|
UUID op = m_SquadArray.m_GroupNameList.get(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(op, Long.parseLong(args[2])); |
||||||
|
p.sendMessage(args[1] + "님의 잔액을 " + Integer.parseInt(args[2]) + "원으로 설정하였습니다."); |
||||||
|
break; |
||||||
|
} |
||||||
|
|
||||||
|
case "입금": { |
||||||
|
if (args.length < 1) { |
||||||
|
p.sendMessage("이체 대상이 지정되지 않았습니다."); |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (args[1] == null) { |
||||||
|
p.sendMessage("이체 대상이 지정되지 않았습니다."); |
||||||
|
return false; |
||||||
|
} |
||||||
|
UUID op = m_SquadArray.m_GroupNameList.get(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 "출금": { |
||||||
|
if (args.length < 1) { |
||||||
|
p.sendMessage("출금 대상이 지정되지 않았습니다."); |
||||||
|
return false; |
||||||
|
} |
||||||
|
if (args[1] == null) { |
||||||
|
p.sendMessage("출금 대상이 지정되지 않았습니다."); |
||||||
|
return false; |
||||||
|
} |
||||||
|
UUID op = m_SquadArray.m_GroupNameList.get(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(op, p.getUniqueId(), 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(m_SquadArray.GetUUID(args[1]))+ "원=="); |
||||||
|
break; |
||||||
|
} |
||||||
|
default: { |
||||||
|
p.sendMessage("잘못된 명령어"); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
@ -1,61 +0,0 @@ |
|||||||
package org.poopki.duckdns.user_db; |
|
||||||
|
|
||||||
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.Array.GroupArray; |
|
||||||
|
|
||||||
import java.util.UUID; |
|
||||||
|
|
||||||
public class SquadEventHandler implements CommandExecutor { |
|
||||||
|
|
||||||
GroupArray m_GroupArray; |
|
||||||
UserInfoArray m_UserInfoArray; |
|
||||||
|
|
||||||
public SquadEventHandler(GroupArray GA, UserInfoArray UIA){ |
|
||||||
m_GroupArray = GA; |
|
||||||
m_UserInfoArray = UIA; |
|
||||||
} |
|
||||||
@Override |
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { |
|
||||||
Player p = (Player) sender; |
|
||||||
|
|
||||||
if (args.length != 0) { |
|
||||||
switch (args[0]) { |
|
||||||
case "생성":{ |
|
||||||
UUID tempUUID = UUID.randomUUID(); |
|
||||||
m_GroupArray.CreateGroup(tempUUID, args[1], p.getUniqueId()); |
|
||||||
m_UserInfoArray.setUserGroupUUID("Party",p.getUniqueId(), tempUUID); |
|
||||||
p.sendMessage(args[1]+"파티가 생성되었습니다."); |
|
||||||
p.sendMessage("멤버 목록: "); |
|
||||||
for (String Name: m_GroupArray.GetGroupMembersName(tempUUID)){ |
|
||||||
p.sendMessage(Name); |
|
||||||
} |
|
||||||
p.sendMessage("파티 목록:"); |
|
||||||
for (String Name: m_GroupArray.GetGroupNameList()){ |
|
||||||
p.sendMessage(Name); |
|
||||||
} |
|
||||||
break; |
|
||||||
} |
|
||||||
case "가입":{ |
|
||||||
p.sendMessage("가입 테스트"); |
|
||||||
break; |
|
||||||
} |
|
||||||
case "초대":{ |
|
||||||
p.sendMessage("초대 테스트"); |
|
||||||
break; |
|
||||||
} |
|
||||||
case "강퇴":{ |
|
||||||
p.sendMessage("강퇴 테스트"); |
|
||||||
break; |
|
||||||
} |
|
||||||
case "이름":{ |
|
||||||
p.sendMessage("현재 파티 이름"+m_GroupArray.GetGroupName(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Party"))); |
|
||||||
break; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
return true; |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue