diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 59cb574b73..78c4188eeb 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -14336,7 +14336,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); for (Shortcut shortcut : getAllShortCuts()) { final Integer position = shortcut.getSlot() + (shortcut.getPage() * ShortCuts.MAX_SHORTCUTS_PER_BAR); @@ -14366,16 +14366,7 @@ public class PlayerInstance extends Playable public synchronized void addAutoShortcut(int slot, int page) { - final List positions; - if (getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS)) - { - positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); - } - else - { - positions = new ArrayList<>(); - } - + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14399,20 +14390,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public synchronized void removeAutoShortcut(int slot, int page) @@ -14422,7 +14400,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14443,20 +14421,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public boolean isInTimedHuntingZone(int zoneId) diff --git a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java index 6587034cad..ad8bc42543 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java +++ b/L2J_Mobius_7.0_PreludeOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java @@ -76,9 +76,9 @@ public class RequestShortCutReg implements IClientIncomingPacket player.sendPacket(new ExActivateAutoShortcut(sc, _active)); // When id is not auto used, deactivate auto shortcuts. - if (player.getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS) && !player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) + if (!player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) { - final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Integer position = _slot + (_page * ShortCuts.MAX_SHORTCUTS_PER_BAR); if (!positions.contains(position)) { @@ -86,21 +86,7 @@ public class RequestShortCutReg implements IClientIncomingPacket } positions.remove(position); - - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - player.getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + player.getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); return; } diff --git a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index e2b5a676a1..e0fb196dc3 100644 --- a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -14406,7 +14406,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); for (Shortcut shortcut : getAllShortCuts()) { final Integer position = shortcut.getSlot() + (shortcut.getPage() * ShortCuts.MAX_SHORTCUTS_PER_BAR); @@ -14436,16 +14436,7 @@ public class PlayerInstance extends Playable public synchronized void addAutoShortcut(int slot, int page) { - final List positions; - if (getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS)) - { - positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); - } - else - { - positions = new ArrayList<>(); - } - + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14469,20 +14460,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public synchronized void removeAutoShortcut(int slot, int page) @@ -14492,7 +14470,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14513,20 +14491,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public boolean isInTimedHuntingZone(int zoneId) diff --git a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java index 6587034cad..ad8bc42543 100644 --- a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java +++ b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java @@ -76,9 +76,9 @@ public class RequestShortCutReg implements IClientIncomingPacket player.sendPacket(new ExActivateAutoShortcut(sc, _active)); // When id is not auto used, deactivate auto shortcuts. - if (player.getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS) && !player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) + if (!player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) { - final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Integer position = _slot + (_page * ShortCuts.MAX_SHORTCUTS_PER_BAR); if (!positions.contains(position)) { @@ -86,21 +86,7 @@ public class RequestShortCutReg implements IClientIncomingPacket } positions.remove(position); - - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - player.getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + player.getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); return; } diff --git a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java index 7b0acb4ab0..b2879f76b4 100644 --- a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java +++ b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java @@ -58,18 +58,15 @@ public class ExRequestTeleportFavoritesAddDel implements IClientIncomingPacket } final List favorites = new ArrayList<>(); - if (player.getVariables().contains(PlayerVariables.FAVORITE_TELEPORTS)) + for (int id : player.getVariables().getIntegerList(PlayerVariables.FAVORITE_TELEPORTS)) { - for (int id : player.getVariables().getIntArray(PlayerVariables.FAVORITE_TELEPORTS, ",")) + if (TeleportListData.getInstance().getTeleport(_teleportId) == null) { - if (TeleportListData.getInstance().getTeleport(_teleportId) == null) - { - LOGGER.warning("No registered teleport location for id: " + _teleportId); - } - else - { - favorites.add(id); - } + LOGGER.warning("No registered teleport location for id: " + _teleportId); + } + else + { + favorites.add(id); } } @@ -85,18 +82,6 @@ public class ExRequestTeleportFavoritesAddDel implements IClientIncomingPacket favorites.remove((Integer) _teleportId); } - String variable = ""; - for (int id : favorites) - { - variable += id + ","; - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.FAVORITE_TELEPORTS); - } - else - { - player.getVariables().set(PlayerVariables.FAVORITE_TELEPORTS, variable); - } + player.getVariables().setIntegerList(PlayerVariables.FAVORITE_TELEPORTS, favorites); } } diff --git a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java index 3bc03cf054..827e9ce856 100644 --- a/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java +++ b/L2J_Mobius_8.2_Homunculus/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets.teleports; +import java.util.List; + import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.variables.PlayerVariables; @@ -27,19 +29,12 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; */ public class ExTeleportFavoritesList implements IClientOutgoingPacket { - private final int[] _teleports; + private final List _teleports; private final boolean _enable; public ExTeleportFavoritesList(PlayerInstance player, boolean enable) { - if (player.getVariables().contains(PlayerVariables.FAVORITE_TELEPORTS)) - { - _teleports = player.getVariables().getIntArray(PlayerVariables.FAVORITE_TELEPORTS, ","); - } - else - { - _teleports = new int[0]; - } + _teleports = player.getVariables().getIntegerList(PlayerVariables.FAVORITE_TELEPORTS); _enable = enable; } @@ -49,7 +44,7 @@ public class ExTeleportFavoritesList implements IClientOutgoingPacket OutgoingPackets.EX_TELEPORT_FAVORITES_LIST.writeId(packet); packet.writeC(_enable ? 0x01 : 0x00); - packet.writeD(_teleports.length); + packet.writeD(_teleports.size()); for (int id : _teleports) { packet.writeD(id); diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 53ee570b11..ae999d5d35 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -14443,7 +14443,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); for (Shortcut shortcut : getAllShortCuts()) { final Integer position = shortcut.getSlot() + (shortcut.getPage() * ShortCuts.MAX_SHORTCUTS_PER_BAR); @@ -14473,16 +14473,7 @@ public class PlayerInstance extends Playable public synchronized void addAutoShortcut(int slot, int page) { - final List positions; - if (getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS)) - { - positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); - } - else - { - positions = new ArrayList<>(); - } - + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14506,20 +14497,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public synchronized void removeAutoShortcut(int slot, int page) @@ -14529,7 +14507,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14550,20 +14528,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public boolean isInTimedHuntingZone(int zoneId) diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java index 6587034cad..ad8bc42543 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java @@ -76,9 +76,9 @@ public class RequestShortCutReg implements IClientIncomingPacket player.sendPacket(new ExActivateAutoShortcut(sc, _active)); // When id is not auto used, deactivate auto shortcuts. - if (player.getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS) && !player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) + if (!player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) { - final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Integer position = _slot + (_page * ShortCuts.MAX_SHORTCUTS_PER_BAR); if (!positions.contains(position)) { @@ -86,21 +86,7 @@ public class RequestShortCutReg implements IClientIncomingPacket } positions.remove(position); - - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - player.getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + player.getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); return; } diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java index 7b0acb4ab0..b2879f76b4 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java @@ -58,18 +58,15 @@ public class ExRequestTeleportFavoritesAddDel implements IClientIncomingPacket } final List favorites = new ArrayList<>(); - if (player.getVariables().contains(PlayerVariables.FAVORITE_TELEPORTS)) + for (int id : player.getVariables().getIntegerList(PlayerVariables.FAVORITE_TELEPORTS)) { - for (int id : player.getVariables().getIntArray(PlayerVariables.FAVORITE_TELEPORTS, ",")) + if (TeleportListData.getInstance().getTeleport(_teleportId) == null) { - if (TeleportListData.getInstance().getTeleport(_teleportId) == null) - { - LOGGER.warning("No registered teleport location for id: " + _teleportId); - } - else - { - favorites.add(id); - } + LOGGER.warning("No registered teleport location for id: " + _teleportId); + } + else + { + favorites.add(id); } } @@ -85,18 +82,6 @@ public class ExRequestTeleportFavoritesAddDel implements IClientIncomingPacket favorites.remove((Integer) _teleportId); } - String variable = ""; - for (int id : favorites) - { - variable += id + ","; - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.FAVORITE_TELEPORTS); - } - else - { - player.getVariables().set(PlayerVariables.FAVORITE_TELEPORTS, variable); - } + player.getVariables().setIntegerList(PlayerVariables.FAVORITE_TELEPORTS, favorites); } } diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java index 3bc03cf054..827e9ce856 100644 --- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java +++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets.teleports; +import java.util.List; + import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.variables.PlayerVariables; @@ -27,19 +29,12 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; */ public class ExTeleportFavoritesList implements IClientOutgoingPacket { - private final int[] _teleports; + private final List _teleports; private final boolean _enable; public ExTeleportFavoritesList(PlayerInstance player, boolean enable) { - if (player.getVariables().contains(PlayerVariables.FAVORITE_TELEPORTS)) - { - _teleports = player.getVariables().getIntArray(PlayerVariables.FAVORITE_TELEPORTS, ","); - } - else - { - _teleports = new int[0]; - } + _teleports = player.getVariables().getIntegerList(PlayerVariables.FAVORITE_TELEPORTS); _enable = enable; } @@ -49,7 +44,7 @@ public class ExTeleportFavoritesList implements IClientOutgoingPacket OutgoingPackets.EX_TELEPORT_FAVORITES_LIST.writeId(packet); packet.writeC(_enable ? 0x01 : 0x00); - packet.writeD(_teleports.length); + packet.writeD(_teleports.size()); for (int id : _teleports) { packet.writeD(id); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/StatSet.java index 7093a52e48..db8b324ff6 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/StatSet.java @@ -391,16 +391,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/StatSet.java index 7093a52e48..db8b324ff6 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/StatSet.java @@ -391,16 +391,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index fe4e5e55eb..5ebf35c627 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -14316,7 +14316,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); for (Shortcut shortcut : getAllShortCuts()) { final Integer position = shortcut.getSlot() + (shortcut.getPage() * ShortCuts.MAX_SHORTCUTS_PER_BAR); @@ -14346,16 +14346,7 @@ public class PlayerInstance extends Playable public synchronized void addAutoShortcut(int slot, int page) { - final List positions; - if (getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS)) - { - positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); - } - else - { - positions = new ArrayList<>(); - } - + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14379,20 +14370,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public synchronized void removeAutoShortcut(int slot, int page) @@ -14402,7 +14380,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14423,20 +14401,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public boolean isInTimedHuntingZone(int zoneId) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java index 6587034cad..ad8bc42543 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java @@ -76,9 +76,9 @@ public class RequestShortCutReg implements IClientIncomingPacket player.sendPacket(new ExActivateAutoShortcut(sc, _active)); // When id is not auto used, deactivate auto shortcuts. - if (player.getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS) && !player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) + if (!player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) { - final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Integer position = _slot + (_page * ShortCuts.MAX_SHORTCUTS_PER_BAR); if (!positions.contains(position)) { @@ -86,21 +86,7 @@ public class RequestShortCutReg implements IClientIncomingPacket } positions.remove(position); - - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - player.getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + player.getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); return; } diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 544af2d283..0c977bb2fc 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -14576,7 +14576,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); for (Shortcut shortcut : getAllShortCuts()) { final Integer position = shortcut.getSlot() + (shortcut.getPage() * ShortCuts.MAX_SHORTCUTS_PER_BAR); @@ -14606,16 +14606,7 @@ public class PlayerInstance extends Playable public synchronized void addAutoShortcut(int slot, int page) { - final List positions; - if (getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS)) - { - positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); - } - else - { - positions = new ArrayList<>(); - } - + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14639,20 +14630,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public synchronized void removeAutoShortcut(int slot, int page) @@ -14662,7 +14640,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14683,20 +14661,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public boolean isInTimedHuntingZone(int zoneId) diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java index 6587034cad..ad8bc42543 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java @@ -76,9 +76,9 @@ public class RequestShortCutReg implements IClientIncomingPacket player.sendPacket(new ExActivateAutoShortcut(sc, _active)); // When id is not auto used, deactivate auto shortcuts. - if (player.getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS) && !player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) + if (!player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) { - final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Integer position = _slot + (_page * ShortCuts.MAX_SHORTCUTS_PER_BAR); if (!positions.contains(position)) { @@ -86,21 +86,7 @@ public class RequestShortCutReg implements IClientIncomingPacket } positions.remove(position); - - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - player.getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + player.getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); return; } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java index 7b0acb4ab0..b2879f76b4 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java @@ -58,18 +58,15 @@ public class ExRequestTeleportFavoritesAddDel implements IClientIncomingPacket } final List favorites = new ArrayList<>(); - if (player.getVariables().contains(PlayerVariables.FAVORITE_TELEPORTS)) + for (int id : player.getVariables().getIntegerList(PlayerVariables.FAVORITE_TELEPORTS)) { - for (int id : player.getVariables().getIntArray(PlayerVariables.FAVORITE_TELEPORTS, ",")) + if (TeleportListData.getInstance().getTeleport(_teleportId) == null) { - if (TeleportListData.getInstance().getTeleport(_teleportId) == null) - { - LOGGER.warning("No registered teleport location for id: " + _teleportId); - } - else - { - favorites.add(id); - } + LOGGER.warning("No registered teleport location for id: " + _teleportId); + } + else + { + favorites.add(id); } } @@ -85,18 +82,6 @@ public class ExRequestTeleportFavoritesAddDel implements IClientIncomingPacket favorites.remove((Integer) _teleportId); } - String variable = ""; - for (int id : favorites) - { - variable += id + ","; - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.FAVORITE_TELEPORTS); - } - else - { - player.getVariables().set(PlayerVariables.FAVORITE_TELEPORTS, variable); - } + player.getVariables().setIntegerList(PlayerVariables.FAVORITE_TELEPORTS, favorites); } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java index 3bc03cf054..827e9ce856 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets.teleports; +import java.util.List; + import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.variables.PlayerVariables; @@ -27,19 +29,12 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; */ public class ExTeleportFavoritesList implements IClientOutgoingPacket { - private final int[] _teleports; + private final List _teleports; private final boolean _enable; public ExTeleportFavoritesList(PlayerInstance player, boolean enable) { - if (player.getVariables().contains(PlayerVariables.FAVORITE_TELEPORTS)) - { - _teleports = player.getVariables().getIntArray(PlayerVariables.FAVORITE_TELEPORTS, ","); - } - else - { - _teleports = new int[0]; - } + _teleports = player.getVariables().getIntegerList(PlayerVariables.FAVORITE_TELEPORTS); _enable = enable; } @@ -49,7 +44,7 @@ public class ExTeleportFavoritesList implements IClientOutgoingPacket OutgoingPackets.EX_TELEPORT_FAVORITES_LIST.writeId(packet); packet.writeC(_enable ? 0x01 : 0x00); - packet.writeD(_teleports.length); + packet.writeD(_teleports.size()); for (int id : _teleports) { packet.writeD(id); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/StatSet.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/StatSet.java index a067a6b5a4..17fa5f31b8 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/StatSet.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/StatSet.java @@ -392,16 +392,50 @@ public class StatSet implements IParserAdvUtils return result; } - public List getIntegerList(String key, String splitOn) + public List getIntegerList(String key) { - final List result = new ArrayList<>(); - for (int i : getIntArray(key, splitOn)) + final String val = getString(key, null); + final List result; + if (val != null) { - result.add(i); + final String[] splitVal = val.split(","); + result = new ArrayList<>(splitVal.length + 1); + for (String split : splitVal) + { + result.add(Integer.parseInt(split)); + } + } + else + { + result = new ArrayList<>(1); } return result; } + public void setIntegerList(String key, List list) + { + if (key == null) + { + return; + } + + if ((list == null) || list.isEmpty()) + { + remove(key); + return; + } + + final StringBuilder sb = new StringBuilder(); + for (int element : list) + { + sb.append(element); + sb.append(","); + } + sb.deleteCharAt(sb.length() - 1); // Prettify value. + + set(key, sb.toString()); + } + @Override public long getLong(String key) { diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 3304925299..328cae6aca 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -14653,7 +14653,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); for (Shortcut shortcut : getAllShortCuts()) { final Integer position = shortcut.getSlot() + (shortcut.getPage() * ShortCuts.MAX_SHORTCUTS_PER_BAR); @@ -14683,16 +14683,7 @@ public class PlayerInstance extends Playable public synchronized void addAutoShortcut(int slot, int page) { - final List positions; - if (getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS)) - { - positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); - } - else - { - positions = new ArrayList<>(); - } - + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14716,20 +14707,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public synchronized void removeAutoShortcut(int slot, int page) @@ -14739,7 +14717,7 @@ public class PlayerInstance extends Playable return; } - final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Shortcut usedShortcut = getShortCut(slot, page); if (usedShortcut == null) { @@ -14760,20 +14738,7 @@ public class PlayerInstance extends Playable } } - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); } public boolean isInTimedHuntingZone(int zoneId) diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java index 6587034cad..ad8bc42543 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/RequestShortCutReg.java @@ -76,9 +76,9 @@ public class RequestShortCutReg implements IClientIncomingPacket player.sendPacket(new ExActivateAutoShortcut(sc, _active)); // When id is not auto used, deactivate auto shortcuts. - if (player.getVariables().contains(PlayerVariables.AUTO_USE_SHORTCUTS) && !player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) + if (!player.getAutoUseSettings().getAutoSkills().contains(_id) && !player.getAutoUseSettings().getAutoSupplyItems().contains(_id)) { - final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, ","); + final List positions = player.getVariables().getIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS); final Integer position = _slot + (_page * ShortCuts.MAX_SHORTCUTS_PER_BAR); if (!positions.contains(position)) { @@ -86,21 +86,7 @@ public class RequestShortCutReg implements IClientIncomingPacket } positions.remove(position); - - final StringBuilder variable = new StringBuilder(); - for (int id : positions) - { - variable.append(id); - variable.append(","); - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.AUTO_USE_SHORTCUTS); - } - else - { - player.getVariables().set(PlayerVariables.AUTO_USE_SHORTCUTS, variable.toString()); - } + player.getVariables().setIntegerList(PlayerVariables.AUTO_USE_SHORTCUTS, positions); return; } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java index 7b0acb4ab0..b2879f76b4 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/teleports/ExRequestTeleportFavoritesAddDel.java @@ -58,18 +58,15 @@ public class ExRequestTeleportFavoritesAddDel implements IClientIncomingPacket } final List favorites = new ArrayList<>(); - if (player.getVariables().contains(PlayerVariables.FAVORITE_TELEPORTS)) + for (int id : player.getVariables().getIntegerList(PlayerVariables.FAVORITE_TELEPORTS)) { - for (int id : player.getVariables().getIntArray(PlayerVariables.FAVORITE_TELEPORTS, ",")) + if (TeleportListData.getInstance().getTeleport(_teleportId) == null) { - if (TeleportListData.getInstance().getTeleport(_teleportId) == null) - { - LOGGER.warning("No registered teleport location for id: " + _teleportId); - } - else - { - favorites.add(id); - } + LOGGER.warning("No registered teleport location for id: " + _teleportId); + } + else + { + favorites.add(id); } } @@ -85,18 +82,6 @@ public class ExRequestTeleportFavoritesAddDel implements IClientIncomingPacket favorites.remove((Integer) _teleportId); } - String variable = ""; - for (int id : favorites) - { - variable += id + ","; - } - if (variable.isEmpty()) - { - player.getVariables().remove(PlayerVariables.FAVORITE_TELEPORTS); - } - else - { - player.getVariables().set(PlayerVariables.FAVORITE_TELEPORTS, variable); - } + player.getVariables().setIntegerList(PlayerVariables.FAVORITE_TELEPORTS, favorites); } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java index 3bc03cf054..827e9ce856 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/serverpackets/teleports/ExTeleportFavoritesList.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.network.serverpackets.teleports; +import java.util.List; + import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.variables.PlayerVariables; @@ -27,19 +29,12 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; */ public class ExTeleportFavoritesList implements IClientOutgoingPacket { - private final int[] _teleports; + private final List _teleports; private final boolean _enable; public ExTeleportFavoritesList(PlayerInstance player, boolean enable) { - if (player.getVariables().contains(PlayerVariables.FAVORITE_TELEPORTS)) - { - _teleports = player.getVariables().getIntArray(PlayerVariables.FAVORITE_TELEPORTS, ","); - } - else - { - _teleports = new int[0]; - } + _teleports = player.getVariables().getIntegerList(PlayerVariables.FAVORITE_TELEPORTS); _enable = enable; } @@ -49,7 +44,7 @@ public class ExTeleportFavoritesList implements IClientOutgoingPacket OutgoingPackets.EX_TELEPORT_FAVORITES_LIST.writeId(packet); packet.writeC(_enable ? 0x01 : 0x00); - packet.writeD(_teleports.length); + packet.writeD(_teleports.size()); for (int id : _teleports) { packet.writeD(id);