public String getDisplayText(Interaction interaction) throws ContextDataRequired, GeneralInteractionError, AbortInteraction { // TOOD: Pagination support... // see if we have an active paginator PaginationAssistant paginator = interaction.getContextData( PaginationAssistant.class, interaction, getTranslationKey(interaction) + "_paginator"); if (paginator != null) { return paginator.getDisplayText(); } else { // generate page content, and if there's too much, then activate a paginator.. if (hasChoices) { Choices choices = Choices.getChoices(this, interaction); if (choices == null) choices = generateChoices(interaction); String text = generateDisplayBody(interaction) + "\n"; String choiceText = interaction.parseMessage(StringUtils.join(choices.generateChoiceList(), "")); if (text.split("\n").length + choiceText.split("\n").length + 1 > maxLines) { // we'll need a paginator paginator = new PaginationAssistant(choiceText, maxLines, text); interaction.context.put(getTranslationKey(interaction) + "_paginator", paginator); return paginator.getDisplayText(); } else return text + "\n" + choiceText; } else { String text = generateDisplayBody(interaction); if (text.split("\n").length > maxLines) { paginator = new PaginationAssistant(text, maxLines, ""); interaction.context.put(getTranslationKey(interaction) + "_paginator", paginator); return paginator.getDisplayText(); } else return text; } } }
public String generateDisplayBody(Interaction interaction) { String text = null; if (translatableBody) text = VariableTool.variable(getTranslationKey(interaction) + ".text"); else text = getText(); return interaction.parseMessage(text); }