diff --git a/src/ARKServerManager/Globalization/en-US/en-US.xaml b/src/ARKServerManager/Globalization/en-US/en-US.xaml index 177770ce..dfa71a9e 100644 --- a/src/ARKServerManager/Globalization/en-US/en-US.xaml +++ b/src/ARKServerManager/Globalization/en-US/en-US.xaml @@ -2723,6 +2723,9 @@ Undocumented bye wildcard. View Tribe... Copy ID... Copy Player ID... + Kick Player + Ban Player + Unban Player Admin Name: This is the name used to prefix serverchat messages sent from the console. diff --git a/src/ARKServerManager/Lib/ServerRCON.cs b/src/ARKServerManager/Lib/ServerRCON.cs index aae38a27..3a862bb6 100644 --- a/src/ARKServerManager/Lib/ServerRCON.cs +++ b/src/ARKServerManager/Lib/ServerRCON.cs @@ -33,6 +33,9 @@ namespace ServerManagerTool.Lib public const string RCON_COMMAND_GETCHAT = "getchat"; public const string RCON_COMMAND_SERVERCHAT = "serverchat"; public const string RCON_COMMAND_WILDDINOWIPE = "DestroyWildDinos"; + public const string RCON_COMMAND_KICKPLAYER = "KickPlayer"; + public const string RCON_COMMAND_BANPLAYER = "BanPlayer"; + public const string RCON_COMMAND_UNBANPLAYER = "UnbanPlayer"; public event EventHandler PlayersCollectionUpdated; diff --git a/src/ARKServerManager/Windows/RCONWindow.xaml b/src/ARKServerManager/Windows/RCONWindow.xaml index 5b41b84e..f2bb551b 100644 --- a/src/ARKServerManager/Windows/RCONWindow.xaml +++ b/src/ARKServerManager/Windows/RCONWindow.xaml @@ -197,6 +197,11 @@ + + + + + diff --git a/src/ARKServerManager/Windows/RCONWindow.xaml.cs b/src/ARKServerManager/Windows/RCONWindow.xaml.cs index efd139bc..9128ae74 100644 --- a/src/ARKServerManager/Windows/RCONWindow.xaml.cs +++ b/src/ARKServerManager/Windows/RCONWindow.xaml.cs @@ -645,6 +645,57 @@ namespace ServerManagerTool } } + + public ICommand KickPlayerProfileCommand + { + get + { + return new RelayCommand( + execute: (player) => + { + if (player.PlayerData != null) + { + this.ServerRCON.IssueCommand($"{ServerRcon.RCON_COMMAND_KICKPLAYER} {player.PlayerId.ToString()}"); + } + }, + canExecute: (player) => player != null + ); + } + } + + public ICommand BanPlayerProfileCommand + { + get + { + return new RelayCommand( + execute: (player) => + { + if (player.PlayerData != null) + { + this.ServerRCON.IssueCommand($"{ServerRcon.RCON_COMMAND_BANPLAYER} {player.PlayerId.ToString()}"); + } + }, + canExecute: (player) => player != null + ); + } + } + + public ICommand UnbanPlayerProfileCommand + { + get + { + return new RelayCommand( + execute: (player) => + { + if (player.PlayerData != null) + { + this.ServerRCON.IssueCommand($"{ServerRcon.RCON_COMMAND_UNBANPLAYER} {player.PlayerId.ToString()}"); + } + }, + canExecute: (player) => player != null + ); + } + } #endregion #region Events