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.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace TShockAPI {
|
namespace TShockAPI
|
||||||
public static class PaginationTools {
|
{
|
||||||
|
public static class PaginationTools
|
||||||
|
{
|
||||||
public delegate Tuple<string, Color> LineFormatterDelegate(object lineData, int lineIndex, int pageNumber);
|
public delegate Tuple<string, Color> LineFormatterDelegate(object lineData, int lineIndex, int pageNumber);
|
||||||
|
|
||||||
#region [Nested: Settings Class]
|
#region [Nested: Settings Class]
|
||||||
public class Settings {
|
public class Settings
|
||||||
|
{
|
||||||
public bool IncludeHeader { get; set; }
|
public bool IncludeHeader { get; set; }
|
||||||
|
|
||||||
private string headerFormat;
|
private string headerFormat;
|
||||||
|
|
@ -118,8 +121,16 @@ namespace TShockAPI {
|
||||||
if (dataToPaginateCount == 0)
|
if (dataToPaginateCount == 0)
|
||||||
{
|
{
|
||||||
if (settings.NothingToDisplayString != null)
|
if (settings.NothingToDisplayString != null)
|
||||||
|
{
|
||||||
|
if (player is TSServerPlayer)
|
||||||
|
{
|
||||||
|
player.SendSuccessMessage(settings.NothingToDisplayString);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
player.SendMessage(settings.NothingToDisplayString, settings.HeaderTextColor);
|
player.SendMessage(settings.NothingToDisplayString, settings.HeaderTextColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -130,7 +141,16 @@ namespace TShockAPI {
|
||||||
pageNumber = pageCount;
|
pageNumber = pageCount;
|
||||||
|
|
||||||
if (settings.IncludeHeader)
|
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);
|
player.SendMessage(string.Format(settings.HeaderFormat, pageNumber, pageCount), settings.HeaderTextColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int listOffset = (pageNumber - 1) * settings.MaxLinesPerPage;
|
int listOffset = (pageNumber - 1) * settings.MaxLinesPerPage;
|
||||||
int offsetCounter = 0;
|
int offsetCounter = 0;
|
||||||
|
|
@ -175,19 +195,44 @@ namespace TShockAPI {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lineMessage != null)
|
if (lineMessage != null)
|
||||||
|
{
|
||||||
|
if (player is TSServerPlayer)
|
||||||
|
{
|
||||||
|
Console.WriteLine(lineMessage);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
player.SendMessage(lineMessage, lineColor);
|
player.SendMessage(lineMessage, lineColor);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (lineCounter == 0)
|
if (lineCounter == 0)
|
||||||
{
|
{
|
||||||
if (settings.NothingToDisplayString != null)
|
if (settings.NothingToDisplayString != null)
|
||||||
|
{
|
||||||
|
if (player is TSServerPlayer)
|
||||||
|
{
|
||||||
|
player.SendSuccessMessage(settings.NothingToDisplayString);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
player.SendMessage(settings.NothingToDisplayString, settings.HeaderTextColor);
|
player.SendMessage(settings.NothingToDisplayString, settings.HeaderTextColor);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (settings.IncludeFooter && pageNumber + 1 <= pageCount)
|
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);
|
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)
|
public static void SendPage(TSPlayer player, int pageNumber, IList dataToPaginate, Settings settings = null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue