felinid for admin (#187)
This commit is contained in:
committed by
Aviu00
parent
cc45a18fea
commit
17c8c7070d
@@ -1,10 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Content.Client.Administration.Managers;
|
||||
using Content.Client.White.Sponsors;
|
||||
using Content.Shared.Administration;
|
||||
using Content.Shared.Preferences;
|
||||
using Robust.Client;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Client.Player;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
@@ -22,6 +22,8 @@ namespace Content.Client.Preferences
|
||||
|
||||
//WD-EDIT
|
||||
[Dependency] private readonly SponsorsManager _sponsorsManager = default!;
|
||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||
[Dependency] private readonly IClientAdminManager _adminManager = default!;
|
||||
//WD-EDIT
|
||||
|
||||
public event Action? OnServerDataLoaded;
|
||||
@@ -67,7 +69,7 @@ namespace Content.Client.Preferences
|
||||
{
|
||||
//WD-EDIT
|
||||
var allowedMarkings = _sponsorsManager.TryGetInfo(out var sponsor) ? sponsor.AllowedMarkings : new string[]{};
|
||||
profile.EnsureValid(allowedMarkings);
|
||||
profile.EnsureValid(allowedMarkings, _adminManager.HasFlag(AdminFlags.AdminSpecies));
|
||||
//WD-EDIT
|
||||
var characters = new Dictionary<int, ICharacterProfile>(Preferences.Characters) {[slot] = profile};
|
||||
Preferences = new PlayerPreferences(characters, Preferences.SelectedCharacterIndex, Preferences.AdminOOCColor);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using Content.Client.Administration.Managers;
|
||||
using Content.Client.Humanoid;
|
||||
using Content.Client.Lobby.UI;
|
||||
using Content.Client.Message;
|
||||
@@ -7,6 +8,7 @@ using Content.Client.Players.PlayTimeTracking;
|
||||
using Content.Client.Stylesheets;
|
||||
using Content.Client.UserInterface.Controls;
|
||||
using Content.Client.White.Sponsors;
|
||||
using Content.Shared.Administration;
|
||||
using Content.Shared.CCVar;
|
||||
using Content.Shared.GameTicking;
|
||||
using Content.Shared.Humanoid;
|
||||
@@ -27,11 +29,13 @@ using Robust.Client.UserInterface.XAML;
|
||||
using Robust.Client.Utility;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Enums;
|
||||
using Robust.Shared.Log;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Timing;
|
||||
using Robust.Shared.Utility;
|
||||
using TerraFX.Interop.Windows;
|
||||
using static Robust.Client.UserInterface.Controls.BoxContainer;
|
||||
using Direction = Robust.Shared.Maths.Direction;
|
||||
|
||||
@@ -58,6 +62,7 @@ namespace Content.Client.Preferences.UI
|
||||
|
||||
//WD-EDIT
|
||||
private readonly SponsorsManager _sponsorsManager;
|
||||
private readonly IClientAdminManager _adminManager;
|
||||
//WD-EDIT
|
||||
|
||||
private readonly IClientPreferencesManager _preferencesManager;
|
||||
@@ -128,6 +133,7 @@ namespace Content.Client.Preferences.UI
|
||||
{
|
||||
RobustXamlLoader.Load(this);
|
||||
_sponsorsManager = IoCManager.Resolve<SponsorsManager>();
|
||||
_adminManager = IoCManager.Resolve<IClientAdminManager>();
|
||||
_prototypeManager = prototypeManager;
|
||||
_entMan = entityManager;
|
||||
_preferencesManager = preferencesManager;
|
||||
@@ -208,37 +214,11 @@ namespace Content.Client.Preferences.UI
|
||||
#region Species
|
||||
|
||||
//WD EDIT
|
||||
_speciesList = prototypeManager.EnumeratePrototypes<SpeciesPrototype>().Where(o => o.RoundStart).ToList();
|
||||
|
||||
if (_sponsorsManager.TryGetInfo(out var sponsor))
|
||||
{
|
||||
for (int i = _speciesList.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var specie = _speciesList[i];
|
||||
|
||||
if (specie.SponsorOnly && !sponsor.AllowedMarkings.Contains(specie.ID))
|
||||
{
|
||||
_speciesList.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = _speciesList.Count - 1; i >= 0; i--)
|
||||
{
|
||||
var specie = _speciesList[i];
|
||||
|
||||
if (specie.SponsorOnly)
|
||||
{
|
||||
_speciesList.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
_speciesList = GetAllowedSpecies();
|
||||
//WD EDIT END
|
||||
|
||||
for (var i = 0; i < _speciesList.Count; i++)
|
||||
{
|
||||
|
||||
var specie = _speciesList[i]; // WD EDIT
|
||||
var name = Loc.GetString(specie.Name);
|
||||
|
||||
@@ -1228,6 +1208,54 @@ namespace Content.Client.Preferences.UI
|
||||
}
|
||||
}
|
||||
|
||||
//WD EDIT
|
||||
private List<SpeciesPrototype> GetAllowedSpecies()
|
||||
{
|
||||
var allowedSpecies = new List<SpeciesPrototype>();
|
||||
|
||||
var rawSpecieList = _prototypeManager.EnumeratePrototypes<SpeciesPrototype>()
|
||||
.Where((specie) =>
|
||||
{
|
||||
if (specie.RoundStart && (specie.SponsorOnly || specie.ForAdmins))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (specie.RoundStart)
|
||||
{
|
||||
allowedSpecies.Add(specie);
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}).ToList();
|
||||
|
||||
if (_sponsorsManager.TryGetInfo(out var sponsor))
|
||||
{
|
||||
foreach (var specie in rawSpecieList)
|
||||
{
|
||||
if (specie.SponsorOnly
|
||||
&& sponsor.AllowedMarkings.Contains(specie.ID)
|
||||
&& !allowedSpecies.Contains(specie))
|
||||
{
|
||||
allowedSpecies.Add(specie);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (_adminManager.HasFlag(AdminFlags.AdminSpecies))
|
||||
{
|
||||
foreach (var specie in rawSpecieList)
|
||||
{
|
||||
if (specie.ForAdmins && !allowedSpecies.Contains(specie))
|
||||
{
|
||||
allowedSpecies.Add(specie);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return allowedSpecies;
|
||||
}
|
||||
//WD EDIT END
|
||||
|
||||
private void UpdateJobPriorities()
|
||||
{
|
||||
foreach (var prioritySelector in _jobPriorities)
|
||||
|
||||
Reference in New Issue
Block a user