Old dualclass system adjustment.

This commit is contained in:
MobiusDevelopment 2021-10-20 21:01:07 +00:00
parent 0b36e63016
commit 8b6d2c3b9a
20 changed files with 220 additions and 220 deletions

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{

View File

@ -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()

View File

@ -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<Integer, Integer> 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<Integer, Integer> knownSkills = getVariables().getIntegerMap(KNOWN_DUAL_SKILLS_VAR);
if (knownSkills.isEmpty())
{