442569b339
fixed previous alias displayed on welcome announcement fixed duplicate events on profile page tweaked display of non event meta on mobile you can view other's stats from the webconsole penalties show privileged client's level don't have commands to chat history
79 lines
2.5 KiB
C#
79 lines
2.5 KiB
C#
using SharedLibrary;
|
|
using SharedLibrary.Objects;
|
|
using SharedLibrary.Services;
|
|
using StatsPlugin.Models;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace StatsPlugin.Commands
|
|
{
|
|
public class CViewStats : Command
|
|
{
|
|
public CViewStats() : base("stats", "view your stats", "xlrstats", Player.Permission.User, false, new CommandArgument[]
|
|
{
|
|
new CommandArgument()
|
|
{
|
|
Name = "player",
|
|
Required = false
|
|
}
|
|
})
|
|
{ }
|
|
|
|
public override async Task ExecuteAsync(Event E)
|
|
{
|
|
if (E.Target?.ClientNumber < 0)
|
|
{
|
|
await E.Origin.Tell("The specified player must be ingame");
|
|
return;
|
|
}
|
|
|
|
if (E.Origin.ClientNumber < 0 && E.Target == null)
|
|
{
|
|
await E.Origin.Tell("You must be ingame to view your stats");
|
|
return;
|
|
}
|
|
|
|
String statLine;
|
|
EFClientStatistics pStats;
|
|
|
|
if (E.Data.Length > 0 && E.Target == null)
|
|
{
|
|
await E.Origin.Tell("Cannot find the player you specified");
|
|
return;
|
|
}
|
|
|
|
var clientStats = new GenericRepository<EFClientStatistics>();
|
|
int serverId = E.Owner.GetHashCode();
|
|
|
|
if (E.Target != null)
|
|
{
|
|
pStats = clientStats.Find(c => c.ServerId == serverId && c.ClientId == E.Target.ClientId).First();
|
|
statLine = String.Format("^5{0} ^7KILLS | ^5{1} ^7DEATHS | ^5{2} ^7KDR | ^5{3} ^7SKILL", pStats.Kills, pStats.Deaths, pStats.KDR, pStats.Skill);
|
|
}
|
|
|
|
else
|
|
{
|
|
pStats = pStats = clientStats.Find(c => c.ServerId == serverId && c.ClientId == E.Origin.ClientId).First();
|
|
statLine = String.Format("^5{0} ^7KILLS | ^5{1} ^7DEATHS | ^5{2} ^7KDR | ^5{3} ^7SKILL", pStats.Kills, pStats.Deaths, pStats.KDR, pStats.Skill);
|
|
}
|
|
|
|
if (E.Message.IsBroadcastCommand())
|
|
{
|
|
string name = E.Target == null ? E.Origin.Name : E.Target.Name;
|
|
await E.Owner.Broadcast($"Stats for ^5{name}^7");
|
|
await E.Owner.Broadcast(statLine);
|
|
}
|
|
|
|
else
|
|
{
|
|
if (E.Target != null)
|
|
await E.Origin.Tell($"Stats for ^5{E.Target.Name}^7");
|
|
await E.Origin.Tell(statLine);
|
|
}
|
|
}
|
|
}
|
|
}
|