예제 #1
0
 public void PlayerLoggedOff(PlayerLoggedOffEvent ev)
 {
     if (ev.Handle.CurrentLobby != null)
     {
         this.manager.Sink(this.Leave(ev.Handle, ev.Handle.CurrentLobby));
     }
 }
예제 #2
0
 public void PlayerLoggedOff(PlayerLoggedOffEvent ev)
 {
     if (ev.Handle.CurrentGroup != null)
     {
         this.LeaveGroup(ev.Handle);
     }
 }
예제 #3
0
        public void PlayerLoggedOff(PlayerLoggedOffEvent ev)
        {
            var beenOnlineFor = DateTime.Now - ev.Handle.LoggedAt;
            var user          = this.FindUser(ev.Handle.User.Id);

            user.TotalSecondsOnline += beenOnlineFor.TotalSeconds;
            this.db.Write(c => c.UserUpdate(user));
        }
예제 #4
0
 public void PlayerLoggedOff(PlayerLoggedOffEvent ev)
 {
     if (ev.Handle.Character != null)
     {
         Character ch = null;
         this.loggedCharacters.TryRemove(ev.Handle.Character.Id, out ch);
     }
 }
예제 #5
0
 public void PlayerLoggedOff(PlayerLoggedOffEvent ev)
 {
     if (this.config.Currency.Enabled)
     {
         try
         {
             this.GrantOnlineBonus(ev.Handle.User, DateTime.Now - ev.Handle.LoggedAt);
         } catch (Database.NotFoundException)
         {
             Log.Warning("Failed to grant bonus - user {username} not found in the db!", ev.Handle.User.Username);
         }
     }
 }
예제 #6
0
        public void PlayerLoggedOff(PlayerLoggedOffEvent ev)
        {
            lock (this.server)
            {
                var room = this.server.World.FindUserRoom(ev.Handle);

                if (room != null && !room.IsSemiPersistent && !room.IsPermanent)
                {
                    this.server.Sink(this.CloseRoom(room));
                }
                else if (room != null)
                {
                    room.OwnerLastSeen = DateTime.Now;
                    if (room.IsSemiPersistent)
                    {
                        Log.Information("Player {player} logged off and left his room {identifier} dangling", ev.Handle.Digest, room.Identifier);
                        room.IsDangling = true;
                    }
                }
            }
        }
 public void PlayerLoggedOff(PlayerLoggedOffEvent ev)
 {
     Log.Debug("Removing agreements containing {player} - logged off", ev.Handle.Digest);
     this.removePoseAgreement(ev.Handle.Name);
     this.removeMarryAgreement(ev.Handle.Name);
 }