diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_01.0_Ertheia/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index f217830d8e..d06bebe520 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_02.5_Underground/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_02.5_Underground/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index f217830d8e..d06bebe520 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_03.0_Helios/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_03.0_Helios/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index f217830d8e..d06bebe520 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_05.0_Salvation/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_05.5_EtinasFate/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_06.0_Fafurion/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_08.2_Homunculus/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_10.1_MasterClass/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_10.1_MasterClass/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_10.1_MasterClass/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_10.1_MasterClass/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_10.1_MasterClass/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_10.2_MasterClass/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 21e755c6bc..9bb5e9b2ac 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -148,7 +138,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -156,8 +146,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -173,13 +163,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_CT_0_Interlude/dist/game/data/xsd/enchantItemData.xsd b/L2J_Mobius_CT_0_Interlude/dist/game/data/xsd/enchantItemData.xsd index 2c75d532fe..f5f3a65827 100644 --- a/L2J_Mobius_CT_0_Interlude/dist/game/data/xsd/enchantItemData.xsd +++ b/L2J_Mobius_CT_0_Interlude/dist/game/data/xsd/enchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index ff91e53163..1b4c433c0c 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -88,7 +88,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 6291fcd3dc..2d9fd1e0c1 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,9 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; -import java.util.logging.Level; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.item.type.EtcItemType; import org.l2jmobius.gameserver.model.item.type.ItemType; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -38,7 +38,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isBlessed; private final boolean _isSafe; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -73,30 +73,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isSafe; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -107,7 +96,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -126,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -134,8 +123,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -151,18 +140,20 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { - LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); + LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { - LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); + LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); return -1; } + return group.getChance(enchantItem.getEnchantLevel()); } diff --git a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/xsd/enchantItemData.xsd b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/xsd/enchantItemData.xsd index b6acd7b648..08ebe20c9a 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/xsd/enchantItemData.xsd +++ b/L2J_Mobius_CT_2.4_Epilogue/dist/game/data/xsd/enchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index ff91e53163..1b4c433c0c 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -88,7 +88,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 6291fcd3dc..2d9fd1e0c1 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,9 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; -import java.util.logging.Level; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.item.type.EtcItemType; import org.l2jmobius.gameserver.model.item.type.ItemType; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -38,7 +38,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isBlessed; private final boolean _isSafe; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -73,30 +73,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isSafe; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -107,7 +96,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -126,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -134,8 +123,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -151,18 +140,20 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { - LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); + LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { - LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); + LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); return -1; } + return group.getChance(enchantItem.getEnchantLevel()); } diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/enchantItemData.xsd b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/enchantItemData.xsd index b6acd7b648..08ebe20c9a 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/enchantItemData.xsd +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/xsd/enchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index ff91e53163..1b4c433c0c 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -88,7 +88,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index 6291fcd3dc..2d9fd1e0c1 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,9 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; -import java.util.logging.Level; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -30,7 +30,7 @@ import org.l2jmobius.gameserver.model.item.type.EtcItemType; import org.l2jmobius.gameserver.model.item.type.ItemType; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -38,7 +38,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isBlessed; private final boolean _isSafe; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -73,30 +73,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isSafe; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -107,7 +96,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -126,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -134,8 +123,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -151,18 +140,20 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { - LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); + LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { - LOGGER.log(Level.WARNING, getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); + LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); return -1; } + return group.getChance(enchantItem.getEnchantLevel()); } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/EnchantItemData.xsd index b28f355a4d..46d3ce7810 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ae3e0ac5f3..b60805edcf 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/EnchantItemData.xsd index b28f355a4d..46d3ce7810 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ae3e0ac5f3..b60805edcf 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/EnchantItemData.xsd index b28f355a4d..46d3ce7810 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ae3e0ac5f3..b60805edcf 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/EnchantItemData.xsd index b28f355a4d..46d3ce7810 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ae3e0ac5f3..b60805edcf 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/EnchantItemData.xsd index b28f355a4d..46d3ce7810 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ae3e0ac5f3..b60805edcf 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/EnchantItemData.xsd index b28f355a4d..46d3ce7810 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ae3e0ac5f3..b60805edcf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/EnchantItemData.xsd index bf0716389d..59302ac756 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ae3e0ac5f3..b60805edcf 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -41,7 +42,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isSafe; private final boolean _isGiant; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -91,30 +92,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isGiant; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -125,7 +115,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -152,7 +142,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls()) { @@ -160,8 +150,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -177,13 +167,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/xsd/EnchantItemData.xsd index b28f355a4d..46d3ce7810 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ff029c9ae0..b9fdc6c282 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -42,7 +43,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isGiant; private final boolean _isCursed; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -98,30 +99,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isCursed; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -132,7 +122,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -159,7 +149,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { if (isActionBlessed() && itemToEnchant.isWeapon() && (itemToEnchant.getTemplate().getCrystalType() == getGrade())) { @@ -171,8 +161,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -188,13 +178,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/EnchantItemData.xsd index bd7d3d736b..3a7d417025 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ff029c9ae0..b9fdc6c282 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -42,7 +43,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isGiant; private final boolean _isCursed; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -98,30 +99,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isCursed; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -132,7 +122,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -159,7 +149,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { if (isActionBlessed() && itemToEnchant.isWeapon() && (itemToEnchant.getTemplate().getCrystalType() == getGrade())) { @@ -171,8 +161,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -188,13 +178,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/xsd/EnchantItemData.xsd index bd7d3d736b..3a7d417025 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ff029c9ae0..b9fdc6c282 100644 --- a/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Essence_6.1_BattleChronicle/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -42,7 +43,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isGiant; private final boolean _isCursed; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -98,30 +99,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isCursed; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -132,7 +122,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -159,7 +149,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { if (isActionBlessed() && itemToEnchant.isWeapon() && (itemToEnchant.getTemplate().getCrystalType() == getGrade())) { @@ -171,8 +161,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -188,13 +178,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player); diff --git a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/EnchantItemData.xsd b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/EnchantItemData.xsd index bd7d3d736b..3a7d417025 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/EnchantItemData.xsd +++ b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/EnchantItemData.xsd @@ -15,6 +15,7 @@ + diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java index 0fee1f44b5..788777b1f9 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/data/xml/EnchantItemData.java @@ -90,7 +90,7 @@ public class EnchantItemData implements IXmlReader { if ("item".equalsIgnoreCase(cd.getNodeName())) { - item.addItem(parseInteger(cd.getAttributes(), "id")); + item.addItem(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "altScrollGroupId", -1)); } } _scrolls.put(item.getId(), item); diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java index ff029c9ae0..b9fdc6c282 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/item/enchant/EnchantScroll.java @@ -16,8 +16,9 @@ */ package org.l2jmobius.gameserver.model.item.enchant; -import java.util.HashSet; -import java.util.Set; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.data.xml.EnchantItemData; @@ -31,7 +32,7 @@ import org.l2jmobius.gameserver.model.item.type.ItemType; import org.l2jmobius.gameserver.model.stats.Stat; /** - * @author UnAfraid + * @author UnAfraid, Mobius */ public class EnchantScroll extends AbstractEnchantItem { @@ -42,7 +43,7 @@ public class EnchantScroll extends AbstractEnchantItem private final boolean _isGiant; private final boolean _isCursed; private final int _scrollGroupId; - private Set _items; + private final Map _items = new HashMap<>(); public EnchantScroll(StatSet set) { @@ -98,30 +99,19 @@ public class EnchantScroll extends AbstractEnchantItem return _isCursed; } - /** - * @return id of scroll group that should be used - */ - public int getScrollGroupId() - { - return _scrollGroupId; - } - /** * Enforces current scroll to use only those items as possible items to enchant * @param itemId + * @param scrollGroupId */ - public void addItem(int itemId) + public void addItem(int itemId, int scrollGroupId) { - if (_items == null) - { - _items = new HashSet<>(); - } - _items.add(itemId); + _items.put(itemId, scrollGroupId > -1 ? scrollGroupId : _scrollGroupId); } - public Set getItems() + public Collection getItems() { - return _items; + return _items.keySet(); } /** @@ -132,7 +122,7 @@ public class EnchantScroll extends AbstractEnchantItem @Override public boolean isValid(Item itemToEnchant, EnchantSupportItem supportItem) { - if ((_items != null) && !_items.contains(itemToEnchant.getId())) + if (!_items.isEmpty() && !_items.containsKey(itemToEnchant.getId())) { return false; } @@ -159,7 +149,7 @@ public class EnchantScroll extends AbstractEnchantItem return false; } } - if (_items == null) + if (_items.isEmpty()) { if (isActionBlessed() && itemToEnchant.isWeapon() && (itemToEnchant.getTemplate().getCrystalType() == getGrade())) { @@ -171,8 +161,8 @@ public class EnchantScroll extends AbstractEnchantItem { continue; } - final Set scrollItems = scroll.getItems(); - if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId())) + final Collection scrollItems = scroll.getItems(); + if (!scrollItems.isEmpty() && scrollItems.contains(itemToEnchant.getId())) { return false; } @@ -188,13 +178,14 @@ public class EnchantScroll extends AbstractEnchantItem */ public double getChance(Player player, Item enchantItem) { - if (EnchantItemGroupsData.getInstance().getScrollGroup(_scrollGroupId) == null) + final int scrollGroupId = _items.getOrDefault(enchantItem.getId(), _scrollGroupId); + if (EnchantItemGroupsData.getInstance().getScrollGroup(scrollGroupId) == null) { LOGGER.warning(getClass().getSimpleName() + ": Unexistent enchant scroll group specified for enchant scroll: " + getId()); return -1; } - final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), _scrollGroupId); + final EnchantItemGroup group = EnchantItemGroupsData.getInstance().getItemGroup(enchantItem.getTemplate(), scrollGroupId); if (group == null) { LOGGER.warning(getClass().getSimpleName() + ": Couldn't find enchant item group for scroll: " + getId() + " requested by: " + player);