diff --git a/Array/Group.java b/Array/Group.java index c4fda08..4ffd8eb 100644 --- a/Array/Group.java +++ b/Array/Group.java @@ -1,13 +1,12 @@ package org.poopki.duckdns.user_db.Array; -import java.util.Collections; -import java.util.List; -import java.util.ArrayList; -import java.util.UUID; +import java.util.*; public class Group { private String m_Name; private List m_MemberList = new ArrayList<>(); + public List TechList = Arrays.asList("agriculture","pottery","animal_husbandry","archery","mining","sailing","calendar","writing","trapping","wheel","masonry","bronze","optics","horseback","mathematics","construction","philosophy","drama","currency","engineering","iron_working","theology","civil_service","guilds","metal_casting","compass","education","chivalry","machinery","physics","steel","astronomy","acoustics","banking","printing_press","gunpowder","navigation","architecture","economics","metallurgy","chemistry","archaeology","scientific_theory","industrialization","rifling","military_science","fertilizer","biology","electricity","steam_power","dynamite","refrigeration","radio","flight","railroad","plastics","electronics","ballistics","combustion","penicillin","atomic_theory","radar","combined_arms","ecology","nuclear_fission","rocketry","computers","telecommunications","mobile_tactics","advanced_ballistics","satellites","robotics","lasers","the_internet","globalization","particle_physics","nuclear_fusion","nanotechnology","stealth"); + public Map m_TechStat = new HashMap(); UUID ZERO_UUID = UUID.fromString("00000000-0000-0000-0000-000000000000"); int MAX_FARM_NUM = 10; @@ -17,6 +16,7 @@ public class Group { m_MemberList.add(index,key); index++; } + InitTechTree(); m_Name = Name; } @@ -49,4 +49,93 @@ public class Group { return false; } } + + public void InitTechTree(){ + m_TechStat.put("agriculture",0); + m_TechStat.put("pottery",0); + m_TechStat.put("animal_husbandry",0); + m_TechStat.put("archery",0); + m_TechStat.put("mining",0); + m_TechStat.put("sailing",0); + m_TechStat.put("calendar",0); + m_TechStat.put("writing",0); + m_TechStat.put("trapping",0); + m_TechStat.put("wheel",0); + m_TechStat.put("masonry",0); + m_TechStat.put("bronze",0); + m_TechStat.put("optics",0); + m_TechStat.put("horseback",0); + m_TechStat.put("mathematics",0); + m_TechStat.put("construction",0); + m_TechStat.put("philosophy",0); + m_TechStat.put("drama",0); + m_TechStat.put("currency",0); + m_TechStat.put("engineering",0); + m_TechStat.put("iron_working",0); + m_TechStat.put("theology",0); + m_TechStat.put("civil_service",0); + m_TechStat.put("guilds",0); + m_TechStat.put("metal_casting",0); + m_TechStat.put("compass",0); + m_TechStat.put("education",0); + m_TechStat.put("chivalry",0); + m_TechStat.put("machinery",0); + m_TechStat.put("physics",0); + m_TechStat.put("steel",0); + m_TechStat.put("astronomy",0); + m_TechStat.put("acoustics",0); + m_TechStat.put("banking",0); + m_TechStat.put("printing_press",0); + m_TechStat.put("gunpowder",0); + m_TechStat.put("navigation",0); + m_TechStat.put("architecture",0); + m_TechStat.put("economics",0); + m_TechStat.put("metallurgy",0); + m_TechStat.put("chemistry",0); + m_TechStat.put("archaeology",0); + m_TechStat.put("scientific_theory",0); + m_TechStat.put("industrialization",0); + m_TechStat.put("rifling",0); + m_TechStat.put("military_science",0); + m_TechStat.put("fertilizer",0); + m_TechStat.put("biology",0); + m_TechStat.put("electricity",0); + m_TechStat.put("steam_power",0); + m_TechStat.put("dynamite",0); + m_TechStat.put("refrigeration",0); + m_TechStat.put("radio",0); + m_TechStat.put("flight",0); + m_TechStat.put("railroad",0); + m_TechStat.put("plastics",0); + m_TechStat.put("electronics",0); + m_TechStat.put("ballistics",0); + m_TechStat.put("combustion",0); + m_TechStat.put("penicillin",0); + m_TechStat.put("atomic_theory",0); + m_TechStat.put("radar",0); + m_TechStat.put("combined_arms",0); + m_TechStat.put("ecology",0); + m_TechStat.put("nuclear_fission",0); + m_TechStat.put("rocketry",0); + m_TechStat.put("computers",0); + m_TechStat.put("telecommunications",0); + m_TechStat.put("mobile_tactics",0); + m_TechStat.put("advanced_ballistics",0); + m_TechStat.put("satellites",0); + m_TechStat.put("robotics",0); + m_TechStat.put("lasers",0); + m_TechStat.put("the_internet",0); + m_TechStat.put("globalization",0); + m_TechStat.put("particle_physics",0); + m_TechStat.put("nuclear_fusion",0); + m_TechStat.put("nanotechnology",0); + m_TechStat.put("stealth",0); + } + public void SetTechTree(String TechName, Integer set){ + m_TechStat.replace(TechName,set); + } + + public int GetTechTree(String TechName){ + return m_TechStat.get(TechName); + } } diff --git a/Array/GroupArray.java b/Array/GroupArray.java index a093047..bbbeaad 100644 --- a/Array/GroupArray.java +++ b/Array/GroupArray.java @@ -9,7 +9,7 @@ import java.util.*; public class GroupArray { - protected Map m_GroupArray; + public Map m_GroupArray; protected Map m_GroupNameList; public List m_DeleteQueue = new ArrayList<>(); UserInfoArray m_UserInfoArray; @@ -36,6 +36,18 @@ public class GroupArray { } } + public void InitGroupTechTree(UUID GroupUUID){ + m_GroupArray.get(GroupUUID).InitTechTree(); + } + public void SetGroupTechTree(UUID GroupUUID, String TechName, Integer set){ + m_GroupArray.get(GroupUUID).SetTechTree(TechName,set); + + } + + public int GetGroupTechTree(UUID GroupUUID, String TechName){ + return m_GroupArray.get(GroupUUID).GetTechTree(TechName); + } + public boolean PutGroup(UUID GroupUUID, String Name,List PlayerUUID){ List m_MemberList = new ArrayList<>(); diff --git a/Array/Nation.java b/Array/Nation.java index f341944..5e15c15 100644 --- a/Array/Nation.java +++ b/Array/Nation.java @@ -1,11 +1,93 @@ package org.poopki.duckdns.user_db.Array; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; public class Nation extends Group{ public Nation(String Name, List uuid_list){ super(Name, uuid_list); } + private Map m_TechStat = new HashMap(); + public void InitTechTree(){ + m_TechStat.put("agriculture",0); + m_TechStat.put("pottery",0); + m_TechStat.put("animal_husbandry",0); + m_TechStat.put("archery",0); + m_TechStat.put("mining",0); + m_TechStat.put("sailing",0); + m_TechStat.put("calendar",0); + m_TechStat.put("writing",0); + m_TechStat.put("trapping",0); + m_TechStat.put("wheel",0); + m_TechStat.put("masonry",0); + m_TechStat.put("bronze",0); + m_TechStat.put("optics",0); + m_TechStat.put("horseback",0); + m_TechStat.put("mathematics",0); + m_TechStat.put("construction",0); + m_TechStat.put("philosophy",0); + m_TechStat.put("drama",0); + m_TechStat.put("currency",0); + m_TechStat.put("engineering",0); + m_TechStat.put("iron_working",0); + m_TechStat.put("theology",0); + m_TechStat.put("civil_service",0); + m_TechStat.put("guilds",0); + m_TechStat.put("metal_casting",0); + m_TechStat.put("compass",0); + m_TechStat.put("education",0); + m_TechStat.put("chivalry",0); + m_TechStat.put("machinery",0); + m_TechStat.put("physics",0); + m_TechStat.put("steel",0); + m_TechStat.put("astronomy",0); + m_TechStat.put("acoustics",0); + m_TechStat.put("banking",0); + m_TechStat.put("printing_press",0); + m_TechStat.put("gunpowder",0); + m_TechStat.put("navigation",0); + m_TechStat.put("architecture",0); + m_TechStat.put("economics",0); + m_TechStat.put("metallurgy",0); + m_TechStat.put("chemistry",0); + m_TechStat.put("archaeology",0); + m_TechStat.put("scientific_theory",0); + m_TechStat.put("industrialization",0); + m_TechStat.put("rifling",0); + m_TechStat.put("military_science",0); + m_TechStat.put("fertilizer",0); + m_TechStat.put("biology",0); + m_TechStat.put("electricity",0); + m_TechStat.put("steam_power",0); + m_TechStat.put("dynamite",0); + m_TechStat.put("refrigeration",0); + m_TechStat.put("radio",0); + m_TechStat.put("flight",0); + m_TechStat.put("railroad",0); + m_TechStat.put("plastics",0); + m_TechStat.put("electronics",0); + m_TechStat.put("ballistics",0); + m_TechStat.put("combustion",0); + m_TechStat.put("penicillin",0); + m_TechStat.put("atomic_theory",0); + m_TechStat.put("radar",0); + m_TechStat.put("combined_arms",0); + m_TechStat.put("ecology",0); + m_TechStat.put("nuclear_fission",0); + m_TechStat.put("rocketry",0); + m_TechStat.put("computers",0); + m_TechStat.put("telecommunications",0); + m_TechStat.put("mobile_tactics",0); + m_TechStat.put("advanced_ballistics",0); + m_TechStat.put("satellites",0); + m_TechStat.put("robotics",0); + m_TechStat.put("lasers",0); + m_TechStat.put("the_internet",0); + m_TechStat.put("globalization",0); + m_TechStat.put("particle_physics",0); + m_TechStat.put("nuclear_fusion",0); + m_TechStat.put("nanotechnology",0); + m_TechStat.put("stealth",0); + } + + } diff --git a/Array/NationEventHandler.java b/Array/NationEventHandler.java index c7f2a7a..da50e8c 100644 --- a/Array/NationEventHandler.java +++ b/Array/NationEventHandler.java @@ -49,12 +49,12 @@ public class NationEventHandler implements CommandExecutor { 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(args[1]+"국가이 생성되었습니다."+m_NationArray.GetGroupTechTree(tempUUID,"agriculture")); p.sendMessage("국가 멤버 목록: "); for (String Name: m_NationArray.GetGroupMembersName(tempUUID)){ @@ -280,6 +280,10 @@ public class NationEventHandler implements CommandExecutor { p.sendMessage("==잔액: " + m_AccountArray.getAccountInfo(m_NationArray.GetUUID(args[1]))+ "원=="); break; } + case "테크": { + m_NationArray.SetGroupTechTree(m_NationArray.GetUUID(args[1]),args[2],1); + break; + } default: { p.sendMessage("잘못된 명령어"); } diff --git a/DB/DBUpdate.java b/DB/DBUpdate.java index 4a1b7d1..f5a55da 100644 --- a/DB/DBUpdate.java +++ b/DB/DBUpdate.java @@ -42,17 +42,8 @@ public class DBUpdate { System.out.println("Connection success"); stmt = conn.createStatement(); StringBuilder sb = new StringBuilder(); - String sql = sb.append("create table if not exists UserInfo(") - .append("UUID varchar(36) PRIMARY KEY,") - .append("Name varchar(15), ") - .append("Nation varchar(36),") //public - .append("Squad varchar(36),") //public - .append("Farm varchar(36),") //public - .append("Account int(10)") //public - /* - .append("Occupation int(8),") //private - .append("Account int(8),") //private - .append("Status int(8)") //private*/ + String sql = sb.append("create table if not exists TechTree(") + .append("UUID varchar(36) PRIMARY KEY") .append(")").toString(); stmt.execute(sql); } @@ -178,8 +169,41 @@ public class DBUpdate { conn.close(); } } + // + try { + Class.forName("org.mariadb.jdbc.Driver"); + + conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); + System.out.println("Connection success"); + stmt = conn.createStatement(); + String sql = "SELECT * FROM TechTree"; + ResultSet rs = stmt.executeQuery(sql); + + while(rs.next()){ + Integer index=2; + if(rs.getString(index) != null){ + for(String TechName: m_NationArray.m_GroupArray.get(UUID.fromString(rs.getString(1))).TechList){ + m_NationArray.SetGroupTechTree(UUID.fromString(rs.getString(1)),TechName, Integer.parseInt(rs.getString(index))); + index++; + } + } + } + + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + catch (SQLException e) { + // TODO Auto-generated catch block + System.err.println("에러 내용 :" + e.getMessage()); + System.out.println("DB Connection fail"); + }finally{ + if(conn != null && !conn.isClosed()){ + conn.close(); + } + } + // try { Class.forName("org.mariadb.jdbc.Driver"); @@ -384,7 +408,74 @@ public class DBUpdate { pstmt = conn.prepareStatement(sql); pstmt.setString(1, String.valueOf(key.toString())); int cnt = pstmt.executeUpdate(); - m_NationArray.m_DeleteQueue.remove(key); + + } + } + catch(ClassNotFoundException e){ + e.printStackTrace(); + } + catch(SQLException e){ + System.err.println("에러 내용 :" + e.getMessage()); + System.out.println("DB Connection fail"); + } + finally { + if( conn != null && !conn.isClosed()){ + conn.close(); + } + } + + try{ + Class.forName("org.mariadb.jdbc.Driver"); + conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); + + for (UUID key : m_SquadArray.getKeySet()) { + + String sql = "REPLACE INTO Squad VALUES (?,?,?,?,?,?,?,?,?,?,?)"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, String.valueOf(key.toString())); + pstmt.setString(2, String.valueOf(m_SquadArray.GetGroupName(key))); + pstmt.setString(3, String.valueOf(m_AccountArray.getAccountInfo(key))); + int index = 4; + for (UUID MemUUID : m_SquadArray.GetGroupMembersUUID(key)){ + pstmt.setString(index, String.valueOf(MemUUID.toString())); + index++; + } + for(; index<=11;index++){ + pstmt.setString(index, null); + } + + int cnt = pstmt.executeUpdate(); + if( cnt == 0 ){ + System.out.println("데이터 입력 실패"); + } + else{ + System.out.println("데이터 입력 성공"); + } + + } + } + catch(ClassNotFoundException e){ + e.printStackTrace(); + } + catch(SQLException e){ + System.err.println("에러 내용 :" + e.getMessage()); + System.out.println("DB Connection fail"); + } + finally { + if( conn != null && !conn.isClosed()){ + conn.close(); + } + } + + try{ + Class.forName("org.mariadb.jdbc.Driver"); + conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); + for (UUID key: m_SquadArray.m_DeleteQueue){ + String sql = "DELETE FROM Squad WHERE Squad_UUID=?"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, String.valueOf(key.toString())); + int cnt = pstmt.executeUpdate(); + m_SquadArray.m_DeleteQueue.remove(key); } } catch(ClassNotFoundException e){ @@ -447,7 +538,7 @@ public class DBUpdate { Class.forName("org.mariadb.jdbc.Driver"); conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); for (UUID key: m_SquadArray.m_DeleteQueue){ - String sql = "DELETE FROM Squad WHERE FARM_UUID=?"; + String sql = "DELETE FROM Squad WHERE Squad_UUID=?"; pstmt = conn.prepareStatement(sql); pstmt.setString(1, String.valueOf(key.toString())); int cnt = pstmt.executeUpdate(); @@ -466,5 +557,70 @@ public class DBUpdate { conn.close(); } } + + //Update Tech + try{ + Class.forName("org.mariadb.jdbc.Driver"); + conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); + + for (UUID key : m_NationArray.getKeySet()) { + + String sql = "REPLACE INTO TechTree VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + pstmt = conn.prepareStatement(sql); + int index = 2; + + pstmt.setString(1, String.valueOf(key.toString())); + for (String Name : m_NationArray.m_GroupArray.get(key).TechList){ + System.out.println(Name+String.valueOf(m_NationArray.m_GroupArray.get(key).GetTechTree(Name))); + pstmt.setString(index, String.valueOf(m_NationArray.m_GroupArray.get(key).GetTechTree(Name))); + index++; + } + + int cnt = pstmt.executeUpdate(); + if( cnt == 0 ){ + System.out.println("데이터 입력 실패"); + } + else{ + System.out.println("데이터 입력 성공"); + } + + } + } + catch(ClassNotFoundException e){ + e.printStackTrace(); + } + catch(SQLException e){ + System.err.println("에러 내용 :" + e.getMessage()); + System.out.println("DB Connection fail"); + } + finally { + if( conn != null && !conn.isClosed()){ + conn.close(); + } + } + + try{ + Class.forName("org.mariadb.jdbc.Driver"); + conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); + for (UUID key: m_NationArray.m_DeleteQueue){ + String sql = "DELETE FROM TechTree WHERE UUID=?"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, String.valueOf(key.toString())); + int cnt = pstmt.executeUpdate(); + m_NationArray.m_DeleteQueue.remove(key); + } + } + catch(ClassNotFoundException e){ + e.printStackTrace(); + } + catch(SQLException e){ + System.err.println("에러 내용 :" + e.getMessage()); + System.out.println("DB Connection fail"); + } + finally { + if( conn != null && !conn.isClosed()){ + conn.close(); + } + } } } \ No newline at end of file diff --git a/GUI/AccountGUI.java b/GUI/AccountGUI.java index 8ba9110..b95e8f5 100644 --- a/GUI/AccountGUI.java +++ b/GUI/AccountGUI.java @@ -1,5 +1,6 @@ package org.poopki.duckdns.user_db.GUI; +import dev.lone.itemsadder.api.CustomStack; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -11,10 +12,13 @@ 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 org.bukkit.inventory.ItemStack; import java.util.UUID; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import org.apache.commons.lang.StringEscapeUtils; - +import java.util.stream.Stream; public class AccountGUI implements Listener{ private final Inventory inv; UUID m_uuid; @@ -26,7 +30,7 @@ public class AccountGUI implements Listener{ SquadArray m_SA; public AccountGUI(AccountArray AA, UserInfoArray UIA, FarmArray FA, NationArray NA, SquadArray SA, UUID uuid, InventoryClickEvent e) { m_uuid=uuid; - this.inv = Bukkit.createInventory(null,54,ChatColor.WHITE+StringEscapeUtils.unescapeJava("\uE00A")+StringEscapeUtils.unescapeJava("\uE00B")); + this.inv = Bukkit.createInventory(null,54,":offset_-8::bank_main:"); m_AA = AA; m_UIA = UIA; m_FA = FA; @@ -47,7 +51,24 @@ public class AccountGUI implements Listener{ inv.setItem(19, m_ItemManager.btn4); inv.setItem(11, m_ItemManager.btn5); inv.setItem(20, m_ItemManager.btn6); + + CustomStack stack = CustomStack.getInstance("digits:digit-zero"); + ItemStack itemStack = stack.getItemStack(); */ + List strList = new ArrayList(); + + String before = String.valueOf(m_AA.getAccountInfo(m_uuid)); + strList.addAll(Arrays.asList(before.split(""))); + + int tmp = strList.size(); + for(int i=0; i<8-tmp; i++) { + strList.add(0, "0"); + } + + for(int i = 0; i m_TechStat = new HashMap(); + + public void InitTechTree(){ + m_TechStat.put("agriculture",0); + m_TechStat.put("pottery",0); + m_TechStat.put("animal_husbandry",0); + m_TechStat.put("archery",0); + m_TechStat.put("mining",0); + m_TechStat.put("sailing",0); + m_TechStat.put("calendar",0); + m_TechStat.put("writing",0); + m_TechStat.put("trapping",0); + m_TechStat.put("wheel",0); + m_TechStat.put("masonry",0); + m_TechStat.put("bronze",0); + m_TechStat.put("optics",0); + m_TechStat.put("horseback",0); + m_TechStat.put("mathematics",0); + m_TechStat.put("construction",0); + m_TechStat.put("philosophy",0); + m_TechStat.put("drama",0); + m_TechStat.put("currency",0); + m_TechStat.put("engineering",0); + m_TechStat.put("iron_working",0); + m_TechStat.put("theology",0); + m_TechStat.put("civil_service",0); + m_TechStat.put("guilds",0); + m_TechStat.put("metal_casting",0); + m_TechStat.put("compass",0); + m_TechStat.put("education",0); + m_TechStat.put("chivalry",0); + m_TechStat.put("machinery",0); + m_TechStat.put("physics",0); + m_TechStat.put("steel",0); + m_TechStat.put("astronomy",0); + m_TechStat.put("acoustics",0); + m_TechStat.put("banking",0); + m_TechStat.put("printing_press",0); + m_TechStat.put("gunpowder",0); + m_TechStat.put("navigation",0); + m_TechStat.put("architecture",0); + m_TechStat.put("economics",0); + m_TechStat.put("metallurgy",0); + m_TechStat.put("chemistry",0); + m_TechStat.put("archaeology",0); + m_TechStat.put("scientific_theory",0); + m_TechStat.put("industrialization",0); + m_TechStat.put("rifling",0); + m_TechStat.put("military_science",0); + m_TechStat.put("fertilizer",0); + m_TechStat.put("biology",0); + m_TechStat.put("electricity",0); + m_TechStat.put("steam_power",0); + m_TechStat.put("dynamite",0); + m_TechStat.put("refrigeration",0); + m_TechStat.put("radio",0); + m_TechStat.put("flight",0); + m_TechStat.put("railroad",0); + m_TechStat.put("plastics",0); + m_TechStat.put("electronics",0); + m_TechStat.put("ballistics",0); + m_TechStat.put("combustion",0); + m_TechStat.put("penicillin",0); + m_TechStat.put("atomic_theory",0); + m_TechStat.put("radar",0); + m_TechStat.put("combined_arms",0); + m_TechStat.put("ecology",0); + m_TechStat.put("nuclear_fission",0); + m_TechStat.put("rocketry",0); + m_TechStat.put("computers",0); + m_TechStat.put("telecommunications",0); + m_TechStat.put("mobile_tactics",0); + m_TechStat.put("advanced_ballistics",0); + m_TechStat.put("satellites",0); + m_TechStat.put("robotics",0); + m_TechStat.put("lasers",0); + m_TechStat.put("the_internet",0); + m_TechStat.put("globalization",0); + m_TechStat.put("particle_physics",0); + m_TechStat.put("nuclear_fusion",0); + m_TechStat.put("nanotechnology",0); + m_TechStat.put("stealth",0); + } + + public void EnableTechTree(String TechName){ + m_TechStat.replace(TechName,1); + } + + public int GetTachTree(String TechName){ + return m_TechStat.get(TechName); + } +} diff --git a/User_DB.java b/User_DB.java index 713bf32..0101dc3 100644 --- a/User_DB.java +++ b/User_DB.java @@ -39,6 +39,7 @@ public final class User_DB extends JavaPlugin implements Listener { getCommand("분대").setExecutor(new SquadEventHandler(m_InfoArrayInstance, m_SquadArrayInstance, m_AccountArrayInstance)); getCommand("opitem").setExecutor(new OpenInv(m_InfoArrayInstance, m_FarmArrayInstance, m_NationArrayInstance, m_SquadArrayInstance, m_AccountArrayInstance)); getCommand("은행").setExecutor(new AccountGUIEvent(m_InfoArrayInstance, m_FarmArrayInstance, m_NationArrayInstance, m_SquadArrayInstance, m_AccountArrayInstance)); + getCommand("테크").setExecutor(new TechGUIEvent(m_InfoArrayInstance, m_FarmArrayInstance, m_NationArrayInstance, m_SquadArrayInstance, m_AccountArrayInstance)); getCommand("초대").setExecutor(new InviteMaster(m_InfoArrayInstance, m_FarmArrayInstance, m_NationArrayInstance, m_SquadArrayInstance)); getServer().getPluginManager().registerEvents(new UserJoin(m_InfoArrayInstance, m_FarmArrayInstance, m_NationArrayInstance, m_SquadArrayInstance, m_AccountArrayInstance, m_ScoreboardEventHandler),