Public Repository for the Magicbane Shadowbane Emulator

106 lines
2.7 KiB

/*
HashSet<Integer> playerFriendSet = PlayerFriendsMap.get(playerUID);
playerFriendSet.add(friendUID); * Copyright 2013 MagicBane Emulator Project
* All Rights Reserved
*/
package engine.net.client.msg;
import engine.net.AbstractConnection;
import engine.net.ByteBufferReader;
import engine.net.ByteBufferWriter;
import engine.net.client.Protocol;
import engine.objects.PlayerCharacter;
public class SendBallEntryMessage extends ClientNetMsg {
public static final int ADDBALL = 4;
public static final int WHITEBALL = 2;
public static final int BLACKBALL = 1;
public int playerID;
public String description;
public int msgType;
public int ballColor;
/**
* This is the general purpose constructor.
*/
public SendBallEntryMessage(PlayerCharacter pc) {
super(Protocol.SENDBALLENTRY);
}
/**
* This constructor is used by NetMsgFactory. It attempts to deserialize the
* ByteBuffer into a message. If a BufferUnderflow occurs (based on reading
* past the limit) then this constructor Throws that Exception to the
* caller.
*/
public SendBallEntryMessage(AbstractConnection origin, ByteBufferReader reader) {
super(Protocol.SENDBALLENTRY, origin, reader);
}
/**
* Copy constructor
*/
public SendBallEntryMessage(SendBallEntryMessage msg) {
super(Protocol.SENDBALLENTRY);
}
/**
* Deserializes the subclass specific items from the supplied ByteBufferReader.
*/
@Override
protected void _deserialize(ByteBufferReader reader) {
this.msgType = reader.getInt();
switch (this.msgType) {
case ADDBALL:
this.readAddBall(reader);
break;
default:
break;
}
}
public void readAddBall(ByteBufferReader reader) {
reader.getInt();
this.playerID = reader.getInt();
reader.getInt();
reader.getInt();
reader.getInt();
reader.getInt();
reader.getInt(); // 1 ?
reader.getInt();
reader.getInt();
reader.getInt(); // source player type
reader.getInt(); // source player ID
reader.getInt(); // targetType
reader.getInt(); // targetID (same as this.playerID)
this.description = reader.getString();
reader.get();
reader.get();
reader.getInt(); // 100, max ball mark
reader.get();
reader.get();
reader.get();
this.ballColor = reader.getInt();
reader.get();
}
/**
* Serializes the subclass specific items to the supplied ByteBufferWriter.
*/
@Override
protected void _serialize(ByteBufferWriter writer) {
}
}