Merge branch 'master' into 1.16
This commit is contained in:
commit
5bf1b734dc
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
|
||||
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,
|
||||
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>
|
||||
print('foo') => results in foo, prints: foo
|
||||
|
||||
@@ -2913,10 +2913,17 @@ public class CarpetExpression
|
||||
});
|
||||
|
||||
//"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;
|
||||
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)
|
||||
{
|
||||
s.sendFeedback(((FormattedTextValue) res).getText(), false);
|
||||
@@ -2932,7 +2939,8 @@ public class CarpetExpression
|
||||
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) -> {
|
||||
|
||||
Reference in new issue
Block a user