Merge branch 'master' into Patron

This commit is contained in:
John Gross
2019-01-16 21:17:47 -08:00
4 changed files with 99 additions and 83 deletions

View File

@@ -167,6 +167,16 @@ namespace Torch.Server.Managers
public void SaveConfig() public void SaveConfig()
{ {
var cf = Torch.Config as TorchConfig;
if (cf?.ReservedPlayers?.Count > 0)
{
foreach (var res in cf.ReservedPlayers)
{
if (!DedicatedConfig.Reserved.Contains(res))
DedicatedConfig.Reserved.Add(res);
}
}
DedicatedConfig.Save(Path.Combine(Torch.Config.InstancePath, CONFIG_NAME)); DedicatedConfig.Save(Path.Combine(Torch.Config.InstancePath, CONFIG_NAME));
Log.Info("Saved dedicated config."); Log.Info("Saved dedicated config.");

View File

@@ -258,8 +258,7 @@ namespace Torch.Server.Managers
_log.Warn($"Rejecting user {info.SteamID} because they are not whitelisted in Torch.cfg."); _log.Warn($"Rejecting user {info.SteamID} because they are not whitelisted in Torch.cfg.");
internalAuth = JoinResult.NotInGroup; internalAuth = JoinResult.NotInGroup;
} }
else if (config.EnableReservedSlots && (config.ReservedPlayers.Contains(info.SteamID) || else if (MySandboxGame.ConfigDedicated.Reserved.Contains(info.SteamID))
MySandboxGame.ConfigDedicated.Reserved.Contains(info.SteamID)))
internalAuth = JoinResult.OK; internalAuth = JoinResult.OK;
//Admins can bypass member limit //Admins can bypass member limit
else if (MySandboxGame.ConfigDedicated.Administrators.Contains(info.SteamID.ToString()) || else if (MySandboxGame.ConfigDedicated.Administrators.Contains(info.SteamID.ToString()) ||

View File

@@ -68,9 +68,14 @@ namespace Torch.Server
public string LastUsedTheme { get; set; } = "Torch Theme"; public string LastUsedTheme { get; set; } = "Torch Theme";
public bool EnableReservedSlots { get; set; } = false; //TODO: REMOVE ME BY JULY 2019
[Obsolete("Use vanilla reserved slot config")]
public HashSet<ulong> ReservedPlayers { get; set; } = new HashSet<ulong>(); public HashSet<ulong> ReservedPlayers { get; set; } = new HashSet<ulong>();
//Prevent reserved players being written to disk, but allow it to bre read
//remove this when ReservedPlayers is removed
private bool ShouldSerializeReservedPlayers() => false;
[XmlIgnore] [XmlIgnore]
private string _path; private string _path;

View File

@@ -58,87 +58,89 @@
<RowDefinition /> <RowDefinition />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid> <ScrollViewer VerticalScrollBarVisibility="Auto">
<Grid.ColumnDefinitions> <Grid>
<ColumnDefinition Width="Auto" /> <Grid.ColumnDefinitions>
<ColumnDefinition /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> <ColumnDefinition />
<StackPanel Grid.Column="0" Margin="3" DockPanel.Dock="Left"> </Grid.ColumnDefinitions>
<Label Content="Server Name" /> <StackPanel Grid.Column="0" Margin="3" DockPanel.Dock="Left">
<TextBox Text="{Binding ServerName}" Margin="3,0,3,3" Width="160" /> <Label Content="Server Name" />
<Label Content="World Name" /> <TextBox Text="{Binding ServerName}" Margin="3,0,3,3" Width="160" />
<TextBox Text="{Binding WorldName}" Margin="3,0,3,3" Width="160" /> <Label Content="World Name" />
<Label Content="Server Description" /> <TextBox Text="{Binding WorldName}" Margin="3,0,3,3" Width="160" />
<TextBox Text="{Binding ServerDescription}" Margin="3,0,3,3" Width="160" Height="100" <Label Content="Server Description" />
AcceptsReturn="true" VerticalScrollBarVisibility="Auto"/> <TextBox Text="{Binding ServerDescription}" Margin="3,0,3,3" Width="160" Height="100"
<Label Content="Whitelist Group ID" /> AcceptsReturn="true" VerticalScrollBarVisibility="Auto"/>
<TextBox Margin="3,0,3,3" Width="160" Style="{StaticResource ValidatedTextBox}"> <Label Content="Whitelist Group ID" />
<TextBox.Text> <TextBox Margin="3,0,3,3" Width="160" Style="{StaticResource ValidatedTextBox}">
<Binding Path="GroupId" UpdateSourceTrigger="PropertyChanged" <TextBox.Text>
ValidatesOnDataErrors="True" NotifyOnValidationError="True"> <Binding Path="GroupId" UpdateSourceTrigger="PropertyChanged"
<Binding.ValidationRules> ValidatesOnDataErrors="True" NotifyOnValidationError="True">
<validationRules:NumberValidationRule /> <Binding.ValidationRules>
</Binding.ValidationRules> <validationRules:NumberValidationRule />
</Binding> </Binding.ValidationRules>
</TextBox.Text> </Binding>
</TextBox> </TextBox.Text>
<Label Content="Server IP" /> </TextBox>
<StackPanel Orientation="Horizontal" Margin="3,0,3,3"> <Label Content="Server IP" />
<TextBox Text="{Binding IP}" Width="100" Height="20" /> <StackPanel Orientation="Horizontal" Margin="3,0,3,3">
<Label Content=":" Width="12" /> <TextBox Text="{Binding IP}" Width="100" Height="20" />
<TextBox Text="{Binding Port}" Width="48" Height="20" /> <Label Content=":" Width="12" />
<TextBox Text="{Binding Port}" Width="48" Height="20" />
</StackPanel>
<Label Content="Server Password"/>
<TextBox Text="{Binding Password}" Width="160"/>
<CheckBox IsChecked="{Binding PauseGameWhenEmpty}" Content="Pause When Empty" Margin="3" />
<CheckBox IsChecked="{Binding AutodetectDependencies}" Content="Auto Detect Dependencies" Margin="3" />
</StackPanel> </StackPanel>
<Label Content="Server Password"/> <StackPanel Grid.Column="1" Margin="3">
<TextBox Text="{Binding Password}" Width="160"/> <Label Content="Mods" />
<CheckBox IsChecked="{Binding PauseGameWhenEmpty}" Content="Pause When Empty" Margin="3" /> <TextBox Margin="3" Height="60" AcceptsReturn="true" VerticalScrollBarVisibility="Auto"
<CheckBox IsChecked="{Binding AutodetectDependencies}" Content="Auto Detect Dependencies" Margin="3" /> Style="{StaticResource ValidatedTextBox}">
</StackPanel> <TextBox.Text>
<StackPanel Grid.Column="1" Margin="3"> <Binding Path="Mods" UpdateSourceTrigger="PropertyChanged"
<Label Content="Mods" /> ValidatesOnDataErrors="True" NotifyOnValidationError="True"
<TextBox Margin="3" Height="60" AcceptsReturn="true" VerticalScrollBarVisibility="Auto" Converter="{StaticResource ListConverterUInt64}">
Style="{StaticResource ValidatedTextBox}"> <Binding.ValidationRules>
<TextBox.Text> <validationRules:ListConverterValidationRule Type="system:UInt64" />
<Binding Path="Mods" UpdateSourceTrigger="PropertyChanged" </Binding.ValidationRules>
ValidatesOnDataErrors="True" NotifyOnValidationError="True" </Binding>
Converter="{StaticResource ListConverterUInt64}"> </TextBox.Text>
<Binding.ValidationRules> </TextBox>
<validationRules:ListConverterValidationRule Type="system:UInt64" /> <Label Content="Administrators" />
</Binding.ValidationRules> <TextBox Text="{Binding Administrators, Converter={StaticResource ListConverterString}}"
</Binding> Margin="3"
</TextBox.Text> Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto" />
</TextBox> <Label Content="Reserved Players" />
<Label Content="Administrators" /> <TextBox Margin="3" Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto"
<TextBox Text="{Binding Administrators, Converter={StaticResource ListConverterString}}" Style="{StaticResource ValidatedTextBox}">
Margin="3" <TextBox.Text>
Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto" /> <Binding Path="Reserved" UpdateSourceTrigger="PropertyChanged"
<Label Content="Reserved Players" /> ValidatesOnDataErrors="True" NotifyOnValidationError="True"
<TextBox Margin="3" Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto" Converter="{StaticResource ListConverterUInt64}">
Style="{StaticResource ValidatedTextBox}"> <Binding.ValidationRules>
<TextBox.Text> <validationRules:ListConverterValidationRule Type="system:UInt64" />
<Binding Path="Reserved" UpdateSourceTrigger="PropertyChanged" </Binding.ValidationRules>
ValidatesOnDataErrors="True" NotifyOnValidationError="True" </Binding>
Converter="{StaticResource ListConverterUInt64}"> </TextBox.Text>
<Binding.ValidationRules> </TextBox>
<validationRules:ListConverterValidationRule Type="system:UInt64" /> <Label Content="Banned Players" />
</Binding.ValidationRules> <TextBox Margin="3" Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto"
</Binding> Style="{StaticResource ValidatedTextBox}">
</TextBox.Text> <TextBox.Text>
</TextBox> <Binding Path="Banned" UpdateSourceTrigger="PropertyChanged"
<Label Content="Banned Players" /> ValidatesOnDataErrors="True" NotifyOnValidationError="True"
<TextBox Margin="3" Height="100" AcceptsReturn="true" VerticalScrollBarVisibility="Auto" Converter="{StaticResource ListConverterUInt64}">
Style="{StaticResource ValidatedTextBox}"> <Binding.ValidationRules>
<TextBox.Text> <validationRules:ListConverterValidationRule Type="system:UInt64" />
<Binding Path="Banned" UpdateSourceTrigger="PropertyChanged" </Binding.ValidationRules>
ValidatesOnDataErrors="True" NotifyOnValidationError="True" </Binding>
Converter="{StaticResource ListConverterUInt64}"> </TextBox.Text>
<Binding.ValidationRules> </TextBox>
<validationRules:ListConverterValidationRule Type="system:UInt64" /> </StackPanel>
</Binding.ValidationRules> </Grid>
</Binding> </ScrollViewer>
</TextBox.Text>
</TextBox>
</StackPanel>
</Grid>
<Button Grid.Row="1" Content="Save Config" Margin="3" Click="Save_OnClick" /> <Button Grid.Row="1" Content="Save Config" Margin="3" Click="Save_OnClick" />
</Grid> </Grid>
<views:PropertyGrid Grid.Column="1" Margin="3" DataContext="{Binding SessionSettings}" IgnoreDisplay ="True" /> <views:PropertyGrid Grid.Column="1" Margin="3" DataContext="{Binding SessionSettings}" IgnoreDisplay ="True" />