/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.xmr.net.messages;

import com.xmr.core.Log;
import org.jboss.netty.buffer.*;
import java.nio.charset.Charset;

/**
 *
 * @author Adil
 * Class for messages (server messages)
 * Thanks Alex!
 */
public class ServerMessage {

   
	private ChannelBuffer body;

	public ServerMessage(String Header) {
		this.body = ChannelBuffers.dynamicBuffer();
		
		//Prefix
		appendObject("##" + Header);
	}

	public void appendByte(Byte b) {
		this.body.writeByte(b);
	}
	
	public void appendCharacter(int Id) {
		appendByte((byte)Id);
	}
	
	private void appendRawString(String str) {
		this.body.writeBytes(str.getBytes(Charset.forName("UTF-8")));
	}

	public void appendObject(Object str) {
		appendRawString(str.toString());
	}
	
	public void appendObject(Object str, int breakChar) {
		appendRawString(str.toString());
		appendByte((byte)breakChar);
	}

	public void appendObject(int breakChar, Object str) {
		appendByte((byte)breakChar);
		appendRawString(str.toString());
	}

	public ChannelBuffer get() {
		
		//End packet prefix
		appendObject(13, "#");
		
		Log.WriteServerPacket(new String(this.body.toString(Charset.defaultCharset())));
		
		return this.body;
	}
}
