/**
* This file is part of aion-unique <aion-unique.smfnew.com>.
*
* aion-unique is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* aion-unique is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with aion-unique. If not, see <http://www.gnu.org/licenses/>.
*/
package com.aionemu.gameserver.network.aion.serverpackets;
import java.nio.ByteBuffer;
import com.aionemu.gameserver.model.DuelResult;
import com.aionemu.gameserver.network.aion.AionConnection;
import com.aionemu.gameserver.network.aion.AionServerPacket;
/**
*
* @author xavier
*
*/
public class SM_DUEL extends AionServerPacket
{
private String playerName;
private DuelResult result;
private int requesterObjId;
private int type;
private SM_DUEL(int type)
{
this.type = type;
}
public static SM_DUEL SM_DUEL_STARTED (int requesterObjId)
{
SM_DUEL packet = new SM_DUEL(0x00);
packet.setRequesterObjId(requesterObjId);
return packet;
}
private void setRequesterObjId (int requesterObjId) {
this.requesterObjId = requesterObjId;
}
public static SM_DUEL SM_DUEL_RESULT (DuelResult result, String playerName)
{
SM_DUEL packet = new SM_DUEL(0x01);
packet.setPlayerName(playerName);
packet.setResult(result);
return packet;
}
private void setPlayerName (String playerName) {
this.playerName = playerName;
}
private void setResult (DuelResult result) {
this.result = result;
}
@Override
public void writeImpl(AionConnection con, ByteBuffer buf)
{
writeC(buf, type);
switch(type)
{
case 0x00:
writeD(buf, requesterObjId);
break;
case 0x01:
writeC(buf, result.getResultId()); // unknown
writeD(buf, result.getMsgId());
writeS(buf, playerName);
break;
case 0xE0:
break;
default:
throw new IllegalArgumentException("invalid SM_DUEL packet type " + type);
}
}
}