public DiscordWebhookEventNamesWindow(ValheimServer server)
        {
            InitializeComponent();
            Server        = server;
            nameTextBoxes = new();
            removeKeys    = new();
            DefaultNames  = ValheimServer.DiscordWebhookDefaultAttackNames;
            CustomNames   = Server.DiscordServerEventNames;
            var combinedNames = new SortedDictionary <string, string>();

            foreach (string key in CustomNames.Keys)
            {
                combinedNames.Add(key, CustomNames[key]);
            }
            foreach (string key in DefaultNames.Keys)
            {
                if (!combinedNames.ContainsKey(key))
                {
                    combinedNames.Add(key, DefaultNames[key]);
                }
            }
            foreach (string key in combinedNames.Keys)
            {
                addEventRow(key, combinedNames[key]);
            }
        }
        public ServerLogWindow(ValheimServer server)
        {
            InitializeComponent();
            _server          = server;
            this.Title       = $"{server.LogRawName}";
            prevExtentHeight = 0;
            RefreshLogText();

            refreshInterval        = 1000;
            refreshTimer           = new();
            refreshTimer.AutoReset = false;
            refreshTimer.Elapsed  += RefreshTimer_Elapsed;

            retryInterval        = 4000;
            retryTimer           = new();
            retryTimer.AutoReset = false;
            retryTimer.Elapsed  += RetryTimer_Elapsed;

            logWatcher = new FileSystemWatcher();
            // Watch for changes in LastWrite times.
            logWatcher.NotifyFilter = NotifyFilters.LastWrite;
            logWatcher.Path         = Environment.CurrentDirectory;

            // Only watch .db files.
            logWatcher.Filter = $"{server.LogRawName}";

            logWatcher.Changed            += LogWatcher_Changed;
            logWatcher.EnableRaisingEvents = true;
        }
示例#3
0
        public ServerDetailsWindow(ValheimServer server)
        {
            InitializeComponent();
            this._server = server;
            txtServerLog.Document.Blocks.Clear();
            foreach (var installmethod in Enum.GetValues(typeof(ValheimServer.ServerInstallMethod)))
            {
                cmbServerType.Items.Add(installmethod);
            }
            resourceTimer           = new();
            resourceTimer.Interval  = 10000;
            resourceTimer.AutoReset = true;
            resourceTimer.Elapsed  += ResourceTimer_Elapsed;
            if (Server.Status == ValheimServer.ServerStatus.Running)
            {
                UpdateServerResourcesUsed();
                resourceTimer.Enabled = true;
            }
            RefreshControls();
            attachServerEventHandlers();
            ServerToControls();
            _steamPath = null;
            try
            {
                string      filePath = @"Program Files (x86)\Steam\steam.exe";
                DriveInfo[] drives   = DriveInfo.GetDrives();
                foreach (DriveInfo drive in drives)
                {
                    string testpath = $@"{drive.Name}{filePath}";
                    if (File.Exists(testpath))
                    {
                        _steamPath = testpath;
                        RefreshControls();
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Error searching for Steam path");
                Debug.WriteLine(ex);
            }
            LoadLists();

            foreach (var entry in Server.LogEntries)
            {
                if (txtServerLog.Document.Blocks.Count > 0)
                {
                    txtServerLog.Document.Blocks.InsertBefore(txtServerLog.Document.Blocks.FirstBlock, (Paragraph)entry);
                }
                else
                {
                    txtServerLog.Document.Blocks.Add((Paragraph)entry);
                }
            }
            cmbPriority.Items.Add(ProcessPriorityClass.Normal);
            cmbPriority.Items.Add(ProcessPriorityClass.AboveNormal);
            cmbPriority.Items.Add(ProcessPriorityClass.High);
        }
        public DiscordWebhookWindow(ValheimServer server)
        {
            InitializeComponent();
            WindowStartupLocation = WindowStartupLocation.CenterOwner;
            _server = server;

            txtWebhook.Text = _server.DiscordWebhook;

            var contextMenu = new ContextMenu();
            var defaultMenu = new MenuItem();

            contextMenu.Items.Add(defaultMenu);
            defaultMenu.Header = "Reset to default";
            defaultMenu.Icon   = FindResource("Cancel");
            defaultMenu.Click += DefaultMenu_Click;
            menuEditNames      = new MenuItem();
            contextMenu.Items.Add(menuEditNames);
            menuEditNames.Header = "Edit random event names";
            menuEditNames.Icon   = FindResource("Edit");
            menuEditNames.Click += MenuEditNames_Click;

            messageControls = new();
            messageControls.Add(txtOnPlayerConnected);
            messageControls.Add(txtOnPlayerDisconnected);
            messageControls.Add(txtOnPlayerDied);
            messageControls.Add(txtOnFailedPassword);
            messageControls.Add(txtOnRandomServerEvent);
            messageControls.Add(txtOnStarted);
            messageControls.Add(txtOnStartFailed);
            messageControls.Add(txtOnServerExited);
            messageControls.Add(txtOnUpdated);
            foreach (var textBox in messageControls)
            {
                textBox.Text                = server.GetWebhookMessage(textBox.Tag.ToString());
                textBox.ContextMenu         = contextMenu;
                textBox.ContextMenuOpening += TextBox_ContextMenuOpening;
            }
        }
 public ValheimServerTests()
 {
     this.Server          = this.GetService <ValheimServer>();
     ServerLogger         = this.GetService <ValheimServerLogger>();
     PlayerDataRepository = this.GetService <IPlayerDataRepository>();
 }
示例#6
0
 public ServerEventArgs(ValheimServer server)
 {
     _server = server;
 }