Skip to content

Commit

Permalink
Fix sending only one variable to chat (#483)
Browse files Browse the repository at this point in the history
  • Loading branch information
bensku committed Apr 11, 2017
1 parent f0d22cd commit c4a22a5
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 11 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
groupid=ch.njol
name=skript
version=2.2-dev26c
version=2.2-dev26d
35 changes: 25 additions & 10 deletions src/main/java/ch/njol/skript/lang/VariableString.java
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,9 @@ public MessageComponent[] getMessageComponents(final Event e) {
final Object o = string[i];
if (o instanceof VariableString) {
final MessageComponent[] c2 = ((VariableString) o).getMessageComponents(e);
ChatMessages.copyStyles(componentList.get(componentList.size() - 1), c2[0]); // Copy styles

if (!componentList.isEmpty())
ChatMessages.copyStyles(componentList.get(componentList.size() - 1), c2[0]); // Copy styles
componentList.addAll(Arrays.asList(c2));
} else if (o instanceof ExpressionInfo) {
assert mode == StringMode.MESSAGE;
Expand All @@ -468,24 +470,37 @@ public MessageComponent[] getMessageComponents(final Event e) {
// } else {
if (info.expr instanceof VariableString) {
final MessageComponent[] c2 = ((VariableString) o).getMessageComponents(e);
ChatMessages.copyStyles(componentList.get(componentList.size() - 1), c2[0]); // Copy styles

if (!componentList.isEmpty())
ChatMessages.copyStyles(componentList.get(componentList.size() - 1), c2[0]); // Copy styles

componentList.addAll(Arrays.asList(c2));
} else {
final String str = Classes.toString(info.expr.getArray(e), flags, null);
MessageComponent last = componentList.get(componentList.size() - 1);
if (last != null)
last.text += str;
else

if (!componentList.isEmpty()) {
MessageComponent last = componentList.get(componentList.size() - 1);
if (last != null)
last.text += str;
else
componentList.add(ChatMessages.plainText(str));
} else {
componentList.add(ChatMessages.plainText(str));
}
}
} else if (o instanceof Expression<?>) {
assert mode != StringMode.MESSAGE;
final String str = Classes.toString(((Expression<?>) o).getArray(e), true, mode);
MessageComponent last = componentList.get(componentList.size() - 1);
if (last != null)
last.text += str;
else

if (!componentList.isEmpty()) {
MessageComponent last = componentList.get(componentList.size() - 1);
if (last != null)
last.text += str;
else
componentList.add(ChatMessages.plainText(str));
} else {
componentList.add(ChatMessages.plainText(str));
}
}
} else { // String part, parsed already
// However, there might be variable URLs etc.
Expand Down

0 comments on commit c4a22a5

Please sign in to comment.