Removal of blessing scroll id player variable.

This commit is contained in:
MobiusDevelopment 2021-04-23 21:23:46 +00:00
parent 188fe9cee1
commit 0b60bf915e
16 changed files with 40 additions and 144 deletions

View File

@ -19,8 +19,8 @@ package handlers.itemhandlers;
import org.l2jmobius.gameserver.handler.IItemHandler;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.actor.request.BlessingItemRequest;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.blessing.ExOpenBlessOptionScroll;
@ -47,8 +47,7 @@ public class BlessingScrolls implements IItemHandler
return false;
}
player.getVariables().set(PlayerVariables.USED_BLESS_SCROLL_ID, item.getId());
player.addRequest(new BlessingItemRequest(player, item.getId()));
player.sendPacket(new ExOpenBlessOptionScroll(item.getId()));
return true;
}

View File

@ -17,57 +17,28 @@
package org.l2jmobius.gameserver.model.actor.request;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
/**
* @author Horus
* @author Mobius
*/
public class BlessingItemRequest extends AbstractRequest
{
private volatile int _blessingItemObjectId;
private volatile int _blessingScrollObjectId;
private volatile int _blessScrollId;
public BlessingItemRequest(PlayerInstance player, int enchantingScrollObjectId)
public BlessingItemRequest(PlayerInstance player, int itemId)
{
super(player);
_blessingScrollObjectId = enchantingScrollObjectId;
_blessScrollId = itemId;
}
public ItemInstance getBlessingItem()
public int getBlessScrollId()
{
return getActiveChar().getInventory().getItemByObjectId(_blessingItemObjectId);
}
public void setBlessingItem(int objectId)
{
_blessingItemObjectId = objectId;
}
public ItemInstance getBlessScroll()
{
return getActiveChar().getInventory().getItemByObjectId(_blessingScrollObjectId);
}
public void setBlessScroll(int objectId)
{
_blessingScrollObjectId = objectId;
}
@Override
public boolean isItemRequest()
{
return true;
}
@Override
public boolean canWorkWith(AbstractRequest request)
{
return !request.isItemRequest();
return _blessScrollId;
}
@Override
public boolean isUsing(int objectId)
{
return (objectId > 0) && ((objectId == _blessingItemObjectId) || (objectId == _blessingScrollObjectId));
return false;
}
}

View File

@ -77,7 +77,6 @@ public class PlayerVariables extends AbstractVariables
public static final String STAT_INT = "STAT_INT";
public static final String STAT_WIT = "STAT_WIT";
public static final String STAT_MEN = "STAT_MEN";
public static final String USED_BLESS_SCROLL_ID = "USED_BLESS_SCROLL_ID";
private final int _objectId;

View File

@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.network.clientpackets.blessing;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.actor.request.BlessingItemRequest;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.blessing.ExBlessOptionCancel;
@ -27,7 +28,6 @@ import org.l2jmobius.gameserver.network.serverpackets.blessing.ExBlessOptionCanc
*/
public class RequestBlessOptionCancel implements IClientIncomingPacket
{
@Override
public boolean read(GameClient client, PacketReader packet)
{
@ -43,6 +43,7 @@ public class RequestBlessOptionCancel implements IClientIncomingPacket
return;
}
player.removeRequest(BlessingItemRequest.class);
player.sendPacket(new ExBlessOptionCancel(1));
}
}

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.items.Item;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.CommonSkill;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
@ -69,51 +68,30 @@ public class RequestBlessOptionEnchant implements IClientIncomingPacket
return;
}
ItemInstance targetScroll = player.getInventory().getItemByItemId(player.getVariables().getInt(PlayerVariables.USED_BLESS_SCROLL_ID, 0));
if (targetScroll == null)
{
targetScroll = player.getInventory().getItemByItemId(94208); // Scroll of Blessing - Event
}
if (targetScroll == null)
{
targetScroll = player.getInventory().getItemByItemId(94184); // Scroll of Blessing
}
if (targetScroll == null)
{
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
player.addRequest(new BlessingItemRequest(player, targetInstance.getObjectId()));
final BlessingItemRequest request = player.getRequest(BlessingItemRequest.class);
if ((request == null) || request.isProcessing())
{
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
request.setBlessingItem(_itemObjId);
request.setProcessing(true);
request.setTimestamp(System.currentTimeMillis());
if (!player.isOnline() || client.isDetached())
{
player.removeRequest(request.getClass());
return;
}
if (player.isInStoreMode())
{
player.sendPacket(SystemMessageId.YOU_CANNOT_ENCHANT_WHILE_OPERATING_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
player.removeRequest(request.getClass());
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
final ItemInstance item = request.getBlessingItem();
final ItemInstance item = player.getInventory().getItemByObjectId(_itemObjId);
if (item == null)
{
player.removeRequest(request.getClass());
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
@ -122,17 +100,22 @@ public class RequestBlessOptionEnchant implements IClientIncomingPacket
if (item.isBlessed())
{
client.sendPacket(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITIONS);
player.removeRequest(request.getClass());
player.sendPacket(new ExBlessOptionPutItem(0));
return;
}
final ItemInstance targetScroll = player.getInventory().getItemByItemId(request.getBlessScrollId());
if (targetScroll == null)
{
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
// attempting to destroy scroll
if (player.getInventory().destroyItem("Blessing", targetScroll.getObjectId(), 1, player, item) == null)
{
client.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT_2);
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to bless with a scroll he doesn't have", Config.DEFAULT_PUNISH);
player.removeRequest(request.getClass());
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
@ -179,10 +162,8 @@ public class RequestBlessOptionEnchant implements IClientIncomingPacket
player.sendPacket(new ExBlessOptionEnchant(0));
}
player.sendItemList();
request.setProcessing(false);
player.removeRequest(request.getClass());
player.sendItemList();
player.broadcastUserInfo();
}
}

View File

@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.network.serverpackets.blessing.ExBlessOptionPutI
*/
public class RequestBlessOptionPutItem implements IClientIncomingPacket
{
private int _objectId;
@Override

View File

@ -25,7 +25,6 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
*/
public class ExBlessOptionCancel implements IClientOutgoingPacket
{
private final int _result;
public ExBlessOptionCancel(int result)

View File

@ -25,7 +25,6 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
*/
public class ExBlessOptionPutItem implements IClientOutgoingPacket
{
private final int _result;
public ExBlessOptionPutItem(int result)

View File

@ -19,8 +19,8 @@ package handlers.itemhandlers;
import org.l2jmobius.gameserver.handler.IItemHandler;
import org.l2jmobius.gameserver.model.actor.Playable;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.actor.request.BlessingItemRequest;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.blessing.ExOpenBlessOptionScroll;
@ -47,8 +47,7 @@ public class BlessingScrolls implements IItemHandler
return false;
}
player.getVariables().set(PlayerVariables.USED_BLESS_SCROLL_ID, item.getId());
player.addRequest(new BlessingItemRequest(player, item.getId()));
player.sendPacket(new ExOpenBlessOptionScroll(item.getId()));
return true;
}

View File

@ -17,57 +17,28 @@
package org.l2jmobius.gameserver.model.actor.request;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
/**
* @author Horus
* @author Mobius
*/
public class BlessingItemRequest extends AbstractRequest
{
private volatile int _blessingItemObjectId;
private volatile int _blessingScrollObjectId;
private volatile int _blessScrollId;
public BlessingItemRequest(PlayerInstance player, int enchantingScrollObjectId)
public BlessingItemRequest(PlayerInstance player, int itemId)
{
super(player);
_blessingScrollObjectId = enchantingScrollObjectId;
_blessScrollId = itemId;
}
public ItemInstance getBlessingItem()
public int getBlessScrollId()
{
return getActiveChar().getInventory().getItemByObjectId(_blessingItemObjectId);
}
public void setBlessingItem(int objectId)
{
_blessingItemObjectId = objectId;
}
public ItemInstance getBlessScroll()
{
return getActiveChar().getInventory().getItemByObjectId(_blessingScrollObjectId);
}
public void setBlessScroll(int objectId)
{
_blessingScrollObjectId = objectId;
}
@Override
public boolean isItemRequest()
{
return true;
}
@Override
public boolean canWorkWith(AbstractRequest request)
{
return !request.isItemRequest();
return _blessScrollId;
}
@Override
public boolean isUsing(int objectId)
{
return (objectId > 0) && ((objectId == _blessingItemObjectId) || (objectId == _blessingScrollObjectId));
return false;
}
}

View File

@ -77,7 +77,6 @@ public class PlayerVariables extends AbstractVariables
public static final String STAT_INT = "STAT_INT";
public static final String STAT_WIT = "STAT_WIT";
public static final String STAT_MEN = "STAT_MEN";
public static final String USED_BLESS_SCROLL_ID = "USED_BLESS_SCROLL_ID";
private final int _objectId;

View File

@ -18,6 +18,7 @@ package org.l2jmobius.gameserver.network.clientpackets.blessing;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.actor.request.BlessingItemRequest;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.blessing.ExBlessOptionCancel;
@ -27,7 +28,6 @@ import org.l2jmobius.gameserver.network.serverpackets.blessing.ExBlessOptionCanc
*/
public class RequestBlessOptionCancel implements IClientIncomingPacket
{
@Override
public boolean read(GameClient client, PacketReader packet)
{
@ -43,6 +43,7 @@ public class RequestBlessOptionCancel implements IClientIncomingPacket
return;
}
player.removeRequest(BlessingItemRequest.class);
player.sendPacket(new ExBlessOptionCancel(1));
}
}

View File

@ -26,7 +26,6 @@ import org.l2jmobius.gameserver.model.items.Item;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.skills.CommonSkill;
import org.l2jmobius.gameserver.model.skills.Skill;
import org.l2jmobius.gameserver.model.variables.PlayerVariables;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
@ -69,51 +68,30 @@ public class RequestBlessOptionEnchant implements IClientIncomingPacket
return;
}
ItemInstance targetScroll = player.getInventory().getItemByItemId(player.getVariables().getInt(PlayerVariables.USED_BLESS_SCROLL_ID, 0));
if (targetScroll == null)
{
targetScroll = player.getInventory().getItemByItemId(94208); // Scroll of Blessing - Event
}
if (targetScroll == null)
{
targetScroll = player.getInventory().getItemByItemId(94184); // Scroll of Blessing
}
if (targetScroll == null)
{
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
player.addRequest(new BlessingItemRequest(player, targetInstance.getObjectId()));
final BlessingItemRequest request = player.getRequest(BlessingItemRequest.class);
if ((request == null) || request.isProcessing())
{
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
request.setBlessingItem(_itemObjId);
request.setProcessing(true);
request.setTimestamp(System.currentTimeMillis());
if (!player.isOnline() || client.isDetached())
{
player.removeRequest(request.getClass());
return;
}
if (player.isInStoreMode())
{
player.sendPacket(SystemMessageId.YOU_CANNOT_ENCHANT_WHILE_OPERATING_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP);
player.removeRequest(request.getClass());
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
final ItemInstance item = request.getBlessingItem();
final ItemInstance item = player.getInventory().getItemByObjectId(_itemObjId);
if (item == null)
{
player.removeRequest(request.getClass());
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
@ -122,17 +100,22 @@ public class RequestBlessOptionEnchant implements IClientIncomingPacket
if (item.isBlessed())
{
client.sendPacket(SystemMessageId.AUGMENTATION_REQUIREMENTS_ARE_NOT_FULFILLED);
player.removeRequest(request.getClass());
player.sendPacket(new ExBlessOptionPutItem(0));
return;
}
final ItemInstance targetScroll = player.getInventory().getItemByItemId(request.getBlessScrollId());
if (targetScroll == null)
{
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
// attempting to destroy scroll
if (player.getInventory().destroyItem("Blessing", targetScroll.getObjectId(), 1, player, item) == null)
{
client.sendPacket(SystemMessageId.INCORRECT_ITEM_COUNT_2);
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to bless with a scroll he doesn't have", Config.DEFAULT_PUNISH);
player.removeRequest(request.getClass());
player.sendPacket(new ExBlessOptionEnchant(EnchantResult.ERROR));
return;
}
@ -179,10 +162,8 @@ public class RequestBlessOptionEnchant implements IClientIncomingPacket
player.sendPacket(new ExBlessOptionEnchant(0));
}
player.sendItemList();
request.setProcessing(false);
player.removeRequest(request.getClass());
player.sendItemList();
player.broadcastUserInfo();
}
}

View File

@ -29,7 +29,6 @@ import org.l2jmobius.gameserver.network.serverpackets.blessing.ExBlessOptionPutI
*/
public class RequestBlessOptionPutItem implements IClientIncomingPacket
{
private int _objectId;
@Override

View File

@ -25,7 +25,6 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
*/
public class ExBlessOptionCancel implements IClientOutgoingPacket
{
private final int _result;
public ExBlessOptionCancel(int result)

View File

@ -25,7 +25,6 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
*/
public class ExBlessOptionPutItem implements IClientOutgoingPacket
{
private final int _result;
public ExBlessOptionPutItem(int result)