Files
sweetgum-server/src/net/server/channel/handlers/WeddingHandler.java
Diego Armando de Freitas Matos 90ad58f17f CPQ 1 CPQ 2 CASAMENTO
2019-03-06 21:55:47 -03:00

70 lines
2.9 KiB
Java

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package net.server.channel.handlers;
import client.inventory.Item;
import client.inventory.MapleInventoryType;
import client.MapleCharacter;
import client.MapleClient;
import client.inventory.Equip;
import constants.ItemConstants;
import net.AbstractMaplePacketHandler;
import client.inventory.manipulator.MapleInventoryManipulator;
import net.server.channel.Channel;
import scripting.event.EventInstanceManager;
import tools.MaplePacketCreator;
import tools.data.input.SeekableLittleEndianAccessor;
import tools.packets.Wedding;
/**
*
* @author By Drago/Dragohe4rt
*/
public final class WeddingHandler extends AbstractMaplePacketHandler {
@Override
public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
MapleCharacter chr = c.getPlayer();
final byte mode = slea.readByte();
Channel cs = c.getChannelServer();
if (mode == 6) { //additem
short slot = slea.readShort();
int itemid = slea.readInt();
short quantity = slea.readShort();
EventInstanceManager eim = c.getPlayer().getEventInstance();
if (eim != null) {
String name = eim.getProperty("brideId");
MapleCharacter chrs = cs.getPlayerStorage().getCharacterById(Integer.parseInt(name));
//MapleCharacter chrs = cs.getPlayerStorage().getCharacterById(3);
MapleInventoryType type = ItemConstants.getInventoryType(itemid);
Item item = chr.getInventory(type).getItem((byte) slot);
if (itemid == item.getItemId() && quantity <= item.getQuantity()) {
if(!(item instanceof Equip)) {
item = new Item(itemid, slot, quantity);
}
chrs.setEquips(item);
MapleInventoryManipulator.removeById(chr.getClient(), type, itemid, quantity, false, false);
c.announce(Wedding.OnWeddingGiftResult((byte) 0xB, chrs.getItens(), chrs.getItem()));
}
}
} else if (mode == 7) { // noiva abre e pega itens
byte inventId = slea.readByte();
int itemPos = slea.readByte();
MapleInventoryType inv = MapleInventoryType.getByType(inventId);
Item item = chr.getItemid(itemPos);
c.getAbstractPlayerInteraction().gainItem(item.getItemId(), item.getQuantity());
chr.removeItem(item);
c.announce(Wedding.OnWeddingGiftResult((byte) 0xF, chr.getItens(), chr.getItem()));
} else if (mode == 8) { // sair update?
c.announce(MaplePacketCreator.enableActions());
} else {
System.out.println(mode);
}
}
}