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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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; } }
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) { }
private void HandleChat(object sender, InterServerEventArgs <ChatMsg> e) { }
private void HandleControl(object sender, InterServerEventArgs <Message> e) { switch (e.Content.Type) { } }