From 54ab6bbfb282be01c457040d6380a298ee1ae808 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 28 Feb 2016 18:23:54 +0100 Subject: [PATCH] Fix prepondFix for msons --- .../editor/CommandEditContainerAbstract.java | 10 +--- .../editor/CommandEditContainerRemove.java | 6 +-- .../massivecraft/massivecore/mson/Mson.java | 48 +++++++++++-------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/com/massivecraft/massivecore/command/editor/CommandEditContainerAbstract.java b/src/com/massivecraft/massivecore/command/editor/CommandEditContainerAbstract.java index 87cfb22a..3332deba 100644 --- a/src/com/massivecraft/massivecore/command/editor/CommandEditContainerAbstract.java +++ b/src/com/massivecraft/massivecore/command/editor/CommandEditContainerAbstract.java @@ -129,20 +129,14 @@ public abstract class CommandEditContainerAbstract extends CommandEditAbst Collection additions = ContainerUtil.getAdditions(before, after); if ( ! additions.isEmpty()) { - messages.add(mson( - mson("Additions: ").color(ChatColor.AQUA), - this.getValueType().getVisualMson((V) additions) - )); + messages.add(Mson.prepondfix(mson("Additions: ").color(ChatColor.AQUA), this.getValueType().getVisualMson((V) additions), null)); } // Note: The result of getDeletions is not actually V, but the implementation doesn't care. Collection deletions = ContainerUtil.getDeletions(before, after); if ( ! deletions.isEmpty()) { - messages.add(mson( - mson("Deletions: ").color(ChatColor.AQUA), - this.getValueType().getVisualMson((V) deletions) - )); + messages.add(Mson.prepondfix(mson("Deletions: ").color(ChatColor.AQUA), this.getValueType().getVisualMson((V) deletions), null)); } message(messages); diff --git a/src/com/massivecraft/massivecore/command/editor/CommandEditContainerRemove.java b/src/com/massivecraft/massivecore/command/editor/CommandEditContainerRemove.java index 77203690..eb57c900 100644 --- a/src/com/massivecraft/massivecore/command/editor/CommandEditContainerRemove.java +++ b/src/com/massivecraft/massivecore/command/editor/CommandEditContainerRemove.java @@ -1,7 +1,7 @@ package com.massivecraft.massivecore.command.editor; +import java.util.Collection; import java.util.Iterator; -import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -32,7 +32,7 @@ public class CommandEditContainerRemove extends CommandEditContainerAbstra { if (this.isCollection()) { - this.alterCollection((List) container); + this.alterCollection((Collection) container); } else { @@ -44,7 +44,7 @@ public class CommandEditContainerRemove extends CommandEditContainerAbstra // OVERRIDE > COLLECTION // -------------------------------------------- // - public void alterCollection(List elements) throws MassiveException + public void alterCollection(Collection elements) throws MassiveException { // Args Object element = this.readElement(); diff --git a/src/com/massivecraft/massivecore/mson/Mson.java b/src/com/massivecraft/massivecore/mson/Mson.java index 6c683059..5c16cdb4 100644 --- a/src/com/massivecraft/massivecore/mson/Mson.java +++ b/src/com/massivecraft/massivecore/mson/Mson.java @@ -47,6 +47,7 @@ public class Mson implements Serializable public static final Mson SPACE = mson(" "); public static final Mson EMPTY = mson(""); + public static final Mson NEWLINE = mson("\n"); // -------------------------------------------- // // GSON @@ -1117,31 +1118,36 @@ public class Mson implements Serializable // If the centerpiece is multiple Strings it concatenates prefix + suffix and then appends the centerpice at the end. // This algorithm is used in the editor system. + public static List prepondfix(Mson prefix, List msons, Mson suffix) + { + // Create + List ret = new MassiveList<>(); + + // Fill + List parts = new MassiveList<>(); + if (prefix != null) parts.add(prefix); + if (msons.size() == 1) parts.add(msons.get(0)); + if (suffix != null) parts.add(suffix); + + ret.add(implode(parts, SPACE)); + + if (msons.size() != 1) + { + ret.addAll(msons); + } + + // Return + return ret; + } + public static Mson prepondfix(Mson prefix, Mson mson, Mson suffix) { - // Fill - if (mson.contains("\n")) - { - List parts = new MassiveList<>(); - if (prefix != null) parts.add(prefix); - if (suffix != null) parts.add(suffix); - - return mson( - implode(parts, SPACE), - "\n", - mson - ); - } - else - { - List parts = new MassiveList<>(); - if (prefix != null) parts.add(prefix); - parts.add(mson); - if (suffix != null) parts.add(suffix); - return implode(parts, SPACE); - } + List msons = mson.split(Txt.PATTERN_NEWLINE); + List ret = prepondfix(prefix, msons, suffix); + return implode(ret, NEWLINE); } + // -------------------------------------------- // // MESSAGE // -------------------------------------------- //