Posted July 2, 20169 yr Hi, I'm having trouble with the scripted door in the Custom NPCs mod. I can't figure out how to get the player's held item. I saw on a 1.8 Custom NPCs tutorial video that I had to type player.getHeldItem() but that isn't working. I'm using 1.8.9 and all the resources I've found do not help at all. I would love some help on this. Also this comes up when I do type player.getHeldItem() Sat Jul 02 23:13:44 BST 2016 tab 1: javax.script.ScriptException: TypeError: Cannot read property "getHeldItem" from undefined in <eval> at line number 2 at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:467) at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:389) at jdk.nashorn.api.scripting.NashornScriptEngine.invokeFunction(NashornScriptEngine.java:190) at noppes.npcs.controllers.ScriptContainer.run(ScriptContainer.java:100) at noppes.npcs.blocks.tiles.TileScriptedDoor.runScript(TileScriptedDoor.java:91) at noppes.npcs.EventHooks.onScriptBlockInteract(EventHooks.java:164) at noppes.npcs.blocks.BlockScriptedDoor.func_180639_a(BlockScriptedDoor.java:52) at net.minecraft.server.management.ItemInWorldManager.func_180236_a(ItemInWorldManager.java:427) at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:588) at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:59) at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:10) at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at net.minecraft.util.Util.func_181617_a(SourceFile:44) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:660) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:605) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:251) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:481) at java.lang.Thread.run(Unknown Source) Caused by: <eval>:2 TypeError: Cannot read property "getHeldItem" from undefined at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57) at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:213) at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:185) at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:172) at jdk.nashorn.internal.runtime.Undefined.get(Undefined.java:157) at jdk.nashorn.internal.scripts.Script$Recompilation$62$57AAAAAA$\^eval\_.interact(<eval>:2) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) at jdk.nashorn.api.scripting.ScriptObjectMirror.callMember(ScriptObjectMirror.java:199) at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:383) ... 18 more Sat Jul 02 23:13:19 BST 2016 tab 1: javax.script.ScriptException: ReferenceError: "players" is not defined in <eval> at line number 2 at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:467) at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:389) at jdk.nashorn.api.scripting.NashornScriptEngine.invokeFunction(NashornScriptEngine.java:190) at noppes.npcs.controllers.ScriptContainer.run(ScriptContainer.java:100) at noppes.npcs.blocks.tiles.TileScriptedDoor.runScript(TileScriptedDoor.java:91) at noppes.npcs.EventHooks.onScriptBlockInteract(EventHooks.java:164) at noppes.npcs.blocks.BlockScriptedDoor.func_180639_a(BlockScriptedDoor.java:52) at net.minecraft.server.management.ItemInWorldManager.func_180236_a(ItemInWorldManager.java:427) at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:588) at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:59) at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:10) at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at net.minecraft.util.Util.func_181617_a(SourceFile:44) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:660) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:605) at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:251) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:481) at java.lang.Thread.run(Unknown Source) Caused by: <eval>:2 ReferenceError: "players" is not defined at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57) at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:319) at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:291) at jdk.nashorn.internal.objects.Global.__noSuchProperty__(Global.java:1428) at jdk.nashorn.internal.scripts.Script$Recompilation$59$57AAAAAA$\^eval\_.interact(<eval>:2) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:635) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494) at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) at jdk.nashorn.api.scripting.ScriptObjectMirror.callMember(ScriptObjectMirror.java:199) at jdk.nashorn.api.scripting.NashornScriptEngine.invokeImpl(NashornScriptEngine.java:383) ... 18 more And this is the script I'm using function interact(block, player, side, hitX, hitY, hitZ) { var item = player.getHeldItem(); if (item == null || item.getItemName() != "customnpcs:npcKey") { block.event.setCancelled(true); } }
July 18, 20169 yr this might help function interact(event) { var item = event.player.getHeldItem(); event.npc.say(item.name); }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.