Public Repository for the Magicbane Shadowbane Emulator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

182 lines
4.8 KiB

// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
// Magicbane Emulator Project © 2013 - 2022
// www.magicbane.com
package engine.net.client.msg.chat;
import engine.exception.SerializationException;
import engine.net.AbstractConnection;
import engine.net.ByteBufferReader;
import engine.net.ByteBufferWriter;
import engine.net.client.Protocol;
import engine.net.client.msg.ClientNetMsg;
import engine.objects.AbstractWorldObject;
public abstract class AbstractChatMsg extends ClientNetMsg {
protected int sourceType;
protected int sourceID;
protected String sourceName;
protected AbstractWorldObject source;
protected int unknown01;
protected String message;
protected int unknown02;
/**
* This is the general purpose constructor.
*/
protected AbstractChatMsg(Protocol protocolMsg, AbstractWorldObject source, String message) {
super(protocolMsg);
this.unknown01 = 0;
this.message = message;
this.source = source;
this.unknown02 = 0;
}
/**
* 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.
*/
protected AbstractChatMsg(Protocol protocolMsg, AbstractConnection origin, ByteBufferReader reader) {
super(protocolMsg, origin, reader);
//THIS may cause initialization error, but messing up guild chat
//this.unknown01 = 0;
//this.unknown02 = 0;
}
/**
* Copy constructor
*/
protected AbstractChatMsg(AbstractChatMsg msg) {
super(msg.getProtocolMsg());
this.sourceType = msg.sourceType;
this.sourceID = msg.sourceID;
this.sourceName = msg.sourceName;
this.source = msg.source;
this.unknown01 = msg.unknown01;
this.message = msg.getMessage();
this.unknown02 = msg.getUnknown02();
}
/**
* Deserializes the subclass specific items from the supplied ByteBufferReader.
*/
@Override
protected abstract void _deserialize(ByteBufferReader reader);
/**
* Serializes the subclass specific items to the supplied ByteBufferWriter.
*/
@Override
protected abstract void _serialize(ByteBufferWriter writer) throws SerializationException;
/**
* @return the unknown01
*/
public int getUnknown01() {
return unknown01;
}
/**
* @param unknown01 the unknown01 to set
*/
public void setUnknown01(int unknown01) {
this.unknown01 = unknown01;
}
/**
* @return the message
*/
public String getMessage() {
return message;
}
/**
* @param message the message to set
*/
public void setMessage(String message) {
this.message = message;
}
/**
* @return the unknown02
*/
public int getUnknown02() {
return unknown02;
}
/**
* @param unknown02 the unknown02 to set
*/
public void setUnknown02(int unknown02) {
this.unknown02 = unknown02;
}
/**
* @return the sourceObjName
*/
public AbstractWorldObject getSource() {
return source;
}
/**
* @param sourceObjName the sourceObjName to set
*/
public void setSource(AbstractWorldObject source) {
this.source = source;
}
/**
* @return the sourceType
*/
public int getSourceType() {
return sourceType;
}
/**
* @param sourceType the sourceType to set
*/
public void setSourceType(int sourceType) {
this.sourceType = sourceType;
}
/**
* @return the sourceID
*/
public int getSourceID() {
return sourceID;
}
/**
* @param sourceID the sourceID to set
*/
public void setSourceID(int sourceID) {
this.sourceID = sourceID;
}
/**
* @return the sourceName
*/
public String getSourceName() {
return sourceName;
}
/**
* @param sourceName the sourceName to set
*/
public void setSourceName(String sourceName) {
this.sourceName = sourceName;
}
}