[Fix] More fixes (#487)

* fix criminal console foobar

* fix tts volume

* log reputation
This commit is contained in:
HitPanda
2023-10-12 22:51:20 +03:00
committed by Aviu00
parent b8d28ceb37
commit 12d304b5af
5 changed files with 50 additions and 7 deletions

View File

@@ -10,7 +10,7 @@
Access="Public"
HorizontalExpand="True"
VerticalExpand="False"
ToolTip="foobar"
ToolTip="{Loc 'criminal-login-in-desc'}"
TooltipDelay="0.25">
<BoxContainer Orientation="Horizontal" >
<TextureRect Access="Public" Name="LIcon"

View File

@@ -100,9 +100,12 @@ public sealed class TTSSystem : EntitySystem
private void OnPlayTTS(PlayTTSEvent ev)
{
var volume = 0f;
if (_volume <= -20f)
return;
var volume = _volume;
if (ev.BoostVolume)
volume = 5f;
volume += 5f;
if (!TryCreateAudioSource(ev.Data, out var source, volume))
return;

View File

@@ -35,8 +35,9 @@ public sealed class ModifyReputationCommand : IConsoleCommand
}
var uid = playerData.UserId;
var admin = playerData.UserName;
repManager.ModifyPlayerReputation(uid, value);
repManager.ModifyPlayerReputation(uid, value, admin);
shell.WriteLine($"Added {args[1]} to the reputation of {args[0]}.");
}

View File

@@ -35,8 +35,9 @@ public sealed class SetReputationCommand : IConsoleCommand
}
var uid = playerData.UserId;
var admin = playerData.UserName;
repManager.SetPlayerReputation(uid, value);
repManager.SetPlayerReputation(uid, value, admin);
shell.WriteLine($"Set reputation of {args[0]} to {args[1]}.");
}

View File

@@ -1,5 +1,6 @@
using System.Linq;
using System.Threading.Tasks;
using Content.Server.Administration;
using Content.Server.Database;
using Content.Server.GameTicking;
using Content.Shared.GameTicking;
@@ -16,10 +17,15 @@ public sealed class ReputationManager : EntitySystem
[Dependency] private readonly IServerDbManager _db = default!;
[Dependency] private readonly IServerNetManager _netMgr = default!;
[Dependency] private readonly IRobustRandom _random = default!;
[Dependency] private readonly ILogManager _logManager = default!;
[Dependency] private readonly IPlayerLocator _locator = default!;
private readonly Dictionary<NetUserId, ReputationInfo> _cacheReputation = new();
private readonly Dictionary<NetUserId, DateTime> _playerConnectionTime = new();
private ISawmill _sawmill = default!;
private const string SawmillId = "reputation.logs";
public override void Initialize()
{
base.Initialize();
@@ -95,18 +101,30 @@ public sealed class ReputationManager : EntitySystem
#region PublicApi
public async void SetPlayerReputation(NetUserId player, float value)
public async void SetPlayerReputation(NetUserId player, float value, string? admin = null)
{
var preValue = await GetPlayerReputation(player);
if (preValue == null)
return;
var guid = player.UserId;
await SetPlayerReputationTask(guid, value);
RaiseLocalEvent(new UpdateCachedReputationEvent(player));
await LogReputationChange(player, preValue.Value, false, admin);
}
public async void ModifyPlayerReputation(NetUserId player, float value)
public async void ModifyPlayerReputation(NetUserId player, float value, string? admin = null)
{
var preValue = await GetPlayerReputation(player);
if (preValue == null)
return;
var guid = player.UserId;
await ModifyPlayerReputationTask(guid, value);
RaiseLocalEvent(new UpdateCachedReputationEvent(player));
await LogReputationChange(player, preValue.Value, true, admin);
}
public async Task<float?> GetPlayerReputation(NetUserId player)
@@ -217,5 +235,25 @@ public sealed class ReputationManager : EntitySystem
}
}
private async Task LogReputationChange(NetUserId user, float preValue, bool modify, string? admin = null)
{
var located = await _locator.LookupIdAsync(user);
if (located == null)
return;
var newValue = await GetPlayerReputation(user);
if (newValue == null)
return;
var adminName = admin != null ? $" by {admin}" : "";
var msg = modify
? $"Reputation of {located.Username} was modified from {preValue} to {newValue.Value}{adminName}."
: $"Reputation of {located.Username} was set from {preValue} to {newValue.Value}{adminName}.";
_sawmill = _logManager.GetSawmill(SawmillId);
_sawmill.Info(msg);
}
#endregion
}