コード例 #1
0
        public ForumsListDataComposer(ICollection <GroupForum> Forums, GameClient Session, int ViewOrder = 0, int StartIndex = 0, int MaxLength = 20)
            : base(ServerPacketHeader.ForumsListDataMessageComposer)
        {
            base.WriteInteger(ViewOrder);
            base.WriteInteger(StartIndex);
            base.WriteInteger(StartIndex);

            base.WriteInteger(Forums.Count); // Forum List Count

            foreach (var Forum in Forums)
            {
                var lastpost = Forum.GetLastPost();
                var isn      = lastpost == null;
                base.WriteInteger(Forum.Id);                                                                 //Maybe ID
                base.WriteString(Forum.Name);                                                                //Forum name
                base.WriteString(Forum.Description);                                                         //idk
                base.WriteString(Forum.Group.Badge);                                                         // Group Badge
                base.WriteInteger(0);                                                                        //Idk
                base.WriteInteger(0);                                                                        // Score
                base.WriteInteger(Forum.MessagesCount);                                                      //Message count
                base.WriteInteger(Forum.UnreadMessages(Session.GetHabbo().Id));                              //unread message count
                base.WriteInteger(0);                                                                        //Idk
                base.WriteInteger(!isn ? lastpost.GetAuthor().Id : 0);                                       // Las user to message id
                base.WriteString(!isn ? lastpost.GetAuthor().Username : "");                                 //Last user to message name
                base.WriteInteger(!isn ? (int)RavenEnvironment.GetUnixTimestamp() - lastpost.Timestamp : 0); //Last message timestamp
            }
        }
コード例 #2
0
        public ProfileInformationComposer(Habbo Data, GameClient Session, List <Group> Groups, int friendCount)
            : base(ServerPacketHeader.ProfileInformationMessageComposer)
        {
            DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Data.AccountCreated);

            base.WriteInteger(Data.Id);
            base.WriteString(Data.Username);
            base.WriteString(Data.Look);
            base.WriteString(Data.Motto);
            base.WriteString(origin.ToString("dd/MM/yyyy"));
            base.WriteInteger(Data.GetStats().AchievementPoints);
            base.WriteInteger(friendCount);                                                                                                                                                 // Friend Count
            base.WriteBoolean(Data.Id != Session.GetHabbo().Id&& Session.GetHabbo().GetMessenger().FriendshipExists(Data.Id));                                                              //  Is friend
            base.WriteBoolean(Data.Id != Session.GetHabbo().Id&& !Session.GetHabbo().GetMessenger().FriendshipExists(Data.Id) && Session.GetHabbo().GetMessenger().RequestExists(Data.Id)); // Sent friend request
            base.WriteBoolean((RavenEnvironment.GetGame().GetClientManager().GetClientByUserID(Data.Id)) != null);

            base.WriteInteger(Groups.Count);
            foreach (Group Group in Groups)
            {
                base.WriteInteger(Group.Id);
                base.WriteString(Group.Name);
                base.WriteString(Group.Badge);
                base.WriteString(RavenEnvironment.GetGame().GetGroupManager().GetGroupColour(Group.Colour1, true));
                base.WriteString(RavenEnvironment.GetGame().GetGroupManager().GetGroupColour(Group.Colour2, false));
                base.WriteBoolean(Data.GetStats().FavouriteGroupId == Group.Id); // todo favs
                base.WriteInteger(0);                                            //what the f**k
                base.WriteBoolean(Group != null ? Group.ForumEnabled : true);    //HabboTalk
            }

            base.WriteInteger(Convert.ToInt32(RavenEnvironment.GetUnixTimestamp() - Data.LastOnline)); // Last online
            base.WriteBoolean(true);                                                                   // Show the profile
        }
コード例 #3
0
ファイル: RoomUser.cs プロジェクト: pedruhb/RavenServer
        public bool IncrementAndCheckFlood(out int MuteTime)
        {
            MuteTime = 0;

            ChatSpamCount++;
            if (ChatSpamTicks == -1)
            {
                ChatSpamTicks = 8;
            }
            else if (ChatSpamCount >= 6)
            {
                if (GetClient().GetHabbo().GetPermissions().HasRight("events_staff"))
                {
                    MuteTime = 3;
                }
                else if (GetClient().GetHabbo().GetPermissions().HasRight("gold_vip"))
                {
                    MuteTime = 1;
                }
                else if (GetClient().GetHabbo().GetPermissions().HasRight("silver_vip"))
                {
                    MuteTime = 1;
                }
                else
                {
                    MuteTime = 20;
                }

                GetClient().GetHabbo().FloodTime = RavenEnvironment.GetUnixTimestamp() + MuteTime;

                ChatSpamCount = 0;
                return(true);
            }
            return(false);
        }
コード例 #4
0
 public PetInformationComposer(Habbo Habbo)
     : base(ServerPacketHeader.PetInformationMessageComposer)
 {
     base.WriteInteger(Habbo.Id);
     base.WriteString(Habbo.Username);
     base.WriteInteger(Habbo.Rank);
     base.WriteInteger(10);
     base.WriteInteger(0);
     base.WriteInteger(0);
     base.WriteInteger(100);
     base.WriteInteger(100);
     base.WriteInteger(100);
     base.WriteInteger(100);
     base.WriteInteger(Habbo.GetStats().Respect);
     base.WriteInteger(Habbo.Id);
     base.WriteInteger(Convert.ToInt32(Math.Floor((RavenEnvironment.GetUnixTimestamp() - Habbo.AccountCreated) / 86400))); //How?
     base.WriteString(Habbo.Username);
     base.WriteInteger(1);                                                                                                 //3 on hab
     base.WriteBoolean(false);
     base.WriteBoolean(false);
     base.WriteInteger(0); //5 on hab
     base.WriteInteger(0); // Anyone can ride horse
     base.WriteInteger(0);
     base.WriteInteger(0); //512 on hab
     base.WriteInteger(0); //1536
     base.WriteInteger(0); //2560
     base.WriteInteger(0); //3584
     base.WriteInteger(0);
     base.WriteString("");
     base.WriteBoolean(false);
     base.WriteInteger(-1);//255 on hab
     base.WriteInteger(-1);
     base.WriteInteger(-1);
     base.WriteBoolean(false);
 }
コード例 #5
0
ファイル: BattleBanzai.cs プロジェクト: pedruhb/RavenServer
        public void BanzaiStart()
        {
            if (banzaiStarted)
            {
                return;
            }

            floorMap    = new byte[_room.GetGameMap().Model.MapSizeY, _room.GetGameMap().Model.MapSizeX];
            field       = new GameField(floorMap, true);
            timestarted = RavenEnvironment.GetUnixTimestamp();
            _room.GetGameManager().LockGates();
            for (int i = 1; i < 5; i++)
            {
                _room.GetGameManager().Points[i] = 0;
            }

            foreach (Item tile in _banzaiTiles.Values)
            {
                tile.ExtraData = "1";
                tile.value     = 0;
                tile.team      = TEAM.NONE;
                tile.UpdateState();
            }

            this.ResetTiles();
            banzaiStarted = true;

            _room.GetWired().TriggerEvent(WiredBoxType.TriggerGameStarts, null);

            foreach (RoomUser user in _room.GetRoomUserManager().GetRoomUsers())
            {
                user.LockedTilesCount = 0;
            }
        }
コード例 #6
0
 public RoomPromotion(string Name, string Desc, int CategoryId)
 {
     this._name             = Name;
     this._description      = Desc;
     this._timestampStarted = RavenEnvironment.GetUnixTimestamp();
     this._timestampExpires = (RavenEnvironment.GetUnixTimestamp()) + (RavenStaticGameSettings.RoomPromotionLifeTime * 60);
     this._categoryId       = CategoryId;
 }
コード例 #7
0
ファイル: HelperCase.cs プロジェクト: pedruhb/RavenServer
 public HelperCase(GameClient client, string msg, int category)
 {
     Session         = client;
     Message         = msg;
     Type            = (HelpCaseType)category;
     Expire          = (int)RavenEnvironment.GetUnixTimestamp() + HelperToolsManager.ANSWER_CALL_WAIT_TIME;
     DeclinedHelpers = new List <HabboHelper>();
 }
コード例 #8
0
        public void AddBan(int pId, long Time)
        {
            if (!Bans.ContainsKey(Convert.ToInt32(pId)))
            {
                Bans.Add(pId, RavenEnvironment.GetUnixTimestamp() + Time);
            }

            using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("REPLACE INTO `room_bans` VALUES (" + pId + ", " + Id + ", " + (RavenEnvironment.GetUnixTimestamp() + Time) + ")");
            }
        }
コード例 #9
0
 public void AddChatlog(int Id, string Message)
 {
     using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
     {
         dbClient.SetQuery("INSERT INTO `chatlogs` (user_id, room_id, message, timestamp) VALUES (@user, @room, @message, @time)");
         dbClient.AddParameter("user", Id);
         dbClient.AddParameter("room", RoomId);
         dbClient.AddParameter("message", Message);
         dbClient.AddParameter("time", RavenEnvironment.GetUnixTimestamp());
         dbClient.RunQuery();
     }
 }
コード例 #10
0
 public void LogCommand(int UserId, string Data, string MachineId, string Username)
 {
     using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
     {
         dbClient.SetQuery("INSERT INTO `logs_client_staff` (`user_id`,`data_string`,`machine_id`, `timestamp`) VALUES (@UserId,@Data,@MachineId,@Timestamp)");
         dbClient.AddParameter("UserId", UserId);
         dbClient.AddParameter("Data", Data);
         dbClient.AddParameter("MachineId", MachineId);
         dbClient.AddParameter("Timestamp", RavenEnvironment.GetUnixTimestamp());
         dbClient.RunQuery();
     }
 }
コード例 #11
0
ファイル: MuteUserEvent.cs プロジェクト: pedruhb/RavenServer
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            if (!Session.GetHabbo().InRoom)
            {
                return;
            }

            int UserId = Packet.PopInt();
            int RoomId = Packet.PopInt();
            int Time   = Packet.PopInt();

            Room Room = Session.GetHabbo().CurrentRoom;

            if (Room == null)
            {
                return;
            }

            if (((Room.WhoCanMute == 0 && !Room.CheckRights(Session, true) && Room.Group == null) || (Room.WhoCanMute == 1 && !Room.CheckRights(Session)) && Room.Group == null) || (Room.Group != null && !Room.CheckRights(Session, false, true)))
            {
                return;
            }

            RoomUser Target = Room.GetRoomUserManager().GetRoomUserByHabbo(RavenEnvironment.GetUsernameById(UserId));

            if (Target == null)
            {
                return;
            }
            else if (Target.GetClient().GetHabbo().GetPermissions().HasRight("mod_tool"))
            {
                return;
            }

            if (Room.MutedUsers.ContainsKey(UserId))
            {
                if (Room.MutedUsers[UserId] < RavenEnvironment.GetUnixTimestamp())
                {
                    Room.MutedUsers.Remove(UserId);
                }
                else
                {
                    return;
                }
            }

            Room.MutedUsers.Add(UserId, (RavenEnvironment.GetUnixTimestamp() + (Time * 60)));

            Target.GetClient().SendWhisper("La sala ha sido silenciada por  " + Time + " minutos!");
            RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_SelfModMuteSeen", 1);
        }
コード例 #12
0
        public bool HasBanExpired(int pId)
        {
            if (!UserIsBanned(pId))
            {
                return(true);
            }

            if (Bans[pId] < RavenEnvironment.GetUnixTimestamp())
            {
                return(true);
            }

            return(false);
        }
コード例 #13
0
 public Quest(int Id, string Category, int Number, QuestType GoalType, int GoalData, string Name, int Reward, string DataBit, int RewardType, int TimeUnlock, int TimeLock)
 {
     this.Id         = Id;
     this.Category   = Category;
     this.Number     = Number;
     this.GoalType   = GoalType;
     this.GoalData   = GoalData;
     this.Name       = Name;
     this.Reward     = Reward;
     this.DataBit    = DataBit;
     this.RewardType = RewardType;
     this.TimeUnlock = TimeUnlock;
     this.HasEnded   = (TimeLock >= RavenEnvironment.GetUnixTimestamp() && TimeLock > 0) ? true : false;
 }
コード例 #14
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_trade_lock"))
            {
                return;
            }

            int    UserId   = Packet.PopInt();
            string Message  = Packet.PopString();
            double Days     = (Packet.PopInt() / 1440);
            string Unknown1 = Packet.PopString();
            string Unknown2 = Packet.PopString();

            double Length = (RavenEnvironment.GetUnixTimestamp() + (Days * 86400));

            Habbo Habbo = RavenEnvironment.GetHabboById(UserId);

            if (Habbo == null)
            {
                Session.SendWhisper("Ocurrio un error mientras se realizaba la busqueda de este usuario enla DB");
                return;
            }

            if (Habbo.GetPermissions().HasRight("mod_trade_lock") && !Session.GetHabbo().GetPermissions().HasRight("mod_trade_lock_any"))
            {
                Session.SendWhisper("Oops,No puede bloquear el trade a este usuario");
                return;
            }

            if (Days < 1)
            {
                Days = 1;
            }

            if (Days > 365)
            {
                Days = 365;
            }

            using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("UPDATE `user_info` SET `trading_locked` = '" + Length + "', `trading_locks_count` = `trading_locks_count` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1");
            }

            if (Habbo.GetClient() != null)
            {
                Habbo.TradingLockExpiry = Length;
                Habbo.GetClient().SendNotification("Usted no puede tradear por  " + Days + " dia(s)!\r\rRazon:\r\r" + Message);
            }
        }
コード例 #15
0
        public GroupForumThread(GroupForum parent, int id, int userid, int timestamp, string caption, bool pinned, bool locked, int deletedlevel, int deleterid)
        {
            //Game.GetClientManager().OnClientDisconnect += GroupForumThread_OnClientDisconnect;
            Views         = new List <GroupForumThreadPostView>();;
            UsersOnThread = new List <GameClient>();
            ParentForum   = parent;

            Id        = id;
            UserId    = userid;
            Timestamp = timestamp;
            Caption   = caption;
            Posts     = new List <GroupForumThreadPost>();

            Pinned           = pinned;
            Locked           = locked;
            DeletedLevel     = deletedlevel;
            DeleterUserId    = deleterid;
            DeletedTimestamp = (int)RavenEnvironment.GetUnixTimestamp();

            DataTable table;

            using (var adap = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                adap.SetQuery("SELECT * FROM group_forums_thread_posts WHERE thread_id = @id");
                adap.AddParameter("id", this.Id);
                table = adap.getTable();
            }

            foreach (DataRow Row in table.Rows)
            {
                Posts.Add(new GroupForumThreadPost(this, Convert.ToInt32(Row["id"]), Convert.ToInt32(Row["user_id"]), Convert.ToInt32(Row["timestamp"]), Row["message"].ToString(), Convert.ToInt32(Row["deleted_level"]), Convert.ToInt32(Row["deleter_user_id"])));
            }


            //DataTable table;
            using (var Adap = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                Adap.SetQuery("SELECT * FROM group_forums_thread_views WHERE thread_id = @id");
                Adap.AddParameter("id", Id);
                table = Adap.getTable();
            }


            foreach (DataRow Row in table.Rows)
            {
                Views.Add(new GroupForumThreadPostView(Convert.ToInt32(Row["id"]), Convert.ToInt32(Row["user_id"]), Convert.ToInt32(Row["count"])));
            }
        }
コード例 #16
0
        public RentableSpaceItem CreateAndAddItem(int ItemId, GameClient Session)
        {
            RentableSpaceItem i = this.CreateItem(ItemId);

            this.AddItem(i);
            using (IQueryAdapter con = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                con.SetQuery("INSERT INTO `items_rentablespace` (item_id, owner, expire, price) VAlUES (@id, @ownerid, @expire, @price)");
                con.AddParameter("id", i.ItemId);
                con.AddParameter("ownerid", Session.GetHabbo().Id);
                con.AddParameter("expire", RavenEnvironment.GetUnixTimestamp() + 604800);
                con.AddParameter("price", i.Price);
                con.RunQuery();
            }
            return(i);
        }
コード例 #17
0
        private void PlaySong()
        {
            if (mSongQueuePosition >= mPlaylist.Count)
            {
                mSongQueuePosition = 0;
            }

            if (mPlaylist.Count == 0)
            {
                Stop();
                return;
            }

            mSong = mPlaylist[mSongQueuePosition];
            mStartedPlayingTimestamp = RavenEnvironment.GetUnixTimestamp();
            mBroadcastNeeded         = true;
        }
コード例 #18
0
        public bool Execute(params object[] Params)
        {
            if (Params.Length != 1)
            {
                return(false);
            }

            Habbo Player = (Habbo)Params[0];

            if (Player == null)
            {
                return(false);
            }

            RoomUser User = Instance.GetRoomUserManager().GetRoomUserByHabbo(Player.Id);

            if (User == null)
            {
                return(false);
            }

            if (Player.GetPermissions().HasRight("mod_tool") || this.Instance.OwnerId == Player.Id)
            {
                Player.GetClient().SendMessage(new WhisperComposer(User.VirtualId, "Wired Mute Exception: Unmutable Player", 0, 0));
                return(false);
            }

            int    Time    = (StringData != null ? int.Parse(StringData.Split(';')[0]) : 0);
            string Message = (StringData != null ? (StringData.Split(';')[1]) : "No message!");

            if (Time > 0)
            {
                Player.GetClient().SendMessage(new WhisperComposer(User.VirtualId, "Wired Mute: Muted for " + Time + "! Message: " + Message, 0, 0));
                if (!Instance.MutedUsers.ContainsKey(Player.Id))
                {
                    Instance.MutedUsers.Add(Player.Id, (RavenEnvironment.GetUnixTimestamp() + (Time * 60)));
                }
                else
                {
                    Instance.MutedUsers.Remove(Player.Id);
                    Instance.MutedUsers.Add(Player.Id, (RavenEnvironment.GetUnixTimestamp() + (Time * 60)));
                }
            }

            return(true);
        }
コード例 #19
0
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("Escribe el mensaje que deseas enviar.");
                return;
            }

            DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);

            dtDateTime = dtDateTime.AddSeconds(RavenEnvironment.GetUnixTimestamp()).ToLocalTime();

            string Message = CommandManager.MergeParams(Params, 1);

            RavenEnvironment.GetGame().GetClientManager().StaffAlert(new MOTDNotificationComposer("[STAFF]\r[" + dtDateTime + "]\r\r" + Message + "\r\r - " + Session.GetHabbo().Username + " [" + Session.GetHabbo().Rank + "]"));
            return;
        }
コード例 #20
0
        public void ReCacheBans()
        {
            if (this._bans.Count > 0)
            {
                this._bans.Clear();
            }

            using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                DataTable GetBans = null;
                dbClient.SetQuery("SELECT `bantype`,`value`,`reason`,`expire` FROM `bans` WHERE `bantype` = 'machine' OR `bantype` = 'user'");
                GetBans = dbClient.getTable();

                if (GetBans != null)
                {
                    foreach (DataRow dRow in GetBans.Rows)
                    {
                        string value   = Convert.ToString(dRow["value"]);
                        string reason  = Convert.ToString(dRow["reason"]);
                        double expires = (double)dRow["expire"];
                        string type    = Convert.ToString(dRow["bantype"]);

                        ModerationBan Ban = new ModerationBan(BanTypeUtility.GetModerationBanType(type), value, reason, expires);
                        if (Ban != null)
                        {
                            if (expires > RavenEnvironment.GetUnixTimestamp())
                            {
                                if (!this._bans.ContainsKey(value))
                                {
                                    this._bans.Add(value, Ban);
                                }
                            }
                            else
                            {
                                dbClient.SetQuery("DELETE FROM `bans` WHERE `bantype` = '" + BanTypeUtility.FromModerationBanType(Ban.Type) + "' AND `value` = @Key LIMIT 1");
                                dbClient.AddParameter("Key", value);
                                dbClient.RunQuery();
                            }
                        }
                    }
                }
            }

            //log.Info("Cached " + this._bans.Count + " username and machine bans.");
            log.Info(">> Ban Manager -> READY!");
        }
コード例 #21
0
        public static Pet CreatePet(int UserId, string Name, int Type, string Race, string Color)
        {
            Pet pet = new Pet(0, UserId, 0, Name, Type, Race, Color, 0, 100, 100, 0, RavenEnvironment.GetUnixTimestamp(), 0, 0, 0.0, 0, 0, 0, -1, "-1");

            using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("INSERT INTO bots (user_id,name, ai_type) VALUES (" + pet.OwnerId + ",@" + pet.PetId + "name, 'pet')");
                dbClient.AddParameter(pet.PetId + "name", pet.Name);
                pet.PetId = Convert.ToInt32(dbClient.InsertQuery());

                dbClient.SetQuery("INSERT INTO bots_petdata (id,type,race,color,experience,energy,createstamp) VALUES (" + pet.PetId + ", " + pet.Type + ",@" + pet.PetId + "race,@" + pet.PetId + "color,0,100,UNIX_TIMESTAMP())");
                dbClient.AddParameter(pet.PetId + "race", pet.Race);
                dbClient.AddParameter(pet.PetId + "color", pet.Color);
                dbClient.RunQuery();
            }
            return(pet);
        }
コード例 #22
0
ファイル: GroupForum.cs プロジェクト: pedruhb/RavenServer
        public GroupForumThread CreateThread(int Creator, string Caption)
        {
            var timestamp = (int)RavenEnvironment.GetUnixTimestamp();
            var Thread    = new GroupForumThread(this, 0, Creator, (int)timestamp, Caption, false, false, 0, 0);

            using (var adap = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                adap.SetQuery("INSERT INTO group_forums_threads (forum_id, user_id, caption, timestamp) VALUES (@a, @b, @c, @d)");
                adap.AddParameter("a", this.Id);
                adap.AddParameter("b", Creator);
                adap.AddParameter("c", Caption);
                adap.AddParameter("d", timestamp);
                Thread.Id = (int)adap.InsertQuery();
            }

            this.Threads.Add(Thread);
            return(Thread);
        }
コード例 #23
0
        public void LoadPromotions()
        {
            DataRow GetPromotion = null;

            using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT * FROM `room_promotions` WHERE `room_id` = " + this.Id + " LIMIT 1;");
                GetPromotion = dbClient.getRow();

                if (GetPromotion != null)
                {
                    if (Convert.ToDouble(GetPromotion["timestamp_expire"]) > RavenEnvironment.GetUnixTimestamp())
                    {
                        RoomData._promotion = new RoomPromotion(Convert.ToString(GetPromotion["title"]), Convert.ToString(GetPromotion["description"]), Convert.ToDouble(GetPromotion["timestamp_start"]), Convert.ToDouble(GetPromotion["timestamp_expire"]), Convert.ToInt32(GetPromotion["category_id"]));
                    }
                }
            }
        }
コード例 #24
0
        public GroupForumThreadPost CreatePost(int userid, string message)
        {
            var now  = (int)RavenEnvironment.GetUnixTimestamp();
            var Post = new GroupForumThreadPost(this, 0, userid, now, message, 0, 0);

            using (var adap = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                adap.SetQuery("INSERT INTO group_forums_thread_posts (thread_id, user_id, message, timestamp) VALUES (@a, @b, @c, @d)");
                adap.AddParameter("a", this.Id);
                adap.AddParameter("b", userid);
                adap.AddParameter("c", message);
                adap.AddParameter("d", now);
                Post.Id = (int)adap.InsertQuery();
            }

            Posts.Add(Post);
            return(Post);
        }
コード例 #25
0
        public bool Execute(params object[] Params)
        {
            if (SetItems.Count == 0)
            {
                return(false);
            }


            if (_next < 1 || _next < RavenEnvironment.GetUnixTimestamp())
            {
                _next = RavenEnvironment.GetUnixTimestamp() + Delay;
            }
            if (!Requested)
            {
                TickCount = Delay;
                Requested = true;
            }
            return(true);
        }
コード例 #26
0
        public void SerializeData(ServerPacket Packet)
        {
            var User        = GetAuthor();
            var oculterData = GetDeleter();

            Packet.WriteInteger(Id);                                                     //Post Id
            Packet.WriteInteger(ParentThread.Posts.IndexOf(this));                       //Post Index

            Packet.WriteInteger(User.Id);                                                //User id
            Packet.WriteString(User.Username);                                           //Username
            Packet.WriteString(User.Look);                                               //User look

            Packet.WriteInteger((int)(RavenEnvironment.GetUnixTimestamp() - Timestamp)); //User message timestamp
            Packet.WriteString(Message);                                                 // Message text
            Packet.WriteByte(DeletedLevel * 10);                                         // User message oculted by - level
            Packet.WriteInteger(oculterData != null ? oculterData.Id : 0);               // User that oculted message ID
            Packet.WriteString(oculterData != null ? oculterData.Username : "******");  //Oculted message user name
            Packet.WriteInteger(242342340);
            Packet.WriteInteger(ParentThread.GetUserPosts(User.Id).Count);               //User messages count
        }
コード例 #27
0
ファイル: InfoCommand.cs プロジェクト: pedruhb/RavenServer
        public void Execute(GameClient Session, Room Room, string[] Params)
        {
            DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

            dtDateTime = dtDateTime.AddSeconds(RavenEnvironment.GetUnixTimestamp()).ToLocalTime();

            //string Page = Params[1];

            //ServerPacket packet = new ServerPacket(3);
            //packet.WriteString("Youtube");
            //packet.WriteString("<iframe id=\"youtube-player\" frameborder=\"0\" allowfullscreen=\"1\" allow=\"autoplay; encrypted - media\" title=\"YouTube video player\" width=\"480\" height=\"270\" src=\"https://www.youtube.com/embed/2b1TJbLcneM?autoplay=1&amp;fs=0&amp;modestbranding=1&amp;rel=0&amp;enablejsapi=1&amp;origin=http%3A%2F%2Fhabblive.in&amp;widgetid=1\"></iframe>");

            //if (Session.wsSession != null)
            //    Session.wsSession.send(packet);

            TimeSpan Uptime      = DateTime.Now - RavenEnvironment.ServerStarted;
            int      OnlineUsers = RavenEnvironment.GetGame().GetClientManager().Count;
            int      RoomCount   = RavenEnvironment.GetGame().GetRoomManager().Count;

            //Random Random = new Random();

            //int RandomNumber = Random.Next(1, 1000000);
            //Session.SendMessage(new MassEventComposer("habbopages/" + Page + ".txt?" + RandomNumber + ""));

            //Habbo ReportedUser = RavenEnvironment.GetHabboById(Session.GetHabbo().Id);
            //List<string> Chats = new List<string>();

            //Chats.Add("Hola que tal soy un delincuente.");
            //ModerationTicket Ticket = new ModerationTicket(1, 4, 1, UnixTimestamp.GetNow(), 1, Session.GetHabbo(), ReportedUser, "Men esto es una prueba de cojones que procede", Session.GetHabbo().CurrentRoom, Chats);
            //if (!RavenEnvironment.GetGame().GetModerationManager().TryAddTicket(Ticket))
            //    return;

            //Session.SendMessage(new NewYearResolutionCompletedComposer("ADM"));
            Session.SendMessage(new RoomNotificationComposer("RAVEN PROJECT r2.01 BUILD 030220:",
                                                             "<font color='#0D0106'><b>About Raven:</b>\n" +
                                                             "<font size=\"11\" color=\"#1C1C1C\">Private project powered by Custom and enhanced by Andre, </font>" +
                                                             "<font size=\"11\" color=\"#1C1C1C\">our main goal is sharing Habbo basics with our customers, adding some untold content.\n\nRaven Project started on July 2016 and keeps up for being one of the most relevant projects over the community.\n\n" +
                                                             "<font size =\"12\" color=\"#0B4C5F\"><b>Stats:</b></font>\n" +
                                                             "<font size =\"11\" color=\"#1C1C1C\">  <b> · Users: </b> " + OnlineUsers + "\r  <b> · Rooms: </b> " + RoomCount + "\r  <b> · Uptime: </b> " + Uptime.Days + " days, " + Uptime.Hours + " hours and " + Uptime.Minutes + " minutes.\r <b>  · Date: </b> " + dtDateTime + ".</font>\n\n" +
                                                             "Last update on  <b>1-03-2018</b>.\n\n<font size =\"12\" color=\"#0B4C5F\">Check out <b> :changelog</b> for last updates.</font>", "raven"));
        }
コード例 #28
0
        public bool CheckMute(GameClient Session)
        {
            if (MutedUsers.ContainsKey(Session.GetHabbo().Id))
            {
                if (MutedUsers[Session.GetHabbo().Id] < RavenEnvironment.GetUnixTimestamp())
                {
                    MutedUsers.Remove(Session.GetHabbo().Id);
                }
                else
                {
                    return(true);
                }
            }

            if (Session.GetHabbo().TimeMuted > 0 || (RoomMuted && Session.GetHabbo().Username != OwnerName))
            {
                return(true);
            }

            return(false);
        }
コード例 #29
0
        internal void AddOrExtendSubscription(string SubscriptionId, int DurationSeconds, GameClient Session)
        {
            SubscriptionId = SubscriptionId.ToLower();


            if (this.Subscriptions.ContainsKey(SubscriptionId))
            {
                Subscription subscription = this.Subscriptions[SubscriptionId];

                if (subscription.IsValid())
                {
                    subscription.ExtendSubscription(DurationSeconds);
                }
                else
                {
                    subscription.SetEndTime((int)RavenEnvironment.GetUnixTimestamp() + DurationSeconds);
                }

                using (IQueryAdapter adapter = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    adapter.SetQuery(string.Concat(new object[] { "UPDATE user_subscriptions SET timestamp_expire = ", subscription.ExpireTime, " WHERE user_id = ", this.UserId, " AND subscription_id = '", subscription.SubscriptionId, "'" }));
                    adapter.RunQuery();
                }
            }
            else
            {
                int          unixTimestamp    = (int)RavenEnvironment.GetUnixTimestamp();
                int          timeExpire       = (int)RavenEnvironment.GetUnixTimestamp() + DurationSeconds;
                string       SubscriptionType = SubscriptionId;
                Subscription subscription2    = new Subscription(SubscriptionId, timeExpire);

                using (IQueryAdapter adapter = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    adapter.SetQuery(string.Concat(new object[] { "INSERT INTO user_subscriptions (user_id,subscription_id,timestamp_activated,timestamp_expire) VALUES (", this.UserId, ",'", SubscriptionType, "',", unixTimestamp, ",", timeExpire, ")" }));
                    adapter.RunQuery();
                }

                this.Subscriptions.Add(subscription2.SubscriptionId.ToLower(), subscription2);
            }
        }
コード例 #30
0
        public bool ConfirmBuy(GameClient Session, RentableSpaceItem RentableSpace, int ExpireSeconds)
        {
            if (Session == null)
            {
                return(false);
            }
            if (Session.GetHabbo() == null)
            {
                return(false);
            }
            if (RentableSpace == null)
            {
                return(false);
            }
            if (Session.GetHabbo().Credits < RentableSpace.Price)
            {
                return(false);
            }
            if (ExpireSeconds < 1)
            {
                return(false);
            }

            Session.GetHabbo().Credits -= RentableSpace.Price;
            RentableSpace.OwnerId       = Session.GetHabbo().Id;
            RentableSpace.OwnerUsername = Session.GetHabbo().Username;
            RentableSpace.ExpireStamp   = (int)RavenEnvironment.GetUnixTimestamp() + ExpireSeconds;
            Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits));
            Session.SendMessage(new RentableSpaceComposer(RentableSpace.OwnerId, RentableSpace.OwnerUsername, RentableSpace.GetExpireSeconds()));
            using (IQueryAdapter con = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                con.SetQuery("UPDATE `items_rentablespace` SET owner = @owner, ownerusername = @username, expire = @expire WHERE item_id = @itemid LIMIT 1");
                con.AddParameter("itemid", RentableSpace.ItemId);
                con.AddParameter("owner", Session.GetHabbo().Id);
                con.AddParameter("username", Session.GetHabbo().Username);
                con.AddParameter("expire", RavenEnvironment.GetUnixTimestamp() + 604800);
                con.RunQuery();
            }
            return(true);
        }