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;
}
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;
}
}
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;
}
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;
}
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;
}
Aggregations