internal void CreateGroup(string Name, string Desc, uint RoomId, string Badge, GameClient Session, int Colour1, int Colour2, out Guild Group) { using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { queryreactor.setQuery(string.Concat(new object[] { "INSERT INTO groups (`name`, `desc`,`badge`,`owner_id`,`created`,`room_id`,`colour1`,`colour2`) VALUES(@name, @desc, @badge, ", Session.GetHabbo().Id, ", UNIX_TIMESTAMP(), ", RoomId, ",'", Colour1, "','", Colour2, "')" })); queryreactor.addParameter("name", Name); queryreactor.addParameter("desc", Desc); queryreactor.addParameter("badge", Badge); uint num = checked ((uint)queryreactor.insertQuery()); queryreactor.runFastQuery(string.Concat(new object[] { "UPDATE rooms SET group_id=", num, " WHERE id=", RoomId, " LIMIT 1" })); Dictionary <uint, GroupUser> dictionary = new Dictionary <uint, GroupUser>(); dictionary.Add(Session.GetHabbo().Id, new GroupUser(Session.GetHabbo().Id, num, 2)); this.Groups.Add(num, new Guild(num, Name, Desc, RoomId, Badge, CyberEnvironment.GetUnixTimestamp(), Session.GetHabbo().Id, Colour1, Colour2, dictionary, new List <uint>(), new Dictionary <uint, GroupUser>(), 0u, 1u, false, Name, Desc, 0, 0.0, 0, "", 0)); queryreactor.runFastQuery(string.Concat(new object[] { "INSERT INTO group_memberships (group_id, user_id, rank) VALUES (", num, ", ", Session.GetHabbo().Id, ", '2')" })); Group = this.GetGroup(num); GroupUser User = new GroupUser(Session.GetHabbo().Id, num, 2); Session.GetHabbo().UserGroups.Add(User); Group.Admins.Add(Session.GetHabbo().Id, User); queryreactor.runFastQuery(string.Concat(new object[] { "UPDATE user_stats SET favourite_group=", num, " WHERE id= ", Session.GetHabbo().Id, " LIMIT 1" })); queryreactor.runFastQuery("DELETE FROM room_rights WHERE room_id=" + RoomId); } }
internal void CreateGroup(string Name, string Desc, uint RoomId, string Badge, GameClient Session, int Colour1, int Colour2, out Guild Group) { using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { queryreactor.setQuery(string.Concat(new object[] { "INSERT INTO groups (`name`, `desc`,`badge`,`owner_id`,`created`,`room_id`,`colour1`,`colour2`) VALUES(@name, @desc, @badge, ", Session.GetHabbo().Id, ", UNIX_TIMESTAMP(), ", RoomId, ",'", Colour1, "','", Colour2, "')" })); queryreactor.addParameter("name", Name); queryreactor.addParameter("desc", Desc); queryreactor.addParameter("badge", Badge); uint num = checked((uint)queryreactor.insertQuery()); queryreactor.runFastQuery(string.Concat(new object[] { "UPDATE rooms SET group_id=", num, " WHERE id=", RoomId, " LIMIT 1" })); Dictionary<uint, GroupUser> dictionary = new Dictionary<uint, GroupUser>(); dictionary.Add(Session.GetHabbo().Id, new GroupUser(Session.GetHabbo().Id, num, 2)); this.Groups.Add(num, new Guild(num, Name, Desc, RoomId, Badge, CyberEnvironment.GetUnixTimestamp(), Session.GetHabbo().Id, Colour1, Colour2, dictionary, new List<uint>(), new Dictionary<uint, GroupUser>(), 0u, 1u, false, Name, Desc, 0, 0.0, 0, "", 0)); queryreactor.runFastQuery(string.Concat(new object[] { "INSERT INTO group_memberships (group_id, user_id, rank) VALUES (", num, ", ", Session.GetHabbo().Id, ", '2')" })); Group = this.GetGroup(num); GroupUser User = new GroupUser(Session.GetHabbo().Id, num, 2); Session.GetHabbo().UserGroups.Add(User); Group.Admins.Add(Session.GetHabbo().Id, User); queryreactor.runFastQuery(string.Concat(new object[] { "UPDATE user_stats SET favourite_group=", num, " WHERE id= ", Session.GetHabbo().Id, " LIMIT 1" })); queryreactor.runFastQuery("DELETE FROM room_rights WHERE room_id=" + RoomId); } }
internal List <GroupUser> GetGroupUsersByString(Guild Group, string SearchVal, uint Req) { List <GroupUser> list = new List <GroupUser>(); if (string.IsNullOrWhiteSpace(SearchVal)) { if (Req == 0u) { using (Dictionary <uint, GroupUser> .ValueCollection.Enumerator enumerator = Group.Members.Values.GetEnumerator()) { while (enumerator.MoveNext()) { GroupUser current = enumerator.Current; list.Add(current); } return(list); } } using (Dictionary <uint, GroupUser> .ValueCollection.Enumerator enumerator2 = Group.Admins.Values.GetEnumerator()) { while (enumerator2.MoveNext()) { GroupUser current2 = enumerator2.Current; list.Add(current2); } return(list); } } using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor()) { queryreactor.setQuery("SELECT id FROM users WHERE username LIKE @query"); queryreactor.addParameter("query", "%" + SearchVal + "%"); DataTable table = queryreactor.getTable(); if (table == null) { if (Req == 0u) { using (Dictionary <uint, GroupUser> .ValueCollection.Enumerator enumerator3 = Group.Members.Values.GetEnumerator()) { while (enumerator3.MoveNext()) { GroupUser current3 = enumerator3.Current; list.Add(current3); } goto IL_1CD; } } using (Dictionary <uint, GroupUser> .ValueCollection.Enumerator enumerator4 = Group.Admins.Values.GetEnumerator()) { while (enumerator4.MoveNext()) { GroupUser current4 = enumerator4.Current; list.Add(current4); } goto IL_1CD; } } foreach (DataRow dataRow in table.Rows) { if (Group.Members.ContainsKey((uint)dataRow[0])) { list.Add(Group.Members[(uint)dataRow[0]]); } } IL_1CD :; } return(list); }
internal ServerMessage SerializeGroupMembers(ServerMessage Response, Guild Group, uint ReqType, GameClient Session, string SearchVal = "", int Page = 0) { if (Group == null || Session == null) { return(null); } if (Page < 1) { Page = 0; } List <List <GroupUser> > list = GroupManager.Split(this.GetGroupUsersByString(Group, SearchVal, ReqType)); Response.AppendUInt(Group.Id); Response.AppendString(Group.Name); Response.AppendUInt(Group.RoomId); Response.AppendString(Group.Badge); switch (ReqType) { case 0u: Response.AppendInt32(Group.Members.Count); Response.AppendInt32(list[Page].Count); using (List <GroupUser> .Enumerator enumerator = list[Page].GetEnumerator()) { while (enumerator.MoveNext()) { GroupUser current = enumerator.Current; Habbo habboForId = CyberEnvironment.getHabboForId(current.Id); if (habboForId == null) { Response.AppendInt32(0); Response.AppendInt32(0); Response.AppendString(""); Response.AppendString(""); Response.AppendString(""); } else { Response.AppendInt32((current.Rank == 2) ? 0 : ((current.Rank == 1) ? 1 : 2)); Response.AppendUInt(habboForId.Id); Response.AppendString(habboForId.Username); Response.AppendString(habboForId.Look); Response.AppendString(""); } } goto IL_367; } case 1u: break; case 2u: { List <List <uint> > list2 = GroupManager.Split(this.GetGroupRequestsByString(Group, SearchVal, ReqType)); Response.AppendInt32(Group.Requests.Count); if (Group.Requests.Count > 0) { Response.AppendInt32(list2[Page].Count); using (List <uint> .Enumerator enumerator2 = list2[Page].GetEnumerator()) { while (enumerator2.MoveNext()) { uint current2 = enumerator2.Current; Habbo habboForId2 = CyberEnvironment.getHabboForId(current2); if (habboForId2 == null) { Response.AppendInt32(0); Response.AppendInt32(0); Response.AppendString(""); Response.AppendString(""); Response.AppendString(""); } else { Response.AppendInt32(3); Response.AppendUInt(habboForId2.Id); Response.AppendString(habboForId2.Username); Response.AppendString(habboForId2.Look); Response.AppendString(""); } } goto IL_367; } } Response.AppendInt32(0); goto IL_367; } default: goto IL_367; } Response.AppendInt32(Group.Admins.Count); if (Group.Admins.Count > 0) { Response.AppendInt32(list[Page].Count); using (List <GroupUser> .Enumerator enumerator3 = list[Page].GetEnumerator()) { while (enumerator3.MoveNext()) { GroupUser current3 = enumerator3.Current; Habbo habboForId3 = CyberEnvironment.getHabboForId(current3.Id); if (habboForId3 == null) { Response.AppendInt32(0); Response.AppendInt32(0); Response.AppendString(""); Response.AppendString(""); Response.AppendString(""); } else { Response.AppendInt32((current3.Rank == 2) ? 0 : ((current3.Rank == 1) ? 1 : 2)); Response.AppendUInt(habboForId3.Id); Response.AppendString(habboForId3.Username); Response.AppendString(habboForId3.Look); Response.AppendString(""); } } goto IL_367; } } Response.AppendInt32(0); IL_367: Response.AppendBoolean(Session.GetHabbo().Id == Group.CreatorId); Response.AppendInt32(14); Response.AppendInt32(Page); Response.AppendUInt(ReqType); Response.AppendString(SearchVal); return(Response); }