public SHubConfigPanel(SHubConfig config) { InitializeComponent(); SHubConfiguration = config; c_ClientID.Text = SHubConfiguration.ClientID; c_AccessToken.Text = SHubConfiguration.AccessToken; c_ChannelName.Text = SHubConfiguration.ChannelName; c_RefreshToken.Text = SHubConfiguration.RefreshToken; c_CommandSymbol.Text = SHubConfiguration.CommandSymbol; c_BotName.Text = SHubConfiguration.BotName; c_ViewerPool_SubBonus.Checked = SHubConfiguration.ViewerPool_SubBonus; c_ViewerPool_SubBonusByTiers.Checked = SHubConfiguration.ViewerPool_SubBonusByTiers; c_ViewerPool_RegisterCommand.Text = SHubConfiguration.ViewerPool_RegisterCommand; c_ViewerPool_CanRollDice.Checked = SHubConfiguration.ViewerPool_CanRollDice; c_Twitch_ClientID.Text = SHubConfiguration.Twitch_ClientID; switch (SHubConfiguration.GTA_mode) { case "c_GTA_modeFIFO": c_GTA_modeFIFO.Checked = true; break; case "c_GTA_modeLIFO": c_GTA_modeLIFO.Checked = true; break; case "c_GTA_modeRR": c_GTA_modeRR.Checked = true; break; case "c_GTA_mode_Rfull": c_GTA_mode_Rfull.Checked = true; break; } SHubConfiguration.GTA_roles ??= new List <Role>(); GTARoles = new BindingList <Role>(SHubConfiguration.GTA_roles); BindingSource source = new BindingSource(GTARoles, null); c_roles.DataSource = source; SHubConfiguration.RoleVotes ??= new List <RoleVote>(); RolesVoter = new BindingList <RoleVote>(SHubConfiguration.RoleVotes); BindingSource RoleVotes = new BindingSource(RolesVoter, null); c_RolesVoter.DataSource = RoleVotes; foreach (var screen in Screen.AllScreens) { c_overlay_display.Items.Add(screen.DeviceName); } c_overlay_display.Text = SHubConfiguration.Overlay_monitor; c_overlay_width.Maximum = Screen.PrimaryScreen.Bounds.Width; c_overlay_height.Maximum = Screen.PrimaryScreen.Bounds.Height; c_overlay_x.Maximum = Screen.PrimaryScreen.Bounds.Width; c_overlay_y.Maximum = Screen.PrimaryScreen.Bounds.Height; c_overlay_width.Value = SHubConfiguration.Overlay_width; c_overlay_height.Value = SHubConfiguration.Overlay_height; c_overlay_x.Value = SHubConfiguration.Overlay_x; c_overlay_y.Value = SHubConfiguration.Overlay_y; c_Overlay_FontSize.Value = (SHubConfiguration.Overlay_FontSize < 8 ? 20 : SHubConfiguration.Overlay_FontSize); }
public static void Load() { if (File.Exists("userSetting.shc")) { Stream stream = new FileStream("userSetting.shc", FileMode.Open, FileAccess.Read); try { IFormatter formatter = new BinaryFormatter(); config = (SHubConfig)formatter.Deserialize(stream); } catch (Exception Ex) { MessageBox.Show(Ex.Message); config = new SHubConfig(); } stream.Close(); } else { config = new SHubConfig(); } }
public SHubMain(SHubConfig cfg) { InitializeComponent(); #region Load Configuration cfg = cfg ?? new SHubConfig(); config = cfg; config.Overlay_FontSize = (config.Overlay_FontSize == 0 ? 14 : config.Overlay_FontSize); SHubConfigPanel ConfigPannel = new SHubConfigPanel(config); while (!config.isSetup()) { DialogResult r = MessageBox.Show("Setting incomplete. Retry or Quit software ?", "Configuration issue", MessageBoxButtons.RetryCancel); if (r == DialogResult.Retry) { ConfigPannel.ShowDialog(); } else { Load += (s, e) => Close(); break; } } Text = $"{config.BotName}"; #endregion #region Twitch client = new TwitchClient(); try { var clientOptions = new ClientOptions { MessagesAllowedInPeriod = 750, ThrottlingPeriod = TimeSpan.FromSeconds(30) }; WebSocketClient customClient = new WebSocketClient(clientOptions); client = new TwitchClient(customClient); client.Initialize(config.GetCredential(), config.ChannelName); client.OnLog += Client_OnLog; client.OnJoinedChannel += Client_OnJoinedChannel; client.OnMessageReceived += Client_OnMessageReceived; client.OnWhisperReceived += Client_OnWhisperReceived; client.OnNewSubscriber += Client_OnNewSubscriber; client.OnConnected += Client_OnConnected; client.OnUserJoined += Client_OnUserJoined; client.OnUserLeft += Client_OnUserLeft; client.Connect(); ExcludedNames.Add(client.TwitchUsername); //ExcludedNames.Add(client.JoinedChannels) } catch (Exception e) { Debug.WriteLine(e); } #endregion #region Twitch_Features c_GTAPool.AutoGenerateColumns = true; //Bindings GTAList = new BindingList <GTA_User>(GTAPoolList); BindingSource source = new BindingSource(GTAList, null); c_GTAPool.DataSource = source; VoteList = new BindingList <RoleVote>(config.RoleVotes); BindingSource sourceVoteRole = new BindingSource(VoteList, null); c_VotesRoles.DataSource = sourceVoteRole; UsersList = new BindingList <GameUser>(ConnectedUsers); BindingSource sourceUsers = new BindingSource(UsersList, null); c_ConnectedUsers.DataSource = sourceUsers; //txt File output for OBS UpdateObsFiles(); UpdateGTACount(); #endregion #region Overlay _brushes = new Dictionary <string, SolidBrush>(); _fonts = new Dictionary <string, Font>(); _images = new Dictionary <string, Image>(); var gfx = new Graphics() { MeasureFPS = true, PerPrimitiveAntiAliasing = true, TextAntiAliasing = true }; _window = new GraphicsWindow(config.Overlay_width, 1080 - config.Overlay_height, config.Overlay_width, config.Overlay_height, gfx) { FPS = 30, IsTopmost = true, IsVisible = true }; _window.DestroyGraphics += _window_DestroyGraphics; _window.DrawGraphics += _window_DrawGraphics; _window.SetupGraphics += _window_SetupGraphics; _window.Create(); //_window.Join(); //seems to replace or take over the WinForm #endregion #region Discord _client = new DiscordSocketClient(); _client.Log += LogAsync; _client.Ready += ReadyAsync; _client.MessageReceived += MessageReceivedAsync; _ = DiscordTask(); #endregion #region RolesVoteFeature #endregion }