Improve JS exec return value handling (#1290)

This commit is contained in:
skbeh
2023-03-19 11:34:59 +08:00
committed by GitHub
parent 5200826333
commit ab3bcc95b4
13 changed files with 47 additions and 56 deletions

View File

@@ -769,7 +769,7 @@ index 106e01b931f5b04269b280bbb82a732caaba9259..9e73c3c79fcbbb17015f00cf300de3e5
public static AttributeSupplier.Builder createAttributes() {
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index fd9c107bbaea0daea1882f3715956c28448580b8..cabe7101fc6e43ece67f7e4f647dd2eef1255c60 100644
index fd9c107bbaea0daea1882f3715956c28448580b8..8a592993aedc72d8ffe1b1ad5e526cc292d69737 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -116,6 +116,21 @@ public class Phantom extends FlyingMob implements Enemy {
@@ -782,9 +782,9 @@ index fd9c107bbaea0daea1882f3715956c28448580b8..cabe7101fc6e43ece67f7e4f647dd2ee
+ Double value = cache.get().get(size);
+ if (value == null) {
+ try {
+ scriptEngine.eval("size = " + size);
+ value = (double) scriptEngine.eval(equation.get());
+ } catch (Exception e) {
+ value = ((Number) scriptEngine.eval("let size = " + size + "; " + equation.get())).doubleValue();
+ } catch (javax.script.ScriptException e) {
+ e.printStackTrace();
+ value = defaultValue.get();
+ }
+ cache.get().put(size, value);
@@ -887,7 +887,7 @@ index c871416d5ec80a41034c14dce4e8c839b3091e3e..46caa30dec30b62add4cdb41932f3268
@Override
diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java
index 19e1c0bd1516732826672642e54dc0813d413f10..e99f6f6e4aa490eeaa95892ea61c972ca159425e 100644
index 19e1c0bd1516732826672642e54dc0813d413f10..a773fc3a5f7a16c382188e2419d58d009a2af5a7 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Slime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java
@@ -104,6 +104,37 @@ public class Slime extends Mob implements Enemy {
@@ -916,9 +916,9 @@ index 19e1c0bd1516732826672642e54dc0813d413f10..e99f6f6e4aa490eeaa95892ea61c972c
+ Double value = cache.get().get(size);
+ if (value == null) {
+ try {
+ scriptEngine.eval("size = " + size);
+ value = (double) scriptEngine.eval(equation.get());
+ } catch (Exception e) {
+ value = ((Number) scriptEngine.eval("let size = " + size + "; " + equation.get())).doubleValue();
+ } catch (javax.script.ScriptException e) {
+ e.printStackTrace();
+ value = defaultValue.get();
+ }
+ cache.get().put(size, value);