package handling.cashshop.handler;
import client.MapleCharacter;
import client.MapleCharacterUtil;
import client.MapleClient;
import constants.ItemConstants;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import server.MapleInventoryManipulator;
import server.cashshop.CashItemFactory;
import server.cashshop.CashItemInfo;
import tools.FileoutputUtil;
import tools.Triple;
import tools.data.input.SeekableLittleEndianAccessor;
import tools.packet.MTSCSPacket;
public class CouponCodeHandler {
// 商城优惠券
public static void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c, MapleCharacter chr) {
String toPlayer = slea.readMapleAsciiString();
if (toPlayer.length() > 0) {
c.getSession().write(MTSCSPacket.商城错误提示(22));
c.getSession().write(MTSCSPacket.刷新点券信息(chr));
return;
}
String code = slea.readMapleAsciiString();
if (code.length() <= 0) {
c.getSession().write(MTSCSPacket.刷新点券信息(chr));
return;
}
Triple info = null;
try {
info = MapleCharacterUtil.getNXCodeInfo(code);
} catch (SQLException e) {
FileoutputUtil.log("错误 getNXCodeInfo" + e);
}
if ((info != null) && (((Boolean) info.left))) {
int type = ((Integer) info.mid);
int item = ((Integer) info.right);
try {
MapleCharacterUtil.setNXCodeUsed(chr.getName(), code);
} catch (SQLException e) {
FileoutputUtil.log("错误 setNXCodeUsed" + e);
c.getSession().write(MTSCSPacket.商城错误提示(0));
return;
}
Map itemz = new HashMap();
int maplePoints = 0;
int mesos = 0;
switch (type) {
case 1:
case 2:
c.getPlayer().modifyCSPoints(type, item, false);
maplePoints = item;
break;
case 3:
CashItemInfo itez = CashItemFactory.getInstance().getItem(item);
if (itez == null) {
c.getSession().write(MTSCSPacket.商城错误提示(0));
return;
}
byte slot = MapleInventoryManipulator.addId(c, itez.getId(), (byte) 1, "", "商城道具卡兑换 时间: " + FileoutputUtil.CurrentReadable_Date());
if (slot <= -1) {
c.getSession().write(MTSCSPacket.商城错误提示(0));
return;
}
itemz.put(item, chr.getInventory(ItemConstants.getInventoryType(item)).getItem((short) slot));
break;
case 4:
chr.gainMeso(item, false);
mesos = item;
}
c.getSession().write(MTSCSPacket.showCouponRedeemedItem(itemz, mesos, maplePoints, c));
c.getSession().write(MTSCSPacket.刷新点券信息(chr));
} else {
c.getSession().write(MTSCSPacket.商城错误提示(info == null ? 14 : 16));
}
}
}