Skip to content

CraftScript imports are completely broken #3432

@UplandJacob

Description

@UplandJacob

Server Implementation

Paper

Server Version

1.21.8

Describe the bug

Importing any Java classes completely doesn't work. Using importPackage(Packages.com.sk89q.worldedit.math) and trying to access something from those packages (like BlockVector3.at()) throws a 'BlockVector3 is not defined' error. Accessing it directly (Packages.com.sk89q.worldedit.math.BlockVector3.at()) throws the error TypeError: Cannot call property at in object [JavaPackage com.sk89q.worldedit.math.BlockVector3] It is not a function. It is "object". It seems as if the importer has created some way to access it, but has not actually retrieved it; it is always just an object. You can even try to access things that don't exist at all, and nothing changes.

To Reproduce

I've included the Script setup in case I've done something horribly wrong.

  1. Download the zip at https://github.com/mozilla/rhino/releases/tag/Rhino1_7_15_1_Release, extract, and retrieve the runtime jar (This was the latest version that has built downloads, but previous versions didn't change anything), naming it js.jar in the plugins/FastAsyncWorldEdit folder.
  2. Create the craftscripts folder and create a script (script.js).
  3. Add this code (or something similar that uses an import):
importPackage(Packages.com.sk89q.worldedit.math)
var pos = BlockVector3.at(0, 100, 0)
  1. Run (/cs script.js) and notice the error.
  2. Try the following code (another recommended way in case of broken importPackage):
var pos = Packages.com.sk89q.worldedit.math.BlockVector3.at(0, 100, 0)
  1. Notice the error

Expected behaviour

Java packages should be possible to use; in my example, getting a BlockVector3 to use elsewhere.

Screenshots / Videos

Image Image

Error log (if applicable)

[18:03:20] [Server thread/INFO]: UplandJacob issued server command: /.s
[18:03:20] [AsyncNotifyKeyedQueue - 10/WARN]: Failed to execute script
javax.script.ScriptException: TypeError: Cannot call property at in object [JavaPackage com.sk89q.worldedit.math.BlockVector3]. It is not a function, it is "object". (C:\Users\jacob\Desktop\BWSMP-Test-Server\plugins\FastAsyncWorldEdit\craftscripts\script.js#1) in C:\Users\jacob\Desktop\BWSMP-Test-Server\plugins\FastAsyncWorldEdit\craftscripts\script.js at line number 1
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.scripting.RhinoCraftScriptEngine.evaluate(RhinoCraftScriptEngine.java:84) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.WorldEdit.runScript(WorldEdit.java:884) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.command.ScriptingCommands.executeLast(ScriptingCommands.java:116) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.command.ScriptingCommandsRegistration.cmd$_s(ScriptingCommandsRegistration.java:133) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//org.enginehub.piston.CommandManager.execute(CommandManager.java:157) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.extension.platform.PlatformCommandManager.lambda$handleCommandOnCurrentThread$16(PlatformCommandManager.java:712) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.extension.platform.PlatformCommandManager.handleCommandTask(PlatformCommandManager.java:733) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.extension.platform.PlatformCommandManager.handleCommandOnCurrentThread(PlatformCommandManager.java:714) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.extension.platform.PlatformCommandManager.lambda$handleCommand$14(PlatformCommandManager.java:685) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.extension.platform.AbstractPlayerActor.lambda$runAction$2(AbstractPlayerActor.java:717) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.fastasyncworldedit.core.util.task.AsyncNotifyKeyedQueue.lambda$run$0(AsyncNotifyKeyedQueue.java:48) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.fastasyncworldedit.core.util.task.AsyncNotifyKeyedQueue.lambda$call$1(AsyncNotifyKeyedQueue.java:58) ~[?:?]
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317) ~[?:?]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.fastasyncworldedit.core.util.task.KeyQueuedExecutorService$KeyRunner.lambda$run$0(KeyQueuedExecutorService.java:150) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.compute(ForkJoinTask.java:1726) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.compute(ForkJoinTask.java:1717) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinTask$InterruptibleTask.exec(ForkJoinTask.java:1641) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1460) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2036) ~[?:?]
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:189) ~[?:?]
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call property at in object [JavaPackage com.sk89q.worldedit.math.BlockVector3]. It is not a function, it is "object". (C:\Users\jacob\Desktop\BWSMP-Test-Server\plugins\FastAsyncWorldEdit\craftscripts\script.js#1)
	at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:4692) ~[rhino-1.7.15.jar:1.7.15]
	at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:4673) ~[rhino-1.7.15.jar:1.7.15]
	at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:4705) ~[rhino-1.7.15.jar:1.7.15]
	at org.mozilla.javascript.ScriptRuntime.typeErrorById(ScriptRuntime.java:4710) ~[rhino-1.7.15.jar:1.7.15]
	at org.mozilla.javascript.ScriptRuntime.notFunctionError(ScriptRuntime.java:4791) ~[rhino-1.7.15.jar:1.7.15]
	at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThisHelper(ScriptRuntime.java:2656) ~[rhino-1.7.15.jar:1.7.15]
	at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(ScriptRuntime.java:2639) ~[rhino-1.7.15.jar:1.7.15]
	at org.mozilla.javascript.gen.C__Users_jacob_Desktop_BWSMP_Test_Server_plugins_FastAsyncWorldEdit_craftscripts_script_js_49._c_script_0(C:\Users\jacob\Desktop\BWSMP-Test-Server\plugins\FastAsyncWorldEdit\craftscripts\script.js:1) ~[?:?]
	at org.mozilla.javascript.gen.C__Users_jacob_Desktop_BWSMP_Test_Server_plugins_FastAsyncWorldEdit_craftscripts_script_js_49.call(C:\Users\jacob\Desktop\BWSMP-Test-Server\plugins\FastAsyncWorldEdit\craftscripts\script.js) ~[?:?]
	at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:383) ~[rhino-1.7.15.jar:1.7.15]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.scripting.RhinoContextFactory.doTopCall(RhinoContextFactory.java:68) ~[?:?]
	at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3940) ~[rhino-1.7.15.jar:1.7.15]
	at org.mozilla.javascript.gen.C__Users_jacob_Desktop_BWSMP_Test_Server_plugins_FastAsyncWorldEdit_craftscripts_script_js_49.call(C:\Users\jacob\Desktop\BWSMP-Test-Server\plugins\FastAsyncWorldEdit\craftscripts\script.js) ~[?:?]
	at org.mozilla.javascript.gen.C__Users_jacob_Desktop_BWSMP_Test_Server_plugins_FastAsyncWorldEdit_craftscripts_script_js_49.exec(C:\Users\jacob\Desktop\BWSMP-Test-Server\plugins\FastAsyncWorldEdit\craftscripts\script.js) ~[?:?]
	at org.mozilla.javascript.Context.evaluateString(Context.java:1172) ~[rhino-1.7.15.jar:1.7.15]
	at FastAsyncWorldEdit-Paper-2.14.4-SNAPSHOT-1257.jar//com.sk89q.worldedit.scripting.RhinoCraftScriptEngine.evaluate(RhinoCraftScriptEngine.java:63) ~[?:?]
	... 20 more

I had been trying a gazillion different things, so in the logs below, it will be very chaotic.

Fawe Debugpaste

https://athion.net/ISPaster/paste/view/499fa5749f654941ad913fcbfc89a97e

Are you interested in contributing a fix?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    Requires TestingThis is a new issue which needs to be approved before labeled with "bug"

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions