protected override void OnChatMessage(MsgChat msg) { base.OnChatMessage(msg); DriverInfo driver; if (this.PluginManager.TryGetDriverInfo(msg.CarId, out driver) && driver.IsAdmin) { if (msg.Message.StartsWith("/next_track", StringComparison.InvariantCultureIgnoreCase)) { this.NextTrackAsync(true); } else if (msg.Message.StartsWith("/change_track ")) { string track = msg.Message.Substring("/change_track ".Length).Trim(); string layout = string.Empty; string[] parts = track.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 2) { track = parts[0]; layout = parts[1]; } int trackIndex = GetTrackIndex(track, layout); if (trackIndex > -1) { ThreadPool.QueueUserWorkItem(o => this.ChangeTrack(trackIndex, true)); } else { PluginManager.SendChatMessage(msg.CarId, "Specified track is not in trackcycle"); } } } }
protected override void OnChatMessage(MsgChat msg) { base.OnChatMessage(msg); Console.WriteLine("CHAT_" + msg.CarId + ": " + msg.Message); }
protected internal virtual void OnChatMessage(MsgChat msg) { }
protected override void OnChatMessage(MsgChat msg) { if (!msg.IsCommand) return; var split = msg.Message.Split(' '); if (split.Length > 0) { switch (split[0].ToLower()) { case "/mr": case "/minorating": { if (split.Length == 1) // only /mr HandleClientActions(LiveDataServer.RequestDriverRating(CurrentSessionGuid, msg.CarId)); else HandleClientActions(LiveDataServer.RequestMRCommandAdminInfo(CurrentSessionGuid, msg.CarId, PluginManager.GetDriverInfo(msg.CarId).IsAdmin, split)); } break; default: break; } } }