<div dir="ltr"><div>hello, i&#39;ve been exploring the educational possibilities of 
connecting a Lisp language to the Minecraft Pi Edition.  I started by 
writing a tutorial using Common Lisp <a href="http://www.lincolnix.net/gcentauri/build-tower.html" target="_blank">http://www.lincolnix.net/gcentauri/build-tower.html</a>
 which uses a basic connection API I wrote.  This is really my first 
attempt at a coding project, and I&#39;m scraping together understanding of 
things from a variety of sources.  <br>
<br></div>the code i have now establishes a socket connection, and i 
have written a &quot;send-command&quot; function with its own helper functions to 
prepare the proper string for the Minecraft API.  There are only a few 
functions that receive data, so I decided to have each one handle its 
reading of the input socket on its own.  this is very basic, and i&#39;d 
actually like to write this in a better way, if possible.  i have only 
included one example function here.  i&#39;d like the writing of this 
library to serve as a tutorial as well, because it has helped me 
understand a lot about some basic programming tasks.  here&#39;s the code:<br>
<div><div><br>
<a href="https://gist.github.com/anonymous/5745976" target="_blank">https://gist.github.com/anonymous/5745976</a><br><br>my question is mainly about creating a data structure to represent the 
whole 128x128x128 world, and then sending the &quot;get-block&quot; command to the
 Minecraft server for every coordinate, and retrieving all of the 
integers.  is this feasable?<br><br></div><div>I have been able to write
 a function to set a column of blocks recursively (see the build-tower 
tutorial in CL) which performs very quickly, even when sent from another
 machine on the network.  but the function i wrote (and must have 
deleted?) to GET a column of block id numbers took a few seconds to 
complete.  i don&#39;t know enough about TCP connections and how to send and
 receive data properly.  i&#39;m also unsure of the best way to process this
 function, as what i&#39;d like to end up with is a &quot;world&quot; data structure 
containing coordinate/block-id pairs.  the idea is that then you could 
write a function to perhaps turn all the &quot;water&quot; blocks into &quot;air&quot;, 
draining the oceans and rivers.  i don&#39;t know if this kind of function 
even makes sense to try with the way the Minecraft API works.  I&#39;m 
unsure about the size of the data, and if it is too big to efficiently 
operate on in this way.<br>
<br></div><div>i&#39;m sure i&#39;ll have more questions too.  but i&#39;m hoping to
 document the process of learning about this so other learners can 
benefit from my struggle.<br><br></div><div>thanks,<br></div><div>-grant</div></div></div>