using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using Chop.Database; //using Chop.Game.Misc; namespace Chop.User { public class Habbo { public int mID; public string mName; public string mFigure; public string mPoolFigure; public string mPassword; public string mMotto; public string mConsoleMotto; public int mCredits; public int mTickets; public int mFilms; public char mGender; public byte mRank; public string mLastVisit; // DateTime? public GameClient mClient; // Maybe not needed? public List mBadges; public Badge mCurrentBadge; // Facebook shit public string mRealName = "Leeroy"; public string mFacebookID = "10132"; //public ClubSubscription mSubscription; //public string GetPosition() //{ // if (mClient == null) // offline // return ""; // if (mClient.mRoom == null) // return "On hotel view"; // TODO: form config // if (mClient.mRoom.mTemplate.Publicroom_items != "") // In public room // return mClient.mRoom.mName; // return "Floor1b"; //} //public bool InRoom //{ // get { return mClient.mRoom != null; } //} //public int Credits { get { return mCredits; } } //public byte Rank { get { return mRank; } } public Habbo() { mBadges = new List(); } public static Habbo LoadByName(string pName) { using (DatabaseClient dbClient = Core.DatabaseManager.GetClient()) { dbClient.AddParamWithValue("name", pName); return Parse(dbClient.ReadDataRow("SELECT * FROM habbos WHERE name = @name")); } } public static Habbo LoadByID(int pID) { using (DatabaseClient dbClient = Core.DatabaseManager.GetClient()) { dbClient.AddParamWithValue("id", pID); return Parse(dbClient.ReadDataRow("SELECT * FROM habbos WHERE id = @id")); } } public static Habbo Parse(DataRow row) { Habbo habbo = new Habbo { mID = Convert.ToInt32(row["id"]), mName = row["name"].ToString(), mFigure = row["figure"].ToString(), mPoolFigure = row["poolfigure"].ToString(), mPassword = row["password"].ToString(), mMotto = row["motto"].ToString(), mConsoleMotto = row["consolemotto"].ToString(), mCredits = Convert.ToInt32(row["credits"]), mTickets = Convert.ToInt32(row["tickets"]), mFilms = Convert.ToInt32(row["films"]), mGender = Convert.ToChar(row["gender"]), mRank = Convert.ToByte(row["rank"]), mLastVisit = row["lastvisit"].ToString() }; return habbo; } public void UpdateColumn(string pColumn, object pValue) { using (DatabaseClient dbClient = Core.DatabaseManager.GetClient()) { dbClient.AddParamWithValue("id", mID); dbClient.AddParamWithValue("value", pValue); dbClient.ExecuteQuery("UPDATE habbos SET " + pColumn + " = @value WHERE id = @id"); } } public void UpdateColumns(Dictionary pContent) { string s = ""; int i = 0; using (DatabaseClient dbClient = Core.DatabaseManager.GetClient()) { dbClient.AddParamWithValue("id", mID); foreach (string column in pContent.Keys) { dbClient.AddParamWithValue("value" + i, pContent[column]); s += column + " = " + "@value" + i + ", "; i++; } dbClient.ExecuteQuery("UPDATE habbos SET " + s.Remove(s.Length - 2) + " WHERE id = @id"); } } public void LoadBadges() { mBadges.Clear(); using (DatabaseClient dbClient = Core.DatabaseManager.GetClient()) { dbClient.AddParamWithValue("id", mID); foreach (DataRow row in dbClient.ReadDataTable("SELECT * FROM badges WHERE userid = @id").Rows) { Badge sBadge = Badge.Parse(row); mBadges.Add(sBadge); if (sBadge.mIsCurrent) mCurrentBadge = sBadge; } } } //public void LoadSubscription() //{ // using (DatabaseClient dbClient = Core.DatabaseManager.GetClient()) // { // dbClient.AddParamWithValue("id", mID); // mSubscription = ClubSubscription.Parse(dbClient.ReadDataRow("SELECT * FROM club_subscriptions WHERE userid = @id")); // } //} //public string ToFuseString() //{ // ResponseBuilder r = new ResponseBuilder(); // r.AppendString(mClient.ID); // r.AppendString(mName); // r.AppendString(mFigure); // r.AppendString(mGender); // r.AppendString(mMotto); // r.AppendInt32(mTickets); // r.AppendString(mPoolFigure); // r.AppendInt32(mFilms); // return r.ToBytes(); //} } }