Search in sources :

Example 16 with Mson

use of com.massivecraft.massivecore.mson.Mson in project MassiveCore by MassiveCraft.

the class Txt method getFlipSection.

private static Mson getFlipSection(int pagecount, int pageHumanBased, List<String> args, MassiveCommand command) {
    // Construct Mson
    Mson start = mson(String.valueOf(pageHumanBased)).color(ChatColor.GOLD);
    Mson backward = mson("[<] ").color(ChatColor.GRAY);
    Mson forward = mson(" [>]").color(ChatColor.GRAY);
    Mson end = mson(String.valueOf(pagecount)).color(ChatColor.GOLD);
    // Set flip page backward commands
    if (pageHumanBased > 1) {
        start = setFlipPageCommand(start, pageHumanBased, 1, args, command);
        backward = setFlipPageCommand(backward, pageHumanBased, pageHumanBased - 1, args, command).color(ChatColor.AQUA);
    }
    // Set flip page forward commands
    if (pagecount > pageHumanBased) {
        forward = setFlipPageCommand(forward, pageHumanBased, pageHumanBased + 1, args, command).color(ChatColor.AQUA);
        end = setFlipPageCommand(end, pageHumanBased, pagecount, args, command);
    }
    Mson flipMson = mson(backward, start, mson("/").color(ChatColor.GOLD), end, forward);
    return flipMson;
}
Also used : Mson(com.massivecraft.massivecore.mson.Mson)

Example 17 with Mson

use of com.massivecraft.massivecore.mson.Mson in project MassiveCore by MassiveCraft.

the class Txt method titleizeMson.

public static Mson titleizeMson(Object obj, int pagecount, int pageHumanBased, MassiveCommand command, List<String> args) {
    if (command == null) {
        return titleize(mson(obj, Mson.SPACE, mson(pageHumanBased + "/" + pagecount).color(ChatColor.GOLD)));
    }
    // Math
    Mson title = mson(obj, Mson.SPACE, "[<]", String.valueOf(pageHumanBased), "/", String.valueOf(pagecount), "[>]");
    int centerlen = ".[ ".length() + title.length() + " ].".length();
    int pivot = titleizeLine.length() / 2;
    int eatLeft = (centerlen / 2) - titleizeBalance;
    int eatRight = (centerlen - eatLeft) + titleizeBalance;
    // Mson
    Mson centerMson = mson(mson(".[ ").color(ChatColor.GOLD), mson(obj, Mson.SPACE).color(ChatColor.DARK_GREEN), getFlipSection(pagecount, pageHumanBased, args, command), mson(" ].").color(ChatColor.GOLD));
    if (eatLeft < pivot) {
        Mson ret = mson(mson(titleizeLine.substring(0, pivot - eatLeft)).color(ChatColor.GOLD), centerMson, mson(titleizeLine.substring(pivot + eatRight)).color(ChatColor.GOLD));
        return ret;
    } else {
        return centerMson;
    }
}
Also used : Mson(com.massivecraft.massivecore.mson.Mson)

Example 18 with Mson

use of com.massivecraft.massivecore.mson.Mson in project MassiveCore by MassiveCraft.

the class Txt method titleize.

public static Mson titleize(Object obj) {
    Mson title = mson(obj);
    if (title.getColor() == null)
        title = title.color(ChatColor.DARK_GREEN);
    Mson center = mson(mson(".[ ").color(ChatColor.GOLD), title, mson(" ].").color(ChatColor.GOLD));
    int centerlen = center.length();
    int pivot = titleizeLine.length() / 2;
    int eatLeft = (centerlen / 2) - titleizeBalance;
    int eatRight = (centerlen - eatLeft) + titleizeBalance;
    if (eatLeft < pivot)
        return mson(mson(titleizeLine.substring(0, pivot - eatLeft)).color(ChatColor.GOLD), center, mson(titleizeLine.substring(pivot + eatRight)).color(ChatColor.GOLD));
    else
        return center;
}
Also used : Mson(com.massivecraft.massivecore.mson.Mson)

Example 19 with Mson

use of com.massivecraft.massivecore.mson.Mson in project MassiveCore by MassiveCraft.

the class Txt method getPage.

@SuppressWarnings("unchecked")
public static List<Mson> getPage(List<?> lines, int pageHumanBased, Object title, int pageheight, MassiveCommand command, List<String> args) {
    // Create Ret
    List<Mson> ret = new MassiveList<>();
    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<String>) lines.subList(from, to)) {
            ret.add(Mson.fromParsedMessage(line));
        }
    } else if (first instanceof Mson) {
        ret.addAll((List<Mson>) lines.subList(from, to));
    } else {
        throw new IllegalArgumentException("The lines must be either String or Mson.");
    }
    // Return Ret
    return ret;
}
Also used : Mson(com.massivecraft.massivecore.mson.Mson) MassiveList(com.massivecraft.massivecore.collections.MassiveList) ArrayList(java.util.ArrayList) MassiveList(com.massivecraft.massivecore.collections.MassiveList) List(java.util.List)

Example 20 with Mson

use of com.massivecraft.massivecore.mson.Mson in project MassiveCore by MassiveCraft.

the class MixinMessage method messageOne.

public boolean messageOne(Object sendeeObject, Collection<?> messages) {
    // Check Sendee
    CommandSender sendee = IdUtil.getSender(sendeeObject);
    if (sendee == null)
        return false;
    // Check Messages
    if (messages == null)
        return false;
    if (messages.isEmpty())
        return false;
    // For each Message
    for (Object message : messages) {
        if (message instanceof String) {
            String plain = (String) message;
            NmsChat.get().sendChatPlain(sendee, plain);
        } else if (message instanceof Mson) {
            Mson mson = (Mson) message;
            NmsChat.get().sendChatMson(sendee, mson);
        } else {
            String desc = (message == null ? "null" : message.getClass().getSimpleName());
            throw new IllegalArgumentException(desc + " is neither String nor Mson.");
        }
    }
    return true;
}
Also used : Mson(com.massivecraft.massivecore.mson.Mson) CommandSender(org.bukkit.command.CommandSender)

Aggregations

Mson (com.massivecraft.massivecore.mson.Mson)20 MassiveList (com.massivecraft.massivecore.collections.MassiveList)7 MassiveException (com.massivecraft.massivecore.MassiveException)2 Requirement (com.massivecraft.massivecore.command.requirement.Requirement)1 Type (com.massivecraft.massivecore.command.type.Type)1 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 List (java.util.List)1 ChatColor (org.bukkit.ChatColor)1 CommandSender (org.bukkit.command.CommandSender)1 Player (org.bukkit.entity.Player)1