RunUO/Scripts/Commands/CheckBalance.cs

49 lines
1.6 KiB
C#

using System;
using Server;
using Server.Commands;
using Server.Mobiles;
using Server.Targeting;
namespace Server.Custom.Commands
{
public class CheckBalance
{
public static void Initialize()
{
CommandSystem.Register("CheckBalance", AccessLevel.GameMaster, new CommandEventHandler(CheckBalance_OnCommand));
}
[Usage("CheckBalance")]
[Description("Checks the true Banker balance (including AccountGold) of a targeted player.")]
public static void CheckBalance_OnCommand(CommandEventArgs e)
{
e.Mobile.Target = new BalanceTarget();
e.Mobile.SendMessage(68, "Target a player to check their total bank balance.");
}
private class BalanceTarget : Target
{
// The '-1' means standard range, 'false' means it doesn't allow ground targeting
public BalanceTarget() : base(-1, false, TargetFlags.None)
{
}
protected override void OnTarget(Mobile from, object targeted)
{
if (targeted is PlayerMobile)
{
PlayerMobile pm = (PlayerMobile)targeted;
// Banker.GetBalance checks both AccountGold AND physical bank gold
long balance = Banker.GetBalance(pm);
from.SendMessage(68, $"{pm.Name} has a true bank balance of: {balance} gold.");
}
else
{
from.SendMessage(33, "You must target a player character.");
}
}
}
}
}