ApplesoftMod

About ApplesoftMod:

The ApplesoftMod embeds a fully-functional Apple //e emulator as a usable object in Minecraft.  The screen is rendered on a map, so only use this if maps aren't terribly important to you.  The actual emulation is based on Java Apple Computer Emulator (Jace) and is allowed to run for 10 seconds before aborting.  This is long enough to draw pictures and print simple statements.  Letting it run for much longer would cause a higher workload on the server, and this is not desirable on a busy server!

This mod is fully-GPL source, all of which I own the rights to (I wrote JACE as well).  You may download and distribute the source freely but if you want to support future features and bug-fixes, please consider donating.

If you would like to test-drive this mod, head over to apple2forever.ca and warp (or walk) to the Call -151 bar.  It's set up in the back room there.

Installation:

Drop the ApplesoftMod jar file in to your Bukkit server's plugin folder and reload.  If you want to change the permissions for the server commands /arun (defaults to all users) and /aspawn (defaults to OP only) then follow the appropriate permissions configuration for your server (this varies depending on what permissions/management plugins you are using.)

Usage:

You will need to create a written book and place your program in it.  Your program may span across many pages in the book.  If you use line numbers, you will need to put "run" as the last command otherwise your program will not start.  If you do not use line numbers, your program instructions will run right away, as they would if you did the same thing at the applesoft basic prompt on a real Apple //e.  If you want to run machine (assembly) code you can do so by starting with CALL -151 as your first line.

Create a computer with /aspawn and right-click on the button with the book in-hand to run your program.  You can also run the program in hand with /arun but results will not be written drawn on any map.  You will see any PRINT statements though.

If you want to load a basic program from a listing, locate the URL of a file that contains the program (in plain text) and then use /aload with the url.  I have an example apple logo program below, and because the URL is very long I also have a short URL for it: http://goo.gl/SLCqL

So to create a program book with this URL, use: /aload http://goo.gl/SLCqL

Any lines in the file that start with an @ will be treated as metadata and will not be recorded.  This is useful for documentation purposes.  Currently you can use these fields: @author, @title, @description. See the example "apple logo" program for an example of this.

Signing books and other tips:

You can also use signed books.  This allows you to share your programs with others and prevent modification.  If you want to set up a more elaborate computer lab in your server, use a combination of hoppers, a dispenser and a chest so that users can contribute or return programs by dropping them in the hopper and they can check out programs by pressing a button to activate a dispenser.  For extra points, do the same thing for empty books if you are not a creative server, that way users can get empty books for free.

Any book loaded via /aload will automatically be signed if there is metadata in the program listing (@author, @title and/or @description).  Please note that description should be kept short and it will split the description into multiple lines as long as you use a period followed by a space at the end of every sentence.  Even then, keep the sentences short as the display of the description will take up a lot of room on the client screen.

Updates:

May 6, 2013: Initial release

May 21, 2013: Added /aload command and also made some tweaks to how it handles timeout of programs so that it is slightly more lenient.

Download:

The compiled jar below was compiled for CraftBukkit 1.5.2, but has also been tested successfully with 1.6.1.  If it does not work with your server you will need to compile it for your server version.   The source can be found below (ApplesoftMod-1.0.zip) and recompiled with Apache Maven.  Edit the pom.xml to your bukkit server version and use "mvn install" to rebuild.  Chances are you're using an IDE like Eclipse or Netbeans in which case you probably already know how to do this.