From 74553bcf72499e0a9beaa059ca1660056de4498b Mon Sep 17 00:00:00 2001 From: ulumulu1510 Date: Sat, 5 Sep 2015 11:09:00 +0200 Subject: [PATCH] Change Txt.getPage to taking List and Pager to Mson only --- .../massivecore/cmd/HelpCommand.java | 2 +- .../CmdMassiveCoreUsysAspectList.java | 2 +- .../CmdMassiveCoreUsysMultiverseList.java | 2 +- .../massivecraft/massivecore/pager/Pager.java | 19 +- .../massivecore/pager/PagerAbstract.java | 85 ++++----- .../massivecraft/massivecore/util/Txt.java | 175 +++++++++--------- 6 files changed, 130 insertions(+), 155 deletions(-) diff --git a/src/com/massivecraft/massivecore/cmd/HelpCommand.java b/src/com/massivecraft/massivecore/cmd/HelpCommand.java index 6812d313..99e3aab7 100644 --- a/src/com/massivecraft/massivecore/cmd/HelpCommand.java +++ b/src/com/massivecraft/massivecore/cmd/HelpCommand.java @@ -56,7 +56,7 @@ public class HelpCommand extends MassiveCommand } // Send Lines - message(Txt.getPage(lines, page, "Help for command \"" + parentCommand.getAliases().get(0) + "\"", sender)); + message(Txt.getPage(lines, page, "Help for command \"" + parentCommand.getAliases().get(0) + "\"", this)); } } diff --git a/src/com/massivecraft/massivecore/cmd/massivecore/CmdMassiveCoreUsysAspectList.java b/src/com/massivecraft/massivecore/cmd/massivecore/CmdMassiveCoreUsysAspectList.java index 0599078c..e1e9bc87 100644 --- a/src/com/massivecraft/massivecore/cmd/massivecore/CmdMassiveCoreUsysAspectList.java +++ b/src/com/massivecraft/massivecore/cmd/massivecore/CmdMassiveCoreUsysAspectList.java @@ -50,7 +50,7 @@ public class CmdMassiveCoreUsysAspectList extends MassiveCommand } // Send them - this.message(Txt.getPage(lines, page, "Aspect List", sender)); + this.message(Txt.getPage(lines, page, "Aspect List", this)); } } diff --git a/src/com/massivecraft/massivecore/cmd/massivecore/CmdMassiveCoreUsysMultiverseList.java b/src/com/massivecraft/massivecore/cmd/massivecore/CmdMassiveCoreUsysMultiverseList.java index 91ac9231..3196c029 100644 --- a/src/com/massivecraft/massivecore/cmd/massivecore/CmdMassiveCoreUsysMultiverseList.java +++ b/src/com/massivecraft/massivecore/cmd/massivecore/CmdMassiveCoreUsysMultiverseList.java @@ -49,7 +49,7 @@ public class CmdMassiveCoreUsysMultiverseList extends MassiveCommand } // Send them - this.message(Txt.getPage(lines, page, "Multiverse List", sender)); + this.message(Txt.getPage(lines, page, "Multiverse List", this)); } } diff --git a/src/com/massivecraft/massivecore/pager/Pager.java b/src/com/massivecraft/massivecore/pager/Pager.java index f420d5f6..e473a964 100644 --- a/src/com/massivecraft/massivecore/pager/Pager.java +++ b/src/com/massivecraft/massivecore/pager/Pager.java @@ -24,19 +24,18 @@ public interface Pager public boolean isEmpty(); public List get(int number); - // -------------------------------------------- // - // TXT - // -------------------------------------------- // - - public String getMessageEmpty(); - public String getMessageInvalid(); - public List getPageTxt(int number, String title, Stringifier stringifier); - // -------------------------------------------- // // MSON // -------------------------------------------- // - public List getPageMson(int number, String title, MassiveCommand command, List args, Msonifier msonifier); - public List getPageMson(int number, String title, MassiveCommand command, Msonifier msonifier); + public List getPage(int number, String title, MassiveCommand command, List args, Msonifier msonifier); + public List getPage(int number, String title, MassiveCommand command, Msonifier msonifier); + + // -------------------------------------------- // + // STRING + // -------------------------------------------- // + + public List getPage(int number, String title, MassiveCommand command, List args, Stringifier stringifier); + public List getPage(int number, String title, MassiveCommand command, Stringifier stringifier); } diff --git a/src/com/massivecraft/massivecore/pager/PagerAbstract.java b/src/com/massivecraft/massivecore/pager/PagerAbstract.java index 716927e3..5f84e1df 100644 --- a/src/com/massivecraft/massivecore/pager/PagerAbstract.java +++ b/src/com/massivecraft/massivecore/pager/PagerAbstract.java @@ -66,90 +66,73 @@ public abstract class PagerAbstract implements Pager } // -------------------------------------------- // - // TXT + // MSON // -------------------------------------------- // @Override - public String getMessageEmpty() + public List getPage(int number, String title, MassiveCommand command, List args, Msonifier msonifier) { - return Txt.getMessageEmpty().toPlain(true); - } - - @Override - public String getMessageInvalid() - { - return Txt.getMessageInvalid(this.size()).toPlain(true); - } - - @Override - public List getPageTxt(int number, String title, final Stringifier stringifier) - { - List ret = new ArrayList(); - - List msons = getPageMson(number, title, null, null, new Msonifier(){ - - @Override - public Mson toMson(T item, int index) - { - return Mson.mson(stringifier.toString(item, index)); - } - - }); - - for (Mson mson : msons) - { - ret.add(mson.toPlain(true)); - } - - return ret; - } - - // -------------------------------------------- // - // Mson - // -------------------------------------------- // - - @Override - public List getPageMson(int number, String title, MassiveCommand command, List args, Msonifier msonifier) - { + // Create ret List ret = new ArrayList(); + // Add title ret.add(Txt.titleizeMson(title, this.size(), number, command, args)); + // Check empty if (this.isEmpty()) { ret.add(Txt.getMessageEmpty()); return ret; } + // Get items List pageItems = this.get(number); + // Check invalid if (pageItems == null) { ret.add(Txt.getMessageInvalid(this.size())); return ret; } + // Add items int index = (number - 1) * this.getItemsPerPage(); for (T pageItem : pageItems) { - if (msonifier != null) - { - ret.add(msonifier.toMson(pageItem, index)); - } - else - { - ret.add(Mson.mson(pageItem.toString())); - } + ret.add(msonifier.toMson(pageItem, index)); index++; } + // Return ret return ret; } @Override - public List getPageMson(int number, String title, MassiveCommand command, Msonifier msonifier) + public List getPage(int number, String title, MassiveCommand command, Msonifier msonifier) { - return this.getPageMson(number, title, command, command.getArgs(), msonifier); + return this.getPage(number, title, command, command.getArgs(), msonifier); + } + + // -------------------------------------------- // + // STRING + // -------------------------------------------- // + + @Override + public List getPage(int number, String title, MassiveCommand command, List args, Stringifier stringifier) + { + return this.getPage(number, title, command, args, new Msonifier(){ + @Override + public Mson toMson(T item, int index) + { + return Mson.fromParsedMessage(stringifier.toString(item, index)); + } + }); + } + + @Override + public List getPage(int number, String title, MassiveCommand command, Stringifier stringifier) + { + return this.getPage(number, title, command, command.getArgs(), stringifier); } } diff --git a/src/com/massivecraft/massivecore/util/Txt.java b/src/com/massivecraft/massivecore/util/Txt.java index 7b461b4f..2a5e845e 100644 --- a/src/com/massivecraft/massivecore/util/Txt.java +++ b/src/com/massivecraft/massivecore/util/Txt.java @@ -477,39 +477,6 @@ public class Txt } } - public static List getPage(List lines, int pageHumanBased, String title) - { - return getPage(lines, pageHumanBased, title, PAGEHEIGHT_PLAYER); - } - - public static List getPage(List lines, int pageHumanBased, String title, CommandSender sender) - { - return getPage(lines, pageHumanBased, title, (sender instanceof Player) ? Txt.PAGEHEIGHT_PLAYER : Txt.PAGEHEIGHT_CONSOLE); - } - - public static List getPage(List lines, int pageHumanBased, String title, int pageheight) - { - ArrayList ret = new ArrayList(); - int pageZeroBased = pageHumanBased - 1; - int pagecount = (int)Math.ceil(((double)lines.size()) / pageheight); - - title = titleize(title + parse("") + " " + pageHumanBased + "/" + pagecount); - ret.add(title); - - if (pagecount == 0) - { - ret.add(getMessageEmpty().toPlain(true)); - return ret; - } - else if (pageZeroBased < 0 || pageHumanBased > pagecount) - { - ret.add(getMessageInvalid(pagecount).toPlain(true)); - return ret; - } - - return createPage(lines, pageHumanBased, title, pageheight); - } - public static Mson titleizeMson(String str, int pagecount, int pageHumanBased, MassiveCommand command, List args) { if (command == null) return mson(titleize(str + parse("") + " " + pageHumanBased + "/" + pagecount)); @@ -546,6 +513,90 @@ public class Txt } } + public static List getPage(List lines, int pageHumanBased, String title) + { + return getPage(lines, pageHumanBased, title, PAGEHEIGHT_PLAYER, null, null); + } + + public static List getPage(List lines, int pageHumanBased, String title, CommandSender sender) + { + return getPage(lines, pageHumanBased, title, (sender instanceof Player) ? Txt.PAGEHEIGHT_PLAYER : Txt.PAGEHEIGHT_CONSOLE, null, null); + } + + public static List getPage(List lines, int pageHumanBased, String title, MassiveCommand command) + { + return getPage(lines, pageHumanBased, title, command, command.getArgs()); + } + + public static List getPage(List lines, int pageHumanBased, String title, MassiveCommand command, List args) + { + return getPage(lines, pageHumanBased, title, (command.sender instanceof Player) ? Txt.PAGEHEIGHT_PLAYER : Txt.PAGEHEIGHT_CONSOLE, command, args); + } + + @SuppressWarnings("unchecked") + public static List getPage(List lines, int pageHumanBased, String title, int pageheight, MassiveCommand command, List args) + { + // Check if command is present + boolean flipPage = command != null; + + // If command is present, reduce pageheight in favor of flipsection + if (flipPage) pageheight--; + + // Create ret + ArrayList ret = new ArrayList(); + int pageZeroBased = pageHumanBased - 1; + int pagecount = (int)Math.ceil(((double)lines.size()) / pageheight); + + // Add title + Mson msonTitle = Txt.titleizeMson(title, pagecount, pageHumanBased, command, args); + ret.add(msonTitle); + + // Check empty and invalid + if (pagecount == 0) + { + ret.add(getMessageEmpty()); + return ret; + } + else if (pageZeroBased < 0 || pageHumanBased > pagecount) + { + ret.add(getMessageInvalid(pagecount)); + return ret; + } + + // Get lines + int from = pageZeroBased * pageheight; + int to = from + pageheight; + if (to > lines.size()) + { + to = lines.size(); + } + + // Check object type and add lines + Object first = lines.get(0); + + if (first instanceof String) + { + for (String line : (List) lines.subList(from, to)) + { + ret.add(Mson.fromParsedMessage(line)); + } + } + else if (first instanceof Mson) + { + ret.addAll((List) lines.subList(from, to)); + } + else + { + throw new IllegalArgumentException("The lines must be either String or Mson."); + } + + // Add flipsection if command is present + if (flipPage) ret.add(getFlipSection(pagecount, pageHumanBased, args, command)); + + // Return ret + return ret; + } + private static Mson getFlipSection(int pagecount, int pageHumanBased, List args, MassiveCommand command) { // Construct Mson @@ -601,64 +652,6 @@ public class Txt return mson.command(commandLine).tooltip(Txt.parse(tooltip, commandLine)); } - public static List getPageMson(List lines, int pageHumanBased, String title, MassiveCommand command, List args) - { - return getPageMson(lines, pageHumanBased, title, PAGEHEIGHT_PLAYER, command, args); - } - - public static List getPageMson(List lines, int pageHumanBased, String title, CommandSender sender, MassiveCommand command, List args) - { - return getPageMson(lines, pageHumanBased, title, (sender instanceof Player) ? Txt.PAGEHEIGHT_PLAYER : Txt.PAGEHEIGHT_CONSOLE, command, args); - } - - public static List getPageMson(List lines, int pageHumanBased, String title, int pageheight, MassiveCommand command, List args) - { - // reduce pageheight in favor of flipsection - pageheight--; - - ArrayList ret = new ArrayList(); - int pageZeroBased = pageHumanBased - 1; - int pagecount = (int)Math.ceil(((double)lines.size()) / pageheight); - - Mson msonTitle = Txt.titleizeMson(title, pagecount, pageHumanBased, command, args); - ret.add(msonTitle); - - if (pagecount == 0) - { - ret.add(getMessageEmpty()); - return ret; - } - else if (pageZeroBased < 0 || pageHumanBased > pagecount) - { - ret.add(getMessageInvalid(pagecount)); - return ret; - } - - List page = createPage(lines, pageHumanBased, msonTitle, pageheight); - page.add(getFlipSection(pagecount, pageHumanBased, args, command)); - - return page; - } - - private static List createPage(List lines, int pageHumanBased, T title, int pageheight) - { - ArrayList ret = new ArrayList(); - int pageZeroBased = pageHumanBased - 1; - - ret.add(title); - - int from = pageZeroBased * pageheight; - int to = from + pageheight; - if (to > lines.size()) - { - to = lines.size(); - } - - ret.addAll(lines.subList(from, to)); - - return ret; - } - // -------------------------------------------- // // Describing Time // -------------------------------------------- //