Merge branch 'master' into Patron
This commit is contained in:
@@ -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.");
|
||||||
|
|
||||||
|
@@ -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()) ||
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
|
@@ -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" />
|
||||||
|
Reference in New Issue
Block a user