Adding getTextByValue method to replace duplicate code (#823)

* Added FormattedTextValue.getTextByValue()

* changed getBoolean() and added to display_title
This commit is contained in:
replaceitem authored and GitHub committed 2021-04-20 17:14:08 -03:00
1 parent de92d47f70
commit e26e332a6d
4 files changed
+14 -34

No files matched your search

+3 -11
View File
@@ -520,7 +520,7 @@ public class Auxiliary {
targets = playerTargets; targets = playerTargets;
res = lv.get(1).evalValue(c); res = lv.get(1).evalValue(c);
} }
Text message = (res instanceof FormattedTextValue)?((FormattedTextValue) res).getText():new LiteralText(res.getString()); Text message = FormattedTextValue.getTextByValue(res);
if (targets == null) if (targets == null)
{ {
s.sendFeedback(message, false); s.sendFeedback(message, false);
@@ -573,16 +573,8 @@ public class Auxiliary {
if (lv.size() > 2) if (lv.size() > 2)
{ {
pVal = lv.get(2).evalValue(c); pVal = lv.get(2).evalValue(c);
if (pVal instanceof FormattedTextValue) title = FormattedTextValue.getTextByValue(pVal);
{ soundsTrue = pVal.getBoolean();
title = ((FormattedTextValue) pVal).getText();
soundsTrue = !title.asString().isEmpty();
}
else
{
title = new LiteralText(pVal.getString());
soundsTrue = pVal.getBoolean();
}
} }
else title = null; // Will never happen, just to make lambda happy else title = null; // Will never happen, just to make lambda happy
if (action == null) if (action == null)
@@ -195,7 +195,7 @@ public class Scoreboards {
return (_c, _t) -> StringValue.of(objective.getCriterion().getName()); return (_c, _t) -> StringValue.of(objective.getCriterion().getName());
case "display_name": case "display_name":
if(modify) { if(modify) {
Text text = (setValue instanceof FormattedTextValue)?((FormattedTextValue) setValue).getText():new LiteralText(setValue.getString()); Text text = FormattedTextValue.getTextByValue(setValue);
objective.setDisplayName(text); objective.setDisplayName(text);
return LazyValue.TRUE; return LazyValue.TRUE;
} }
@@ -408,11 +408,7 @@ public class Scoreboards {
Text displayName; Text displayName;
if(settingVal instanceof FormattedTextValue) { displayName = FormattedTextValue.getTextByValue(settingVal);
displayName = ((FormattedTextValue) settingVal).getText();
} else {
displayName = new LiteralText(settingVal.getString());
}
team.setDisplayName(displayName); team.setDisplayName(displayName);
@@ -451,11 +447,7 @@ public class Scoreboards {
Text prefix; Text prefix;
if(settingVal instanceof FormattedTextValue) { prefix = FormattedTextValue.getTextByValue(settingVal);
prefix = ((FormattedTextValue) settingVal).getText();
} else {
prefix = new LiteralText(settingVal.getString());
}
team.setPrefix(prefix); team.setPrefix(prefix);
break; break;
@@ -481,11 +473,7 @@ public class Scoreboards {
Text suffix; Text suffix;
if(settingVal instanceof FormattedTextValue) { suffix = FormattedTextValue.getTextByValue(settingVal);
suffix = ((FormattedTextValue) settingVal).getText();
} else {
suffix = new LiteralText(settingVal.getString());
}
team.setSuffix(suffix); team.setSuffix(suffix);
break; break;
@@ -547,11 +535,7 @@ public class Scoreboards {
case "name": case "name":
if(propertyValue == null) return (_c, _t) -> new FormattedTextValue(bossBar.getName()); if(propertyValue == null) return (_c, _t) -> new FormattedTextValue(bossBar.getName());
if(propertyValue instanceof FormattedTextValue) { bossBar.setName(FormattedTextValue.getTextByValue(propertyValue));
bossBar.setName(((FormattedTextValue) propertyValue).getText());
} else {
bossBar.setName(new LiteralText(propertyValue.getString()));
}
return LazyValue.TRUE; return LazyValue.TRUE;
case "add_player": case "add_player":
if(propertyValue == null) throw new InternalExpressionException("Bossbar property " + property + " can't be queried, add a third parameter"); if(propertyValue == null) throw new InternalExpressionException("Bossbar property " + property + " can't be queried, add a third parameter");
@@ -1106,7 +1106,7 @@ public class EntityValue extends Value
v = ((ListValue) v).getItems().get(0); v = ((ListValue) v).getItems().get(0);
} }
e.setCustomNameVisible(showName); e.setCustomNameVisible(showName);
e.setCustomName(new LiteralText(v.getString())); e.setCustomName(FormattedTextValue.getTextByValue(v));
}); });
put("persistence", (e, v) -> put("persistence", (e, v) ->
@@ -54,7 +54,7 @@ public class FormattedTextValue extends StringValue
@Override @Override
public boolean getBoolean() { public boolean getBoolean() {
return text.getSiblings().size() > 0; return !text.asString().isEmpty();
} }
@Override @Override
@@ -96,4 +96,8 @@ public class FormattedTextValue extends StringValue
return new FormattedTextValue(Text.Serializer.fromJson(serialized)); return new FormattedTextValue(Text.Serializer.fromJson(serialized));
} }
public static Text getTextByValue(Value value) {
return (value instanceof FormattedTextValue) ? ((FormattedTextValue) value).getText() : new LiteralText(value.getString());
}
} }