Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Craft commands with MalmoEnv work how? #918

Open
Maximusprime3 opened this issue Oct 27, 2021 · 1 comment
Open

Craft commands with MalmoEnv work how? #918

Maximusprime3 opened this issue Oct 27, 2021 · 1 comment

Comments

@Maximusprime3
Copy link

So I am using MalmoEnv and would like to create my own crafting a stick mission in XML format
I found the problem that I can not specify craft commands, any help is appreciated!
There is the action_filter which when not specified otherwise will reduce commands to ["move", "turn", "use", "attack"], providing an empty action_filter=[] keeps other commands specified in the mission.xml too.

When I try to specifically allow some craft command in the XML :

<SimpleCraftCommands>
    <ModifierList type ="allow-list">
        <command> XX </command>
    </ModifierList>
</SimpleCraftCommands>

I tried XX = craft, craft stick, craft 2 stick = planks. <-- with "XX",{{{XX}}},XX
I get an exception:

Traceback (most recent call last):
File "C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\threading.py", line 926, in _bootstrap_inner
self.run()
File "C:\Users\Max\AppData\Local\Programs\Python\Python37\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "runmultiagent.py", line 57, in run
episode=args.episode, resync=args.resync, action_filter=[])
File "C:\Users\Max\PycharmProjects\vanillaMalmo\MalmoPlatform\MalmoEnv\malmoenv\core.py", line 142, in init
actions = command_parser.get_actions(commands)
File "C:\Users\Max\PycharmProjects\vanillaMalmo\MalmoPlatform\MalmoEnv\malmoenv\commands.py", line 132, in get_actions
raise CommandHandlerException("Invalid craft command")
commands.py
...
           elif type == 'SimpleCraft':
                if verb != 'craft':
                    raise CommandHandlerException("Invalid craft command")
                actions.append(verb)
...

when I add print(verb) in commands.py, it prints exactly the command i specified in the XML
when I skip the check and just append the verb to actions, the server throws:

[19:15:28] [EnvServerSocketHandler/INFO]: [STDOUT]: JAXB exception: javax.xml.bind.UnmarshalException 
\- with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 125; columnNumber: 50; cvc-enumeration-valid: Value 'craft stick' is not facet-valid with respect to enum
eration '[craft]'. It must be a value from the enumeration.]
[19:15:28] [EnvServerSocketHandler/INFO]: [STDOUT]: REPLYING WITH: MALMOERRORcvc-enumeration-valid: Value 'craft stick' is not facet-valid with respe
ct to enumeration '[craft]'. It must be a value from the enumeration.

When I just add this to the agent section in the XML , (without any other commands):

<SimpleCraftCommands/>

and start the runmultiagent.py, the print in commands.py yields 'craft'. And the server starts the Minecraft mission, but then crashes:

[20:22:01] [Client thread/INFO]: [STDOUT]: CLIENT enter state: DORMANT
[20:22:01] [Client thread/INFO]: [STDOUT]: JETTISONING 0 COMMANDS
[20:25:45] [EnvServerSocketHandler/INFO]: [STDOUT]: Received from 127.0.0.1:<MissionInit xmlns="http://ProjectMalmo.microsoft.com" xmlns:xsi="http://
www.w3.org/2001/XMLSchema-instance" SchemaVersion="" PlatformVersion="0.37.0">
                                <Mission>
      <About>
         <Summary>Catch the Mob</Summary>
      </About>
      <ModSettings>
         <MsPerTick>5</MsPerTick>
      </ModSettings>
      <ServerSection>
         <ServerInitialConditions>
            <Time>
               <StartTime>0</StartTime>
               <AllowPassageOfTime>false</AllowPassageOfTime>
            </Time>
            <Weather>clear</Weather>
            <AllowSpawning>false</AllowSpawning>
         </ServerInitialConditions>
         <ServerHandlers>
            <FlatWorldGenerator generatorString="3;minecraft:bedrock,2*minecraft:dirt,minecraft:grass;1;village" forceReset="true"/>
            <DrawingDecorator>
               <!-- Tricks to clean the map before drawing (avoid entity duplication on the map) -->
               <!-- coordinates for cuboid are inclusive -->

[20:25:45] [EnvServerSocketHandler/INFO]: [STDOUT]: REPLYING WITH: MALMOOK
[20:25:45] [Client thread/INFO]: [STDOUT]: Mission received: Catch the Mob
[20:25:45] [Client thread/INFO]: [STDOUT]: CLIENT request state: CREATING_HANDLERS
[20:25:45] [Client thread/INFO]: [STDOUT]: CLIENT enter state: CREATING_HANDLERS
[20:25:45] [Client thread/INFO]: [STDOUT]: CLIENT request state: EVALUATING_WORLD_REQUIREMENTS
[20:25:45] [Client thread/INFO]: [STDOUT]: CLIENT enter state: EVALUATING_WORLD_REQUIREMENTS
[20:25:45] [Client thread/INFO]: [STDOUT]: CLIENT request state: CREATING_NEW_WORLD
[20:25:45] [Client thread/INFO]: [STDOUT]: CLIENT enter state: CREATING_NEW_WORLD
[20:25:46] [Server thread/INFO]: Starting integrated minecraft server version 1.11.2
[20:25:46] [Server thread/INFO]: Generating keypair
[20:25:46] [Server thread/INFO] [FML]: Injecting existing block and item data into this server instance
[20:25:46] [Server thread/INFO] [FML]: Applying holder lookups
[20:25:46] [Server thread/INFO] [FML]: Holder lookups applied
[20:25:46] [Server thread/INFO] [FML]: Loading dimension 0 (TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb) (net.minecraft.server.integrated.IntegratedS
erver@524ad505)
[20:25:47] [Server thread/INFO] [FML]: Loading dimension 1 (TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb) (net.minecraft.server.integrated.IntegratedS
erver@524ad505)
[20:25:47] [Server thread/INFO] [FML]: Loading dimension -1 (TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb) (net.minecraft.server.integrated.Integrated
Server@524ad505)
[20:25:47] [Server thread/INFO]: Preparing start region for level 0
[20:25:48] [Server thread/INFO]: Changing view distance to 6, from 10
[20:25:48] [Client thread/INFO]: Deleting level TEMP_0_a392d7df-26da-457a-94a7-7f95972e4be9
[20:25:48] [Client thread/INFO]: Attempt 1...
[20:25:48] [Netty Local Client IO #1/INFO] [FML]: Server protocol version 2
[20:25:48] [Netty Server IO #3/INFO] [FML]: Client protocol version 2
[20:25:48] [Netty Server IO #3/INFO] [FML]: Client attempting to join with 5 mods : [email protected],[email protected],[email protected],[email protected]
,[email protected]
[20:25:48] [Netty Local Client IO #1/INFO] [FML]: [Netty Local Client IO #1] Client side modded connection established
[20:25:48] [Server thread/INFO] [FML]: [Server thread] Server side modded connection established
[20:25:48] [Server thread/INFO]: Agent0[local:E:f4b7a13b] logged in with entity id 6 at (-404.5, 4.0, -1350.5)
[20:25:48] [Server thread/INFO]: Agent0 joined the game
[20:25:48] [Server thread/INFO]: [STDOUT]: SERVER request state: WAITING_FOR_MOD_READY
[20:25:48] [Server thread/INFO]: [STDOUT]: CLIENT request state: WAITING_FOR_SERVER_READY
[20:25:48] [Server thread/INFO]: [STDOUT]: SERVER enter state: WAITING_FOR_MOD_READY
[20:25:48] [Server thread/INFO]: [STDOUT]: SERVER request state: DORMANT
[20:25:48] [Server thread/INFO]: [STDOUT]: SERVER enter state: DORMANT
[20:25:48] [Server thread/INFO]: [STDOUT]: INCOMING MISSION: Received MissionInit directly through ServerStateMachine constructor.
[20:25:48] [Server thread/INFO]: [STDOUT]: Mission received: Catch the Mob
[20:25:48] [Server thread/INFO]: Received mission: º9Catch the Mob
[20:25:48] [Server thread/INFO]: Source: ºa127.0.0.1
[20:25:48] [Server thread/INFO]: [STDOUT]: SERVER request state: BUILDING_WORLD
[20:25:48] [Server thread/INFO]: [STDOUT]: SERVER enter state: BUILDING_WORLD
[20:25:48] [Server thread/INFO]: [STDOUT]: SERVER request state: WAITING_FOR_AGENTS_TO_ASSEMBLE
[20:25:48] [Server thread/INFO]: [STDOUT]: SERVER enter state: WAITING_FOR_AGENTS_TO_ASSEMBLE
[20:25:48] [Server thread/INFO]: [STDOUT]: Experiment requires:
[20:25:48] [Server thread/INFO]: [STDOUT]: >>>> Agent0
[20:25:50] [Server thread/INFO]: Saving and pausing game...
[20:25:51] [Server thread/INFO]: Saving chunks for level 'TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb'/Overworld
[20:25:51] [Client thread/INFO]: [CHAT] Received mission: º9Catch the Mob
[20:25:51] [Client thread/INFO]: [CHAT] Source: ºa127.0.0.1
[20:25:51] [Client thread/INFO]: [STDOUT]: CLIENT enter state: WAITING_FOR_SERVER_READY
[20:25:51] [Client thread/INFO]: [STDOUT]: ***Telling server we are ready - Agent0
[20:25:51] [Client thread/INFO]: [STDOUT]: ***Telling server we are ready - Agent0
[20:25:52] [Client thread/INFO]: [STDOUT]: ***Telling server we are ready - Agent0
[20:25:52] [Server thread/INFO]: Saving chunks for level 'TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb'/Nether
[20:25:52] [Server thread/INFO]: Saving chunks for level 'TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb'/The End
[20:25:52] [Server thread/WARN]: Can't keep up! Did the system time change, or is the server overloaded? Running 2766ms behind, skipping 55 tick(s)
[20:25:53] [Client thread/INFO]: [STDOUT]: CLIENT request state: RUNNING
[20:25:53] [Client thread/INFO]: [STDOUT]: CLIENT enter state: RUNNING
[20:25:53] [Server thread/INFO]: [STDOUT]: SERVER request state: RUNNING
[20:25:53] [Server thread/INFO]: [STDOUT]: SERVER enter state: RUNNING
[20:25:53] [Netty Server IO #3/ERROR] [FML]: SimpleChannelHandlerWrapper exception
java.lang.NullPointerException
 at net.minecraft.item.ItemStack.areItemsEqual(ItemStack.java:455) ~[ItemStack.class:?]
 at com.microsoft.Malmo.Utils.CraftingHelper.getRecipesForRequestedOutput(CraftingHelper.java:343) ~[CraftingHelper.class:?]
    at com.microsoft.Malmo.MissionHandlers.SimpleCraftCommandsImplementation$CraftMessageHandler.onMessage(SimpleCraftCommandsImplementation.java:76)
 ~[SimpleCraftCommandsImplementation$CraftMessageHandler.class:?]
     at com.microsoft.Malmo.MissionHandlers.SimpleCraftCommandsImplementation$CraftMessageHandler.onMessage(SimpleCraftCommandsImplementation.java:69
) ~[SimpleCraftCommandsImplementation$CraftMessageHandler.class:?]
     at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:56) ~[SimpleChanne
lHandlerWrapper.class:?]
       at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:36) ~[SimpleChan
nelHandlerWrapper.class:?]
       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[SimpleChannelInboundHandler.class:4.0.23.F
inal]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:
4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [MessageToMessageDecoder.class:4.0.23.Final]
   at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [MessageToMessageCodec.class:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:4.0
.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:4.0.23.Final]
        at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:4.0.23.Final]
       at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:111) [FMLProxyPacket.class:?]
       at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:157) [NetworkManager.class:?]
 at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:51) [NetworkManager.class:?]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Final]
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleServerSideCustomPacket(NetworkDispatcher.java:452) [NetworkDispatcher.c
lass:?]
      at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:274) [NetworkDispatcher.class:?]
      at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:73) [NetworkDispatcher.class:?]
       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Fi
nal]
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:4.0.23.Final]
        at io.netty.channel.local.LocalChannel.finishPeerRead(LocalChannel.java:326) [LocalChannel.class:4.0.23.Final]
 at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:45) [LocalChannel.class:4.0.23.Final]
      at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:312) [LocalChannel$5.class:4.0.23.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380) [SingleThreadEventExecutor.class:4.0.23
.Final]
   at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) [NioEventLoop.class:4.0.23.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [SingleThreadEventExecutor$2.class:4.0.23.Final
]
       at java.lang.Thread.run(Thread.java:748) [?:1.8.0_302]
[20:25:53] [Netty Server IO #3/ERROR] [FML]: SimpleChannelHandlerWrapper exception
java.lang.NullPointerException
 at net.minecraft.item.ItemStack.areItemsEqual(ItemStack.java:455) ~[ItemStack.class:?]
 at com.microsoft.Malmo.Utils.CraftingHelper.getRecipesForRequestedOutput(CraftingHelper.java:343) ~[CraftingHelper.class:?]
    at com.microsoft.Malmo.MissionHandlers.SimpleCraftCommandsImplementation$CraftMessageHandler.onMessage(SimpleCraftCommandsImplementation.java:76)
 ~[SimpleCraftCommandsImplementation$CraftMessageHandler.class:?]
     at com.microsoft.Malmo.MissionHandlers.SimpleCraftCommandsImplementation$CraftMessageHandler.onMessage(SimpleCraftCommandsImplementation.java:69
) ~[SimpleCraftCommandsImplementation$CraftMessageHandler.class:?]
     at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:56) ~[SimpleChanne
lHandlerWrapper.class:?]
       at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:36) ~[SimpleChan
nelHandlerWrapper.class:?]
       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[SimpleChannelInboundHandler.class:4.0.23.F
inal]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:
4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [MessageToMessageDecoder.class:4.0.23.Final]
   at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [MessageToMessageCodec.class:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:4.0
.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:4.0.23.Final]
        at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:4.0.23.Final]
       at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:111) [FMLProxyPacket.class:?]
       at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:157) [NetworkManager.class:?]
 at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:51) [NetworkManager.class:?]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Final]
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleServerSideCustomPacket(NetworkDispatcher.java:452) [NetworkDispatcher.c
lass:?]
      at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:274) [NetworkDispatcher.class:?]
      at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:73) [NetworkDispatcher.class:?]
       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Fi
nal]
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:4.0.23.Final]
        at io.netty.channel.local.LocalChannel.finishPeerRead(LocalChannel.java:326) [LocalChannel.class:4.0.23.Final]
 at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:45) [LocalChannel.class:4.0.23.Final]
      at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:312) [LocalChannel$5.class:4.0.23.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380) [SingleThreadEventExecutor.class:4.0.23
.Final]
   at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) [NioEventLoop.class:4.0.23.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [SingleThreadEventExecutor$2.class:4.0.23.Final
]
       at java.lang.Thread.run(Thread.java:748) [?:1.8.0_302]
[20:25:53] [Netty Server IO #3/ERROR] [FML]: SimpleChannelHandlerWrapper exception
java.lang.NullPointerException
 at net.minecraft.item.ItemStack.areItemsEqual(ItemStack.java:455) ~[ItemStack.class:?]
 at com.microsoft.Malmo.Utils.CraftingHelper.getRecipesForRequestedOutput(CraftingHelper.java:343) ~[CraftingHelper.class:?]
    at com.microsoft.Malmo.MissionHandlers.SimpleCraftCommandsImplementation$CraftMessageHandler.onMessage(SimpleCraftCommandsImplementation.java:76)
 ~[SimpleCraftCommandsImplementation$CraftMessageHandler.class:?]
     at com.microsoft.Malmo.MissionHandlers.SimpleCraftCommandsImplementation$CraftMessageHandler.onMessage(SimpleCraftCommandsImplementation.java:69
) ~[SimpleCraftCommandsImplementation$CraftMessageHandler.class:?]
     at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:56) ~[SimpleChanne
lHandlerWrapper.class:?]
       at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:36) ~[SimpleChan
nelHandlerWrapper.class:?]
       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[SimpleChannelInboundHandler.class:4.0.23.F
inal]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:
4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) [SimpleChannelInboundHandler.class:4.0.23.Final]

     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) [MessageToMessageDecoder.class:4.0.23.Final]
   at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) [MessageToMessageCodec.class:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class:4.0
.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:4.0.23.Final]
        at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) [EmbeddedChannel.class:4.0.23.Final]
       at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:111) [FMLProxyPacket.class:?]
       at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:157) [NetworkManager.class:?]
 at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:51) [NetworkManager.class:?]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Final]
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleServerSideCustomPacket(NetworkDispatcher.java:452) [NetworkDispatcher.c
lass:?]
      at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:274) [NetworkDispatcher.class:?]
      at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:73) [NetworkDispatcher.class:?]
       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Fi
nal]
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:4.0.23.Final]
        at io.netty.channel.local.LocalChannel.finishPeerRead(LocalChannel.java:326) [LocalChannel.class:4.0.23.Final]
 at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:45) [LocalChannel.class:4.0.23.Final]
      at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:312) [LocalChannel$5.class:4.0.23.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380) [SingleThreadEventExecutor.class:4.0.23
.Final]
   at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) [NioEventLoop.class:4.0.23.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [SingleThreadEventExecutor$2.class:4.0.23.Final
]
       at java.lang.Thread.run(Thread.java:748) [?:1.8.0_302]
[20:25:53] [Netty Server IO #3/ERROR] [FML]: There was a critical exception handling a packet on channel Malmo
java.lang.NullPointerException
 at net.minecraft.item.ItemStack.areItemsEqual(ItemStack.java:455) ~[ItemStack.class:?]
 at com.microsoft.Malmo.Utils.CraftingHelper.getRecipesForRequestedOutput(CraftingHelper.java:343) ~[CraftingHelper.class:?]
    at com.microsoft.Malmo.MissionHandlers.SimpleCraftCommandsImplementation$CraftMessageHandler.onMessage(SimpleCraftCommandsImplementation.java:76)
 ~[SimpleCraftCommandsImplementation$CraftMessageHandler.class:?]
     at com.microsoft.Malmo.MissionHandlers.SimpleCraftCommandsImplementation$CraftMessageHandler.onMessage(SimpleCraftCommandsImplementation.java:69
) ~[SimpleCraftCommandsImplementation$CraftMessageHandler.class:?]
     at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:56) ~[SimpleChanne
lHandlerWrapper.class:?]
       at net.minecraftforge.fml.common.network.simpleimpl.SimpleChannelHandlerWrapper.channelRead0(SimpleChannelHandlerWrapper.java:36) ~[SimpleChan
nelHandlerWrapper.class:?]
       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) ~[SimpleChannelInboundHandler.class:4.0.23.F
inal]
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class
:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.0.23.Final]

    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class
:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.0.23.Final]

    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class
:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.0.23.Final]

    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class
:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.0.23.Final]

    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class
:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.0.23.Final]

    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class
:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.0.23.Final]

    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class
:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:108) ~[SimpleChannelInboundHandler.class:4.0.23.Final]

    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.class
:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[MessageToMessageDecoder.class:4.0.23.Final]
  at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111) ~[MessageToMessageCodec.class:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) ~[AbstractChannelHandlerContext.c
lass:4.0.23.Final]
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) ~[AbstractChannelHandlerContext.cla
ss:4.0.23.Final]
  at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) ~[DefaultChannelPipeline.class:4.0.23.Final]
       at io.netty.channel.embedded.EmbeddedChannel.writeInbound(EmbeddedChannel.java:169) ~[EmbeddedChannel.class:4.0.23.Final]
      at net.minecraftforge.fml.common.network.internal.FMLProxyPacket.processPacket(FMLProxyPacket.java:111) [FMLProxyPacket.class:?]
       at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:157) [NetworkManager.class:?]
 at net.minecraft.network.NetworkManager.channelRead0(NetworkManager.java:51) [NetworkManager.class:?]
  at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Final]
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.handleServerSideCustomPacket(NetworkDispatcher.java:452) [NetworkDispatcher.c
lass:?]
      at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:274) [NetworkDispatcher.class:?]
      at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.channelRead0(NetworkDispatcher.java:73) [NetworkDispatcher.class:?]
       at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [SimpleChannelInboundHandler.class:4.0.23.Fi
nal]
     at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [AbstractChannelHandlerContext.class
:4.0.23.Final]
 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:319) [AbstractChannelHandlerContext.class:4.0.2
3.Final]
   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [DefaultChannelPipeline.class:4.0.23.Final]
        at io.netty.channel.local.LocalChannel.finishPeerRead(LocalChannel.java:326) [LocalChannel.class:4.0.23.Final]
 at io.netty.channel.local.LocalChannel.access$400(LocalChannel.java:45) [LocalChannel.class:4.0.23.Final]
      at io.netty.channel.local.LocalChannel$5.run(LocalChannel.java:312) [LocalChannel$5.class:4.0.23.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380) [SingleThreadEventExecutor.class:4.0.23
.Final]
   at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) [NioEventLoop.class:4.0.23.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [SingleThreadEventExecutor$2.class:4.0.23.Final
]
       at java.lang.Thread.run(Thread.java:748) [?:1.8.0_302]
[20:25:53] [Netty Server IO #3/ERROR] [FML]: Network Disconnect: A fatal error has occurred, this connection is terminated
[20:25:53] [Client thread/INFO]: [STDOUT]: CLIENT request state: ERROR_LOST_NETWORK_CONNECTION
[20:25:53] [Client thread/INFO]: [STDOUT]: CLIENT enter state: ERROR_LOST_NETWORK_CONNECTION
[20:25:53] [Client thread/INFO]: [STDOUT]: CLIENT request state: DORMANT
[20:25:53] [Server thread/INFO]: Agent0 lost connection: TextComponent{text='A fatal error has occurred, this connection is terminated', siblings=[],
 style=Style{hasParent=false, color=null, bold=null, italic=null, underlined=null, obfuscated=null, clickEvent=null, hoverEvent=null, insertion=null}
}
[20:25:53] [Server thread/INFO]: Agent0 left the game
[20:25:53] [Server thread/INFO]: Stopping singleplayer server as player logged out
[20:25:53] [Server thread/INFO]: [STDOUT]: SERVER request state: ERROR
[20:25:53] [Server thread/INFO]: [STDOUT]: SERVER enter state: ERROR
[20:25:53] [Server thread/INFO]: [STDOUT]: SERVER request state: CLEAN_UP
[20:25:53] [Server thread/INFO]: [STDOUT]: SERVER enter state: CLEAN_UP
[20:25:53] [Server thread/INFO]: [STDOUT]: SERVER request state: DORMANT
[20:25:53] [Server thread/INFO]: [STDOUT]: SERVER enter state: DORMANT
[20:25:53] [Server thread/INFO]: [STDOUT]: Warning: window too narrow for timing events - increase window, or call beat() less often.
[20:25:53] [Server thread/INFO]: [STDOUT]: Warning: window too narrow for timing events - increase window, or call beat() less often.
[20:25:53] [Server thread/INFO]: [STDOUT]: Warning: window too narrow for timing events - increase window, or call beat() less often.
[20:25:53] [Server thread/INFO]: [STDOUT]: Warning: window too narrow for timing events - increase window, or call beat() less often.
[20:25:53] [Server thread/INFO]: Stopping server
[20:25:53] [Server thread/INFO]: Saving players
[20:25:53] [Server thread/INFO]: Saving worlds
[20:25:53] [Server thread/INFO]: Saving chunks for level 'TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb'/Overworld
[20:25:54] [Server thread/INFO]: Saving chunks for level 'TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb'/Nether
[20:25:54] [Server thread/INFO]: Saving chunks for level 'TEMP_0_5fbf5de6-f126-4d59-80cc-dbea9055cbcb'/The End
[20:25:54] [Server thread/INFO] [FML]: Unloading dimension 0
[20:25:54] [Server thread/INFO] [FML]: Unloading dimension -1
[20:25:54] [Server thread/INFO] [FML]: Unloading dimension 1
[20:25:55] [Client thread/INFO]: [STDOUT]: CLIENT enter state: DORMANT
[20:25:55] [Client thread/INFO]: [STDOUT]: JETTISONING 0 COMMANDS
[20:25:55] [Server thread/INFO] [FML]: Applying holder lookups
[20:25:55] [Server thread/INFO] [FML]: Holder lookups applied
> Building 95% > :runClient

Anybody had a similar problem or sees what I'm doing wrong?
or is it even possible to craft with malmoEnv?
Other missions work fine and I already trained an agent in the findTheGoal mission. I really like the framework and would love to get the crafting going!

Kind regards,
Max

@Maximusprime3
Copy link
Author

It works if you use <SimpleCraftCommands/> in the mission.xml
now all simple craft commands should be possible, those get specified in MalmoPlatform/MalmoEnv/malmoenv/commands.py
this script parses the commands and provides lists of all commands
in line 52 all_simplecraft = ["craft"] --> only the command "craft" is possible --> this command crashes the server!
but you can replace "craft" with the craft commands of interest.
e.g. I changed it to all_simplecraft = ["craft stone_pickaxe", "craft stick"]
now my agent has two crafting actions that don't crash the server and work fine, they also trigger the

            <RewardForCollectingItem>
                <Item  reward="1000" type="stick"/>
            </RewardForCollectingItem>
            <RewardForDiscardingItem>
                <Item  reward="-40" type="stick"/>
            </RewardForDiscardingItem>
            <AgentQuitFromCollectingItem>
                <Item type="stone_pickaxe" />
            </AgentQuitFromCollectingItem>

sections in the XML which is nice :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant