Exemple #1
0
        private void HandleChat(object sender, InterServerEventArgs <ChatMsg> e)
        {
            switch (e.Content.Type)
            {
            case ChatType.Tell:
            {
                var  from     = _interServer.Database.ResolveIgn(e.Content.From);
                var  to       = _interServer.Database.ResolveIgn(e.Content.To);
                bool filtered = Program.Resources.FilterList.Any(r => r.IsMatch(e.Content.Text));
                Log.InfoFormat("<{0} -> {1}{2}> {3}", from, to, filtered ? " *filtered*" : "", e.Content.Text);
                break;
            }

            case ChatType.Guild:
            {
                var from = _interServer.Database.ResolveIgn(e.Content.From);
                Log.InfoFormat("<{0} -> Guild> {1}", from, e.Content.Text);
                break;
            }

            case ChatType.Announce:
                Log.InfoFormat("<Announcement> {0}", e.Content.Text);
                break;
            }
        }
Exemple #2
0
        private void HandleNetwork(object sender, InterServerEventArgs <NetworkMsg> e)
        {
            switch (e.Content.Code)
            {
            case NetworkCode.JOIN:
                if (availableInstance.TryAdd(e.InstanceId, 5))
                {
                    Publish(NETWORK, new NetworkMsg()       //for the new instances
                    {
                        Code = NetworkCode.JOIN,
                        Type = "World Server"
                    });
                }
                else
                {
                    availableInstance[e.InstanceId] = 5;
                }
                break;

            case NetworkCode.PING:
                availableInstance[e.InstanceId] = 5;
                break;

            case NetworkCode.QUIT:
                int dummy;
                availableInstance.TryRemove(e.InstanceId, out dummy);
                break;
            }
        }
Exemple #3
0
        private void HandleChat(object sender, InterServerEventArgs <Message> e)
        {
            switch (e.Content.Type)
            {
            case TELL:
            {
                string from = Database.ResolveIgn(e.Content.From);
                string to   = Database.ResolveIgn(e.Content.To);
                log.Info($"<{from} -> {to}> {e.Content.Text}");
            }
            break;

            case GUILD:
            {
                string from = Database.ResolveIgn(e.Content.From);
                log.Info($"<{from} -> Guild> {e.Content.Text}");
            }
            break;

            case ANNOUNCE:
            {
                log.Info($"<Announcement> {e.Content.Text}");
            }
            break;
            }
        }
Exemple #4
0
        private void HandleNetwork(object sender, InterServerEventArgs <NetworkMsg> e)
        {
            switch (e.Content.Code)
            {
            case NetworkCode.JOIN:
                if (availableInstance.TryAdd(e.InstanceId, 5))
                {
                    log.Info($"Server \"{e.InstanceId}\" ({e.Content.Type}) joined the network.");
                    Publish(NETWORK, new NetworkMsg()       //for the new instances
                    {
                        Code = NetworkCode.JOIN,
                        Type = "Account Server"
                    });
                }
                else
                {
                    availableInstance[e.InstanceId] = 5;
                }
                break;

            case NetworkCode.PING:
                if (!availableInstance.ContainsKey(e.InstanceId))
                {
                    log.Info($"Server \"{e.InstanceId}\" re-joined the network.");
                }
                availableInstance[e.InstanceId] = 5;
                break;

            case NetworkCode.QUIT:
                int dummy;
                availableInstance.TryRemove(e.InstanceId, out dummy);
                log.Info($"Server \"{e.InstanceId}\" quited the network.");
                break;
            }
        }
Exemple #5
0
        private void HandleChat(object sender, InterServerEventArgs <Message> e)
        {
            switch (e.Content.Type)
            {
            case TELL:
            {
                string from = manager.Database.ResolveIgn(e.Content.From);
                string to   = manager.Database.ResolveIgn(e.Content.To);
                foreach (var i in manager.Clients.Values
                         .Where(x => x.Player != null)
                         .Where(x => x.Account.AccountId == e.Content.From ||
                                x.Account.AccountId == e.Content.To)
                         .Select(x => x.Player))
                {
                    //i.TellReceived(
                    //    e.Content.Inst == manager.InstanceId ? e.Content.ObjId : -1,
                    //    e.Content.Stars, from, to, e.Content.Text);
                }
            }
            break;

            case GUILD:
            {
                string from = manager.Database.ResolveIgn(e.Content.From);
                foreach (var i in manager.Clients.Values
                         .Where(x => x.Player != null)
                         .Where(x => x.Account.GuildId == e.Content.To)
                         .Select(x => x.Player))
                {
                    // i.GuildReceived(
                    //     e.Content.Inst == manager.InstanceId ? e.Content.ObjId : -1,
                    //     e.Content.Stars, from, e.Content.Text);
                }
            }
            break;

            case ANNOUNCE:
            {
                foreach (var i in manager.Clients.Values
                         .Where(x => x.Player != null)
                         .Select(x => x.Player))
                {
                    //  i.AnnouncementReceived(e.Content.Text);
                }
            }
            break;
            }
        }
Exemple #6
0
 private void HandleControl(object sender, InterServerEventArgs <Message> e)
 {
     switch (e.Content.Type)
     {
     case FORCE_PRIVATE_MESSAGE_REFRESH:
         foreach (var i in manager.Clients.Keys
                  .Where(x => (x.Player?.Owner?.IsNotCombatMapArea ?? false) && String.Equals(x.Account.Name, e.Content.TargetPlayer, StringComparison.InvariantCultureIgnoreCase)))
         {
             i.SendPacket(new GlobalNotification
             {
                 Text = "forcePrivateMessageRefresh"
             });
         }
         break;
     }
 }
Exemple #7
0
        private void HandleControl(object sender, InterServerEventArgs <ControlMsg> e)
        {
            var c          = e.Content;
            var serverInfo = _manager.InterServer.GetServerInfo(e.InstanceId);

            switch (c.Type)
            {
            case ControlType.Reboot:
                if (c.TargetInst.Equals(_manager.InstanceId))
                {
                    Log.Info($"Server received control message to reboot from {c.Issuer} on {serverInfo?.name}.");
                    Reboot();
                }
                break;
            }
        }
Exemple #8
0
        void HandleChat(object sender, InterServerEventArgs <Message> e)
        {
            switch (e.Content.Type)
            {
            case TELL:
            {
                string from = Database.ResolveIgn(e.Content.From);
                string to   = Database.ResolveIgn(e.Content.To);
                log.InfoFormat("<{0} -> {1}> {2}", from, to, e.Content.Text);
            } break;

            case GUILD:
            {
                string from = Database.ResolveIgn(e.Content.From);
                log.InfoFormat("<{0} -> Guild> {1}", from, e.Content.Text);
            } break;

            case ANNOUNCE:
            {
                log.InfoFormat("<Announcement> {0}", e.Content.Text);
            } break;
            }
        }
Exemple #9
0
        void HandleNetwork(object sender, InterServerEventArgs <NetworkMsg> e)
        {
            switch (e.Content.Code)
            {
            case NetworkCode.JOIN:
                if (availableInstance.TryAdd(e.InstanceId, 5))
                {
                    log.InfoFormat("Server '{0}' ({1}) joined the network.",
                                   e.InstanceId, e.Content.Type);
                    Publish(NETWORK, new NetworkMsg()       //for the new instances
                    {
                        Code = NetworkCode.JOIN,
                        Type = "World Server"
                    });
                }
                else
                {
                    availableInstance[e.InstanceId] = 5;
                }
                break;

            case NetworkCode.PING:
                if (!availableInstance.ContainsKey(e.InstanceId))
                {
                    log.InfoFormat("Server '{0}' re-joined the network.", e.InstanceId);
                }
                availableInstance[e.InstanceId] = 5;
                break;

            case NetworkCode.QUIT:
                int dummy;
                availableInstance.TryRemove(e.InstanceId, out dummy);
                log.InfoFormat("Server '{0}' quited the network.", e.InstanceId);
                break;
            }
        }
Exemple #10
0
        private void HandleChat(object sender, InterServerEventArgs <ChatMsg> e)
        {
            switch (e.Content.Type)
            {
            case ChatType.Tell:
            {
                var from = _interServer.Database.ResolveIgn(e.Content.From);
                var to   = _interServer.Database.ResolveIgn(e.Content.To);
                Log.Info("<{0} -> {1}> {3}", from, to, e.Content.Text);
                break;
            }

            case ChatType.Guild:
            {
                var from = _interServer.Database.ResolveIgn(e.Content.From);
                Log.Info("<{0} -> Guild> {1}", from, e.Content.Text);
                break;
            }

            case ChatType.Announce:
                Log.Info("<Announcement> {0}", e.Content.Text);
                break;
            }
        }
Exemple #11
0
        void HandleChat(object sender, InterServerEventArgs <ChatMsg> e)
        {
            switch (e.Content.Type)
            {
            case ChatType.Tell:
            {
                string from = manager.Database.ResolveIgn(e.Content.From);
                string to   = manager.Database.ResolveIgn(e.Content.To);
                foreach (var i in manager.Clients.Keys
                         .Where(x => x.Player != null)
                         .Where(x => !x.Account.IgnoreList.Contains(e.Content.From))
                         .Where(x => x.Account.AccountId == e.Content.From ||
                                x.Account.AccountId == e.Content.To && (x.Account.IP == e.Content.SrcIP))
                         .Select(x => x.Player))
                {
                    i.TellReceived(
                        e.Content.Inst == manager.InstanceId ? e.Content.ObjId : -1,
                        e.Content.Stars, e.Content.Admin, from, to, e.Content.Text);
                }
            }
            break;

            case ChatType.Guild:
            {
                string from = manager.Database.ResolveIgn(e.Content.From);
                foreach (var i in manager.Clients.Keys
                         .Where(x => x.Player != null)
                         .Where(x => !x.Account.IgnoreList.Contains(e.Content.From))
                         .Where(x => x.Account.GuildId > 0)
                         .Where(x => x.Account.GuildId == e.Content.To)
                         .Select(x => x.Player))
                {
                    i.GuildReceived(
                        e.Content.Inst == manager.InstanceId ? e.Content.ObjId : -1,
                        e.Content.Stars, e.Content.Admin, from, e.Content.Text);
                }
            }
            break;

            case ChatType.GuildAnnounce:
            {
                foreach (var i in manager.Clients.Keys
                         .Where(x => x.Player != null)
                         .Where(x => x.Account.GuildId > 0)
                         .Where(x => x.Account.GuildId == e.Content.To)
                         .Select(x => x.Player))
                {
                    i.GuildReceived(-1, -1, 0, "", e.Content.Text);
                }
            }
            break;

            case ChatType.Announce:
            {
                foreach (var i in manager.Clients.Keys
                         .Where(x => x.Player != null)
                         .Select(x => x.Player))
                {
                    i.AnnouncementReceived(e.Content.Text);
                }
            }
            break;

            case ChatType.Info:
            {
                var player = manager.Clients.Keys.Where(c => c.Account.AccountId == e.Content.To).FirstOrDefault();
                player?.Player.SendInfo(e.Content.Text);
            }
            break;
            }
        }
 private void HandleChat(object sender, InterServerEventArgs <Message> e)
 {
 }
Exemple #13
0
 private void HandleChat(object sender, InterServerEventArgs <ChatMsg> e)
 {
 }
Exemple #14
0
 private void HandleControl(object sender, InterServerEventArgs <Message> e)
 {
     switch (e.Content.Type)
     {
     }
 }