using System;
using System.IO;
using Assets.src.map;

public class GameService
{
	private ISession session;

	protected static GameService instance;

	public void setSession(ISession gi)
	{
		session = gi;
	}

	public static GameService gI()
	{
		if (instance == null)
		{
			instance = new GameService();
		}
		return instance;
	}

	public void clanRemote(int id, sbyte role)
	{
		CRes.outz("REMOTE CLAN id = " + id + " role= " + role);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-110));
			message.writer().writeInt(id);
			message.writer().writeByte(role);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void clanMember(int id)
	{
		CRes.outz("MEMBER CLAN " + id);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-105));
			message.writer().writeInt(id);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void requestIcon(int id)
	{
		Message message = null;
		try
		{
			CRes.outz("REQUEST ICON " + id);
			message = new Message((sbyte)(-41));
			message.writer().writeShort(id);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void ghepNgoc(Item[] item)
	{
		Message message = new Message((sbyte)(-66));
		try
		{
			for (int i = 0; i < 7; i++)
			{
				if (item[i] != null)
				{
					message.writer().writeShort(item[i].template.id);
				}
				else
				{
					message.writer().writeShort(-1);
				}
			}
			session.sendMessage(message);
			message.cleanup();
		}
		catch (IOException)
		{
		}
		finally
		{
			message.cleanup();
		}
		CRes.outz("SendM_Ghep hoc");
	}

	public void login(string username, string pass, string version, sbyte type)
	{
		Message message = new Message((sbyte)1);
		try
		{
			message.writer().writeUTF(username);
			message.writer().writeUTF(pass);
			message.writer().writeUTF(version);
			message.writer().writeByte(type);
			session.sendMessage(message);
			message.cleanup();
		}
		catch (IOException)
		{
		}
		CRes.outz("SendM_LOGIN");
	}

	public void login2(string user)
	{
		CRes.outz("Login 2 user= " + user);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-58));
			message.writer().writeUTF(user);
			message.writer().writeByte(1);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void requestRoomList()
	{
		requestEmptyRoom(0, -1, null);
	}

	public void requestEmptyRoom(sbyte type, sbyte level, string id)
	{
		CRes.outz("request empty room");
		Message message = new Message((sbyte)(-28));
		try
		{
			message.writer().writeByte(type);
			if (type == 1)
			{
				message.writer().writeByte(level);
			}
			if (type == 2)
			{
				message.writer().writeUTF(id);
			}
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		InfoDlg.showWait();
		message.cleanup();
	}

	public void top(sbyte action)
	{
		Message message = new Message((sbyte)(-57));
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendM TOP: " + action);
	}

	public void requestBoardList(sbyte id)
	{
		Message message = new Message((sbyte)7);
		try
		{
			message.writer().writeByte(id);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendM RequestBoardList BID: " + id);
	}

	public void trainingID(sbyte id)
	{
		Message message = new Message((sbyte)(-29));
		try
		{
			message.writer().writeByte(id);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendM RequestBoardList BID: " + id);
	}

	public void joinBoard(sbyte roomID, sbyte boardID, string pass)
	{
		Message message = new Message((sbyte)8);
		try
		{
			message.writer().writeByte(roomID);
			message.writer().writeByte(boardID);
			message.writer().writeUTF(pass);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void setBoardName(string boardName)
	{
		Message message = new Message((sbyte)54);
		try
		{
			message.writer().writeUTF(boardName);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void changeMODE(sbyte MODE_TYPE)
	{
		Message message = new Message((sbyte)73);
		try
		{
			message.writer().writeByte(MODE_TYPE);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("GUI M - CHANGE_MODE: " + ((MODE_TYPE != 0) ? "FREE_MODE" : "TEAM_MODE"));
	}

	public void leaveBoard()
	{
		Message message = new Message((sbyte)15);
		session.sendMessage(message);
		message.cleanup();
		mSystem.mNotify();
		CRes.outz("GUI MESSAGE: LEAVE BOARD");
	}

	public void ready(bool isReady)
	{
		Message message = new Message((sbyte)16);
		try
		{
			message.writer().writeBool(isReady);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void setMoney(int money)
	{
		CRes.outz("set money " + money);
		Message message = new Message((sbyte)19);
		try
		{
			message.writer().writeInt(money);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void setPassword(string pass)
	{
		Message message = new Message((sbyte)18);
		try
		{
			message.writer().writeUTF(pass);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void chatToBoard(string text)
	{
		Message message = new Message((sbyte)9);
		try
		{
			message.writer().writeUTF(text);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void kick(int kickID)
	{
		Message message = new Message((sbyte)11);
		try
		{
			message.writer().writeInt(kickID);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendM Kick: ID" + kickID);
	}

	public void joinAnyBoard(sbyte select)
	{
		Message message = new Message((sbyte)28);
		try
		{
			message.writer().writeByte(select);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void checkFall(sbyte id, bool isLand)
	{
		Message message = new Message((sbyte)80);
		try
		{
			message.writer().writeByte(id);
			message.writer().writeBool(isLand);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void requestRichest(int page)
	{
		Message message = new Message((sbyte)31);
		try
		{
			message.writer().writeByte(page);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void requestStrongest(int page)
	{
		CRes.outz("request list : page= " + page);
		Message message = new Message((sbyte)30);
		try
		{
			message.writer().writeByte(page);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void requestRegister(string username, string pass, string usernameAo)
	{
		CRes.outz("Request Register " + usernameAo + " " + pass);
		try
		{
			Message message = new Message((sbyte)(-71));
			message.writer().writeUTF(username);
			message.writer().writeUTF(pass);
			message.writer().writeUTF(usernameAo);
			if (usernameAo != null && !usernameAo.Equals(string.Empty))
			{
				message.writer().writeUTF(usernameAo);
			}
			else
			{
				message.writer().writeUTF(string.Empty);
			}
			session.sendMessage(message);
			message.cleanup();
		}
		catch (IOException)
		{
		}
	}

	public void friend(sbyte action, int id)
	{
		CRes.outz("FRIEND");
		Message message = new Message((sbyte)29);
		try
		{
			message.writer().writeByte(action);
			if (action == 1 || action == 2)
			{
				message.writer().writeInt(id);
			}
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void searchFriend(string text)
	{
		Message message = new Message((sbyte)36);
		try
		{
			message.writer().writeUTF(text);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void addFriend(int id)
	{
		Message message = new Message((sbyte)32);
		try
		{
			message.writer().writeInt(id);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void deleteFriend(int id)
	{
		Message message = new Message((sbyte)33);
		try
		{
			message.writer().writeInt(id);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void requestAvatar(short avatar)
	{
		Message message = new Message((sbyte)38);
		try
		{
			message.writer().writeShort(avatar);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void chatTo(int iddb, string text)
	{
		Message message = new Message((sbyte)5);
		try
		{
			message.writer().writeInt(iddb);
			message.writer().writeUTF(text);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void requestUserData()
	{
		Message message = new Message((sbyte)40);
		session.sendMessage(message);
		message.cleanup();
	}

	public void ping()
	{
		CRes.outz("SEND PING " + (sbyte)(-102));
		Message message = new Message((sbyte)(-102));
		try
		{
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void requestAvatarShop()
	{
		Message message = new Message((sbyte)39);
		session.sendMessage(message);
		message.cleanup();
	}

	public void updateDateProfile(UserData userData)
	{
		Message message = new Message((sbyte)41);
		try
		{
			message.writer().writeUTF(userData.fullname);
			message.writer().writeByte(userData.gender);
			message.writer().writeInt(userData.birthYear);
			message.writer().writeUTF(userData.address);
			message.writer().writeUTF(userData.idnumber);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void buyAvatar(short id)
	{
		Message message = new Message((sbyte)43);
		try
		{
			message.writer().writeShort(id);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
	}

	public void setProvider(sbyte provider)
	{
		CRes.outz("gui provider= " + provider);
		Message message = new Message((sbyte)58);
		try
		{
			message.writer().writeByte(provider);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
	}

	public void doPayment(string seri, string mathe, sbyte type)
	{
		Message message = new Message((sbyte)(-62));
		try
		{
			message.writer().writeUTF(seri);
			message.writer().writeUTF(mathe);
			message.writer().writeByte(type);
			CRes.outz((type != 0) ? "Nap ngoc" : "Nap vang");
		}
		catch (IOException ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void training()
	{
		CRes.outz("send Training");
		Message message = new Message((sbyte)83);
		session.sendMessage(message);
		message.cleanup();
	}

	public void doLoadCard(string text, string text2, string link)
	{
		Message message = new Message((sbyte)77);
		try
		{
			message.writer().writeUTF(text);
			message.writer().writeUTF(text2);
			message.writer().writeUTF(link);
		}
		catch (IOException ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void sendAdminCommand(string cmd)
	{
		Message message = new Message((sbyte)47);
		try
		{
			message.writer().writeUTF(cmd);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
	}

	public void startGame()
	{
		CRes.outz("gui start game");
		Message message = new Message((sbyte)20);
		session.sendMessage(message);
		message.cleanup();
	}

	public void mapSelect(sbyte mapID)
	{
		Message message = new Message((sbyte)75);
		CRes.outz("gui map " + mapID);
		try
		{
			message.writer().writeByte(mapID);
		}
		catch (IOException ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void trainingMap()
	{
		Message message = new Message((sbyte)(-6));
		session.sendMessage(message);
		message.cleanup();
	}

	public void check_cross(sbyte n, int[] x, int[] y)
	{
		Message message = new Message((sbyte)79);
		try
		{
			message.writer().writeByte(n);
			for (int i = 0; i < n; i++)
			{
				CRes.outz("x= " + x[i]);
				message.writer().writeInt(x[i]);
				message.writer().writeInt(y[i]);
			}
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void move(short x, short y)
	{
		Message message = new Message((sbyte)21);
		try
		{
			message.writer().writeShort(x);
			message.writer().writeShort(y);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("GUI MOVE: x=" + x + " y=" + y);
	}

	public void waitForFIRETraining(sbyte type, short x, short y, short angle, sbyte force, sbyte force_2, sbyte numShoot)
	{
		Message message = new Message((sbyte)84);
		try
		{
			message.writer().writeByte(type);
			message.writer().writeShort(x);
			message.writer().writeShort(y);
			message.writer().writeShort(angle);
			message.writer().writeByte(force);
			if (Bullet.isDoubleBull(type))
			{
				message.writer().writeByte(force_2);
			}
			message.writer().writeByte(numShoot);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendWait_Fire bull: " + type + " nShoot: " + numShoot + " force2= " + force_2);
	}

	public void waitForFIRE(sbyte type, short x, short y, short angle, sbyte force, sbyte force_2, sbyte numShoot)
	{
		Message message = new Message((sbyte)22);
		try
		{
			message.writer().writeByte(type);
			message.writer().writeShort(x);
			message.writer().writeShort(y);
			message.writer().writeShort(angle);
			message.writer().writeByte(force);
			if (Bullet.isDoubleBull(type))
			{
				message.writer().writeByte(force_2);
			}
			message.writer().writeByte(numShoot);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendWait_Fire bull: " + type + " nShoot: " + numShoot + " force2= " + force_2 + " X= " + x + " Y= " + y + " angle= " + angle);
	}

	public void shootResult()
	{
		if (!GameScr.trainingMode)
		{
			CRes.outz("SHOOT RESULT");
			Message message = new Message((sbyte)23);
			session.sendMessage(message);
			message.cleanup();
		}
	}

	public void requiredUpdateXY(short x, short y)
	{
		if (!GameScr.trainingMode && !CPlayer.isShooting)
		{
			Message message = new Message((sbyte)53);
			try
			{
				message.writer().writeShort(x);
				message.writer().writeShort(y);
			}
			catch (Exception ex)
			{
				ex.StackTrace.ToString();
			}
			session.sendMessage(message);
			message.cleanup();
		}
	}

	public void inviteFriend(bool isList, int id)
	{
		Message message = new Message((sbyte)78);
		try
		{
			message.writer().writeBool(isList);
			message.writer().writeInt(id);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void skipTurn()
	{
		if (!GameScr.trainingMode)
		{
			Message message = new Message((sbyte)49);
			session.sendMessage(message);
			message.cleanup();
			CRes.outz("Send SkipTurn");
		}
	}

	public void useItem(sbyte item)
	{
		Message message = new Message((sbyte)26);
		try
		{
			message.writer().writeByte(item);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendM UseITEM " + item);
	}

	public void changeGun(sbyte newGun)
	{
		Message message = new Message((sbyte)69);
		try
		{
			message.writer().writeByte(newGun);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendM chooseGun " + newGun);
	}

	public void selectMap(sbyte map)
	{
		Message message = new Message((sbyte)70);
		try
		{
			message.writer().writeByte(map);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		message.cleanup();
		CRes.outz("SendM ChangeMap " + map);
	}

	public void changeTeam()
	{
		Message message = new Message((sbyte)71);
		session.sendMessage(message);
		message.cleanup();
	}

	public void disconnect()
	{
		Message message = new Message((sbyte)(-4));
		session.sendMessage(message);
		message.cleanup();
	}

	public void setMaxPlayer(int max)
	{
		Message message = new Message((sbyte)56);
		try
		{
			message.writer().writeByte(max);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
	}

	public void requestChangePass(string oldPass, string newPass)
	{
		Message message = new Message((sbyte)81);
		try
		{
			message.writer().writeUTF(oldPass);
			message.writer().writeUTF(newPass);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
	}

	public void requestBuyItem(sbyte type, short id, sbyte numBuy)
	{
		CRes.outz("Buy Item id" + id);
		Message message = new Message((sbyte)72);
		try
		{
			message.writer().writeByte(type);
			message.writer().writeShort(id);
			message.writer().writeByte(numBuy);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		InfoDlg.showWait();
	}

	public void buyGun(sbyte gunID, sbyte type)
	{
		Message message = new Message((sbyte)74);
		try
		{
			message.writer().writeByte(gunID);
			message.writer().writeByte(type);
		}
		catch (Exception)
		{
		}
		session.sendMessage(message);
		CRes.outz("SendM BuyGun " + gunID);
	}

	public void requestService(sbyte service, string arg)
	{
		if (arg == null)
		{
			arg = string.Empty;
		}
		Message message = new Message((sbyte)85);
		try
		{
			message.writer().writeByte(service);
			message.writer().writeUTF(arg);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void forgetPass(string arg)
	{
		if (arg == null)
		{
			arg = string.Empty;
		}
		Message message = new Message((sbyte)(-61));
		try
		{
			message.writer().writeUTF(arg);
		}
		catch (Exception ex)
		{
			Cout.LogTryCatch("forgetPass: " + ex.ToString());
		}
		session.sendMessage(message);
	}

	public void zingConnect(string user, string key, sbyte bigProvider, string version)
	{
		Message message = new Message((sbyte)87);
		try
		{
			message.writer().writeUTF(user);
			message.writer().writeUTF(key);
			message.writer().write(bigProvider);
			message.writer().writeUTF(version);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void getstring(string str)
	{
		Message message = new Message(sbyte.MaxValue);
		try
		{
			CRes.outz("string = " + str);
			message.writer().writeUTF(str);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void getProviderAgent()
	{
		CRes.outz("get provider and agent");
		Message message = new Message((sbyte)(-26));
		session.sendMessage(message);
	}

	public void addPoint(sbyte index)
	{
		Message message = new Message((sbyte)(-46));
		try
		{
			message.writer().writeByte(1);
			message.writer().writeByte(index);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void changeEquip(int[] id)
	{
		CRes.outz("CHANGE EQUIP");
		Message message = new Message((sbyte)102);
		try
		{
			for (int i = 0; i < id.Length; i++)
			{
				message.writer().writeInt(id[i]);
				CRes.outz("qweqwdasdsad= " + id[i]);
			}
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void getShopEquip()
	{
		CRes.outz("request shop equip");
		Message message = new Message((sbyte)103);
		session.sendMessage(message);
	}

	public void getShopItem()
	{
		CRes.outz("request shop equip");
		Message message = new Message((sbyte)(-33));
		session.sendMessage(message);
	}

	public void buy_sell_Equip(sbyte action, int[] index, short ind, sbyte money)
	{
		Message message = new Message((sbyte)104);
		try
		{
			message.writer().writeByte(action);
			if (action == 1)
			{
				message.writer().writeByte(index.Length);
				for (int i = 0; i < index.Length; i++)
				{
					message.writer().writeInt(index[i]);
				}
			}
			if (action == 0)
			{
				message.writer().writeShort(ind);
				message.writer().writeByte(money);
			}
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void sendRulet(sbyte money)
	{
		Message message = new Message((sbyte)110);
		try
		{
			message.writer().writeByte(money);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
		CRes.outz("SEND RULET");
	}

	public void charactorUpgrade()
	{
		Message message = new Message((sbyte)(-46));
		try
		{
			message.writer().writeByte(0);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
		InfoDlg.showWait();
	}

	public void charactorInfo()
	{
		Message message = new Message((sbyte)99);
		session.sendMessage(message);
	}

	public void platform_request()
	{
		Message message = new Message((sbyte)114);
		try
		{
			message.writer().writeByte(Main.clientType);
			message.writer().writeByte(mGraphics.zoomLevel);
			message.writer().writeUTF(MyMidlet.version);
			CRes.outz("----------------gui version " + MyMidlet.version + " ,zoomlevel=" + mGraphics.zoomLevel);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void vip_equip(sbyte action, int dbKey)
	{
		CRes.outz("GUI + " + action);
		Message message = new Message((sbyte)(-2));
		try
		{
			message.writer().writeByte(action);
			message.writer().writeInt(dbKey);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void clanRequest()
	{
		Message message = new Message((sbyte)(-108));
		session.sendMessage(message);
	}

	public void topClan()
	{
		Message message = new Message((sbyte)(-117));
		session.sendMessage(message);
	}

	public void getClanIcon(short id)
	{
		if (id == 0 || id == -1)
		{
			return;
		}
		Image image = null;
		if (CCanvas.iconMn.isExist(id))
		{
			CRes.outz("tim thay icon");
			image = CCanvas.iconMn.getImage(id);
			GameLogicHandler.gI().onGetImage(id, image);
			return;
		}
		CRes.outz("request icon");
		Message message = new Message((sbyte)115);
		try
		{
			message.writer().writeShort(id);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void clanInfo(short id)
	{
		CRes.outz("get Clan Info");
		Message message = new Message((sbyte)(-108));
		try
		{
			message.writer().writeShort(id);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void clanMember(sbyte page, short id)
	{
		CRes.outz("get Clan member");
		Message message = new Message((sbyte)(-105));
		try
		{
			message.writer().writeByte(page);
			message.writer().writeShort(id);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void chatTeam(string mess)
	{
		Message message = new Message((sbyte)123);
		try
		{
			message.writer().writeUTF(mess);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void getMaterialIcon(short id)
	{
		CRes.outz("get material icon " + id);
		Message message = new Message((sbyte)126);
		try
		{
			message.writer().writeShort(id);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void getFomula(sbyte id, sbyte action, sbyte level)
	{
		CRes.outz("get fomula");
		Message message = new Message((sbyte)(-18));
		try
		{
			message.writer().writeByte(id);
			message.writer().writeByte(action);
			if (action == 2)
			{
				message.writer().writeByte(level);
			}
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void imbue(sbyte type, sbyte num, int[] id, sbyte[] nSelect)
	{
		Message message = new Message((sbyte)17);
		try
		{
			if (type == 0)
			{
				message.writer().writeByte(type);
				message.writer().writeByte(num);
				CRes.outz("Num= " + num);
				for (int i = 0; i < num; i++)
				{
					message.writer().writeInt(id[i]);
					message.writer().writeByte(nSelect[i]);
					CRes.outz("ID= " + id[i]);
				}
			}
			if (type == 1)
			{
				message.writer().writeByte(type);
			}
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void getShopLinhtinh(sbyte action, sbyte typeMoney, sbyte id, sbyte num)
	{
		Message message = new Message((sbyte)(-3));
		try
		{
			message.writer().writeByte(action);
			if (action == 1)
			{
				message.writer().writeByte(typeMoney);
				message.writer().writeByte(id);
				message.writer().writeByte(num);
			}
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void signOut()
	{
		Message message = new Message((sbyte)(-4));
		session.sendMessage(message);
	}

	public void changeRoomName()
	{
		Message message = new Message((sbyte)(-19));
		session.sendMessage(message);
	}

	public void getShopBietDoi(sbyte action, sbyte money, sbyte id)
	{
		Message message = new Message((sbyte)(-12));
		try
		{
			message.writer().writeByte(action);
			if (action == 1)
			{
				message.writer().writeByte(money);
				message.writer().writeByte(id);
			}
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		session.sendMessage(message);
	}

	public void bangxephang(sbyte type, int page)
	{
		CRes.outz("request list : page= " + page);
		Message message = new Message((sbyte)(-14));
		try
		{
			message.writer().writeByte(type);
			if (type != -1)
			{
			}
			message.writer().writeByte(page);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void luckGift(sbyte id)
	{
		CRes.outz("Send Lucky Gift");
		Message message = new Message((sbyte)(-17));
		try
		{
			message.writer().writeByte(id);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void mission(sbyte type, sbyte id)
	{
		CRes.outz("Get mission");
		Message message = new Message((sbyte)(-23));
		try
		{
			message.writer().writeByte(type);
			if (type == 1)
			{
				message.writer().writeByte(id);
			}
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void inputMoney(sbyte type, int money)
	{
		CRes.outz("Gop tien " + type + " soluong= " + money);
		Message message = new Message((sbyte)(-21));
		try
		{
			message.writer().writeByte(type);
			message.writer().writeInt(money);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void get_more_day(sbyte action, int id)
	{
		CRes.outz("Gia han");
		Message message = new Message((sbyte)(-25));
		try
		{
			message.writer().writeByte(action);
			message.writer().writeInt(id);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void getEffData(short id)
	{
		CRes.outz("gui eff id");
		Message message = null;
		try
		{
			message = new Message((sbyte)(-112));
			message.writer().writeShort(id);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void requestData()
	{
		CRes.outz("REQUEST DATA");
		Message message = new Message((sbyte)(-31));
		session.sendMessage(message);
		message.cleanup();
	}

	public void requestBig()
	{
		CRes.outz("REQUEST BIG");
		Message message = new Message((sbyte)(-60));
		session.sendMessage(message);
		message.cleanup();
	}

	public void requestBackground()
	{
		CRes.outz("REQUEST BACK GROUND");
		Message message = new Message((sbyte)(-55));
		session.sendMessage(message);
		message.cleanup();
	}

	public void requesItem()
	{
		CRes.outz("REQUEST ITEM");
		Message message = new Message((sbyte)(-32));
		session.sendMessage(message);
		message.cleanup();
	}

	public void loadDataOk()
	{
		CRes.outz("loadDataOk");
		Message message = new Message((sbyte)(-37));
		session.sendMessage(message);
		message.cleanup();
	}

	public void moveItem(sbyte type, sbyte id)
	{
		CRes.outz("get +" + type + " id= " + id);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-44));
			message.writer().writeByte(type);
			message.writer().writeByte(id);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void getItem(sbyte type, sbyte id)
	{
		CRes.outz("get +" + type + " id= " + id);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-47));
			message.writer().writeByte(type);
			message.writer().writeByte(id);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void getBull(short id)
	{
		CRes.outz("GET BULL ID " + id);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-40));
			message.writer().writeShort(id);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void startGameOk()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-67));
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void requestMapData()
	{
		CRes.outz("REQUEST DATA");
		Message message = new Message((sbyte)(-38));
		session.sendMessage(message);
		message.cleanup();
	}

	public void createChar(string name, short t1, short t2, short t3, short t4, short t5, short t6)
	{
		CRes.outz("CREATE CHAR");
		Message message = new Message((sbyte)(-99));
		try
		{
			message.writer().writeUTF(name);
			message.writer().writeShort(t1);
			message.writer().writeShort(t2);
			message.writer().writeShort(t3);
			message.writer().writeShort(t4);
			message.writer().writeShort(t5);
			message.writer().writeShort(t6);
			CRes.outz("name= " + name + " head" + t1 + " leg " + t2 + " body" + t3 + " wing" + t4 + "weapon " + t5 + " balo " + t6);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void requestTab(sbyte index, sbyte page)
	{
		CRes.outz("request tab " + index + " page= " + page);
		Message message = new Message((sbyte)(-43));
		try
		{
			message.writer().writeByte(index);
			message.writer().writeByte(page);
			session.sendMessage(message);
			InfoDlg.showWait();
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void sendNPCMenu(sbyte index)
	{
		CRes.outz(">> Gui menu giao tiep");
		Message message = new Message((sbyte)(-47));
		try
		{
			message.writer().writeByte(index);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		InfoDlg.showWait();
		message.cleanup();
	}

	public void sellItemInBag(sbyte index)
	{
		CRes.outz(">> ban item tai vi tri " + index);
		Message message = new Message((sbyte)(-48));
		try
		{
			message.writer().writeByte(index);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		InfoDlg.showWait();
		message.cleanup();
	}

	public void useItemInBag(sbyte index)
	{
		CRes.outz(">> su dung item trong BAG tai vi tri " + index);
		Message message = new Message((sbyte)26);
		try
		{
			message.writer().writeByte(index);
			message.writer().writeByte(1);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		InfoDlg.showWait();
		message.cleanup();
	}

	public void useItemInBody(sbyte index)
	{
		CRes.outz(">> su dung item trong BODY tai vi tri " + index);
		Message message = new Message((sbyte)26);
		try
		{
			message.writer().writeByte(index);
			message.writer().writeByte(0);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		InfoDlg.showWait();
		message.cleanup();
	}

	public void joinRoomWithPass(string pass)
	{
		Message message = new Message((sbyte)(-28));
		try
		{
			message.writer().writeByte(3);
			message.writer().writeUTF(pass);
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		InfoDlg.showWait();
		message.cleanup();
	}

	public void khamNam(int idItem, int idNgoc1, int idNgoc2, int idNgoc3)
	{
		Message message = new Message((sbyte)(-65));
		try
		{
			message.writer().writeByte(idItem);
			if (idNgoc1 != -1)
			{
				message.writer().writeByte(idNgoc1);
			}
			if (idNgoc2 != -1)
			{
				message.writer().writeByte(idNgoc2);
			}
			if (idNgoc3 != -1)
			{
				message.writer().writeByte(idNgoc3);
			}
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		InfoDlg.showWait();
		message.cleanup();
	}

	public void holeInfo(MyVector holeInfo)
	{
		Message message = new Message((sbyte)(-92));
		try
		{
			CRes.outz("so lo duc " + holeInfo.size());
			message.writer().writeByte(holeInfo.size());
			for (int i = 0; i < holeInfo.size(); i++)
			{
				HoleInfo holeInfo2 = (HoleInfo)holeInfo.elementAt(i);
				message.writer().writeShort(holeInfo2.mapID);
				message.writer().writeShort(holeInfo2.x);
				message.writer().writeShort(holeInfo2.y);
				message.writer().writeByte(holeInfo2.holeType);
				CRes.outz("da gui hole map " + holeInfo2.mapID + " x= " + holeInfo2.x + " y= " + holeInfo2.y + " type= " + holeInfo2.holeType);
			}
		}
		catch (IOException)
		{
		}
		session.sendMessage(message);
		message.cleanup();
	}

	public void clanImage(sbyte iD)
	{
	}

	public void clanMessage(int type, string text, int clanID)
	{
		Message message = null;
		try
		{
			CRes.outz("CLAN MESSAGE type= " + type);
			message = new Message((sbyte)(-106));
			message.writer().writeByte(type);
			if (type == 0)
			{
				message.writer().writeUTF(text);
			}
			if (type == 2)
			{
				message.writer().writeInt(clanID);
			}
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void leaveClan()
	{
		CRes.outz("LEAVE CLAN");
		Message message = null;
		try
		{
			message = new Message((sbyte)(-109));
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void getClan(sbyte action, short id, string text, sbyte page)
	{
		CRes.outz("get clan + " + id);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-103));
			message.writer().writeByte(action);
			if (action == 2 || action == 4)
			{
				message.writer().writeShort(id);
				message.writer().writeUTF(text);
				CRes.outz("SEND SLOGAN= " + text);
			}
			else
			{
				message.writer().writeByte(page);
			}
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void searchClan(string text)
	{
		CRes.outz("send SEARCH CLAN " + text);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-113));
			message.writer().writeUTF(text);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void joinClan(int id, sbyte action)
	{
		CRes.outz("JOIN CLAN " + id);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-104));
			message.writer().writeInt(id);
			message.writer().writeByte(action);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void clanDonate(int id)
	{
	}

	public void clanInvite(sbyte action, int playerID, int clanID, int code)
	{
		CRes.outz("invite action = " + action + "layerid= " + playerID + " clanID= " + clanID + " code= " + code);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-111));
			message.writer().writeByte(action);
			if (action == 0)
			{
				message.writer().writeInt(playerID);
			}
			if (action == 1 || action == 2)
			{
				message.writer().writeInt(clanID);
				message.writer().writeInt(code);
			}
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void logout()
	{
		CRes.outz("LOGOUT");
		Message message = null;
		try
		{
			message = new Message((sbyte)2);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void shopClan(sbyte page)
	{
		CRes.outz("shop clan page " + page);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-118));
			message.writer().writeByte(page);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void clanStatus()
	{
		Message message = new Message((sbyte)(-119));
		session.sendMessage(message);
	}

	public void checkAd(sbyte status)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)121);
			message.writer().writeByte(status);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void focusSkill(sbyte action, sbyte index)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-91));
			message.writer().writeByte(action);
			message.writer().writeByte(index);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void viewAchievement()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)88);
			message.writer().writeByte(0);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void nhanAchievement(sbyte id)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)88);
			message.writer().writeByte(1);
			message.writer().writeByte(id);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void joinRPG()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)0);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void moveRPG(int x, int y)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)2);
			message.writer().writeShort(x);
			message.writer().writeShort(y);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void chatRPG(string text)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)3);
			message.writer().writeUTF(text);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void invite(sbyte chair)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)4);
			message.writer().writeByte(chair);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void invite_ok()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)5);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void leaveRPG()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)1);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void getPlayerMenu(int playerID)
	{
	}

	public void giaodich(sbyte action, int playerID, sbyte index, int num)
	{
		CRes.outz("giao dich action = " + action);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)9);
			message.writer().writeByte(action);
			if (action == 0 || action == 1)
			{
				message.writer().writeInt(playerID);
			}
			if (action == 2)
			{
				CRes.outz("gui len indxe =" + index + " num= " + num);
				message.writer().writeByte(index);
				message.writer().writeInt(num);
			}
			if (action == 4)
			{
				message.writer().writeByte(index);
			}
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void openUIZone()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)7);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void requestChangeZone(int zoneId, int indexUI)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)8);
			message.writer().writeByte(zoneId);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void openMenu(int npcId)
	{
		CRes.outz("npc id" + npcId);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)11);
			message.writer().writeShort(npcId);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void menu(int npcId, int menuId, int optionId)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)12);
			message.writer().writeByte(npcId);
			message.writer().writeByte(menuId);
			message.writer().writeByte(optionId);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void confirmMenu(sbyte select)
	{
		CRes.outz("confirme menu=" + select);
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)12);
			message.writer().writeByte(select);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void requestMapFilter()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)14);
			message.writer().writeByte(0);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void chooseMapFilter(bool chon, sbyte select)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)14);
			message.writer().writeByte(chon ? 1 : 2);
			message.writer().writeByte(select);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void requestMoneyFilter()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)14);
			message.writer().writeByte(3);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void chooseMoneyFilter(bool chon, sbyte select)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)14);
			message.writer().writeByte((!chon) ? 5 : 4);
			message.writer().writeByte(select);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void viewPlayerInfo(int IDDB)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-126));
			message.writer().writeInt(IDDB);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void repairAllItem()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)(-98));
			message.writer().writeByte((sbyte)16);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void charInfo(string day, string month, string year, string address, string cmnd, string dayCmnd, string noiCapCmnd, string sdt, string name)
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)43);
			message.writer().writeUTF(day);
			message.writer().writeUTF(month);
			message.writer().writeUTF(year);
			message.writer().writeUTF(address);
			message.writer().writeUTF(cmnd);
			message.writer().writeUTF(dayCmnd);
			message.writer().writeUTF(noiCapCmnd);
			message.writer().writeUTF(sdt);
			message.writer().writeUTF(name);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}

	public void openChest()
	{
		Message message = null;
		try
		{
			message = new Message((sbyte)119);
			session.sendMessage(message);
		}
		catch (Exception ex)
		{
			ex.StackTrace.ToString();
		}
		finally
		{
			message.cleanup();
		}
	}
}
