Modified PaginationTools to have colored console output.
This commit is contained in:
parent
7c3ffee48c
commit
7509204c4c
1 changed files with 299 additions and 254 deletions
|
|
@ -21,12 +21,15 @@ using System.Collections.Generic;
|
|||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace TShockAPI {
|
||||
public static class PaginationTools {
|
||||
namespace TShockAPI
|
||||
{
|
||||
public static class PaginationTools
|
||||
{
|
||||
public delegate Tuple<string, Color> LineFormatterDelegate(object lineData, int lineIndex, int pageNumber);
|
||||
|
||||
#region [Nested: Settings Class]
|
||||
public class Settings {
|
||||
public class Settings
|
||||
{
|
||||
public bool IncludeHeader { get; set; }
|
||||
|
||||
private string headerFormat;
|
||||
|
|
@ -118,8 +121,16 @@ namespace TShockAPI {
|
|||
if (dataToPaginateCount == 0)
|
||||
{
|
||||
if (settings.NothingToDisplayString != null)
|
||||
{
|
||||
if (player is TSServerPlayer)
|
||||
{
|
||||
player.SendSuccessMessage(settings.NothingToDisplayString);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.SendMessage(settings.NothingToDisplayString, settings.HeaderTextColor);
|
||||
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -130,7 +141,16 @@ namespace TShockAPI {
|
|||
pageNumber = pageCount;
|
||||
|
||||
if (settings.IncludeHeader)
|
||||
{
|
||||
if (player is TSServerPlayer)
|
||||
{
|
||||
player.SendSuccessMessage(string.Format(settings.HeaderFormat, pageNumber, pageCount));
|
||||
}
|
||||
else
|
||||
{
|
||||
player.SendMessage(string.Format(settings.HeaderFormat, pageNumber, pageCount), settings.HeaderTextColor);
|
||||
}
|
||||
}
|
||||
|
||||
int listOffset = (pageNumber - 1) * settings.MaxLinesPerPage;
|
||||
int offsetCounter = 0;
|
||||
|
|
@ -175,19 +195,44 @@ namespace TShockAPI {
|
|||
}
|
||||
|
||||
if (lineMessage != null)
|
||||
{
|
||||
if (player is TSServerPlayer)
|
||||
{
|
||||
Console.WriteLine(lineMessage);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.SendMessage(lineMessage, lineColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (lineCounter == 0)
|
||||
{
|
||||
if (settings.NothingToDisplayString != null)
|
||||
{
|
||||
if (player is TSServerPlayer)
|
||||
{
|
||||
player.SendSuccessMessage(settings.NothingToDisplayString);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.SendMessage(settings.NothingToDisplayString, settings.HeaderTextColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (settings.IncludeFooter && pageNumber + 1 <= pageCount)
|
||||
{
|
||||
if (player is TSServerPlayer)
|
||||
{
|
||||
player.SendInfoMessage(string.Format(settings.FooterFormat, pageNumber + 1, pageNumber, pageCount));
|
||||
}
|
||||
else
|
||||
{
|
||||
player.SendMessage(string.Format(settings.FooterFormat, pageNumber + 1, pageNumber, pageCount), settings.FooterTextColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void SendPage(TSPlayer player, int pageNumber, IList dataToPaginate, Settings settings = null)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue