internal void ModMuteUser() { if (!Session.GetHabbo().HasFuse("fuse_mute")) { return; } var UserId = Request.PopWiredUInt(); var Message = Request.PopFixedString(); var MuteMinutes = Request.PopWiredInt32(); // 2 str: 1,2 Habbo TargetHabbo = UsersCache.getHabboCache(UserId); if (TargetHabbo == null) { return; } if (MuteMinutes == 34) { MuteMinutes = 60; } ModerationTool.MuteUser(Session, TargetHabbo, MuteMinutes, Message); }
internal static ServerMessage SerializeRoomTool(UInt32 RoomId) { var Room = OtanixEnvironment.GetGame().GetRoomManager().GetRoom(RoomId); if (Room == null || Room.RoomData == null) { return(null); } Habbo Owner = UsersCache.getHabboCache(Room.RoomData.OwnerId); var Message = new ServerMessage(Outgoing.RoomTool); Message.AppendUInt(RoomId); // flatId Message.AppendInt32(Room.RoomData.UsersNow); // userCount Message.AppendBoolean(Owner == null ? false : Owner.CurrentRoom == Room); // ownerInRoom Message.AppendUInt(Room.RoomData.OwnerId); // ownerId Message.AppendString(Room.RoomData.Owner); // ownerName Message.AppendBoolean(Room != null); // show data? if (Room != null) { Message.AppendString(Room.RoomData.Name); // roomName Message.AppendString(Room.RoomData.Description); // roomDesc Message.AppendInt32(Room.RoomData.Tags.Count); // tagsCount foreach (var Tag in Room.RoomData.Tags) // tags { Message.AppendString(Tag); } } return(Message); }
internal static ServerMessage SerializeRoomVisits(UInt32 UserId) { Habbo User = UsersCache.getHabboCache(UserId); ServerMessage Message = new ServerMessage(Outgoing.RoomsVisits); Message.AppendUInt(UserId); Message.AppendString(UsersCache.getUsernameById(UserId)); if (User == null) { Message.AppendInt32(0); } else { Message.AppendInt32(User.RoomsVisited.Count); foreach (RoomVisits Room in User.RoomsVisited) { // Message.AppendBoolean(Room.IsPublic); Message.AppendUInt(Room.RoomId); Message.AppendString(Room.RoomName); Message.AppendInt32(Room.Hour); Message.AppendInt32(Room.Minute); } } return(Message); }
internal void GetGroupUsersPage(int PageCount, ServerMessage Message) { List <GroupUser> users = new List <GroupUser>(); DataTable dTable = null; using (var dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT userid, rank, joined FROM groups_users WHERE groupid = '" + Id + "' ORDER BY rank ASC LIMIT " + (PageCount * 14) + ", 14"); dTable = dbClient.getTable(); } Message.AppendInt32(dTable.Rows.Count); foreach (DataRow dRow in dTable.Rows) { var zUser = UsersCache.getHabboCache(Convert.ToUInt32(dRow["userid"])); if (zUser == null) { Message.AppendInt32(2); Message.AppendInt32(0); Message.AppendString("BUGUED"); Message.AppendString(""); Message.AppendString(""); // Se ha unido el. continue; } Message.AppendInt32((int)dRow["rank"]); Message.AppendInt32((int)dRow["userid"]); Message.AppendString(zUser.Username); Message.AppendString(zUser.Look); Message.AppendString((string)dRow["joined"]); // Se ha unido el. } }
public void Get() { // Arrange long accountId = 1; var fakeNowProvider = new FakeNowProvider(); fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0); ITimeWarpStateCalculator calc = FakeTimeCalculatorFactory.GetTimeWarpStateCalculator(); var account = new Account(accountId, "ashley", "*****@*****.**", "beans"); var timeWarpUser = new TimeWarpUser(account, calc); var usersCache = new UsersCache(new[] { timeWarpUser }); var controller = new UserStateController(usersCache, fakeNowProvider, new FakeTimeWarpStatePersistence()); //act fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0, 5); var result = controller.Get(accountId); // Assert Assert.IsNotNull(result); Assert.AreEqual(accountId, result.AccountId); Assert.AreEqual(Public.Models.v001.TimeWarpState.None, result.State); }
private void GenerateMessage(int UsersCount) { Message = new ServerMessage(Outgoing.CommunityGoalHallOfFame); Message.AppendString(EventName); // landing.view.competition.hof." + x + ".rankdesc.X Message.AppendInt32(UsersCount); for (int i = 0; i < UsersCount; i++) { uint UserId = TopUsers[i]; if (UserId == 0) { break; } Habbo User = UsersCache.getHabboCache(UserId); if (User == null) { break; } Message.AppendUInt(User.Id); Message.AppendString(User.Username); Message.AppendString(User.Look); Message.AppendInt32(i); // rank Message.AppendUInt(User.CoinsPurchased); // piruletas } }
public LobbyServices(IUsersStore usersStore, GameBuildersCache gameBuildersCache, UsersCache usersCache, Func <User, string, Player> playerResolver) { _gameBuildersCache = gameBuildersCache; _usersStore = usersStore; _usersCache = usersCache; _playerResolver = playerResolver; }
public override bool IsEmpty() { lock (UsersCache) { return(UsersCache.All(x => x.Value.IsNull())); } }
internal void Serialize(ServerMessage Request) { Request.AppendUInt(FromUser); Request.AppendString(mUsername); var user = UsersCache.getHabboCache(mUsername); try { Request.AppendString((user != null) ? user.Look : ""); } catch { Request.AppendString(""); } }
public async Task Invoke(HttpContext context) { var taskUpdateFilter = UsersCache.UpdateUsersAndRoles(); DetectLanguage(context.Request); await taskUpdateFilter; await _next.Invoke(context); }
public VueLobbyInfo GetVueLobbyInfo() { return(new VueLobbyInfo() { Id = Id, IsPrivate = LobbyInfo.IsPrivate, Name = LobbyInfo.Name, PlayersCount = UsersCache.Count(x => x.Value.IsNotNull()) }); }
public void EndSession() { object ob = GetCurrentUserId(); if (ob != null && UsersCache.ContainsKey(ob)) { UsersCache.Remove(ob); } HttpContext.Current.Session.Remove("UserId"); }
internal void LoadLast() { using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT owner_id, date_created FROM groups_forums_boards WHERE groupid = '" + GroupId + "' AND sub_post_id = '" + this.Id + "' OR id = '" + this.Id + "' ORDER BY id DESC LIMIT 1"); DataRow dRow = dbClient.getRow(); if (dRow != null) { this.LastOwnerId = Convert.ToUInt32(dRow["owner_id"]); this.LastOwnerName = UsersCache.getUsernameById(this.LastOwnerId); this.LastUnix = Convert.ToDouble(dRow["date_created"]); } } }
internal void Serialize(ServerMessage Message) { Habbo user = UsersCache.getHabboCache(this.ReportedId); Message.AppendInt32(1); // length Message.AppendInt32(3); // type: Bully Message.AppendInt32((DateTime.Now - startedTimer).Seconds); // timer sec Message.AppendBoolean(user == null); // false = usuario, true = null if (user != null) { Message.AppendString(user.Username); Message.AppendString(user.Look); Message.AppendString((user.CurrentRoom == null) ? "" : user.CurrentRoom.RoomData.Name); } }
public void CreateNewAccountTest() { var accountsCache = new AccountsCache(Enumerable.Empty <Account>()); var userStateCache = new UsersCache(Enumerable.Empty <TimeWarpUser>()); var persistence = new FakeEntityPersistence <Account>(); var calc = FakeTimeCalculatorFactory.GetTimeWarpStateCalculator(); AccountController accountController = new AccountController(accountsCache, persistence, userStateCache, calc); var result = accountController.Post("new user", "eamil@sdaisd", "newPassword"); var stored = persistence.SavedItems.Single(); Assert.AreEqual(0, result); Assert.AreEqual("new user", stored.Name); Assert.AreEqual("eamil@sdaisd", stored.Email); }
public EntityService() { _dialogsCache = new DialogsCache(); _friendsCache = new FriendsCache(); _usersCache = new UsersCache(); _imageCache = new ImageCache(); _messagesCache = new MessagesCache(); Dialogs = new ObservableCollection<Dialog>(); Contacts = new ObservableCollection<PhoneContact>(); Friends = new ObservableCollection<FriendViewModel>(); FriendsRequests = new ObservableCollection<FriendViewModel>(); FriendsMutual = new ObservableCollection<FriendViewModel>(); AttachmentPhotos = new Dictionary<string, Stream>(); OtherUsers = new ObservableCollection<UserInfo>(); IsLoadingMessagesHistory = false; _settings = new Settings(new ProtectDataAdapter()); _stateCounter = new StateCounter(0, new List<int>()); DefaultAvatar = ResourceHelper.GetBitmap(@"/SlXnaApp1;component/Images/Photo_Placeholder.png"); CurrentUser = new CurrentUserInfo(null, DefaultAvatar); App.Current.UpdatesService.UserBecomeOffline += UpdatesService_UserBecomeOffline; App.Current.UpdatesService.UserBecomeOnline += UpdatesService_UserBecomeOnline; App.Current.UpdatesService.MessageAdded += UpdatesService_MessageAdded; App.Current.UpdatesService.MessageDeleted += UpdatesService_MessageDeleted; App.Current.UpdatesService.MessageFlagsChanged += UpdatesService_MessageFlagsChanged; App.Current.UpdatesService.MessageRemovedFlags += UpdatesService_MessageRemovedFlags; App.Current.UpdatesService.MessageSetFlags += UpdatesService_MessageSetFlags; App.Current.UpdatesService.ChatChanged += UpdatesService_ChatChanged; App.Current.UpdatesService.TypingInChatStarted += UpdatesService_TypingInChatStarted; App.Current.UpdatesService.TypingInGroupChatStarted += UpdatesService_TypingInGroupChatStarted; try { var info = App.GetResourceStream(new Uri("Resources/Untitled.wav", UriKind.Relative)); _soundEffect = SoundEffect.FromStream(info.Stream); } catch (Exception ex) { Debug.WriteLine("Loading SoundEffect failed: " + ex.Message); } }
internal static void FlushCache() { try { int usersCacheCount = UsersCache.ClearCache(); ClientMessageFactory.flushCache(); int totalRoomDataCount = OtanixEnvironment.GetGame().GetRoomManager().ClearRoomDataCache(); int groups = OtanixEnvironment.GetGame().GetGroup().ClearGroupsCache(); OtanixEnvironment.GetGame().GetLandingTopUsersManager().Load(); GC.Collect(); GC.WaitForPendingFinalizers(); Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine("[" + DateTime.Now.ToShortDateString() + "-" + DateTime.Now.ToShortTimeString() + "] finalizado " + usersCacheCount + " usuários, " + totalRoomDataCount + " quartos e " + groups + " grupos <" + integerClear + ">."); Console.ResetColor(); } finally { integerClear = 0; } }
public void Post() { // Arrange long accountId = 1; var fakeNowProvider = new FakeNowProvider(); fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0); ITimeWarpStateCalculator calc = FakeTimeCalculatorFactory.GetTimeWarpStateCalculator(); var account = new Account(accountId, "ashley", "*****@*****.**", "beans"); var timeWarpUser = new TimeWarpUser(account, calc); var usersCache = new UsersCache(new[] { timeWarpUser }); var persistence = new FakeTimeWarpStatePersistence(); var controller = new UserStateController(usersCache, fakeNowProvider, persistence); //act controller.Post(accountId, TimeWarpCommand.Rest); fakeNowProvider.Now = new DateTime(2000, 12, 12, 12, 12, 0, 5); var result = controller.Get(accountId); // Assert Assert.IsNotNull(result); Assert.AreEqual(accountId, result.AccountId); Assert.AreEqual(Public.Models.v001.TimeWarpState.Resting, result.State); Assert.AreEqual(TimeSpan.FromMilliseconds(095), result.TimeLeft); Assert.AreEqual(0.050000000000000044d, result.Progress); Assert.AreEqual(new DateTime(2000, 12, 12, 12, 12, 0, 0), result.PeriodStartTime); }
internal override void OnUserSay(RoomUser User, string Message) { if (User == null || User.GetClient() == null) { return; } if (GetRoom() == null) { return; } if (GetRoom().RoomData.OwnerId == User.HabboId) { if (Message.ToLower().Equals(LanguageLocale.GetValue("bot.soplon.keyword"))) { StringBuilder botMessage = new StringBuilder(); if (GetBotData().SoplonLeaveRoom.Count > 0) { foreach (UInt32 HabboId in GetBotData().SoplonLeaveRoom) { string Username = UsersCache.getUsernameById(HabboId); if (String.IsNullOrEmpty(Username)) { continue; } if ((LanguageLocale.GetValue("bot.soplon.leave").Length + botMessage.Length + Username.Length) >= 100) { botMessage = botMessage.Remove(botMessage.Length - 2, 2); ServerMessage ChatMessage = new ServerMessage(Outgoing.Talk); ChatMessage.AppendInt32(GetRoomUser().VirtualId); ChatMessage.AppendString(botMessage + " " + LanguageLocale.GetValue("bot.soplon.leave")); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(OtanixEnvironment.GetGame().GetRoomRankConfig().BOTS_DEFAULT_COLOR); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(-1); User.GetClient().SendMessage(ChatMessage); botMessage.Clear(); } botMessage.Append(Username + ", "); } if (botMessage.Length > 0) { botMessage = botMessage.Remove(botMessage.Length - 2, 2); ServerMessage ChatMessage = new ServerMessage(Outgoing.Talk); ChatMessage.AppendInt32(GetRoomUser().VirtualId); ChatMessage.AppendString(botMessage + " " + LanguageLocale.GetValue("bot.soplon.leave")); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(OtanixEnvironment.GetGame().GetRoomRankConfig().BOTS_DEFAULT_COLOR); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(-1); User.GetClient().SendMessage(ChatMessage); botMessage.Clear(); } GetBotData().SoplonLeaveRoom.Clear(); } if (GetBotData().SoplonOnRoom.Count > 0) { foreach (UInt32 HabboId in GetBotData().SoplonOnRoom) { string Username = UsersCache.getUsernameById(HabboId); if (String.IsNullOrEmpty(Username)) { continue; } if ((LanguageLocale.GetValue("bot.soplon.onroom").Length + botMessage.Length + Username.Length) >= 100) { botMessage = botMessage.Remove(botMessage.Length - 2, 2); ServerMessage ChatMessage = new ServerMessage(Outgoing.Talk); ChatMessage.AppendInt32(GetRoomUser().VirtualId); ChatMessage.AppendString(botMessage + " " + LanguageLocale.GetValue("bot.soplon.onroom")); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(OtanixEnvironment.GetGame().GetRoomRankConfig().BOTS_DEFAULT_COLOR); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(-1); User.GetClient().SendMessage(ChatMessage); botMessage.Clear(); } botMessage.Append(Username + ", "); } if (botMessage.Length > 0) { botMessage = botMessage.Remove(botMessage.Length - 2, 2); ServerMessage ChatMessage = new ServerMessage(Outgoing.Talk); ChatMessage.AppendInt32(GetRoomUser().VirtualId); ChatMessage.AppendString(botMessage + " " + LanguageLocale.GetValue("bot.soplon.onroom")); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(OtanixEnvironment.GetGame().GetRoomRankConfig().BOTS_DEFAULT_COLOR); ChatMessage.AppendInt32(0); ChatMessage.AppendInt32(-1); User.GetClient().SendMessage(ChatMessage); botMessage.Clear(); } GetBotData().SoplonOnRoom.Clear(); } } } }
public GameService(GamesCache gameCache, IUsersStore userStore, UsersCache usersCache) { _gameCache = gameCache; _userStore = userStore; _usersCache = usersCache; }
internal GroupItem(DataRow dRow) { Id = Convert.ToUInt32(dRow["id"]); Name = (string)dRow["name"]; Description = (string)dRow["description"]; RoomId = Convert.ToUInt32(dRow["roomid"]); CustomColor1 = (int)dRow["customcolor1"]; CustomColor2 = (int)dRow["customcolor2"]; temChat = OtanixEnvironment.EnumToBool((string)dRow["temChat"]); GroupBase = (int)dRow["groupbase"]; GroupBaseColor = (int)dRow["groupbasecolor"]; GroupBasePosition = (int)dRow["groupbaseposition"]; var zGroupItem1 = ((string)dRow["groupitem1"]).Split(';'); if (zGroupItem1.Count() == 3) { GroupItem1 = new int[] { int.Parse(zGroupItem1[0]), int.Parse(zGroupItem1[1]), int.Parse(zGroupItem1[2]) } } ; var zGroupItem2 = ((string)dRow["groupitem2"]).Split(';'); if (zGroupItem2.Count() == 3) { GroupItem2 = new int[] { int.Parse(zGroupItem2[0]), int.Parse(zGroupItem2[1]), int.Parse(zGroupItem2[2]) } } ; var zGroupItem3 = ((string)dRow["groupitem3"]).Split(';'); if (zGroupItem3.Count() == 3) { GroupItem3 = new int[] { int.Parse(zGroupItem3[0]), int.Parse(zGroupItem3[1]), int.Parse(zGroupItem3[2]) } } ; var zGroupItem4 = ((string)dRow["groupitem4"]).Split(';'); if (zGroupItem4.Count() == 3) { GroupItem4 = new int[] { int.Parse(zGroupItem4[0]), int.Parse(zGroupItem4[1]), int.Parse(zGroupItem4[2]) } } ; GroupImage = (string)dRow["groupimage"]; HtmlColor1 = (string)dRow["htmlcolor1"]; HtmlColor2 = (string)dRow["htmlcolor2"]; DateCreated = (string)dRow["datecreated"]; OwnerId = Convert.ToUInt32(dRow["ownerid"]); OwnerName = UsersCache.getUsernameById(OwnerId); Type = Convert.ToInt32(dRow["type"]); RightsType = Convert.ToInt32(dRow["rightsType"]); using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT COUNT(*) FROM groups_users WHERE groupid = '" + Id + "' AND acepted = '1'"); MembersCount = dbClient.getInteger(); dbClient.setQuery("SELECT * FROM groups_forums WHERE groupid = " + Id); DataRow dForum = dbClient.getRow(); if (dForum != null) { Forum = new GroupForum(Id, Convert.ToInt32(dForum["can_read"]), Convert.ToInt32(dForum["can_write"]), Convert.ToInt32(dForum["can_create"]), Convert.ToInt32(dForum["can_moderate"]), true); } } }
public static BackofficeUserModel GetBackofficeUser(this Controller contr) { return(UsersCache.GetUsersRolePair(contr.GetUserId()).User); }
public static UserRolesPair GetUserRolesPair(this Controller controller) { return(UsersCache.GetUsersRolePair(controller.GetUserId())); }
internal void OnCycle() { if (this.bullyState == BullyState.SEARCHING_USER) { if ((DateTime.Now - customTimer).Seconds >= 15) { GameClient guardianClient = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(this.GuardianId); if (guardianClient != null) { ServerMessage Message3 = new ServerMessage(Outgoing.CancelAlfaAlert); guardianClient.SendMessage(Message3); guardianClient.GetHabbo().AlfaServiceId = 0; guardianClient.GetHabbo().ExitAlfaState(); } if (!this.nullGuardians.Contains(this.GuardianId)) { this.nullGuardians.Add(this.GuardianId); } if (!this.SearchGuardian()) { this.SerializeNoGuardians(); OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId); return; } } else if (this.NeedUpdate) { this.NeedUpdate = false; if (!this.nullGuardians.Contains(this.GuardianId)) { this.nullGuardians.Add(this.GuardianId); } if (!this.SearchGuardian()) { this.SerializeNoGuardians(); OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId); return; } } } else if (this.bullyState == BullyState.WAITING_RESPONSE) { if ((DateTime.Now - customTimer).Seconds >= 59) { GameClient guardianClient = Guardian; if (guardianClient != null) { ServerMessage Message3 = new ServerMessage(Outgoing.CancelAlfaAlert); guardianClient.SendMessage(Message3); } this.bullySolution = BullySolution.EXIT; this.bullyState = BullyState.FINISHED; } } else if (this.bullyState == BullyState.FINISHED) { switch (this.bullySolution) { case BullySolution.NONE: case BullySolution.EXIT: case BullySolution.RELOAD: { GameClient _Reporter = Reporter; if (_Reporter != null) { OtanixEnvironment.GetGame().GetModerationTool().SendNewTicket(_Reporter, 104, (int)ReportedId, "Acoso", new string[0]); } break; } case BullySolution.ACCEPTABLE: { // none (: break; } case BullySolution.BULLY: case BullySolution.HORROR: { Habbo habbo = UsersCache.getHabboCache(ReportedId); if (habbo == null) { return; } ModerationTool.MuteUser(null, habbo, 10, ""); break; } /*case BullySolution.HORROR: * { * GameClient TargetClient = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(ReportedId); * Habbo habbo = UsersCache.getHabboCache(ReportedId); * * if (habbo != null && habbo.Rank <= 1) * //OtanixEnvironment.GetGame().GetBanManager().BanUser(TargetClient, habbo.Username, "", "Baneado por los HabboAlfas.", 21600, null); * break; * }*/ } GameClient guardianClient = Guardian; if (guardianClient != null && guardianClient.GetHabbo() != null) { guardianClient.GetHabbo().AlfaServiceId = 0; guardianClient.GetHabbo().AlfaHelpEnabled = false; if (bullySolution == BullySolution.ACCEPTABLE || bullySolution == BullySolution.BULLY || bullySolution == BullySolution.HORROR) { ServerMessage EndVotation = new ServerMessage(Outgoing.FinishAlfaVotation); EndVotation.AppendInt32((Int32)bullySolution); EndVotation.AppendInt32((Int32)bullySolution); EndVotation.AppendInt32(0); // array guardianClient.SendMessage(EndVotation); } // Con esto enviaremos al Guardián al inicio de la lista para que puedan ayudar los últimos guardianes. // OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveGuardian(GuardianId); // OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().AddGuardian(GuardianId); } if (this.AlfaChatLog.Length > 0) { OtanixEnvironment.GetGame().GetAlfaManager().LoadAlfaLog(this.GuardianId, "BULLY", this.AlfaChatLog, (Int32)this.bullySolution); } OtanixEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(GuardianId, "ACH_GuideChatReviewer", 1); GameClient reporterClient = Reporter; if (reporterClient != null) { ServerMessage reporterAlert = new ServerMessage(Outgoing.ResolvedAlfa); reporterAlert.AppendInt32(3); reporterClient.SendMessage(reporterAlert); } OtanixEnvironment.GetGame().GetAlfaManager().GetBullyManager().RemoveBullie(this.ReporterId); } }
internal void Fill(DataRow Row, uint modelId = 0) { Id = modelId != 0 ? modelId : Convert.ToUInt32(Row["id"]); Name = (string)Row["caption"]; Description = (string)Row["description"]; Type = (string)Row["roomtype"]; Owner = (string)Row["owner"]; OwnerId = UsersCache.getIdByUsername(Owner); State = (int)Row["state"]; Category = (int)Row["category"]; UsersNow = 0; UsersMax = Convert.ToUInt32(Row["users_max"]); ModelName = (string)Row["model_name"]; LastModelName = ModelName; Score = (int)Row["score"]; Tags = new List <string>(); TradeSettings = (int)Row["trade_settings"]; AllowPets = OtanixEnvironment.EnumToBool(Row["allow_pets"].ToString()); AllowPetsEating = OtanixEnvironment.EnumToBool(Row["allow_pets_eat"].ToString()); AllowWalkthrough = OtanixEnvironment.EnumToBool(Row["allow_walkthrough"].ToString()); AllowRightsOverride = OtanixEnvironment.EnumToBool(Row["allow_rightsoverride"].ToString()); AllowDiagonalEnabled = OtanixEnvironment.EnumToBool(Row["allow_diagonals"].ToString()); AntiFloodSettings = (int)Row["antiflood_settings"]; ChatDistance = (int)Row["chat_distance"]; Hidewall = OtanixEnvironment.EnumToBool(Row["allow_hidewall"].ToString()); Password = (string)Row["password"]; Wallpaper = (string)Row["wallpaper"]; Floor = (string)Row["floor"]; Landscape = (string)Row["landscape"]; FloorThickness = (int)Row["floorthickness"]; WallThickness = (int)Row["wallthickness"]; MuteFuse = Convert.ToInt32((string)Row["moderation_mute_fuse"]); KickFuse = Convert.ToInt32((string)Row["moderation_kick_fuse"]); BanFuse = Convert.ToInt32((string)Row["moderation_ban_fuse"]); GroupId = Convert.ToUInt32(Row["groupId"]); BubbleMode = Convert.ToInt32((string)Row["bubble_mode"]); BubbleType = Convert.ToInt32((string)Row["bubble_type"]); BubbleScroll = Convert.ToInt32((string)Row["bubble_scroll"]); WallHeight = Convert.ToInt32(Row["wall_height"]); RollerSpeed = Convert.ToUInt32(Row["roller_speed"]); temEmblema = (string)Row["temEmblema"]; DisabledCommands = new List <int>(); foreach (string StrCommandId in Row["disable_commands"].ToString().Split(',')) { int CommandId = -1; if (!int.TryParse(StrCommandId, out CommandId)) { continue; } if (!DisabledCommands.Contains(CommandId)) { DisabledCommands.Add(CommandId); } } foreach (var Tag in Row["tags"].ToString().Split(',')) { Tags.Add(Tag); } mModel = OtanixEnvironment.GetGame().GetRoomManager().GetModel(ModelName, Id); }
private void processCommand(String data) { String header = data.Split(';')[0]; switch (header.ToLower()) { case "enterroom": { uint HabboID = uint.Parse(data.Split(';')[1]); uint RoomID = uint.Parse(data.Split(';')[2]); UsersCache.AddUserProvisionalRoom(HabboID, RoomID); break; } case "goroom": { uint HabboID = uint.Parse(data.Split(';')[1]); uint RoomID = uint.Parse(data.Split(';')[2]); GameClient client = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(HabboID); if (client == null || client.GetMessageHandler() == null) { return; } Room room = OtanixEnvironment.GetGame().GetRoomManager().LoadRoom(RoomID); if (room == null) { return; } client.GetMessageHandler().enterOnRoom3(room); break; } case "getevents": { int count = int.Parse(data.Split(';')[1]); StringBuilder strBuilder = new StringBuilder(); List <RoomData> rooms = OtanixEnvironment.GetGame().GetRoomManager().GetEventManager().GetFourRecentEvents(count); foreach (RoomData room in rooms) { if (room != null && room.Event != null) { strBuilder.Append(room.Id + "" + (char)10 + "" + room.Event.Name + (char)10 + "" + room.UsersNow + "" + (char)13); } } if (strBuilder.Length > 0) { strBuilder.Remove(strBuilder.Length - 1, 1); } sendCommand(strBuilder.ToString()); break; } case "getactiverooms": { int count = int.Parse(data.Split(';')[1]); StringBuilder strBuilder = new StringBuilder(); List <RoomData> rooms = OtanixEnvironment.GetGame().GetRoomManager().GetMostActiveRooms(count); foreach (RoomData room in rooms) { if (room != null) { strBuilder.Append(room.Id + "" + (char)10 + "" + room.UsersNow + "" + (char)13); } } if (strBuilder.Length > 0) { strBuilder.Remove(strBuilder.Length - 1, 1); } sendCommand(strBuilder.ToString()); break; } case "getmotto": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.Motto.ToString()); } break; } case "updatemotto": { uint HabboID = uint.Parse(data.Split(';')[1]); string Motto = data.Split(';')[2]; Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null && habbo.GetClient() != null) { habbo.Motto = Motto; ServerMessage UpdateMotto = new ServerMessage(Outgoing.UpdateUserInformation); UpdateMotto.AppendInt32(-1); UpdateMotto.AppendString(habbo.Look); UpdateMotto.AppendString(habbo.Gender.ToLower()); UpdateMotto.AppendString(habbo.Motto); UpdateMotto.AppendUInt(habbo.AchievementPoints); habbo.GetClient().SendMessage(UpdateMotto); if (habbo.CurrentRoom != null) { ServerMessage UpdateMottoInRoom = new ServerMessage(Outgoing.UpdateUserInformation); UpdateMottoInRoom.AppendInt32(habbo.CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(habbo.Id).VirtualId); UpdateMottoInRoom.AppendString(habbo.Look); UpdateMottoInRoom.AppendString(habbo.Gender.ToLower()); UpdateMottoInRoom.AppendString(habbo.Motto); UpdateMottoInRoom.AppendUInt(habbo.AchievementPoints); habbo.CurrentRoom.SendMessage(UpdateMottoInRoom); } } break; } case "getlook": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.Look.ToString()); } break; } case "getrespects": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.Respect.ToString()); } break; } case "getpetitionsdisable": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.HasFriendRequestsDisabled.ToString()); } break; } case "updatepetitionsdisable": { uint HabboID = uint.Parse(data.Split(';')[1]); bool petitionsDisable = OtanixEnvironment.EnumToBool(data.Split(';')[2]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { habbo.HasFriendRequestsDisabled = petitionsDisable; } break; } case "gettradesdisable": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.BlockTrade.ToString()); } break; } case "updatetradesdisable": { uint HabboID = uint.Parse(data.Split(';')[1]); bool tradesDisable = OtanixEnvironment.EnumToBool(data.Split(';')[2]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { habbo.BlockTrade = tradesDisable; } break; } case "getignoreroominvitations": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.IgnoreRoomInvitations.ToString()); } break; } case "updateignoreroominvitations": { uint HabboID = uint.Parse(data.Split(';')[1]); bool ignoreRoomInvitations = OtanixEnvironment.EnumToBool(data.Split(';')[2]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { habbo.IgnoreRoomInvitations = ignoreRoomInvitations; } break; } case "getdontfocususers": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.DontFocusUser.ToString()); } break; } case "updatedontfocususers": { uint HabboID = uint.Parse(data.Split(';')[1]); bool dontFocusUsers = OtanixEnvironment.EnumToBool(data.Split(';')[2]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { habbo.DontFocusUser = dontFocusUsers; } break; } case "getprefoldchat": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.preferOldChat.ToString()); } break; } case "updateprefoldchat": { uint HabboID = uint.Parse(data.Split(';')[1]); bool prefOldChat = OtanixEnvironment.EnumToBool(data.Split(';')[2]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { habbo.preferOldChat = prefOldChat; } break; } case "getdiamonds": { uint HabboID = uint.Parse(data.Split(';')[1]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { sendCommand(habbo.Diamonds.ToString()); } break; } case "updatediamonds": { uint HabboID = uint.Parse(data.Split(';')[1]); int Diamonds = int.Parse(data.Split(';')[2]); Habbo habbo = UsersCache.getHabboCache(HabboID); if (habbo != null) { if (Diamonds < 0) { habbo.Diamonds -= (uint)Math.Abs(Diamonds); } else { habbo.Diamonds += (uint)Diamonds; } habbo.UpdateExtraMoneyBalance(); } break; } case "updatechatsettings": { uint HabboId = uint.Parse(data.Split(';')[1]); GameClient client = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(HabboId); if (client != null && client.GetHabbo() != null) { using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT chat_color FROM users WHERE id = '" + HabboId + "'"); client.GetHabbo().ChatColor = dbClient.getString(); } } break; } case "updatecoins": { uint HabboId = uint.Parse(data.Split(';')[1]); uint Coins = uint.Parse(data.Split(';')[2]); GameClient client = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(HabboId); if (client != null && client.GetHabbo() != null) { client.GetHabbo().CoinsPurchased += Coins; } break; } } }
public ChatService(UsersCache usersCache) { _usersCache = usersCache; }
internal bool tryLogin(string AuthTicket) { try { if (GetConnection() == null) { return(false); } var userData = UserDataFactory.GetUserData(AuthTicket); if (userData == null) { this.Disconnect(); return(false); } OtanixEnvironment.GetGame().GetClientManager().RegisterClient(this, userData.user.Id, userData.user.Username); Habbo = userData.user; if (userData.user.Username == null || GetHabbo() == null) { SendBanMessage("Você não possui um nome."); return(false); } userData.user.Init(userData); Habbo.MachineId = MachineId; var response = new QueuedServerMessage(Connection); var authok = new ServerMessage(Outgoing.AuthenticationOK); response.appendResponse(authok); var HomeRoom = new ServerMessage(Outgoing.HomeRoom); HomeRoom.AppendUInt((OtanixEnvironment.GetGame().GetPrisaoManager().estaPreso(GetHabbo().Id)) ? OtanixEnvironment.prisaoId() : GetHabbo().HomeRoom); // first home HomeRoom.AppendUInt((OtanixEnvironment.GetGame().GetPrisaoManager().estaPreso(GetHabbo().Id)) ? OtanixEnvironment.prisaoId() : GetHabbo().HomeRoom); // current home response.appendResponse(HomeRoom); var FavouriteRooms = new ServerMessage(Outgoing.FavouriteRooms); FavouriteRooms.AppendInt32(30); // max rooms FavouriteRooms.AppendInt32(userData.user.FavoriteRooms.Count); foreach (var Id in userData.user.FavoriteRooms.ToArray()) { FavouriteRooms.AppendUInt(Id); } response.appendResponse(FavouriteRooms); var sendClub = new ServerMessage(Outgoing.SerializeClub); sendClub.AppendString("club_habbo"); sendClub.AppendInt32(0); // days left sendClub.AppendInt32(0); // days multiplier sendClub.AppendInt32(0); // months left sendClub.AppendInt32(0); // ??? sendClub.AppendBoolean(true); // HC PRIVILEGE sendClub.AppendBoolean(true); // VIP PRIVILEGE sendClub.AppendInt32(0); // days i have on hc sendClub.AppendInt32(0); // days i've purchased sendClub.AppendInt32(495); // value 4 groups response.appendResponse(sendClub); var roomAccessConfig = new ServerMessage(Outgoing.RoomAccessConfig); roomAccessConfig.AppendBoolean(true); // isOpen roomAccessConfig.AppendBoolean(false); roomAccessConfig.AppendBoolean(true); response.appendResponse(roomAccessConfig); var fuserights = new ServerMessage(Outgoing.Fuserights); fuserights.AppendInt32(2); // normal|hc|vip fuserights.AppendUInt(GetHabbo().Rank); fuserights.AppendBoolean(GetHabbo().HasFuse("fuse_ambassador")); // embajador ? // fuserights.AppendInt32(0); // New Identity (1 == 1 min and Alert!) response.appendResponse(fuserights); var newidentity = new ServerMessage(Outgoing.SendNewIdentityState); newidentity.AppendInt32(GetHabbo().NewIdentity); response.appendResponse(newidentity); var HabboInformation = new ServerMessage(Outgoing.HabboInfomation); HabboInformation.AppendUInt(GetHabbo().Id); HabboInformation.AppendString(GetHabbo().Username); HabboInformation.AppendString(GetHabbo().Look); HabboInformation.AppendString(GetHabbo().Gender.ToUpper()); HabboInformation.AppendString(GetHabbo().Motto); HabboInformation.AppendString(GetHabbo().RealName); HabboInformation.AppendBoolean(false); HabboInformation.AppendUInt(GetHabbo().Respect); HabboInformation.AppendUInt(GetHabbo().DailyRespectPoints); // respect to give away HabboInformation.AppendUInt(GetHabbo().DailyPetRespectPoints); HabboInformation.AppendBoolean(true); HabboInformation.AppendString(OtanixEnvironment.UnixTimeStampToDateTime(GetHabbo().LastOnline).ToString()); HabboInformation.AppendBoolean(GetHabbo().NameChanges < EmuSettings.MAX_NAME_CHANGES); // CHANGENAME - HabboInformation.AppendBoolean((this.GetHabbo().Diamonds<=0||this.GetHabbo().NameChanges>=ButterflyEnvironment.maxNameChanges)?false:true); HabboInformation.AppendBoolean(false); response.appendResponse(HabboInformation); var IsGuide = (Habbo.Rank > 1) ? true : false; var VoteInCompetitions = false; var Trade = true; var Citizien = (Habbo.CitizenshipLevel >= 4) ? true : false; var JudgeChat = (Habbo.Rank > 2) ? true : false; var NavigatorThumbailCamera = false; var navigatorphaseTwo = true; var Camera = true; var CallHelpers = true; var BuilderAtWork = true; var MouseZoom = false; var Allows = new ServerMessage(Outgoing.PerkAllowancesMessageParser); Allows.AppendInt32(11); // count Allows.AppendString("TRADE"); Allows.AppendString((!Trade) ? "requirement.unfulfilled.citizenship_level_3" : ""); Allows.AppendBoolean(Trade); Allows.AppendString("NAVIGATOR_ROOM_THUMBNAIL_CAMERA"); Allows.AppendString((!NavigatorThumbailCamera) ? "" : ""); Allows.AppendBoolean(NavigatorThumbailCamera); Allows.AppendString("NAVIGATOR_PHASE_TWO_2014"); Allows.AppendString((!navigatorphaseTwo) ? "requirement.unfulfilled.feature_disabled" : ""); Allows.AppendBoolean(navigatorphaseTwo); Allows.AppendString("VOTE_IN_COMPETITIONS"); Allows.AppendString((!VoteInCompetitions) ? "requirement.unfulfilled.helper_level_2" : ""); Allows.AppendBoolean(VoteInCompetitions); Allows.AppendString("BUILDER_AT_WORK"); Allows.AppendString((!BuilderAtWork) ? "requirement.unfulfilled.group_membership" : ""); Allows.AppendBoolean(BuilderAtWork); Allows.AppendString("MOUSE_ZOOM"); Allows.AppendString((!MouseZoom) ? "requirement.unfulfilled.feature_disabled" : ""); Allows.AppendBoolean(MouseZoom); Allows.AppendString("CAMERA"); Allows.AppendString((!Camera) ? "requirement.unfulfilled.feature_disabled" : ""); Allows.AppendBoolean(Camera); Allows.AppendString("CALL_ON_HELPERS"); Allows.AppendString((!CallHelpers) ? "requirement.unfulfilled.citizenship_level_1" : ""); Allows.AppendBoolean(CallHelpers); Allows.AppendString("CITIZEN"); Allows.AppendString((!Citizien) ? "requirement.unfulfilled.citizenship_level_3" : ""); Allows.AppendBoolean(Citizien); Allows.AppendString("USE_GUIDE_TOOL"); Allows.AppendString((!IsGuide) ? "requirement.unfulfilled.helper_level_4" : ""); Allows.AppendBoolean(IsGuide); Allows.AppendString("JUDGE_CHAT_REVIEWS"); Allows.AppendString((!JudgeChat) ? "requirement.unfulfilled.citizenship_level_6" : ""); Allows.AppendBoolean(JudgeChat); response.appendResponse(Allows); var enabledBuilderClub = new ServerMessage(Outgoing.EnableBuilderClub); enabledBuilderClub.AppendInt32(GetHabbo().IsPremium() ? GetHabbo().GetPremiumManager().GetRemainingTime() : 0); // Tiempo restante de Constructor (2678400 = 1 mes entero (s)) enabledBuilderClub.AppendUInt(GetHabbo().IsPremium() ? GetHabbo().GetPremiumManager().GetMaxItems() : 50); // Furnis que puedo alquilar enabledBuilderClub.AppendInt32(20000); // Se puede ampliar la alquilación hasta.. enabledBuilderClub.AppendInt32(0); response.appendResponse(enabledBuilderClub); response.appendResponse(GetHabbo().GetUserClothingManager().SerializeClothes()); var achivPoints = new ServerMessage(Outgoing.AchievementPoints); achivPoints.AppendUInt(GetHabbo().AchievementPoints); response.appendResponse(achivPoints); var loadVolumen = new ServerMessage(Outgoing.LoadVolumen); loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[0])); loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[1])); loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[2])); loadVolumen.AppendBoolean(GetHabbo().preferOldChat); loadVolumen.AppendBoolean(GetHabbo().IgnoreRoomInvitations); loadVolumen.AppendBoolean(GetHabbo().DontFocusUser); // fcus user loadVolumen.AppendInt32(0); // loadVolumen.AppendInt32(0); // freeFlowChat response.appendResponse(loadVolumen); var muteUsers = new ServerMessage(Outgoing.SerializeMuteUsers); muteUsers.AppendInt32(GetHabbo().MutedUsers.Count); foreach (string IgnoreName in GetHabbo().MutedUsers) { muteUsers.AppendString(IgnoreName); } response.appendResponse(muteUsers); TargetedOffer to = OtanixEnvironment.GetGame().GetTargetedOfferManager().GetRandomStaticTargetedOffer(); if (to != null) { if (!GetHabbo().TargetedOffers.ContainsKey(to.Id) || GetHabbo().TargetedOffers[to.Id] < to.PurchaseLimit) { response.appendResponse(OtanixEnvironment.GetGame().GetTargetedOfferManager().SerializeTargetedOffer(to)); } } /*var giftOptions = new ServerMessage(Outgoing.NewUserExperienceGiftOfferParser); * giftOptions.AppendInt32(1); // foreach * { * giftOptions.AppendInt32(0); * giftOptions.AppendInt32(0); * giftOptions.AppendInt32(1); // foreach (items?) * { * giftOptions.AppendString("Testeando"); // itemName ?? * giftOptions.AppendInt32(1); // foreach * { * giftOptions.AppendString("a1_kumiankka"); // item 1 * giftOptions.AppendString(""); // item 2 (if is empty == null) * } * } * } * response.appendResponse(giftOptions);*/ response.appendResponse(OtanixEnvironment.GetGame().GetAchievementManager().AchievementPrede); if (GetHabbo().HomeRoom <= 0) { var homeRoom = new ServerMessage(Outgoing.OutOfRoom); response.appendResponse(homeRoom); } else { Room room = OtanixEnvironment.GetGame().GetRoomManager().GetRoom(GetHabbo().HomeRoom); if (room != null) { this.GetMessageHandler().enterOnRoom3(room); } } response.sendResponse(); // Verifica a conta staff if (GetHabbo().Rank > 5) { ServerMessage VerificaSenha = new ServerMessage(Outgoing.MobilePhoneNumero); VerificaSenha.AppendInt32(1); VerificaSenha.AppendInt32(1); SendMessage(VerificaSenha); } // Termina de verificar a conta staff Ban BanReason = OtanixEnvironment.GetGame().GetBanManager().GetBanReason(Habbo.Username, Habbo.MachineId); if (BanReason != null) { SendScrollNotif("Você tem um banimento do tipo: " + BanReason.Type + "\r\nMotivo: " + BanReason.ReasonMessage); Disconnect(); return(false); } GetHabbo().InitMessenger(); if (GetHabbo().GetAvatarEffectsInventoryComponent() != null) { SendMessage(GetHabbo().GetAvatarEffectsInventoryComponent().Serialize()); } SendMessage(OtanixEnvironment.GetGame().GetModerationTool().SerializeCfhTopics()); if (LanguageLocale.welcomeAlertEnabled) { string strAlert = BlackWordsManager.SpecialReplace(LanguageLocale.welcomeAlert, this); if (LanguageLocale.welcomeAlertType == 0) { SendScrollNotif(strAlert); } else if (LanguageLocale.welcomeAlertType == 1) { SendNotif(strAlert); } else if (LanguageLocale.welcomeAlertType == 2) { SendNotifWithImage(strAlert, LanguageLocale.welcomeAlertImage); } } OtanixEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(Habbo.Id, "ACH_EmailVerification", 1); GetHabbo().UpdateCreditsBalance(); GetHabbo().UpdateExtraMoneyBalance(); GetHabbo().setMeOnline(); GetHabbo().InitExtra(); UsersCache.enterProvisionalRoom(this); return(true); } catch (UserDataNotFoundException e) { SendScrollNotif(LanguageLocale.GetValue("login.invalidsso") + "extra data: " + e); } catch (Exception e) { Logging.LogCriticalException("Invalid Dario bug duing user login: "******"Login error: " + e); } return(false); }
internal void BanUser(GameClient Client, string Username, string MachineId, string Reason, double LengthSeconds, GameClient Session) { string Var = Username; string RawVar = "user"; if (Username.Length > 0) { RawVar = "user"; Var = Username; } else if (MachineId.Length > 0) { RawVar = "machine"; Var = MachineId; } double Expire = OtanixEnvironment.GetUnixTimestamp() + LengthSeconds; if (RawVar == "user") { if (UsersCache.getIdByUsername(Username) == 0) { Session.SendNotif(LanguageLocale.GetValue("input.usernotfound")); return; } } using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("REPLACE INTO bans (bantype,value,reason,expire,added_by,added_date) VALUES (@rawvar,@var,@reason,'" + Expire + "',@mod,'" + DateTime.Now.ToLongDateString() + "')"); dbClient.addParameter("rawvar", RawVar); dbClient.addParameter("var", Var); dbClient.addParameter("reason", Reason); dbClient.addParameter("mod", (Session == null) ? "Automatic-BAN" : Session.GetHabbo().Username); dbClient.runQuery(); } switch (RawVar) { case "user": { Ban ban = new Ban(ModerationBanType.USERNAME, Var, Reason, Expire); if (!bannedUsernames.ContainsKey(Var)) { bannedUsernames.Add(Var, ban); } break; } case "machine": { Ban ban = new Ban(ModerationBanType.MACHINEID, Var, Reason, Expire); if (!bannedMachinedId.ContainsKey(Var)) { bannedMachinedId.Add(Var, ban); } break; } } if (Client != null && Client.GetConnection() != null) { Client.SendBanMessage(LanguageLocale.GetValue("moderation.banned") + " " + Reason); Client.Disconnect(); } }
/// <summary> /// Actualiza el progreso una recompensa. /// </summary> /// <param name="Session"></param> /// <param name="UserId"></param> /// <param name="AchievementGroup"></param> /// <param name="ProgressAmount"></param> /// <returns></returns> public bool ProgressUserAchievement(uint UserId, string AchievementGroup, int ProgressAmount) { Habbo Habbo = UsersCache.getHabboCache(UserId); if (Habbo == null) { return(false); } GameClient Session = Habbo.GetClient(); Achievement AchievementData = GetAchievementByName(AchievementGroup); if (AchievementData == null) { return(false); } UserAchievement UserData = Habbo.GetAchievementData(AchievementGroup); if (UserData == null) { UserData = new UserAchievement(AchievementGroup, 0, 0); Habbo.Achievements.Add(AchievementGroup, UserData); } uint TotalLevels = (uint)AchievementData.Levels.Length; if (UserData.Level == TotalLevels) { return(false); // ya está todo completado } uint TargetLevel = UserData.Level + 1; if (TargetLevel > TotalLevels) { TargetLevel = TotalLevels; } uint TargetRequeriment = AchievementData.Levels[TargetLevel - 1]; UserData.Progress += ProgressAmount; if (UserData.Progress >= TargetRequeriment) { UserData.Level++; if (TargetLevel == 1) { Habbo.GetBadgeComponent().GiveBadge(AchievementGroup + TargetLevel); } else { Habbo.GetBadgeComponent().UpdateBadge(AchievementGroup + TargetLevel); } Habbo.AchievementPoints += AchievementData.Reward; if (Session != null) { Session.SendMessage(AchievementUnlockedComposer.Compose(AchievementData, TargetLevel, AchievementData.Reward)); Session.SendMessage(AchievementScoreUpdateComposer.Compose(Habbo.AchievementPoints)); } } if (Session != null) { Session.SendMessage(AchievementProgressComposer.Compose(AchievementData, UserData)); } using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("REPLACE INTO user_achievements VALUES (" + Habbo.Id + ", @group, " + UserData.Level + ", " + UserData.Progress + ")"); dbClient.addParameter("group", AchievementGroup); dbClient.runQuery(); } if (Session == null) { Habbo.SaveBadges(); } return(true); }
public ContactsOperations() { cache = UsersCache.Instance; }