Compare commits
22 Commits
itemeffect
...
Group_Syst
Author | SHA1 | Date |
---|---|---|
poopki | b3e5851b05 | 2 years ago |
poopki | d464d5a77d | 2 years ago |
poopki | de6b3de02f | 2 years ago |
poopki | 8295f06691 | 2 years ago |
poopki | 6037d17087 | 2 years ago |
poopki | 7ae1f2c1e6 | 2 years ago |
poopki | 012f82b805 | 2 years ago |
poopki | 93c37e2d12 | 2 years ago |
poopki | dbc6dc05fd | 2 years ago |
poopki | 7f011904ce | 2 years ago |
poopki | 29567fd793 | 2 years ago |
poopki | 5f7c4b2904 | 3 years ago |
poopki | fe9efa748b | 3 years ago |
poopki | b26bb99496 | 3 years ago |
poopki | 6bbf4c8713 | 3 years ago |
poopki | 71a5aa8e8c | 3 years ago |
poopki | fb2661d9f8 | 3 years ago |
poopki | 31306337f2 | 3 years ago |
poopki | 278829747a | 3 years ago |
poopki | 099d8e74eb | 3 years ago |
poopki | bdebf993bd | 3 years ago |
poopki | 1b76db907b | 3 years ago |
37 changed files with 2587 additions and 104 deletions
@ -0,0 +1,3 @@ |
||||
# Default ignored files |
||||
/shelf/ |
||||
/workspace.xml |
@ -0,0 +1,6 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_18" project-jdk-name="1.8" project-jdk-type="JavaSDK"> |
||||
<output url="file://$PROJECT_DIR$/out" /> |
||||
</component> |
||||
</project> |
@ -0,0 +1,8 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="ProjectModuleManager"> |
||||
<modules> |
||||
<module fileurl="file://$PROJECT_DIR$/Project.The_SEED.iml" filepath="$PROJECT_DIR$/Project.The_SEED.iml" /> |
||||
</modules> |
||||
</component> |
||||
</project> |
@ -0,0 +1,6 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="VcsDirectoryMappings"> |
||||
<mapping directory="" vcs="Git" /> |
||||
</component> |
||||
</project> |
@ -1,21 +0,0 @@ |
||||
package org.poopki.duckdns.user_db; |
||||
|
||||
public class Account { |
||||
private int m_Balance; |
||||
|
||||
public Account(int Balance){ // Account Balance 초기화
|
||||
m_Balance = Balance; |
||||
} |
||||
|
||||
public int getBalance(){ return m_Balance; } //잔액 return
|
||||
public void credit(int Amount){ // 입금
|
||||
m_Balance +=Amount; |
||||
} |
||||
public boolean withdraw(int Amount){ // 출금
|
||||
if(m_Balance >= Amount){ |
||||
m_Balance -= Amount; |
||||
return true; |
||||
} |
||||
return false; |
||||
} |
||||
} |
@ -0,0 +1,34 @@ |
||||
package org.poopki.duckdns.user_db.Array; |
||||
|
||||
public class Account { |
||||
private int m_Balance; |
||||
private int MAX_BALANCE = 2147483647; |
||||
public Account(int Balance){ // Account Balance 초기화
|
||||
m_Balance = Balance; |
||||
} |
||||
public boolean setBalance(Long Amount){ |
||||
if(Amount<MAX_BALANCE) { |
||||
m_Balance = Amount.intValue(); |
||||
return true; |
||||
}else{ |
||||
return false; |
||||
} |
||||
} |
||||
public int getBalance(){ return m_Balance; } //잔액 return
|
||||
public boolean credit(Long Amount){ // 입금
|
||||
if(m_Balance+Amount < MAX_BALANCE) { |
||||
m_Balance += Amount.intValue(); |
||||
return true; |
||||
} |
||||
else{ |
||||
return false; |
||||
} |
||||
} |
||||
public boolean withdraw(Long Amount){ // 출금
|
||||
if(m_Balance >= Amount){ |
||||
m_Balance -= Amount.intValue(); |
||||
return true; |
||||
} |
||||
return false; |
||||
} |
||||
} |
@ -0,0 +1,119 @@ |
||||
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; |
||||
} |
||||
} |
@ -0,0 +1,11 @@ |
||||
package org.poopki.duckdns.user_db.Array; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.UUID; |
||||
|
||||
public class Farm extends Group{ |
||||
public Farm(String Name, List<UUID> uuid_list){ |
||||
super(Name, uuid_list); |
||||
} |
||||
} |
@ -0,0 +1,12 @@ |
||||
package org.poopki.duckdns.user_db.Array; |
||||
|
||||
import org.bukkit.Bukkit; |
||||
import org.poopki.duckdns.user_db.UserInfoArray; |
||||
|
||||
import java.util.*; |
||||
|
||||
public class FarmArray extends GroupArray{ |
||||
public FarmArray(UserInfoArray m_UIA){ |
||||
super(m_UIA, 10); |
||||
} |
||||
} |
@ -0,0 +1,286 @@ |
||||
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 FarmEventHandler implements CommandExecutor { |
||||
|
||||
FarmArray m_FarmArray; |
||||
UserInfoArray m_UserInfoArray; |
||||
AccountArray m_AccountArray; |
||||
UUID ZERO_UUID = new UUID(0,0); |
||||
public FarmEventHandler(UserInfoArray UIA, FarmArray GA, AccountArray AA){ |
||||
m_FarmArray = 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(), "Farm").equals(ZERO_UUID)){ |
||||
p.sendMessage("이미 농장을 소유중"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm")); |
||||
return false; |
||||
} |
||||
|
||||
if(!m_FarmArray.CreateGroup(tempUUID, args[1], p.getUniqueId())){ |
||||
p.sendMessage("이미 존재하는 농장 이름"); |
||||
return false; |
||||
} |
||||
|
||||
m_UserInfoArray.setUserGroupUUID("Farm",p.getUniqueId(), tempUUID); |
||||
m_AccountArray.putAccountInfo(tempUUID,0); |
||||
|
||||
for (UUID key: m_UserInfoArray.getKeySet()){ |
||||
p.sendMessage("------------"+p.getUniqueId()); |
||||
p.sendMessage(""+m_UserInfoArray.getUserGroupUUID(key,"Farm")); |
||||
} |
||||
|
||||
p.sendMessage(args[1]+"농장이 생성되었습니다."); |
||||
p.sendMessage("농장 멤버 목록: "); |
||||
|
||||
for (String Name: m_FarmArray.GetGroupMembersName(tempUUID)){ |
||||
p.sendMessage(Name); |
||||
} |
||||
|
||||
p.sendMessage("농장 목록:"); |
||||
|
||||
for (String Name: m_FarmArray.GetGroupNameList()){ |
||||
p.sendMessage(Name); |
||||
} |
||||
break; |
||||
} |
||||
|
||||
case "가입":{ |
||||
p.sendMessage("플레이어 UUID:"+p.getUniqueId()+" 농장 UUID:"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm")); |
||||
p.sendMessage("ZERO UUID:"+ZERO_UUID); |
||||
if(!m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm").equals(ZERO_UUID)){ |
||||
p.sendMessage("이미 가입한 농장이 존재"); |
||||
return false; |
||||
} |
||||
else{ |
||||
p.sendMessage("가입 완료"); |
||||
m_FarmArray.SignUpGroup("Farm",m_FarmArray.m_GroupNameList.get(args[1]),p.getUniqueId()); |
||||
p.sendMessage("농장 멤버 목록: "); |
||||
for (String Name: m_FarmArray.GetGroupMembersName(m_FarmArray.m_GroupNameList.get(args[1]))){ |
||||
p.sendMessage(Name); |
||||
} |
||||
p.sendMessage("농장 목록:"); |
||||
for (String Name: m_FarmArray.GetGroupNameList()){ |
||||
p.sendMessage(Name); |
||||
} |
||||
} |
||||
break; |
||||
} |
||||
|
||||
case "초대":{ |
||||
p.sendMessage("초대 테스트"); |
||||
break; |
||||
} |
||||
|
||||
case "강퇴":{ |
||||
p.sendMessage("강퇴 테스트"+args[1]); |
||||
if(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm").equals(ZERO_UUID)){ |
||||
p.sendMessage("가입한 농장이 없습니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm")); |
||||
return false; |
||||
} |
||||
|
||||
if(!m_FarmArray.isOwner(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm"), 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_FarmArray.isGroupMember(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm"),op)) { |
||||
p.sendMessage("농장에 가입되지 않은 유저"); |
||||
return false; |
||||
} |
||||
|
||||
m_FarmArray.ExpulsionGroupPlayer("Farm", m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm"), op); |
||||
break; |
||||
} |
||||
case "탈퇴": { |
||||
if(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm").equals(ZERO_UUID)){ |
||||
p.sendMessage("가입한 농장이 없습니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm")); |
||||
return false; |
||||
} |
||||
else{ |
||||
p.sendMessage("탈퇴 플레이어 UUID:"+p.getUniqueId()+" 농장 UUID:"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Farm")); |
||||
m_FarmArray.ExpulsionGroupPlayer("Farm",m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Farm"),p.getUniqueId()); |
||||
|
||||
} |
||||
break; |
||||
} |
||||
case "이름":{ |
||||
p.sendMessage("현재 파티 이름"+m_FarmArray.GetGroupName(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Farm"))); |
||||
break; |
||||
} |
||||
case "정보": { |
||||
for (String Name: m_FarmArray.GetGroupNameList()){ |
||||
p.sendMessage("농장 이름:"); |
||||
p.sendMessage(Name); |
||||
p.sendMessage("인원 목록"); |
||||
for (String Name2: m_FarmArray.GetGroupMembersName(m_FarmArray.m_GroupNameList.get(Name))) { |
||||
p.sendMessage(Name2); |
||||
} |
||||
p.sendMessage("계좌 잔액:"+m_AccountArray.getAccountInfo(m_FarmArray.m_GroupNameList.get(Name))); |
||||
} |
||||
break; |
||||
} |
||||
case "계좌설정":{ |
||||
if (!p.isOp()) { |
||||
p.sendMessage("관리자만 실행 가능한 명령어입니다."); |
||||
return false; |
||||
} |
||||
if (args.length < 1) { |
||||
p.sendMessage("설정 대상이 지정되지 않았습니다."); |
||||
return false; |
||||
} |
||||
UUID op = m_FarmArray.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_FarmArray.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_FarmArray.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_FarmArray.GetUUID(args[1]))+ "원=="); |
||||
break; |
||||
} |
||||
default: { |
||||
p.sendMessage("잘못된 명령어"); |
||||
} |
||||
} |
||||
} |
||||
return true; |
||||
} |
||||
} |
@ -0,0 +1,52 @@ |
||||
package org.poopki.duckdns.user_db.Array; |
||||
|
||||
import java.util.Collections; |
||||
import java.util.List; |
||||
import java.util.ArrayList; |
||||
import java.util.UUID; |
||||
|
||||
public class Group { |
||||
private String m_Name; |
||||
private List<UUID> m_MemberList = new ArrayList<>(); |
||||
UUID ZERO_UUID = UUID.fromString("00000000-0000-0000-0000-000000000000"); |
||||
int MAX_FARM_NUM = 10; |
||||
|
||||
public Group(String Name, List<UUID> uuid_list){ |
||||
int index = 0; |
||||
for(UUID key: uuid_list){ |
||||
m_MemberList.add(index,key); |
||||
index++; |
||||
} |
||||
m_Name = Name; |
||||
} |
||||
|
||||
public void SignUp(UUID uuid){ |
||||
m_MemberList.add((UUID)uuid); |
||||
} |
||||
|
||||
public void Expulsion(UUID uuid){ |
||||
m_MemberList.remove(uuid); |
||||
} |
||||
|
||||
public boolean isMember(UUID uuid){ |
||||
return m_MemberList.contains(uuid); |
||||
} |
||||
public int getMemMaxNUM(){ |
||||
return MAX_FARM_NUM; |
||||
} |
||||
public List<UUID> getGroupMembers(){ return m_MemberList;} |
||||
public int getMemNUM(){ |
||||
int num = m_MemberList.size(); |
||||
return num; |
||||
} |
||||
|
||||
public String getGroupName(){ return m_Name; } |
||||
public int isEmpty(){return m_MemberList.size();} |
||||
public boolean isOwner(UUID uuid){ |
||||
if(m_MemberList.get(0).equals(uuid)){ |
||||
return true; |
||||
}else{ |
||||
return false; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,170 @@ |
||||
package org.poopki.duckdns.user_db.Array; |
||||
|
||||
import org.bukkit.Bukkit; |
||||
import org.bukkit.entity.Player; |
||||
import org.poopki.duckdns.user_db.UserInfoArray; |
||||
|
||||
import java.util.*; |
||||
|
||||
public class GroupArray { |
||||
|
||||
|
||||
protected Map<UUID, Group> m_GroupArray; |
||||
protected Map<String, UUID> m_GroupNameList; |
||||
public List<UUID> m_DeleteQueue = new ArrayList<>(); |
||||
UserInfoArray m_UserInfoArray; |
||||
UUID ZERO_UUID = UUID.fromString("00000000-0000-0000-0000-000000000000"); |
||||
int MAX_GROUP_NUM = 10; |
||||
|
||||
public GroupArray(UserInfoArray m_UIA, int num){ |
||||
m_UserInfoArray = m_UIA; |
||||
m_GroupArray = new HashMap<UUID, Group>(); |
||||
m_GroupNameList = new HashMap<String, UUID>(); |
||||
MAX_GROUP_NUM = num; |
||||
} |
||||
|
||||
public boolean CreateGroup(UUID GroupUUID, String Name, UUID PlayerUUID){ |
||||
if(m_GroupNameList.containsKey(Name)){ |
||||
return false; // Conflict
|
||||
} else{ |
||||
List<UUID> m_MemberList = new ArrayList<>(); |
||||
m_MemberList.add(PlayerUUID); |
||||
|
||||
m_GroupArray.put(GroupUUID, new Group(Name, m_MemberList)); |
||||
m_GroupNameList.put(Name, GroupUUID); |
||||
return true; |
||||
} |
||||
} |
||||
|
||||
public boolean PutGroup(UUID GroupUUID, String Name,List<UUID> PlayerUUID){ |
||||
List<UUID> m_MemberList = new ArrayList<>(); |
||||
|
||||
Iterator <UUID> it = PlayerUUID.iterator(); |
||||
|
||||
while(it.hasNext()){ |
||||
m_MemberList.add(it.next()); |
||||
} |
||||
|
||||
m_GroupArray.put(GroupUUID, new Group(Name, m_MemberList)); |
||||
m_GroupNameList.put(Name,GroupUUID); |
||||
return true; |
||||
} |
||||
|
||||
public boolean CheckGroup(String GroupType, String Name){ |
||||
return m_GroupArray.containsKey(m_GroupNameList.get(Name)); |
||||
} |
||||
public static <K, V> K getKey(Map<K, V> map, V value) { |
||||
|
||||
for (K key : map.keySet()) { |
||||
if (value.equals(map.get(key))) { |
||||
return key; |
||||
} |
||||
} |
||||
return null; |
||||
} |
||||
|
||||
public UUID GetUUID(String name){ |
||||
return m_GroupNameList.get(name); |
||||
} |
||||
|
||||
public boolean DeleteGroup(UUID GroupUUID, String GroupType){ |
||||
if(m_GroupArray.containsKey(GroupUUID)){ |
||||
for(UUID key: GetGroupMembersUUID(GroupUUID)){ |
||||
m_UserInfoArray.setUserGroupUUID(GroupType,key,new UUID(0,0)); |
||||
} |
||||
|
||||
m_GroupNameList.remove(GetGroupName(GroupUUID)); |
||||
m_GroupArray.remove(GroupUUID); |
||||
return true; |
||||
} |
||||
else{ |
||||
return false; // Group is not exists.
|
||||
} |
||||
|
||||
} |
||||
|
||||
public String SignUpGroup(String GroupType, UUID GroupUUID, UUID PlayerUUID){ |
||||
if(m_GroupArray.containsKey(GroupUUID) && m_UserInfoArray.getUserGroupUUID(PlayerUUID, GroupType).equals(ZERO_UUID)){ |
||||
Group m_Group = m_GroupArray.get(GroupUUID); |
||||
m_Group.SignUp(PlayerUUID); |
||||
m_UserInfoArray.setUserGroupUUID(GroupType,PlayerUUID,GroupUUID); |
||||
return ""; |
||||
} else{ |
||||
return "다른 그룹에 가입되어있습니다."; // Wrong Group
|
||||
} |
||||
} |
||||
|
||||
public boolean ExpulsionGroupPlayer(String GroupType, UUID GroupUUID, UUID PlayerUUID){ |
||||
if(m_GroupArray.get(GroupUUID).isMember(PlayerUUID)) { |
||||
Group m_Group = m_GroupArray.get(GroupUUID); |
||||
m_Group.Expulsion(PlayerUUID); |
||||
m_UserInfoArray.setUserGroupUUID(GroupType,PlayerUUID,ZERO_UUID); |
||||
int temp = m_GroupArray.get(GroupUUID).getMemNUM(); |
||||
|
||||
if(temp==0){ |
||||
m_GroupNameList.remove(m_Group.getGroupName()); |
||||
m_GroupArray.remove(GroupUUID); |
||||
m_DeleteQueue.add(GroupUUID); |
||||
Bukkit.getPlayer(PlayerUUID).sendMessage(""+temp+" "+m_DeleteQueue); |
||||
} |
||||
return true; |
||||
} else{ |
||||
return false; // Wrong Player Name. FIXME{Need Checking function for a validate user name's }
|
||||
/* Player op = Bukkit.getPlayer(args[1]); |
||||
if (op != null) { |
||||
*/ |
||||
} |
||||
} |
||||
|
||||
public List<String> GetGroupMembersName(UUID GroupUUID){ |
||||
List<String> MembersName = new ArrayList<>(); |
||||
for (UUID key : m_GroupArray.get(GroupUUID).getGroupMembers()){ |
||||
try { |
||||
MembersName.add(Bukkit.getPlayer(key).getDisplayName()); |
||||
} |
||||
catch(NullPointerException e){ |
||||
|
||||
} |
||||
} |
||||
return MembersName; |
||||
} |
||||
public List<UUID> GetGroupMembersUUID(UUID GroupUUID){ |
||||
return m_GroupArray.get(GroupUUID).getGroupMembers(); |
||||
} |
||||
public boolean isGroupMember(UUID GroupUUID, UUID PlayerUUID){ |
||||
Group m_Group = m_GroupArray.get(GroupUUID); |
||||
return m_Group.isMember(PlayerUUID); |
||||
} |
||||
public int GetGroupMemNUM(UUID GroupUUID){ |
||||
Group m_Group = m_GroupArray.get(GroupUUID); |
||||
return m_Group.getMemNUM(); |
||||
} |
||||
public Set<String> GetGroupNameList(){ |
||||
return m_GroupNameList.keySet(); |
||||
} |
||||
|
||||
public Set<UUID> getKeySet(){ // 유저 목록 return
|
||||
return m_GroupArray.keySet(); |
||||
} |
||||
|
||||
public Set<String> getNameSet() { return m_GroupNameList.keySet(); } |
||||
public String GetGroupName(UUID GroupUUID){ |
||||
Group m_Group = m_GroupArray.get(GroupUUID); |
||||
return m_Group.getGroupName(); |
||||
} |
||||
public int GetGroupMemMaxNum(UUID GroupUUID){ |
||||
Group m_Group = m_GroupArray.get(GroupUUID); |
||||
return m_Group.getMemMaxNUM(); |
||||
} |
||||
public boolean isOffline(UUID uuid){ |
||||
return Bukkit.getPlayer(uuid).equals(null) && !Bukkit.getOfflinePlayer(uuid).equals(null); |
||||
} |
||||
|
||||
public boolean isOwner(UUID GroupUUID, UUID PlayerUUID){ |
||||
return m_GroupArray.get(GroupUUID).isOwner(PlayerUUID); |
||||
} |
||||
private boolean isAvaliableGroup(UUID GroupUUID){ |
||||
return m_GroupArray.containsKey(GroupUUID); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,268 @@ |
||||
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 GroupEventHandler implements CommandExecutor { |
||||
|
||||
GroupArray m_GroupArray; |
||||
UserInfoArray m_UserInfoArray; |
||||
AccountArray m_AccountArray; |
||||
UUID ZERO_UUID = new UUID(0,0); |
||||
|
||||
String m_GroupType; |
||||
String m_Type; |
||||
public GroupEventHandler(GroupArray GA, UserInfoArray UIA, AccountArray AA, String GroupType, String Type){ |
||||
m_GroupArray = GA; |
||||
m_UserInfoArray = UIA; |
||||
m_GroupType = GroupType; |
||||
m_Type=Type; |
||||
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(), m_Type).equals(ZERO_UUID)){ |
||||
if(m_GroupArray.CreateGroup(tempUUID, args[1], p.getUniqueId())){ |
||||
m_UserInfoArray.setUserGroupUUID(m_Type,p.getUniqueId(), tempUUID); |
||||
m_AccountArray.putAccountInfo(tempUUID,0); |
||||
p.sendMessage(args[1]+m_GroupType+"이 생성되었습니다."); |
||||
p.sendMessage(m_GroupType+" 멤버 목록: "); |
||||
for (String Name: m_GroupArray.GetGroupMembersName(tempUUID)){ |
||||
p.sendMessage(Name); |
||||
} |
||||
p.sendMessage(m_GroupType+" 목록:"); |
||||
for (String Name: m_GroupArray.GetGroupNameList()){ |
||||
p.sendMessage(Name); |
||||
} |
||||
} |
||||
else{ |
||||
p.sendMessage("이미 존재하는 "+m_GroupType+" 이름입니다."); |
||||
} |
||||
} |
||||
else{ |
||||
p.sendMessage("이미"+m_GroupType+"을(를) 소유중입니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type)); |
||||
} |
||||
break; |
||||
} |
||||
case "가입":{ |
||||
p.sendMessage("플레이어 UUID:"+p.getUniqueId()+" 농장 UUID:"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type)); |
||||
p.sendMessage("ZERO UUID:"+ZERO_UUID); |
||||
if(!m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type).equals(ZERO_UUID)){ |
||||
p.sendMessage("이미 가입한 "+m_GroupType+"이(가) 존재합니다."); |
||||
} |
||||
else{ |
||||
p.sendMessage("가입 완료"); |
||||
m_GroupArray.SignUpGroup(m_Type,m_GroupArray.m_GroupNameList.get(args[1]),p.getUniqueId()); |
||||
p.sendMessage(m_GroupType+" 멤버 목록: "); |
||||
for (String Name: m_GroupArray.GetGroupMembersName(m_GroupArray.m_GroupNameList.get(args[1]))){ |
||||
p.sendMessage(Name); |
||||
} |
||||
p.sendMessage(m_GroupType+" 목록:"); |
||||
for (String Name: m_GroupArray.GetGroupNameList()){ |
||||
p.sendMessage(Name); |
||||
} |
||||
} |
||||
break; |
||||
} |
||||
case "초대":{ |
||||
p.sendMessage("초대 테스트"); |
||||
break; |
||||
} |
||||
case "강퇴":{ |
||||
p.sendMessage("강퇴 테스트"); |
||||
if(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type).equals(ZERO_UUID)){ |
||||
p.sendMessage("가입한 "+m_GroupType+"이(가) 없습니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type)); |
||||
} |
||||
else{ |
||||
if(m_GroupArray.isOwner(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type), p.getUniqueId())){ |
||||
if (args.length > 1) { |
||||
Player op = Bukkit.getPlayer(args[1]); |
||||
if (op != null) { |
||||
if(m_GroupArray.isGroupMember(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type),op.getUniqueId())) { |
||||
m_GroupArray.ExpulsionGroupPlayer(m_Type, m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type), p.getUniqueId()); |
||||
} |
||||
else{ |
||||
p.sendMessage(m_GroupType+"에 가입되지 않은 유저입니다"); |
||||
} |
||||
} |
||||
else{ |
||||
p.sendMessage("잘못된 대상입니다."); |
||||
} |
||||
} |
||||
else{ |
||||
p.sendMessage("강퇴할 대상을 지정"); |
||||
} |
||||
} |
||||
else{ |
||||
p.sendMessage(m_GroupType+"주만 사용 가능한 명령어입니다."+ p.getUniqueId()); |
||||
} |
||||
} |
||||
break; |
||||
} |
||||
case "탈퇴": { |
||||
if(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type).equals(ZERO_UUID)){ |
||||
p.sendMessage("가입한 "+m_GroupType+"이(가) 없습니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type)); |
||||
} |
||||
else{ |
||||
p.sendMessage("탈퇴 플레이어 UUID:"+p.getUniqueId()+m_GroupType+" UUID:"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), m_Type)); |
||||
m_GroupArray.ExpulsionGroupPlayer(m_Type,m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),m_Type),p.getUniqueId()); |
||||
|
||||
} |
||||
break; |
||||
} |
||||
case "이름":{ |
||||
p.sendMessage("현재 "+m_GroupType+" 이름"+m_GroupArray.GetGroupName(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Party"))); |
||||
break; |
||||
} |
||||
case "정보": { |
||||
for (String Name: m_GroupArray.GetGroupNameList()){ |
||||
p.sendMessage(m_GroupType+" 이름:"); |
||||
p.sendMessage(Name); |
||||
p.sendMessage("인원 목록"); |
||||
for (String Name2: m_GroupArray.GetGroupMembersName(m_GroupArray.m_GroupNameList.get(Name))) { |
||||
p.sendMessage(Name2); |
||||
} |
||||
p.sendMessage("계좌 잔액:"+m_AccountArray.getAccountInfo(m_GroupArray.m_GroupNameList.get(Name))); |
||||
} |
||||
} |
||||
case "계좌설정":{ |
||||
if (p.isOp()) { |
||||
if (args.length > 1) { |
||||
if (args[1] != null) { |
||||
UUID op = m_GroupArray.m_GroupNameList.get(args[1]); |
||||
if (op != null) { |
||||
if (args.length > 2) { |
||||
if (isStringDouble(args[2])) { |
||||
if(m_AccountArray.setAccountInfo(op, Long.parseLong(args[2]))){ |
||||
p.sendMessage(args[1] + "님의 잔액을 " + Integer.parseInt(args[2]) + "원으로 설정하였습니다."); |
||||
} else{ |
||||
p.sendMessage("최대 금액 이상으로 설정할 수 없습니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("설정 금액은 숫자만 가능합니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("설정 금액을 입력해주세요."); |
||||
} |
||||
} else { |
||||
p.sendMessage("잘못된 계좌입니다."); |
||||
} |
||||
} |
||||
}else{ |
||||
p.sendMessage("설정 대상이 지정되지 않았습니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("관리자만 실행 가능한 명령어입니다."); |
||||
} |
||||
break; |
||||
} |
||||
case "입금": { |
||||
if (args.length > 1) { |
||||
if(args.length > 2) { |
||||
UUID op = m_GroupArray.m_GroupNameList.get(args[1]); |
||||
if (op != null) { |
||||
if (isStringDouble(args[2])) { |
||||
if(p.getUniqueId() != op) { |
||||
switch(m_AccountArray.transfer(p.getUniqueId(), op, Long.parseLong(args[2]))) |
||||
{ |
||||
case 1: { |
||||
p.sendMessage(args[1] + m_GroupType+"에 " + Integer.parseInt(args[2]) + "원을 이체하였습니다."); |
||||
break; |
||||
} |
||||
case 2: { |
||||
p.sendMessage("잔액은 최대 금액을 초과할 수 없습니다."); |
||||
break; |
||||
} |
||||
case 3:{ |
||||
p.sendMessage("잔액이 부족합니다."); |
||||
break; |
||||
} |
||||
} |
||||
} else{ |
||||
p.sendMessage("자기 자신에게는 이체할 수 없습니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("이체 금액은 숫자만 가능합니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("잘못된 계좌입니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("이체 금액을 입력해주세요."); |
||||
} |
||||
} else { |
||||
p.sendMessage("이체 대상이 지정되지 않았습니다."); |
||||
} |
||||
break; |
||||
} |
||||
case "출금": { |
||||
if (args.length > 1) { |
||||
if(args.length > 2) { |
||||
UUID op = m_GroupArray.m_GroupNameList.get(args[1]); |
||||
if (op != null) { |
||||
if (isStringDouble(args[2])) { |
||||
if(p.getUniqueId() != op) { |
||||
switch(m_AccountArray.transfer(op,p.getUniqueId(), Long.parseLong(args[2]))) |
||||
{ |
||||
case 1: { |
||||
p.sendMessage(args[1] + m_GroupType+"에서 " + Integer.parseInt(args[2]) + "원을 출금하였습니다."); |
||||
break; |
||||
} |
||||
case 2: { |
||||
p.sendMessage("잔액은 최대 금액을 초과할 수 없습니다."); |
||||
break; |
||||
} |
||||
case 3:{ |
||||
p.sendMessage("잔액이 부족합니다."); |
||||
break; |
||||
} |
||||
} |
||||
} else{ |
||||
p.sendMessage("자기 자신에게는 이체할 수 없습니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("이체 금액은 숫자만 가능합니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("잘못된 계좌입니다."); |
||||
} |
||||
} else { |
||||
p.sendMessage("이체 금액을 입력해주세요."); |
||||
} |
||||
} else { |
||||
p.sendMessage("이체 대상이 지정되지 않았습니다."); |
||||
} |
||||
break; |
||||
} |
||||
case "잔액": { |
||||
p.sendMessage("==잔액: " + m_AccountArray.getAccountInfo(m_GroupArray.GetUUID(args[1]))+ "원=="); |
||||
break; |
||||
} |
||||
default: { |
||||
p.sendMessage("잘못된 명령어"); |
||||
} |
||||
} |
||||
} |
||||
return true; |
||||
} |
||||
} |
@ -0,0 +1,11 @@ |
||||
package org.poopki.duckdns.user_db.Array; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
import java.util.UUID; |
||||
|
||||
public class Nation extends Group{ |
||||
public Nation(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 NationArray extends GroupArray{ |
||||
public NationArray(UserInfoArray m_UIA){ |
||||
super(m_UIA, 50); |
||||
} |
||||
} |
@ -0,0 +1,290 @@ |
||||
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 NationEventHandler implements CommandExecutor { |
||||
|
||||
NationArray m_NationArray; |
||||
UserInfoArray m_UserInfoArray; |
||||
AccountArray m_AccountArray; |
||||
UUID ZERO_UUID = new UUID(0,0); |
||||
public NationEventHandler(UserInfoArray UIA, NationArray GA, AccountArray AA){ |
||||
m_NationArray = 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(), "Nation").equals(ZERO_UUID)){ |
||||
p.sendMessage("이미 국가을 소유중"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation")); |
||||
return false; |
||||
} |
||||
|
||||
if(!m_NationArray.CreateGroup(tempUUID, args[1], p.getUniqueId())){ |
||||
p.sendMessage("이미 존재하는 국가 이름"); |
||||
return false; |
||||
} |
||||
|
||||
m_UserInfoArray.setUserGroupUUID("Nation",p.getUniqueId(), tempUUID); |
||||
m_AccountArray.putAccountInfo(tempUUID,0); |
||||
|
||||
for (UUID key: m_UserInfoArray.getKeySet()){ |
||||
p.sendMessage("------------"+p.getUniqueId()); |
||||
p.sendMessage(""+m_UserInfoArray.getUserGroupUUID(key,"Nation")); |
||||
} |
||||
|
||||
p.sendMessage(args[1]+"국가이 생성되었습니다."); |
||||
p.sendMessage("국가 멤버 목록: "); |
||||
|
||||
for (String Name: m_NationArray.GetGroupMembersName(tempUUID)){ |
||||
p.sendMessage(Name); |
||||
} |
||||
|
||||
p.sendMessage("국가 목록:"); |
||||
|
||||
for (String Name: m_NationArray.GetGroupNameList()){ |
||||
p.sendMessage(Name); |
||||
} |
||||
break; |
||||
} |
||||
|
||||
case "가입":{ |
||||
p.sendMessage("플레이어 UUID:"+p.getUniqueId()+" 국가 UUID:"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation")); |
||||
p.sendMessage("ZERO UUID:"+ZERO_UUID); |
||||
if(!m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation").equals(ZERO_UUID)){ |
||||
p.sendMessage("이미 가입한 국가가 존재"); |
||||
return false; |
||||
} |
||||
else{ |
||||
p.sendMessage("가입 완료"); |
||||
m_NationArray.SignUpGroup("Nation",m_NationArray.m_GroupNameList.get(args[1]),p.getUniqueId()); |
||||
p.sendMessage("국가 멤버 목록: "); |
||||
for (String Name: m_NationArray.GetGroupMembersName(m_NationArray.m_GroupNameList.get(args[1]))){ |
||||
p.sendMessage(Name); |
||||
} |
||||
p.sendMessage("국가 목록:"); |
||||
for (String Name: m_NationArray.GetGroupNameList()){ |
||||
p.sendMessage(Name); |
||||
} |
||||
} |
||||
break; |
||||
} |
||||
|
||||
case "초대":{ |
||||
p.sendMessage("초대 테스트"); |
||||
break; |
||||
} |
||||
|
||||
case "강퇴":{ |
||||
p.sendMessage("강퇴 테스트"+args[1]); |
||||
if(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation").equals(ZERO_UUID)){ |
||||
p.sendMessage("가입한 국가이 없습니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation")); |
||||
return false; |
||||
} |
||||
|
||||
if(!m_NationArray.isOwner(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation"), 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_NationArray.isGroupMember(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation"),op)) { |
||||
p.sendMessage("국가에 가입되지 않은 유저"); |
||||
return false; |
||||
} |
||||
|
||||
m_NationArray.ExpulsionGroupPlayer("Nation", m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation"), op); |
||||
break; |
||||
} |
||||
case "탈퇴": { |
||||
if(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation").equals(ZERO_UUID)){ |
||||
p.sendMessage("가입한 국가이 없습니다."+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation")); |
||||
return false; |
||||
} |
||||
else{ |
||||
p.sendMessage("탈퇴 플레이어 UUID:"+p.getUniqueId()+" 국가 UUID:"+m_UserInfoArray.getUserGroupUUID(p.getUniqueId(), "Nation")); |
||||
m_NationArray.ExpulsionGroupPlayer("Nation",m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Nation"),p.getUniqueId()); |
||||
|
||||
} |
||||
break; |
||||
} |
||||
case "이름":{ |
||||
p.sendMessage("현재 파티 이름"+m_NationArray.GetGroupName(m_UserInfoArray.getUserGroupUUID(p.getUniqueId(),"Nation"))); |
||||
break; |
||||
} |
||||
case "정보": { |
||||
for (String Name: m_NationArray.GetGroupNameList()){ |
||||
p.sendMessage("국가 이름:"); |
||||
p.sendMessage(Name); |
||||
p.sendMessage("인원 목록"); |
||||
for (String Name2: m_NationArray.GetGroupMembersName(m_NationArray.m_GroupNameList.get(Name))) { |
||||
p.sendMessage(Name2); |
||||
} |
||||
p.sendMessage("계좌 잔액:"+m_AccountArray.getAccountInfo(m_NationArray.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_NationArray.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_NationArray.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_NationArray.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_NationArray.GetUUID(args[1]))+ "원=="); |
||||
break; |
||||
} |
||||
default: { |
||||
p.sendMessage("잘못된 명령어"); |
||||
} |
||||
} |
||||
} |
||||
return true; |
||||
} |
||||
} |
@ -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,10 +0,0 @@ |
||||
package org.poopki.duckdns.user_db; |
||||
import org.bukkit.Material; |
||||
import org.bukkit.command.Command; |
||||
import org.bukkit.command.CommandExecutor; |
||||
import org.bukkit.command.CommandSender; |
||||
import org.bukkit.command.ConsoleCommandSender; |
||||
import org.bukkit.entity.Player; |
||||
import org.bukkit.inventory.ItemStack; |
||||
public class Command implements CommandExecutor { |
||||
} |
@ -0,0 +1,110 @@ |
||||
package org.poopki.duckdns.user_db.GUI; |
||||
|
||||
import org.bukkit.Bukkit; |
||||
import org.bukkit.ChatColor; |
||||
import org.bukkit.Material; |
||||
import org.bukkit.entity.Item; |
||||
import org.bukkit.entity.Player; |
||||
import org.bukkit.event.EventHandler; |
||||
import org.bukkit.event.Listener; |
||||
import org.bukkit.event.inventory.InventoryClickEvent; |
||||
import org.bukkit.inventory.Inventory; |
||||
import org.bukkit.inventory.ItemStack; |
||||
import org.poopki.duckdns.user_db.Array.AccountArray; |
||||
import org.poopki.duckdns.user_db.Array.FarmArray; |
||||
import org.poopki.duckdns.user_db.Array.NationArray; |
||||
import org.poopki.duckdns.user_db.Array.SquadArray; |
||||
import org.poopki.duckdns.user_db.UserInfoArray; |
||||
|
||||
import java.util.UUID; |
||||
|
||||
public class BaseGUI implements Listener{ |
||||
private final Inventory inv; |
||||
UUID m_uuid; |
||||
ItemManager m_ItemManager= new ItemManager(); |
||||
AccountArray m_AA; |
||||
UserInfoArray m_UIA; |
||||
FarmArray m_FA; |
||||
NationArray m_NA; |
||||
SquadArray m_SA; |
||||
public BaseGUI(AccountArray AA, UserInfoArray UIA, FarmArray FA, NationArray NA, SquadArray SA, UUID uuid, InventoryClickEvent e) { |
||||
m_uuid=uuid; |
||||
this.inv = Bukkit.createInventory(null,27,"TESTGUI"); |
||||
m_AA = AA; |
||||
m_UIA = UIA; |
||||
m_FA = FA; |
||||
m_NA = NA; |
||||
m_SA = SA; |
||||
initItemSetting(); |
||||
} |
||||
|
||||
private void initItemSetting() { |
||||
|
||||
inv.setItem(0,m_ItemManager.GetBalance(m_AA, m_UIA, m_FA, m_NA,m_SA,m_uuid, "User")); |
||||
inv.setItem(1,m_ItemManager.GetBalance(m_AA, m_UIA, m_FA, m_NA,m_SA,m_uuid, "Nation")); |
||||
inv.setItem(2,m_ItemManager.GetBalance(m_AA, m_UIA, m_FA, m_NA,m_SA,m_uuid, "Farm")); |
||||
|
||||
inv.setItem(9, m_ItemManager.btn1); |
||||
inv.setItem(18, m_ItemManager.btn2); |
||||
inv.setItem(10, m_ItemManager.btn3); |
||||
inv.setItem(19, m_ItemManager.btn4); |
||||
inv.setItem(11, m_ItemManager.btn5); |
||||
inv.setItem(20, m_ItemManager.btn6); |
||||
} |
||||
|
||||
public void open(Player player){ |
||||
player.openInventory(inv); |
||||
} |
||||
|
||||
public void inven(InventoryClickEvent e){ |
||||
Player p = (Player) e.getWhoClicked(); |
||||
Inventory m_inv = e.getClickedInventory(); |
||||
|
||||
if (e.getInventory() != m_inv) return; |
||||
|
||||
switch(e.getCurrentItem().getType()){ |
||||
case CANDLE: |
||||
e.setCancelled(true); |
||||
p.sendMessage("10000원 증가"); |
||||
m_AA.setAccountInfo(p.getUniqueId(), (long)m_AA.getAccountInfo(p.getUniqueId())+10000); |
||||
initItemSetting(); |
||||
p.openInventory(inv); |
||||
break; |
||||
case BEEF: |
||||
e.setCancelled(true); |
||||
p.sendMessage("10000원 감소"); |
||||
m_AA.setAccountInfo(p.getUniqueId(), (long)m_AA.getAccountInfo(p.getUniqueId())-10000); |
||||
initItemSetting(); |
||||
p.openInventory(inv); |
||||
break; |
||||
case TORCH: |
||||
e.setCancelled(true); |
||||
p.sendMessage("국가 10000원 증가"+ m_AA.getAccountInfo(m_UIA.getUserGroupUUID(m_uuid, "Nation"))); |
||||
m_AA.setAccountInfo(m_UIA.getUserGroupUUID(p.getUniqueId(),"Nation"), (long)m_AA.getAccountInfo(m_UIA.getUserGroupUUID(p.getUniqueId(),"Nation"))+10000); |
||||
initItemSetting(); |
||||
p.openInventory(inv); |
||||
break; |
||||
case GRASS: |
||||
e.setCancelled(true); |
||||
p.sendMessage("국가 10000원 감소"+ m_AA.getAccountInfo(m_UIA.getUserGroupUUID(m_uuid, "Nation"))); |
||||
m_AA.setAccountInfo(m_UIA.getUserGroupUUID(p.getUniqueId(),"Nation"), (long)m_AA.getAccountInfo(m_UIA.getUserGroupUUID(p.getUniqueId(),"Nation"))-10000); |
||||
initItemSetting(); |
||||
p.openInventory(inv); |
||||
break; |
||||
case DIAMOND: |
||||
e.setCancelled(true); |
||||
p.sendMessage("농장 10000원 증가"+ m_AA.getAccountInfo(m_UIA.getUserGroupUUID(m_uuid, "Farm"))); |
||||
m_AA.setAccountInfo(m_UIA.getUserGroupUUID(p.getUniqueId(),"Farm"), (long)m_AA.getAccountInfo(m_UIA.getUserGroupUUID(p.getUniqueId(),"Farm"))+10000); |
||||
initItemSetting(); |
||||
p.openInventory(inv); |
||||
break; |
||||
case IRON_INGOT: |
||||
e.setCancelled(true); |
||||
p.sendMessage("농장 10000원 감소"+ m_AA.getAccountInfo(m_UIA.getUserGroupUUID(m_uuid, "Farm"))); |
||||
m_AA.setAccountInfo(m_UIA.getUserGroupUUID(p.getUniqueId(),"Farm"), (long)m_AA.getAccountInfo(m_UIA.getUserGroupUUID(p.getUniqueId(),"Farm"))-10000); |
||||
initItemSetting(); |
||||
p.openInventory(inv); |
||||
break; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,60 @@ |
||||
package org.poopki.duckdns.user_db.GUI; |
||||
|
||||
import org.bukkit.ChatColor; |
||||
import org.bukkit.Material; |
||||
import org.bukkit.inventory.ItemStack; |
||||
import org.bukkit.inventory.meta.ItemMeta; |
||||
import org.poopki.duckdns.user_db.Array.AccountArray; |
||||
import org.poopki.duckdns.user_db.Array.FarmArray; |
||||
import org.poopki.duckdns.user_db.Array.NationArray; |
||||
import org.poopki.duckdns.user_db.Array.SquadArray; |
||||
import org.poopki.duckdns.user_db.UserInfoArray; |
||||
|
||||
import java.util.Arrays; |
||||
import java.util.UUID; |
||||
|
||||
public class ItemManager { |
||||
UUID ZERO_UUID = new UUID(0,0); |
||||
public ItemStack btn1 = buildItem(Material.CANDLE, 1, ChatColor.AQUA +"지갑 10000원 증가", "", ChatColor.GREEN + "----"); |
||||
public ItemStack btn2 = buildItem(Material.BEEF, 1, ChatColor.AQUA +"지갑 10000원 감소", "", ChatColor.GREEN + "----"); |
||||
public ItemStack btn3 = buildItem(Material.TORCH, 1, ChatColor.AQUA +"국가 10000원 증가", "", ChatColor.GREEN + "----"); |
||||
public ItemStack btn4 = buildItem(Material.GRASS, 1, ChatColor.AQUA +"국가 10000원 감소", "", ChatColor.GREEN + "----"); |
||||
public ItemStack btn5 = buildItem(Material.DIAMOND, 1, ChatColor.AQUA +"농장 10000원 증가", "", ChatColor.GREEN + "----"); |
||||
public ItemStack btn6 = buildItem(Material.IRON_INGOT, 1, ChatColor.AQUA +"농장 10000원 증가", "", ChatColor.GREEN + "----"); |
||||
private static ItemStack buildItem(Material type, int amount, String displayName, String... lore) { |
||||
ItemStack stack = new ItemStack(type, amount); |
||||
ItemMeta meta = stack.getItemMeta(); |
||||
meta.setDisplayName(displayName); |
||||
meta.setLore(Arrays.asList(lore)); |
||||
stack.setItemMeta(meta); |
||||
return stack; |
||||
} |
||||
public ItemStack GetBalance(AccountArray AA, UserInfoArray UIA, FarmArray FA, NationArray NA, SquadArray SA, UUID m_uuid, String Type){ |
||||
|
||||
ItemStack dia = null; |
||||
switch (Type){ |
||||
case "User": |
||||
dia = buildItem(Material.DIAMOND, 1, ChatColor.AQUA +""+UIA.getUserName(m_uuid), "잔액", ChatColor.GREEN + ""+AA.getAccountInfo(m_uuid)); |
||||
break; |
||||
case "Farm": |
||||
if(ZERO_UUID.equals(UIA.getUserGroupUUID(m_uuid, "Farm"))){ |
||||
dia = buildItem(Material.DIAMOND, 1, ChatColor.AQUA +"농장 없음", "잔액", ChatColor.GREEN + "----"); |
||||
}else{ |
||||
dia = buildItem(Material.DIAMOND, 1, ChatColor.AQUA +""+FA.GetGroupName(UIA.getUserGroupUUID(m_uuid,"Farm")), "잔액", ChatColor.GREEN + ""+AA.getAccountInfo(UIA.getUserGroupUUID(m_uuid, "Farm"))); |
||||
} |
||||
break; |
||||
case "Nation": |
||||
if(ZERO_UUID.equals(UIA.getUserGroupUUID(m_uuid, "Nation"))){ |
||||
dia = buildItem(Material.DIAMOND, 1, ChatColor.AQUA +"국가 없음", "잔액", ChatColor.GREEN + "----"); |
||||
} |
||||
else{ |
||||
dia = buildItem(Material.DIAMOND, 1, ChatColor.AQUA +""+NA.GetGroupName(UIA.getUserGroupUUID(m_uuid, "Nation")), "잔액", ChatColor.GREEN + ""+AA.getAccountInfo(UIA.getUserGroupUUID(m_uuid, "Nation"))); |
||||
} |
||||
|
||||
break; |
||||
} |
||||
return dia; |
||||
} |
||||
|
||||
|
||||
} |
@ -0,0 +1,50 @@ |
||||
package org.poopki.duckdns.user_db.GUI; |
||||
|
||||
import org.bukkit.command.Command; |
||||
import org.bukkit.command.CommandExecutor; |
||||
import org.bukkit.command.CommandSender; |
||||
import org.bukkit.entity.Player; |
||||
import org.bukkit.event.EventHandler; |
||||
import org.bukkit.event.Listener; |
||||
import org.bukkit.event.inventory.InventoryClickEvent; |
||||
import org.poopki.duckdns.user_db.Array.AccountArray; |
||||
import org.poopki.duckdns.user_db.Array.FarmArray; |
||||
import org.poopki.duckdns.user_db.Array.NationArray; |
||||
import org.poopki.duckdns.user_db.Array.SquadArray; |
||||
import org.poopki.duckdns.user_db.UserInfoArray; |
||||
|
||||
public class OpenInv implements Listener,CommandExecutor { |
||||
AccountArray m_AccountArray; |
||||
UserInfoArray m_UserInfoArray; |
||||
FarmArray m_FarmArray; |
||||
NationArray m_NationArray; |
||||
SquadArray m_SquadArray; |
||||
public OpenInv(UserInfoArray m_UIA, FarmArray FA, NationArray NA, SquadArray SA, AccountArray AA){ |
||||
m_UserInfoArray = m_UIA; |
||||
m_AccountArray = AA; |
||||
m_FarmArray = FA; |
||||
m_NationArray = NA; |
||||
m_SquadArray = SA; |
||||
} |
||||
@Override |
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { |
||||
if(sender instanceof Player){ |
||||
Player player = (Player) sender; |
||||
player.sendMessage("이벤트 발생"); |
||||
BaseGUI inv = new BaseGUI(m_AccountArray,m_UserInfoArray,m_FarmArray,m_NationArray, m_SquadArray,((Player) sender).getUniqueId(), null); |
||||
inv.open(player); |
||||
} |
||||
return false; |
||||
} |
||||
@EventHandler |
||||
public void inven2(InventoryClickEvent e){ |
||||
Player player = (Player) e.getWhoClicked();; |
||||
player.sendMessage("이벤트 발생"); |
||||
BaseGUI inv = new BaseGUI(m_AccountArray,m_UserInfoArray,m_FarmArray,m_NationArray, m_SquadArray, player.getUniqueId(), e); |
||||
inv.inven(e); |
||||
|
||||
} |
||||
|
||||
|
||||
|
||||
} |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 40 KiB |
@ -0,0 +1,40 @@ |
||||
package org.poopki.duckdns.user_db.Invite; |
||||
|
||||
import org.bukkit.entity.Player; |
||||
import org.poopki.duckdns.user_db.Array.FarmArray; |
||||
import org.poopki.duckdns.user_db.Array.NationArray; |
||||
import org.poopki.duckdns.user_db.UserInfoArray; |
||||
|
||||
import java.util.UUID; |
||||
|
||||
public class Invitation { |
||||
protected long Time; |
||||
protected String Type; |
||||
|
||||
protected UUID uuid; |
||||
|
||||
protected Player sender; |
||||
protected Player receiver; |
||||
public Invitation(long Time, String Type, UUID uuid, Player sender, Player receiver){ |
||||
this.Time = Time; |
||||
this.Type = Type; |
||||
this.uuid = uuid; |
||||
this.sender = sender; |
||||
this.receiver = receiver; |
||||
} |
||||
|
||||
public long getTime(){ |
||||
return this.Time; |
||||
} |
||||
|
||||
public String getType(){ |
||||
return this.Type; |
||||
} |
||||
|
||||
public UUID getUUID(){ |
||||
return this.uuid; |
||||
} |
||||
public Player getSender(){return this.sender;} |
||||
public Player getReceiver(){ return this.receiver;} |
||||
|
||||
} |
@ -0,0 +1,220 @@ |
||||
package org.poopki.duckdns.user_db.Invite; |
||||
|
||||
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.Array.FarmArray; |
||||
import org.poopki.duckdns.user_db.Array.NationArray; |
||||
import org.poopki.duckdns.user_db.Array.SquadArray; |
||||
import org.poopki.duckdns.user_db.UserInfoArray; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
import java.util.UUID; |
||||
|
||||
public class InviteMaster implements CommandExecutor { |
||||
private static Map<UUID, Invitation> m_InviteQueue = new HashMap<UUID, Invitation>(); |
||||
UserInfoArray m_UserInfoArray; |
||||
FarmArray m_FarmArray; |
||||
NationArray m_NationArray; |
||||
SquadArray m_SquadArray; |
||||
public InviteMaster(UserInfoArray UIA, FarmArray FA, NationArray NA, SquadArray SA){ |
||||
m_UserInfoArray = UIA; |
||||
m_FarmArray = FA; |
||||
m_NationArray = NA; |
||||
m_SquadArray = SA; |
||||
} |
||||
@Override |
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { |
||||
Player p = (Player)sender; |
||||
|
||||
if (args.length == 0){ |
||||
p.sendMessage("명령어를 확인해주세요."); |
||||
return false; |
||||
} |
||||
switch (args[0]) { |
||||
case "국가": { |
||||
if (args.length == 1) { |
||||
p.sendMessage("초대 대상을 입력해주세요."); |
||||
return false; |
||||
|
||||
} |
||||
UUID op = m_UserInfoArray.getUserUUID(args[1]); |
||||
if (op == null) { |
||||
p.sendMessage("잘못된 대상입니다."); |
||||
return false; |
||||
} |
||||
if (p.getUniqueId().equals(op)) { |
||||
p.sendMessage("자기 자신에게 초대를 보낼 수 없습니다."); |
||||
} else { |
||||
p.sendMessage(args[1]+"님께 초대를 발송하였습니다."); |
||||
sendInvite(p, Bukkit.getPlayer(args[1]), m_UserInfoArray, m_FarmArray, m_NationArray, m_SquadArray,"국가"); |
||||
} |
||||
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 (p.getUniqueId().equals(op)) { |
||||
p.sendMessage("자기 자신에게 초대를 보낼 수 없습니다."); |
||||
} else { |
||||
p.sendMessage(args[1]+"님께 초대를 발송하였습니다."); |
||||
sendInvite(p, Bukkit.getPlayer(args[1]), m_UserInfoArray, m_FarmArray, m_NationArray, m_SquadArray,"농장"); |
||||
} |
||||
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 (p.getUniqueId().equals(op)) { |
||||
p.sendMessage("자기 자신에게 초대를 보낼 수 없습니다."); |
||||
} else { |
||||
p.sendMessage(args[1]+"님께 초대를 발송하였습니다."); |
||||
sendInvite(p, Bukkit.getPlayer(args[1]), m_UserInfoArray, m_FarmArray, m_NationArray, m_SquadArray,"분대"); |
||||
} |
||||
break; |
||||
} |
||||
case "수락": { |
||||
replyInvite(p, m_UserInfoArray, m_FarmArray, m_NationArray, m_SquadArray,true); |
||||
break; |
||||
} |
||||
case "거절": { |
||||
replyInvite(p, m_UserInfoArray, m_FarmArray, m_NationArray, m_SquadArray,false); |
||||
break; |
||||
} |
||||
default: { |
||||
p.sendMessage("명령어를 확인해주세요."); |
||||
return false; |
||||
} |
||||
} |
||||
return true; |
||||
} |
||||
public boolean sendInvite(Player sender, Player receiver, UserInfoArray UIA, FarmArray FA, NationArray NA, SquadArray SA, String Type){ |
||||
if(!isExpired(receiver.getUniqueId())){ |
||||
sender.sendMessage("응답 대기중"); |
||||
return false; |
||||
} |
||||
|
||||
switch (Type){ |
||||
case "농장": |
||||
if(FA.GetGroupMemNUM(UIA.getUserGroupUUID(sender.getUniqueId(),"Farm"))>FA.GetGroupMemMaxNum(UIA.getUserGroupUUID(sender.getUniqueId(),"Farm"))){ |
||||
sender.sendMessage("인원이 초과되었습니다."); |
||||
return false; |
||||
} |
||||
else{ |
||||
m_InviteQueue.put(receiver.getUniqueId(), new Invitation(System.currentTimeMillis(), "농장", UIA.getUserGroupUUID(sender.getUniqueId(),"Farm"), sender, receiver)); |
||||
receiver.sendMessage(sender.getDisplayName()+"님의 "+FA.GetGroupName(UIA.getUserGroupUUID(sender.getUniqueId(),"Farm"))+"에 초대되었습니다."); |
||||
receiver.sendMessage("제한시간(5분)내 /초대 수락 혹은 /초대 거절 입력해주시기 바랍니다."); |
||||
} |
||||
break; |
||||
case "국가": |
||||
if(NA.GetGroupMemNUM(UIA.getUserGroupUUID(sender.getUniqueId(),"Nation"))>NA.GetGroupMemMaxNum(UIA.getUserGroupUUID(sender.getUniqueId(),"Nation"))){ |
||||
sender.sendMessage("인원이 초과되었습니다."); |
||||
return false; |
||||
} |
||||
else{ |
||||
m_InviteQueue.put(receiver.getUniqueId(), new Invitation(System.currentTimeMillis(), "국가", UIA.getUserGroupUUID(sender.getUniqueId(),"Nation"), sender, receiver)); |
||||
receiver.sendMessage(sender.getDisplayName()+"님의 "+NA.GetGroupName(UIA.getUserGroupUUID(sender.getUniqueId(),"Nation"))+"에 초대되었습니다."); |
||||
receiver.sendMessage("제한시간(5분)내 /초대 수락 혹은 /초대 수락 입력해주시기 바랍니다."+receiver.getUniqueId()); |
||||
} |
||||
break; |
||||
case "분대": |
||||
if(SA.GetGroupMemNUM(UIA.getUserGroupUUID(sender.getUniqueId(),"Squad"))>SA.GetGroupMemMaxNum(UIA.getUserGroupUUID(sender.getUniqueId(),"Squad"))){ |
||||
sender.sendMessage("인원이 초과되었습니다."); |
||||
return false; |
||||
} |
||||
else{ |
||||
m_InviteQueue.put(receiver.getUniqueId(), new Invitation(System.currentTimeMillis(), "분대", UIA.getUserGroupUUID(sender.getUniqueId(),"Squad"), sender, receiver)); |
||||
receiver.sendMessage(sender.getDisplayName()+"님의 "+SA.GetGroupName(UIA.getUserGroupUUID(sender.getUniqueId(),"Squad"))+"에 초대되었습니다."); |
||||
receiver.sendMessage("제한시간(5분)내 /초대 수락 혹은 /초대 수락 입력해주시기 바랍니다."+receiver.getUniqueId()); |
||||
} |
||||
break; |
||||
} |
||||
return true; |
||||
} |
||||
|
||||
public boolean replyInvite(Player receiver, UserInfoArray UIA, FarmArray FA, NationArray NA, SquadArray SA, boolean accept){ |
||||
|
||||
if(isExpired(receiver.getUniqueId())){ |
||||
m_InviteQueue.remove(receiver.getUniqueId()); |
||||
receiver.sendMessage("수신 받은 초대가 없거나, 초대가 만료되었습니다."); |
||||
return false; |
||||
} |
||||
Player sender = m_InviteQueue.get(receiver.getUniqueId()).getSender(); |
||||
|
||||
if(!accept){ |
||||
sender.sendMessage(receiver.getDisplayName()+"님께서 초대를 거절하였습니다."); |
||||
receiver.sendMessage("초대를 거절하였습니다."); |
||||
m_InviteQueue.remove(receiver.getUniqueId()); |
||||
return false; |
||||
} |
||||
|
||||
String Type = m_InviteQueue.get(receiver.getUniqueId()).getType(); |
||||
switch (Type){ |
||||
case "농장": |
||||
if(FA.GetGroupMemNUM(m_InviteQueue.get(receiver.getUniqueId()).getUUID())>FA.GetGroupMemMaxNum(m_InviteQueue.get(receiver.getUniqueId()).getUUID())){ |
||||
sender.sendMessage("인원이 초과되었습니다."); |
||||
receiver.sendMessage("인원이 초과되었습니다.."); |
||||
m_InviteQueue.remove(receiver.getUniqueId()); |
||||
return false; |
||||
} |
||||
else{ |
||||
sender.sendMessage(receiver.getDisplayName()+"님께서 초대를 수락하였습니다."); |
||||
receiver.sendMessage("가입되었습니다. "+ m_InviteQueue.get(receiver.getUniqueId()).getUUID()+" "+ receiver.getUniqueId()); |
||||
receiver.sendMessage(""+FA.SignUpGroup("Farm", m_InviteQueue.get(receiver.getUniqueId()).getUUID(), receiver.getUniqueId())); |
||||
m_InviteQueue.remove(receiver.getUniqueId()); |
||||
} |
||||
break; |
||||
case "국가": |
||||
if(NA.GetGroupMemNUM(m_InviteQueue.get(receiver.getUniqueId()).getUUID())>NA.GetGroupMemMaxNum(m_InviteQueue.get(receiver.getUniqueId()).getUUID())){ |
||||
sender.sendMessage("인원이 초과되었습니다."); |
||||
receiver.sendMessage("인원이 초과되었습니다."); |
||||
m_InviteQueue.remove(receiver.getUniqueId()); |
||||
return false; |
||||
} |
||||
else{ |
||||
receiver.sendMessage("가입되었습니다."+m_InviteQueue.get(receiver.getUniqueId()).getUUID()+ " "+ m_InviteQueue.get(receiver.getUniqueId()).getReceiver()); |
||||
NA.SignUpGroup("Nation", m_InviteQueue.get(receiver.getUniqueId()).getUUID(), receiver.getUniqueId()); |
||||
m_InviteQueue.remove(receiver.getUniqueId()); |
||||
} |
||||
break; |
||||
case "분대": |
||||
if(SA.GetGroupMemNUM(m_InviteQueue.get(receiver.getUniqueId()).getUUID())>SA.GetGroupMemMaxNum(m_InviteQueue.get(receiver.getUniqueId()).getUUID())){ |
||||
sender.sendMessage("인원이 초과되었습니다."); |
||||
receiver.sendMessage("인원이 초과되었습니다."); |
||||
m_InviteQueue.remove(receiver.getUniqueId()); |
||||
return false; |
||||
} |
||||
else{ |
||||
receiver.sendMessage("가입되었습니다."+m_InviteQueue.get(receiver.getUniqueId()).getUUID()+ " "+ m_InviteQueue.get(receiver.getUniqueId()).getReceiver()); |
||||
SA.SignUpGroup("Squad", m_InviteQueue.get(receiver.getUniqueId()).getUUID(), receiver.getUniqueId()); |
||||
m_InviteQueue.remove(receiver.getUniqueId()); |
||||
} |
||||
break; |
||||
default: |
||||
receiver.sendMessage("다시 입력"); |
||||
break; |
||||
} |
||||
|
||||
return true; |
||||
} |
||||
private boolean isExpired(UUID uuid){ |
||||
return !m_InviteQueue.containsKey(uuid) || (System.currentTimeMillis() - m_InviteQueue.get(uuid).getTime()) >= 300000L; |
||||
} |
||||
} |
@ -0,0 +1,11 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<module type="JAVA_MODULE" version="4"> |
||||
<component name="NewModuleRootManager" inherit-compiler-output="true"> |
||||
<exclude-output /> |
||||
<content url="file://$MODULE_DIR$"> |
||||
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" packagePrefix="org.poopki.duckdns.user_db" /> |
||||
</content> |
||||
<orderEntry type="inheritedJdk" /> |
||||
<orderEntry type="sourceFolder" forTests="false" /> |
||||
</component> |
||||
</module> |
@ -0,0 +1 @@ |
||||
![](http://poopki.duckdns.org:3000/poopki/Project.The_SEED/raw/branch/master/IMG/logo.png) |
@ -1,29 +1,88 @@ |
||||
package org.poopki.duckdns.user_db; |
||||
|
||||
public class Status { |
||||
int m_HP; |
||||
int m_MP; |
||||
int m_Level; |
||||
int m_BASE_HP; |
||||
int m_BASE_MP; |
||||
int m_BASE_STR; |
||||
int m_BASE_DEX; |
||||
int m_BASE_INT; |
||||
int m_BASE_LUK; |
||||
|
||||
int m_BASE_PATK; |
||||
int m_BASE_PDEF; |
||||
int m_BASE_MATK; |
||||
int m_BASE_MDEF; |
||||
|
||||
int m_EQ_HP; |
||||
int m_EQ_MP; |
||||
|
||||
int m_STR; |
||||
int m_DEX; |
||||
int m_INT; |
||||
int m_LUK; |
||||
int m_EQ_STR; |
||||
int m_EQ_DEX; |
||||
int m_EQ_INT; |
||||
int m_EQ_LUK; |
||||
|
||||
int m_PATK; |
||||
int m_PDEF; |
||||
int m_MATK; |
||||
int m_MDEF; |
||||
int m_EQ_PATK; |
||||
int m_EQ_PDEF; |
||||
int m_EQ_MATK; |
||||
int m_EQ_MDEF; |
||||
|
||||
int m_EXP; |
||||
int m_MAX_EXP; |
||||
int m_Level; |
||||
//방어율 = (방어력 / (100 + 방어력)
|
||||
//Add Equipment Class instance
|
||||
public Status(int HP, int MP, int Level, int STR, int DEX, int INT, int LUK){ |
||||
m_HP = HP; |
||||
m_MP = MP; |
||||
m_BASE_HP = HP; |
||||
m_BASE_MP = MP; |
||||
m_Level = Level; |
||||
|
||||
m_STR = STR; |
||||
m_DEX = DEX; |
||||
m_INT = INT; |
||||
m_LUK = LUK; |
||||
m_BASE_STR = STR; |
||||
m_BASE_DEX = DEX; |
||||
m_BASE_INT = INT; |
||||
m_BASE_LUK = LUK; |
||||
} |
||||
|
||||
public int GetBaseHP(){return m_BASE_HP;} |
||||
public int GetBaseMP(){return m_BASE_MP;} |
||||
public int GetBaseSTR(){return m_BASE_STR;} |
||||
public int GetBaseDEX(){return m_BASE_DEX;} |
||||
public int GetBaseINT(){return m_BASE_INT;} |
||||
public int GetBaseLUK(){return m_BASE_LUK;} |
||||
public int GetEXP(){return m_EXP;} |
||||
public int GetMaxEXP(){return m_MAX_EXP;} |
||||
public int GetLevel(){return m_Level;} |
||||
|
||||
public int SetBaseHP(int HP){return m_BASE_HP=HP;} |
||||
public int SetBaseMP(int MP){return m_BASE_MP=MP;} |
||||
public int SetBaseSTR(int STR){return m_BASE_STR=STR;} |
||||
public int SetBaseDEX(int DEX){return m_BASE_DEX=DEX;} |
||||
public int SetBaseINT(int INT){return m_BASE_INT=INT;} |
||||
public int SetBaseLUK(int LUK){return m_BASE_LUK=LUK;} |
||||
public int SetEXP(int EXP){return m_EXP=EXP;} |
||||
public int SetMaxEXP(int EXP){return m_MAX_EXP=EXP;} |
||||
public int SetLevel(int Level){return m_Level=Level;} |
||||
|
||||
public int GetBasePATK(){return m_BASE_PATK;} |
||||
public int GetBasePDEF(){return m_BASE_PDEF;} |
||||
public int GetBaseMATK(){return m_BASE_MATK;} |
||||
public int GetBaseMDEF(){return m_BASE_MDEF;} |
||||
|
||||
public int GetEqHP(){return m_EQ_HP;} |
||||
public int GetEqMP(){return m_EQ_MP;} |
||||
public int GetEqSTR(){return m_EQ_STR;} |
||||
public int GetEqDEX(){return m_EQ_DEX;} |
||||
public int GetEqINT(){return m_EQ_INT;} |
||||
public int GetEqLUK(){return m_EQ_LUK;} |
||||
|
||||
public int SetEqHP(int HP){return m_EQ_HP=HP;} |
||||
public int SetEqMP(int MP){return m_EQ_MP=MP;} |
||||
public int SetEqSTR(int STR){return m_EQ_STR=STR;} |
||||
public int SetEqDEX(int DEX){return m_EQ_DEX=DEX;} |
||||
public int SetEqINT(int INT){return m_EQ_INT=INT;} |
||||
public int SetEqLUK(int LUK){return m_EQ_LUK=LUK;} |
||||
|
||||
public int GetEqPATK(){return m_EQ_PATK;} |
||||
public int GetEqPDEF(){return m_EQ_PDEF;} |
||||
public int GetEqMATK(){return m_EQ_MATK;} |
||||
public int GetEqMDEF(){return m_EQ_MDEF;} |
||||
} |
||||
|
@ -1,37 +1,28 @@ |
||||
package org.poopki.duckdns.user_db; |
||||
|
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
import java.util.UUID; |
||||
import java.util.*; |
||||
|
||||
public class UserInfo extends Status { |
||||
private UUID m_UUID; |
||||
private String m_Name; |
||||
|
||||
private static Map<String, Integer> m_status = new HashMap<String, Integer>(); |
||||
|
||||
private int m_Nation; |
||||
private int m_Squad; |
||||
private int m_Farm; |
||||
|
||||
public UserInfo(UUID uuid, String Name, int Nation, int Squad, int Farm){ //UserInfo 초기화
|
||||
super(100,100,1,10,10,10,10); |
||||
private Map<String, UUID> m_GroupUUID = new HashMap<String, UUID>(); |
||||
public UserInfo(UUID uuid, String Name, UUID Nation, UUID Squad, UUID Farm, UUID Party){ //UserInfo 초기화
|
||||
super(100,100,1,10,10,10,10); //HP, MP, LEV, STR, DEX, INT, LUK
|
||||
m_UUID = uuid; |
||||
m_Name = Name; |
||||
m_Nation = Nation; |
||||
m_Squad = Squad; |
||||
m_Farm = Farm; |
||||
} |
||||
|
||||
public void JoinNation(int Nation) { m_Nation = Nation; } |
||||
public void JoinSquad(int Squad) { m_Squad = Squad; } |
||||
public void JoinFarm(int Farm) { m_Farm = Farm; } |
||||
m_GroupUUID.put("Nation", Nation); |
||||
m_GroupUUID.put("Squad", Squad); |
||||
m_GroupUUID.put("Farm", Farm); |
||||
m_GroupUUID.put("Party", Party); |
||||
} |
||||
|
||||
public void SetGroupUUID(String GroupType, UUID m_UUID){ m_GroupUUID.put(GroupType, m_UUID); } |
||||
public UUID GetGroupUUID(String GroupType){ return m_GroupUUID.get(GroupType); } |
||||
public String getUserName(){ |
||||
return m_Name; |
||||
} |
||||
|
||||
public UUID getUserUUID(){ return m_UUID; } |
||||
|
||||
|
||||
} |
||||
|
Loading…
Reference in new issue