schedules and events from jarmod
This commit is contained in:
1 parent
4ec6e0e03e
commit
730446b219
14 files changed
+825
-62
No files matched your search
@@ -1,7 +1,9 @@
|
||||
package carpet.script;
|
||||
|
||||
import carpet.CarpetServer;
|
||||
import carpet.CarpetSettings;
|
||||
import carpet.script.exception.ExpressionException;
|
||||
import carpet.script.exception.InvalidCallbackException;
|
||||
import carpet.script.value.NumericValue;
|
||||
import carpet.script.value.StringValue;
|
||||
import carpet.script.value.Value;
|
||||
@@ -28,7 +30,7 @@ public class ScriptHost
|
||||
private String name;
|
||||
public String getName() {return name;}
|
||||
|
||||
public ScriptHost(String name)
|
||||
ScriptHost(String name)
|
||||
{
|
||||
this.name = name;
|
||||
globalVariables.put("euler", (c, t) -> Expression.euler);
|
||||
@@ -155,4 +157,29 @@ public class ScriptHost
|
||||
return e.getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
public void callUDF(BlockPos pos, ServerCommandSource source, UserDefinedFunction acf, List<LazyValue> argv) throws InvalidCallbackException
|
||||
{
|
||||
if (CarpetServer.scriptServer.stopAll)
|
||||
return;
|
||||
|
||||
List<String> args = acf.getArguments();
|
||||
if (argv.size() != args.size())
|
||||
{
|
||||
throw new InvalidCallbackException();
|
||||
}
|
||||
try
|
||||
{
|
||||
// TODO: this is just for now - invoke would be able to invoke other hosts scripts
|
||||
Context context = new CarpetContext(this, source, pos);
|
||||
Expression.evalValue(
|
||||
() -> acf.lazyEval(context, Context.VOID, acf.expression, acf.token, argv),
|
||||
context,
|
||||
Context.VOID);
|
||||
}
|
||||
catch (ExpressionException e)
|
||||
{
|
||||
CarpetSettings.LOG.error("Callback failed: "+e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user