Complete Ubuntu Installer Script
by Alloc
alloc@dr.com
UPDATES!
-added desktop shortcut feature
-the script checks for Sun-Java, and downloads it if you dont have it
-minecraft will be added to your applications menu under games
-improved java detection script
-checks for the existence of files before creating new ones
-fixed the multiple launch bug
-redesigned code based on shorter functions
-user is now asked what they'd like to do
-complete uninstall function implemented
-now uses the official minecraft icon
-troubleshooting menu added
-server install feature added
<< server icon
Setting up a solid installation of minecraft on Ubuntu can be a hassle.
But this installer script will do all the hard work for you!
How To Run It
1. Download the file from the link below
2. Right click and open the file's Properties
3. Browse to the Permissions tab and check the executable box
4. Double click on the file and choose RUN IN TERMINAL!
Basically the script does this:
- Looks for java
- Downloads and installs OpenJDK if needed
- Downloads Minecraft for you!
- Installs it to a new .minecraft folder!
- Writes a shell script to your bin folder
- Creates a shortcut on your desktop that you can use to run Minecraft!
- Creates a launcher in your Applications menu for Minecraft!
- Lets you run Minecraft from terminal with a simple "minecraft" command!
- also, it makes you happy!
TUTORIAL
http://www.youtube.com/watch?v=odo6QbdCfeU
Alternatively: you can give it executable permissions via the terminal and run it from there
After the script has run, you'll have a nice launcher on your desktop and you'll be able to just open up terminal and type "minecraft" to play!Code::~$ cd /path/to/downloaded/file/ :~$ chmod -x Minecraft_Installer_20.sh :~$ bash Minecraft_Installer_20.sh
Download Link:HERE
I'd love to here your feed back and suggestions!
oh, and I wouldn't mind your problems and errors either [Notch]
alloc@dr.com
The Script:
Notice:Code:#!/bin/bash # Alloc's Minecraft Installer: # feel free to change, update, improve, and release this script # suggestions of feedback? reach me at alloc@dr.com # This script, in no way, is directly distributing any protected minecraft files # all files are downloaded directly from minecraft.net. Don't worry, you won't be # breaking the "one big rule" :) # happy mining! # latest update 5/07/2011 echo "" echo "@-------------------------------------------@" echo "@ Alloc's Bash Minecraft Installer @" echo "@ Version 2.0 @" echo "@ @" echo "@ Please feel free to improve @" echo "@ this script however you desire. @" echo "@ @" echo "@ Alloc@dr.com @" echo "@-------------------------------------------@" counter=1 #----------------------------------# # DOTS FUNCTION # #----------------------------------# # this function simply prints three dots. It waits .1 seconds between each dot function dots { while [ $counter -le 3 ] do echo -ne "." sleep .1 ((counter++)) done let counter=1 echo } ## END DOTS #----------------------------------# # INSTALL FUNCTION # #----------------------------------# # This is the main install function, here all the files are downloaded/created and installed function Install { # the first thing it does is check to see if the .minecraft folder already exists # if so, then we don't need to create a new one, if not, we do. if [ -e /home/$(whoami)/.minecraft ] then echo ".minecraft folder exists" if [ -e /home/$(whoami)/.minecraft/minecraft.jar ] then echo -ne "have you run this before?" dots fi echo "" else echo -ne "creating /home/$(whoami)/.minecraft" dots cd /home/$(whoami) mkdir .minecraft fi #-------------------------------------------- cd /home/$(whoami)/.minecraft #-------------------------------------------- # after the .minecraft folder is created, the script checks for Sun-Java # by checking to see if the installation folder is present, if so, then # it will not download it, however it will still make sure that sun-java # is default, just in case openjdk is already installed echo -ne "looking for Sun-Java" dots if [ -e /usr/lib/jvm/java-6-sun ] then if [ -e /usr/lib/jvm/java-6-sun/bin ] then if [ -e /usr/lib/jvm/java-6-sun/bin/java ] then echo "Sun-Java is already Installed!" echo -ne "We need to make sure that it is the default Java installation" dots echo "Don't worry if you see lots of errors" echo "this requires root access" # setting the default java creates alot of unneeded text, therefore it is done # in a new terminal window, because people dont' really need to see it sudo gnome-terminal -x sudo update-java-alternatives -s java-6-sun echo "Sun Java set as Default." fi fi echo "" else echo -ne "you'll need to install Sun-Java-JRE" dots echo "this will require root access!" echo "prepare for lots of text!" sudo apt-get install sun-java6-jre sun-java6-plugin sudo update-java-alternatives -s java-6-sun echo "" echo "" echo "" echo " JAVA INSTALL SUCCESSFUL!" echo "------------------------------------" echo "" echo "" echo "" fi #-------------------------------------------- # the .jar file is simply downloaded to the .minecraft folder from minecraft.net # it first checks to see if the user already has it, if so, it won't be downloaded echo -ne downloading minecraft.jar dots if [ -e /home/$(whoami)/.minecraft/minecraft.jar ] then echo looks like you already downloaded it! else wget -q www.minecraft.net/download/minecraft.jar echo "downloaded." fi echo"" echo -ne downloading icon # the icon is also downloaded from minecraft.net, only if needed dots if [ -e /home/$(whoami)/.minecraft/icon.png ] then echo "you already have the icon!" else wget -q http://www.minecraft.net/favicon.png mv favicon.png icon.png echo saved to /home/$(whoami)/.minecraft fi echo "" #--------------------------------------------- echo -ne "writing bin shell" # this writes a seperate shell script in the /usr/local/bin folder, this is what allows the user # to run minecraft from terminal, just by typing minecraft. dots if [ ! -e /usr/local/bin/minecraft ] then touch minecraft echo java -jar /home/$(whoami)/.minecraft/minecraft.jar >> minecraft echo -ne saving to usr/local/bin dots echo this requires root access: sudo cp minecraft /usr/local/bin/ cd / cd /usr/local/bin sudo chmod +x minecraft echo "done" else echo excecutable already written fi echo "" #-------------------------------------------- echo -ne writing desktop shortcut dots cd /home/$(whoami)/.minecraft/ if [ -e /home/$(whoami)/.minecraft/install_files ] then echo -ne previous version detected, updating dots rm -rf install_files fi mkdir install_files cd install_files touch alloc-installer.desktop echo "[Desktop Entry]" >> alloc-installer.desktop echo "Type=Application" >> alloc-installer.desktop echo "Encoding=UTF-8" >> alloc-installer.desktop echo "Name=Minecraft" >> alloc-installer.desktop echo "Comment=awesome game" >> alloc-installer.desktop echo Exec= java -jar /home/$(whoami)/.minecraft/minecraft.jar >> alloc-installer.desktop echo Icon= /home/$(whoami)/.minecraft/icon.png >> alloc-installer.desktop echo Categories=Game >> alloc-installer.desktop echo "Terminal=false" >> alloc-installer.desktop #---------------------------------------------------- echo -ne granting the shortcut excecution permissions dots echo this requires root access cp alloc-installer.desktop /home/$(whoami)/Desktop sudo chmod +x /home/$(whoami)/Desktop/alloc-installer.desktop echo "done" echo "" #--------------------------------------------- echo -ne writing menu item dots touch alloc-menu.directory echo [Desktop Entry] >> alloc-menu.directory echo Value=1.0 >> alloc-menu.directory echo Type=Directory >> alloc-menu.directory echo Encoding=UTF-8 >> alloc-menu.directory echo "done" echo "" echo -ne installing to Applications menu dots xdg-desktop-menu install alloc-menu.directory alloc-installer.desktop xdg-desktop-menu forceupdate echo installed #-------------------------------------------- echo "" echo "SUCCESS!" echo "" echo -e "Minecraft has been successfully Downloaded and Installed \nCheck your desktop and Applications menu for launchers! \nYou can also run it from terminal with a 'minecraft' command! \ncontact: alloc@dr.com" echo "Happy Mining!" echo"" } ## END INSTALL #----------------------------------# # SERVER INSTALL FUNCTION # #----------------------------------# function ServerInstall { echo -ne "Looking for Server File" dots if [ -e /home/$(whoami)/Minecraft_Server/bin/minecraft_server.jar ] then echo -ne "Server Files already installed!" dots Main else echo "not found!" fi echo "" echo -ne "Creating Server Directory" dots mkdir /home/$(whoami)/Minecraft_Server cd /home/$(whoami)/Minecraft_Server mkdir bin cd bin echo "" echo -ne "Downloading" dots echo -ne " -minecraft_server.jar" echo " done!" wget -q http://www.minecraft.net/download/minecraft_server.jar echo -ne " -server_icon.png " echo " done!" dots wget -q http://i.imgur.com/ugDRM.png mv ugDRM.png server_icon.png echo "" echo -ne "Writing Shell Launcher" dots if [ -e minecraft_server ] then rm minecraft_server fi touch minecraft_server echo "cd /home/$(whoami)/Minecraft_Server" >> minecraft_server echo "pwd" >> minecraft_server echo "java -Xmx1024M -Xms1024M -jar bin/minecraft_server.jar" >> minecraft_server echo -ne "Copying to bin folder" dots echo "This may require root access:" sudo cp minecraft_server /usr/local/bin sudo chmod +x /usr/local/bin/minecraft_server echo "done" echo "" echo -ne "Creating launchers" dots mkdir install_files cd install_files if [ -e alloc-server_installer.desktop ] || [ -e alloc-menu.directory ] then rm alloc-server_installer.desktop rm alloc-menu.directory fi touch alloc-server_installer.desktop echo "[Desktop Entry]" >> alloc-server_installer.desktop echo "Type=Application" >> alloc-server_installer.desktop echo "Encoding=UTF-8" >> alloc-server_installer.desktop echo "Name=Server Minecraft" >> alloc-server_installer.desktop echo "Comment=Server GUI" >> alloc-server_installer.desktop echo Exec= minecraft_server >> alloc-server_installer.desktop echo Icon= /home/$(whoami)/Minecraft_Server/bin/server_icon.png >> alloc-server_installer.desktop echo Categories=Game >> alloc-server_installer.desktop echo "Terminal=false" >> alloc-server_installer.desktop #---------------------------------------------------- echo -ne "Granting the shortcut excecution permissions" dots echo this requires root access cp alloc-server_installer.desktop /home/$(whoami)/Desktop sudo chmod +x /home/$(whoami)/Desktop/alloc-server_installer.desktop echo "done" echo "" echo -ne "Writing menu item" dots touch alloc-menu.directory echo [Desktop Entry] >> alloc-menu.directory echo Value=1.0 >> alloc-menu.directory echo Type=Directory >> alloc-menu.directory echo Encoding=UTF-8 >> alloc-menu.directory echo -ne "Installing server launchers" dots xdg-desktop-menu install alloc-menu.directory alloc-server_installer.desktop xdg-desktop-menu forceupdate echo "done" echo "" echo -e "The Minecraft server client has been installed! \nrun it from the launchers, or by typing 'minecraft_server' into terminal" ## END SERVER INSTALL } #----------------------------------# # SERVER UNINSTALL FUNCTION # #----------------------------------# function ServerUninstall { if [ ! -d /home/$(whoami)/Minecraft_Server ] then echo Server is not installed! return fi cd /home/$(whoami)/Minecraft_Server/bin/install_files echo -ne "Removing Launchers" dots xdg-desktop-menu uninstall alloc-menu.directory alloc-server_installer.desktop echo "done" echo "" echo -ne "Removing Desktop Icon" dots cd /home/$(whoami)/Desktop if [ -e alloc-server_installer.desktop ] then rm alloc-server_installer.desktop echo "done" else echo "Does not exits" fi echo "" echo -ne "Removing Server" dots if [ -d /home/$(whoami)/Minecraft_Server/bin ] then cd /home/$(whoami)/Minecraft_Server rm -rf bin echo "done" fi echo "" echo -ne "Removing launch script" dots echo "this requires root access" sudo rm /usr/local/bin/minecraft_server echo "done" echo "Uninstall Successful" } #----------------------------------# # UNINSTALL FUNCTION # #----------------------------------# function Uninstall { echo -ne "Looking for Minecraft" dots if [ ! -e /home/$(whoami)/.minecraft/minecraft.jar ] then echo -ne " -folder not detected" dots if [ ! -e /usr/local/bin/minecraft ] then echo -ne " -bin launcher not detected" dots echo"" echo "Minecraft doesn't seem to be installed!" Main return fi fi echo "Minecraft found!" echo -ne "Uninstalling Minecraft" dots echo "NOTE: You're save files will be kept" cd /home/$(whoami)/.minecraft echo "" echo -ne "Deleting files and folders" dots rm -rf bin rm -rf texturepacks rm minecraft.jar if [ -e options.txt ] then rm options.txt fi if [ -e lastlogin ] then rm lastlogin fi rm minecraft rm -rf resources rm icon.png cd install_files echo "Removing Application Launcher" xdg-desktop-menu uninstall alloc-menu.directory alloc-installer.desktop echo "Removing Desktop Shortcut" rm /home/$(whoami)/Desktop/alloc-installer.desktop rm -rf /home/$(whoami)/.minecraft/install_files echo "" echo -ne "Removing Binary Launcher" dots echo "this requires root access:" sudo rm /usr/local/bin/minecraft echo "" echo "Minecraft has been uninstalled :(" } ## END UNINSTALL #----------------------------------# # TROUBLESHOOT FUNCTION # #----------------------------------# function TroubleShoot { echo "" echo "" echo "#----------------------------------#" echo "# Troubleshooting Menu #" echo "#----------------------------------#" echo "What would you like to do? (enter number of choice)"; echo ""; echo "1. install/update Sun-Java" echo "2. install/update OpenJDK" echo "3. use Sun-Java to run minecraft from now on" echo "4. use OpenJDK to run minecraft from now on (not generally encouraged)" echo "5. these options didn't fix it!" echo "6. return to the main menu" TINPUT=0 read TINPUT if [ $TINPUT -eq 1 ] then echo -ne "Installing/Updating Sun-Java" dots echo "this requires root access:" sudo apt-get install sun-java6-jre echo ""; echo ""; echo; echo "Finished!"; echo ""; TroubleShoot else if [ $TINPUT -eq 2 ] then echo -ne "Installing/Updating OpenJDK" dots echo "this requires root access:" sudo apt-get install openjdk-6-jre echo ""; echo ""; echo; echo "Finished!"; echo ""; TroubleShoot else if [ $TINPUT -eq 3 ] then echo -ne "Making Sun-Java the default" dots echo "Don't worry if you see lots of errors" sudo gnome-terminal -x sudo update-java-alternatives -s java-6-sun echo ""; echo ""; echo; echo "Finished!"; echo ""; else if [ $TINPUT -eq 4 ] then echo -ne "Making OpenJDK the default" dots echo "Don't worry if you see lots of errors" sudo gnome-terminal -x sudo update-java-alternatives -s java-6-openjdk echo ""; echo ""; echo; echo "Finished!"; echo ""; else if [ $TINPUT -eq 5 ] then echo "-------------------------------------------------" echo "if these troubleshooting options didn't fix your," echo "problem, I'd be glad to help you out! " echo "Alloc@dr.com" echo "-------------------------------------------------" read NOTHING Main else if [ $TINPUT -eq 6 ] then return else echo invalid choice TroubleShoot fi fi fi fi fi fi } ## END TROUBLESHOOT #----------------------------------# # MAIN FUNCTION # #----------------------------------# function Main { echo "" echo "------------------------------------------------------" echo "What would you like to do? (enter number of choice) "; echo ""; INPUT=0 while [ $INPUT != 1 ] && [ $INPUT != 2 ] && [ $INPUT != 3 ] do echo "1. Install Minecraft" echo "2. Uninstall Minecraft" echo "3. Install Minecraft Server" echo "4. Uninstall Minecraft Server" echo "5. TroubleShooting" echo "6. Exit" if [ -e /usr/local/bin/minecraft ] && [ -e /home/$(whoami)/.minecraft/minecraft.jar ] then echo "7. Play Minecraft!" fi read INPUT if [ $INPUT -eq 1 ] then Install Main return else if [ $INPUT -eq 2 ] then Uninstall Main return else if [ $INPUT -eq 3 ] then ServerInstall Main return else if [ $INPUT -eq 4 ] then ServerUninstall Main return else if [ $INPUT -eq 5 ] then TroubleShoot Main return else if [ $INPUT -eq 6 ] then return else if [ $INPUT -eq 7 ] && [ -e /usr/local/bin/minecraft ] && [ -e /home/$(whoami)/.minecraft/minecraft.jar ] then minecraft else echo "invalid choice" Main fi fi fi fi fi fi fi done } #----------------------------------# # CALL THE MAIN FUNCTION # #----------------------------------# Main # THE END
This script does not hold or contain any protected material or files. You are free to change and distribute this script however you so desire.



<< server icon
Adv Reply




Bookmarks