diff --git a/Content.Server/SS220/aw_cargodolg/CargoDolgCommand.cs b/Content.Server/SS220/CargoMoneyCommand/CargoMoneyCommand.cs similarity index 61% rename from Content.Server/SS220/aw_cargodolg/CargoDolgCommand.cs rename to Content.Server/SS220/CargoMoneyCommand/CargoMoneyCommand.cs index 35c48d38179e..8b24652e0dfe 100644 --- a/Content.Server/SS220/aw_cargodolg/CargoDolgCommand.cs +++ b/Content.Server/SS220/CargoMoneyCommand/CargoMoneyCommand.cs @@ -7,6 +7,7 @@ using Content.Server.Cargo.Systems; using Content.Server.Cargo.Components; using System.Linq; +using System.Collections.Generic; namespace Content.Server.Cargo.Commands { @@ -22,11 +23,16 @@ public sealed class CargoMoneyCommand : IConsoleCommand public void Execute(IConsoleShell shell, string argStr, string[] args) { - if (args.Length == 2) + if (args.Length == 1 && args[0] == "getall") + { + PrintCargoStationsInfo(shell); + return; + } + if (args.Length == 4) { bool bSet = false; - if (int.TryParse(args[1], out var toAdd)) + if (int.TryParse(args[2], out var toAdd)) { switch (args[0]) { @@ -42,13 +48,22 @@ public void Execute(IConsoleShell shell, string argStr, string[] args) goto invalidArgs; } - ProccessMoney(shell, toAdd, bSet); + ProccessMoney(shell, toAdd, bSet, args[1]); return; } } invalidArgs: shell.WriteLine("Expected invalid arguments!"); } + private void PrintCargoStationsInfo(IConsoleShell shell) + { + var bankQuery = _entityManager.EntityQueryEnumerator(); + + while (bankQuery.MoveNext(out var uid, out var bankComp)) + { + shell.WriteLine($"BankEntity: {uid.Id}, Values: {bankComp.Balance}"); + } + } public CompletionResult GetCompletion(IConsoleShell shell, string[] args) { @@ -56,9 +71,12 @@ public CompletionResult GetCompletion(IConsoleShell shell, string[] args) switch (args.Length) { case 1: - res = CompletionResult.FromHint("set || add || rem"); + res = CompletionResult.FromHint("set || add || rem || getall"); break; case 2: + res = CompletionResult.FromHint("EntityUid"); + break; + case 3: res = CompletionResult.FromHint("amount"); break; } @@ -66,21 +84,23 @@ public CompletionResult GetCompletion(IConsoleShell shell, string[] args) return res; } - private void ProccessMoney(IConsoleShell shell, int money, bool bSet) + private void ProccessMoney(IConsoleShell shell, int money, bool bSet, string station) { - var cargoSystem = _entitySystemManager.GetEntitySystem(); - var bankQuery = _entityManager.EntityQueryEnumerator(); + if (EntityUid.TryParse(station, out var bankEnt) && _entityManager.TryGetComponent(bankEnt, out var bankComponent)) + { + var cargoSystem = _entitySystemManager.GetEntitySystem(); - bankQuery.MoveNext(out var owner, out var bankComponent); - if (!_entityManager.EntityExists(owner) || bankComponent is null) - return; - var currentMoney = bankComponent.Balance; + var currentMoney = bankComponent.Balance; - cargoSystem.UpdateBankAccount(owner, bankComponent, -currentMoney); - cargoSystem.UpdateBankAccount(owner, bankComponent, bSet ? money : currentMoney + money); + cargoSystem.UpdateBankAccount(bankEnt, bankComponent, -currentMoney); + cargoSystem.UpdateBankAccount(bankEnt, bankComponent, bSet ? money : currentMoney + money); - shell.WriteLine($"Successfully changed cargo's money to {bankComponent.Balance}"); + shell.WriteLine($"Successfully changed EntityUid {station} cargo's money to {bankComponent.Balance}"); + + return; + } + shell.WriteError("Expected invalid EntityUid!"); } } }