diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/GameServer.java index 2aed7d117a..335962530a 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -468,6 +470,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 1663807336..4553db855c 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7393,16 +7393,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7604,22 +7594,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/GameServer.java index 4feb00d33d..d499bbddd0 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -476,6 +478,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 97147f01a0..f5f0ee0ff3 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7396,16 +7396,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7607,22 +7597,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/GameServer.java index 4feb00d33d..d499bbddd0 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -476,6 +478,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 73b9cc2a90..e77ccc2b2c 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7398,16 +7398,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7609,22 +7599,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/GameServer.java index 667c9e9dc6..dfd90ff9be 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -476,6 +478,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index cea81c5657..fe2b70914d 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7393,16 +7393,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7604,22 +7594,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/GameServer.java index fc2f9a71e1..1c3fc93079 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -480,6 +482,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 2d8a670291..69cf1945d0 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7375,16 +7375,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7586,22 +7576,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/GameServer.java index fc2f9a71e1..1c3fc93079 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -480,6 +482,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 2d90f774be..6ee073eb12 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7375,16 +7375,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7586,22 +7576,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/GameServer.java index fafc620465..4d9866e8bc 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -482,6 +484,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index a69072b215..d06f76f3b2 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7376,16 +7376,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7587,22 +7577,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/GameServer.java index 9d7e00eafd..b44ce218b5 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -488,6 +490,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index d7221a1750..65e6690344 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7390,16 +7390,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7601,22 +7591,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/GameServer.java index f653b10017..e2a212c71f 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -488,6 +490,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 1c572ca1e8..549d2a081d 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7492,16 +7492,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7703,22 +7693,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) { diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/GameServer.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/GameServer.java index 2a435512a6..f8c8f6f1b6 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/GameServer.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/GameServer.java @@ -22,6 +22,8 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.lang.management.ManagementFactory; +import java.sql.Connection; +import java.sql.PreparedStatement; import java.time.Duration; import java.util.Calendar; import java.util.logging.Level; @@ -490,6 +492,24 @@ public class GameServer LoginServerThread.getInstance().start(); Toolkit.getDefaultToolkit().beep(); + + // TODO: Remove this. + // Old dualclass system adjustment. + if (!GlobalVariablesManager.getInstance().getBoolean("DUALCLASS_SYSTEM_UPDATED", false)) + { + GlobalVariablesManager.getInstance().set("DUALCLASS_SYSTEM_UPDATED", true); + try (Connection con = DatabaseFactory.getConnection(); + PreparedStatement ps1 = con.prepareStatement("DELETE from character_variables WHERE var='KNOWN_DUAL_SKILLS'"); + PreparedStatement ps2 = con.prepareStatement("DELETE from character_skills WHERE skill_id in (19222, 19223, 19224, 19225, 19226, 19229, 19290)")) + { + ps1.execute(); + ps2.execute(); + } + catch (Exception e) + { + LOGGER.warning(e.getMessage()); + } + } } public long getStartedTime() diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ecd109c11f..71343ef3e2 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -7518,16 +7518,6 @@ public class PlayerInstance extends Playable storeSkill(newSkill, oldSkill, -1); if (CommonUtil.contains(DUAL_CLASS_SKILLS, newSkill.getId())) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); knownSkills.put(newSkill.getId(), newSkill.getLevel()); getVariables().setIntegerMap(KNOWN_DUAL_SKILLS_VAR, knownSkills); @@ -7729,22 +7719,12 @@ public class PlayerInstance extends Playable } /** - * Learn known dualclass skills. - */ + * Learn known dualclass skills. + */ public void restoreDualSkills() { if (isDualClassActive() || !isSubClassActive()) { - // Old system compatibility. - if (getVariables().getString(KNOWN_DUAL_SKILLS_VAR, "").contains("(")) - { - getVariables().set(KNOWN_DUAL_SKILLS_VAR, ""); - for (int skillId : DUAL_CLASS_SKILLS) - { - removeSkill(skillId); - } - } - final Map knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR); if (knownSkills.isEmpty()) {