added optional player to print as target.
This commit is contained in:
1 parent
ff1226bac3
commit
72e7ba5e7e
2 files changed
+15
-4
No files matched your search
@@ -239,10 +239,13 @@ Thou shall not sample from noise changing seed frequently. Scarpet will keep tra
|
|||||||
used for sampling providing similar speed comparing to the default seed of `0`. In case the app engine uses more
|
used for sampling providing similar speed comparing to the default seed of `0`. In case the app engine uses more
|
||||||
than 256 seeds at the same time, switching between them can get much more expensive.
|
than 256 seeds at the same time, switching between them can get much more expensive.
|
||||||
|
|
||||||
### `print(expr)`
|
### `print(expr)`, `print(player, expr)`
|
||||||
|
|
||||||
prints the value of the expression to chat. Passes the result of the argument to the output unchanged,
|
prints the value of the expression to chat. Passes the result of the argument to the output unchanged,
|
||||||
so `print`-statements can be weaved in code to debug programming issues
|
so `print`-statements can be weaved in code to debug programming issues. By default it uses the same communication
|
||||||
|
channels that most vanilla commands are using.
|
||||||
|
|
||||||
|
In case player is directly specified, it only sends the message to that player, like `tell` command.
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
print('foo') => results in foo, prints: foo
|
print('foo') => results in foo, prints: foo
|
||||||
|
|||||||
@@ -2896,10 +2896,17 @@ public class CarpetExpression
|
|||||||
});
|
});
|
||||||
|
|
||||||
//"overridden" native call that prints to stderr
|
//"overridden" native call that prints to stderr
|
||||||
this.expr.addLazyFunction("print", 1, (c, t, lv) ->
|
this.expr.addLazyFunction("print", -1, (c, t, lv) ->
|
||||||
{
|
{
|
||||||
|
if (lv.size() == 0 || lv.size() > 2) throw new InternalExpressionException("'print' takes one or two arguments");
|
||||||
ServerCommandSource s = ((CarpetContext)c).s;
|
ServerCommandSource s = ((CarpetContext)c).s;
|
||||||
Value res = lv.get(0).evalValue(c);
|
Value res = lv.get(0).evalValue(c);
|
||||||
|
if (lv.size() == 2)
|
||||||
|
{
|
||||||
|
ServerPlayerEntity player = EntityValue.getPlayerByValue(s.getMinecraftServer(), res);
|
||||||
|
s = player.getCommandSource();
|
||||||
|
res = lv.get(1).evalValue(c);
|
||||||
|
}
|
||||||
if (res instanceof FormattedTextValue)
|
if (res instanceof FormattedTextValue)
|
||||||
{
|
{
|
||||||
s.sendFeedback(((FormattedTextValue) res).getText(), false);
|
s.sendFeedback(((FormattedTextValue) res).getText(), false);
|
||||||
@@ -2915,7 +2922,8 @@ public class CarpetExpression
|
|||||||
Messenger.m(s, "w " + res.getString());
|
Messenger.m(s, "w " + res.getString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return (_c, _t) -> res; // pass through for variables
|
Value finalRes = res;
|
||||||
|
return (_c, _t) -> finalRes; // pass through for variables
|
||||||
});
|
});
|
||||||
|
|
||||||
this.expr.addLazyFunction("format", -1, (c, t, lv) -> {
|
this.expr.addLazyFunction("format", -1, (c, t, lv) -> {
|
||||||
|
|||||||
Reference in new issue
Block a user