Fixed duplicate key exception in buffer schemes.

Contributed by Sahar.
This commit is contained in:
MobiusDevelopment
2019-10-25 22:15:46 +00:00
parent 51bb73cb95
commit f3cc2bf205
10 changed files with 40 additions and 40 deletions

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {

View File

@@ -22,10 +22,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
@@ -51,7 +51,7 @@ public class SchemeBufferTable
private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes"; private static final String DELETE_SCHEMES = "TRUNCATE TABLE buffer_schemes";
private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)"; private static final String INSERT_SCHEME = "INSERT INTO buffer_schemes (object_id, scheme_name, skills) VALUES (?,?,?)";
private final Map<Integer, HashMap<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>(); private final Map<Integer, Map<String, ArrayList<Integer>>> _schemesTable = new ConcurrentHashMap<>();
private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>(); private final Map<Integer, BuffSkillHolder> _availableBuffs = new LinkedHashMap<>();
public SchemeBufferTable() public SchemeBufferTable()
@@ -146,7 +146,7 @@ public class SchemeBufferTable
// Save _schemesTable content. // Save _schemesTable content.
try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME)) try (PreparedStatement st = con.prepareStatement(INSERT_SCHEME))
{ {
for (Map.Entry<Integer, HashMap<String, ArrayList<Integer>>> player : _schemesTable.entrySet()) for (Map.Entry<Integer, Map<String, ArrayList<Integer>>> player : _schemesTable.entrySet())
{ {
for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet()) for (Map.Entry<String, ArrayList<Integer>> scheme : player.getValue().entrySet())
{ {
@@ -182,7 +182,7 @@ public class SchemeBufferTable
{ {
if (!_schemesTable.containsKey(playerId)) if (!_schemesTable.containsKey(playerId))
{ {
_schemesTable.put(playerId, new HashMap<>()); _schemesTable.put(playerId, new TreeMap<>(String.CASE_INSENSITIVE_ORDER));
} }
else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES) else if (_schemesTable.get(playerId).size() >= Config.BUFFER_MAX_SCHEMES)
{ {