A computer in Minecraft made using no clientside mods.
Go to file
2018-06-16 01:55:42 +02:00
VirtualComputer Still no display 2018-06-16 01:55:42 +02:00
VirtualComputerWindows Fixed double start, and some older changes 2017-10-15 03:55:16 +02:00
.gitattributes Fixed double start, and some older changes 2017-10-15 03:55:16 +02:00
.gitignore Mostly done with direct renderer, refactoring 2017-06-24 14:52:23 +02:00
LICENSE Initial commit 2016-03-19 23:38:27 +01:00
README.md Fixed /c alias (hopefully) 2017-08-18 00:31:39 +02:00

The Computer

A working modern computer in Minecraft made using VirtualBox and Java. No clientside mods required.

I started working on this project on 2015. december 5. However I did not write much code in that time as I had to figure out how things work. I plan on making a series where I show the whole process of creating this project.

##Video

Original video

Installation requirements

Note: only the server host has to meet these requirements.

Currently compiled for (and tested on):

If you don't meet these requirements, you will need to compile the files for yourself. Please help by sending the compiled version to me so more people can download it.

  • OS X
  • VirtualBox 5.1
  • Spgiot/Bukkit 1.8/1.9/1.12
  • Java 8

Possibly works with (untested):

  • Any operating system which is not Windows
  • Other VirtualBox versions (code modifications are probably necessary)
  • Other Spigot/Bukkit versions
  • Microsoft .NET Framework 4 (code modifications are necessary)
  • Other Java versions

Due to VirtualBox Java binding support limitations the plugin does not support Windows currently.

Installation

Warning: The first loaded world on the server (the one specified in server.properties) will temporarily lose the first 20 maps, although it will reset if the server is loaded without the plugin.

  • Install all the requirements
  • Add a virtual PC if you don't have any (the first one will be started)
    • Install an OS and Guest Additions, if you haven't already
  • Put the jar file into /plugins directory
  • Make sure your server is set to a world that you don't mind your maps temporarily deleted from
  • Start your server

Usage

Please give appropriate credit and link to this page if you use this machine in one of your videos/creations/etc. You can also send me your video so I can put it here.

Display

Note: You can create as many displays as you want, but all of them will show the same.

To create a display, make a 5 wide 4 high wall of item frames, then put the maps 0-19 on them starting from the top left and going downwards. You can give the maps with this command:

/give <player> filled_map 1 0

Where you'll need to increment 0 for each map.

It is also recommended to start the virtual machine first so you can distinguish the different parts of the display while placing it.

Keyboard

You can either open the chat keyboard using /computer input key, or you can use /computer key <keyname>. You can find key names here.

Mouse

You can "lock" the physical mouse to the virtual one with /computer input mouse, or you can move the mouse (including scrolling) with /computer mouse <dx> <dy> <dz> <dw>, where dx specifies the amount of pixels to move right, and dy specifies the amount of pixels to move down, while dz and dw specify the scrolling vertically (positive values scroll down) and horizontally.

To set the locked mouse speed, use /computer input mspeed <integer>. The difference in look position will be multiplied with this number. Recommended values are between 1 and 10 (inclusive). Default: 1.

You can press a mouse button with /computer mouse . For example: /computer mouse leftbutton. You can find all the button names here.

Sounds

Due to the way it works, it automatically plays every sound from the virtual machine on the host computer. This is built into the VM, it seems. In order to make the sounds play for every connected player, we'd need a clientside mod.

Special thanks:

  • The creators of VirtualBox for making it open-source and kind of easy to use (though I had minor issues as the documentation doesn't really tell me how to write a new frontend :P and that I needed to learn how machines work - especially keyboards)
  • @iiegit for testing and more testing for the non-Windows version