Sync with L2JServer Jan 30th 2015.

This commit is contained in:
mobius
2015-01-31 03:47:34 +00:00
parent acf0c17ba4
commit e7005fbedd
148 changed files with 1922 additions and 1672 deletions

View File

@ -46,8 +46,8 @@ import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
import com.l2jserver.gameserver.network.serverpackets.ConfirmDlg;
import com.l2jserver.gameserver.network.serverpackets.ExShowCommission;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExShowCommission;
import com.l2jserver.gameserver.util.GMAudit;
import com.l2jserver.gameserver.util.Util;

View File

@ -12,13 +12,14 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.AuctionManager.Auctions;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager.Auctions;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionBuyInfo;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionBuyInfo;
/**
* @author Erlandys
@ -44,7 +45,7 @@ public final class RequestCommissionBuyInfo extends L2GameClientPacket
{
return;
}
AuctionManager am = AuctionManager.getInstance();
AuctionHouseManager am = AuctionHouseManager.getInstance();
Auctions auction = am.getAuctionById(_auctionID);
if (auction != null)
{

View File

@ -12,19 +12,20 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.enums.MailType;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.AuctionManager.Auctions;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager.Auctions;
import com.l2jserver.gameserver.instancemanager.MailManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.entity.Message;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionItemList;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionList;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionItemList;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionList;
/**
* @author Erlandys
@ -51,7 +52,7 @@ public final class RequestCommissionBuyItem extends L2GameClientPacket
{
return;
}
AuctionManager am = AuctionManager.getInstance();
AuctionHouseManager am = AuctionHouseManager.getInstance();
Auctions auction;
if (am.getAuctionById(_auctionID) != null)
{

View File

@ -12,9 +12,10 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
public final class RequestCommissionCancel extends L2GameClientPacket
{

View File

@ -12,15 +12,16 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.AuctionManager.Auctions;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager.Auctions;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionDelete;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionItemList;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionList;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionDelete;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionItemList;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionList;
/**
* @author Erlandys
@ -49,7 +50,7 @@ public final class RequestCommissionDelete extends L2GameClientPacket
{
return;
}
AuctionManager am = AuctionManager.getInstance();
AuctionHouseManager am = AuctionHouseManager.getInstance();
am.checkForAuctionsDeletion();
Auctions auction = am.getAuctionById(_auctionID);
if (auction != null)

View File

@ -12,10 +12,11 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionInfo;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionInfo;
/**
* @author Erlandys

View File

@ -12,12 +12,13 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionList;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionList;
/**
* @author Erlandys
@ -48,7 +49,7 @@ public final class RequestCommissionList extends L2GameClientPacket
{
return;
}
AuctionManager am = AuctionManager.getInstance();
AuctionHouseManager am = AuctionHouseManager.getInstance();
if (_category == 0)
{

View File

@ -12,19 +12,20 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.idfactory.IdFactory;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.items.L2Item;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionInfo;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionItemList;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionList;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionRegister;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionInfo;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionItemList;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionList;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionRegister;
/**
* @author Erlandys
@ -59,7 +60,7 @@ public final class RequestCommissionRegister extends L2GameClientPacket
return;
}
long destroyPrice = _price;
AuctionManager am = AuctionManager.getInstance();
AuctionHouseManager am = AuctionHouseManager.getInstance();
am.checkForAuctionsDeletion();
long timeToAdd = 0;
switch (_duration)

View File

@ -12,11 +12,12 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.instancemanager.AuctionManager;
import com.l2jserver.gameserver.instancemanager.AuctionHouseManager;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionList;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionList;
/**
* @author Erlandys
@ -38,7 +39,7 @@ public final class RequestCommissionRegisteredItem extends L2GameClientPacket
{
return;
}
AuctionManager am = AuctionManager.getInstance();
AuctionHouseManager am = AuctionHouseManager.getInstance();
am.checkForAuctionsDeletion();

View File

@ -12,10 +12,11 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.network.clientpackets;
package com.l2jserver.gameserver.network.clientpackets.auctionhouse;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.ExResponseCommissionItemList;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.auctionhouse.ExResponseCommissionItemList;
/**
* @author Erlandys

View File

@ -18,15 +18,27 @@
*/
package com.l2jserver.gameserver.network.clientpackets.primeshop;
import java.util.Calendar;
import com.l2jserver.Config;
import com.l2jserver.gameserver.data.xml.impl.PrimeShopData;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.itemcontainer.Inventory;
import com.l2jserver.gameserver.model.primeshop.PrimeShopGroup;
import com.l2jserver.gameserver.model.primeshop.PrimeShopItem;
import com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket;
import com.l2jserver.gameserver.network.serverpackets.primeshop.ExBRBuyProduct;
import com.l2jserver.gameserver.network.serverpackets.primeshop.ExBRBuyProduct.ExBrProductReplyType;
import com.l2jserver.gameserver.network.serverpackets.primeshop.ExBRGamePoint;
import com.l2jserver.gameserver.util.Util;
/**
* @author Gnacik, UnAfraid
*/
public final class RequestBRBuyProduct extends L2GameClientPacket
{
private static final int HERO_COINS = 23805;
private int _brId;
private int _count;
@ -40,11 +52,157 @@ public final class RequestBRBuyProduct extends L2GameClientPacket
@Override
protected void runImpl()
{
final L2PcInstance player = getClient().getActiveChar();
if (player != null)
final L2PcInstance activeChar = getClient().getActiveChar();
if (activeChar == null)
{
PrimeShopData.getInstance().buyItem(player, _brId, _count);
return;
}
if (activeChar.isUsingPrimeShop())
{
activeChar.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVALID_USER_STATE));
return;
}
activeChar.setUsingPrimeShop(true);
final PrimeShopGroup item = PrimeShopData.getInstance().getItem(_brId);
if (validatePlayer(item, _count, activeChar))
{
final int price = (item.getPrice() * _count);
final int paymentId = validatePaymentId(activeChar, item, price);
if (paymentId < 0)
{
activeChar.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.LACK_OF_POINT));
return;
}
else if (paymentId > 0)
{
if (!activeChar.destroyItemByItemId("PrimeShop-" + item.getBrId(), paymentId, price, activeChar, true))
{
activeChar.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.LACK_OF_POINT));
return;
}
}
else if (paymentId == 0)
{
if (activeChar.getPrimePoints() < price)
{
activeChar.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.LACK_OF_POINT));
return;
}
activeChar.setPrimePoints(activeChar.getPrimePoints() - price);
}
for (PrimeShopItem subItem : item.getItems())
{
activeChar.addItem("PrimeShop", subItem.getId(), subItem.getCount() * _count, activeChar, true);
}
activeChar.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.SUCCESS));
activeChar.sendPacket(new ExBRGamePoint(activeChar));
}
activeChar.setUsingPrimeShop(false);
}
/**
* @param item
* @param count
* @param player
* @return
*/
private static boolean validatePlayer(PrimeShopGroup item, int count, L2PcInstance player)
{
final long currentTime = System.currentTimeMillis() / 1000;
if (item == null)
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVALID_PRODUCT));
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to buy invalid brId from Prime", Config.DEFAULT_PUNISH);
return false;
}
else if ((count < 1) && (count > 99))
{
Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " tried to buy invalid itemcount [" + count + "] from Prime", Config.DEFAULT_PUNISH);
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVALID_USER_STATE));
return false;
}
else if ((item.getMinLevel() > 0) && (item.getMinLevel() > player.getLevel()))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVALID_USER));
return false;
}
else if ((item.getMaxLevel() > 0) && (item.getMaxLevel() < player.getLevel()))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVALID_USER));
return false;
}
else if ((item.getMinBirthday() > 0) && (item.getMinBirthday() > player.getBirthdays()))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVALID_USER_STATE));
return false;
}
else if ((item.getMaxBirthday() > 0) && (item.getMaxBirthday() < player.getBirthdays()))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVALID_USER_STATE));
return false;
}
else if ((Calendar.getInstance().get(Calendar.DAY_OF_WEEK) & item.getDaysOfWeek()) == 0)
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.NOT_DAY_OF_WEEK));
return false;
}
else if ((item.getStartSale() > 1) && (item.getStartSale() > currentTime))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.BEFORE_SALE_DATE));
return false;
}
else if ((item.getEndSale() > 1) && (item.getEndSale() < currentTime))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.AFTER_SALE_DATE));
return false;
}
final int weight = item.getWeight() * count;
final long slots = item.getCount() * count;
if (player.getInventory().validateWeight(weight))
{
if (!player.getInventory().validateCapacity(slots))
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVENTROY_OVERFLOW));
return false;
}
}
else
{
player.sendPacket(new ExBRBuyProduct(ExBrProductReplyType.INVENTROY_OVERFLOW));
return false;
}
return true;
}
private static int validatePaymentId(L2PcInstance player, PrimeShopGroup item, long amount)
{
switch (item.getPaymentType())
{
case 0: // Prime points
{
return 0;
}
case 1: // Adenas
{
return Inventory.ADENA_ID;
}
case 2: // Hero coins
{
return HERO_COINS;
}
}
return -1;
}
@Override