Ascii Bukkit Menu
Ascii Bukkit Menu
What is it?
Ascii Bukkit Menu is a Bukkit server manager. Written with bash, designed to be simple and robust. Should work out of the box on most distros. Specificly designed to run on a headless server via a ssh session.
Features:
- Uses screen to keep server session running in background, can reconnect at anytime.
- Start/Stop/Restart commands.
- Send commands directly to bukkit server.
- Automatically update Bukkit server to latest recommended.
- Bukkit server log rotation. Rotates server.log on each start, keeps last 20 compressed.
- If using Ramdisks, will automatically copy worlds between ramdisk and localdisk. Then runs an md5sum to verify consistency of the data.
- Start and Stop server on boot using non-interactive mode.
See:
ScreenShots - Updated for 0.2.8
Download:
Dependencies:
- Java Runtime Enviroment http://java.com/en/download/manual.jsp
- bash http://www.gnu.org/s/bash/
- screen http://www.gnu.org/s/screen/
-Must have vertical support. (This is baked into debian based systems)
-Arch users try this package
-RHEL/CentOS use Git Souce | HowTo
- grep http://www.gnu.org/s/grep/
- wget http://www.gnu.org/s/wget/
- zip / unzip
- logrotate
- md5sum (optional)
- sysstat utilities (optional to see network usage)
- python (optional)
Install:
AutoMagic Method:
This will download and install ABM, then run an interactive script to setup the configuration.
No need to edit config manually.
Simply copy and paste the following to a bash shell.
wget http://dev.bukkit.org/media/files/667/24/install.sh && chmod +x install.sh && ./install.sh
Traditional method - zip:
wget http://dev.bukkit.org/media/files/667/23/abm-0.2.8.zip unzip abm-0.2.8.zip
Experimental Builds - git:
Not for the faint of heart.
git clone https://[email protected]/user77/Ascii-Bukkit-Menu.git
Usage:
To use ABM simply change to the directory you installed it to and run the abm.sh script.
cd Ascii-Bukkit-Menu ./abm.sh
You can also run in non-interactive mode. This can be added to startup scripts. Currently doesn't work if you are using a ramdisk
./abm --start ./abm --stop
Help:
First check to see you have the correct dependencies as listed above.
Make sure your user has +rx permissions to Ascii-Bukkit-Menu directory
chmod -R u+rx Ascii-Bukkit-Menu chown -R you:yourgroup Ascii-Bukkit-Menu
Issues:
Dosen't work on screen without vertical support.
This is very much a work in progress. So if you come across a bug, please open a ticket.
here.
@TnTBass
It's uploaded right now.. Somehow my commits where added to an old pull request of mine. (not much experience with github).
@TnTBass
I'm currently cleaning up the code (much unused code). When done, you'll see pull request appear.
@thommy101
Why not submit a PR to our GitHub page with the additions/modifications. We've been wanting to do this for a while.
Hi,
I'm currently running an moddified version of Ascii Bukkit Menu... It has dropped the MineQuery and uses the buildin Query of bukkit (or minecraft, I don't know which one supplies the query stuff). The code for the query is in python2.
If someone wants to take a look at the code, I can upload it if you want.
@DjinnWraith
I want it to support multiple servers myself, but haven't had a strong need for it yet. We've added it to our todo list.
This will support any jar file you want. You may need to modify the scripts - look for anything that has craftbukkit*.jar in the sh files, and replace them with your server jar file. Alternatively, just rename your server jar file to craftbukkit-<servertype>.jar and it will pick it up and run with it automatically.
We are looking for developers with strong Bash scripting skills to help us with development as well.
Hi!
This looks brilliant, so glad that someone went and made this. But couple of questions: Does it actually matter what type or version of server you launch with this? (minecraft, bukkit, tekkit, FTB, 1.2.5, 1.3, 1.4.2 etc..?) Or is the game version on the file list just something you have to do for the bukkitdev page?
Also, I noticed someone else already asked this, but is there any chance you would be adding support for multiple servers? I will soon be heading to get myself a dedicated server box, and my current webhost doesn't support multiple servers through the single control panel. This seems like the perfect solution for me!
The graphics are very glitchy for me, and when i try to restart it takes far to long to shut down (if at all), But I love to use it for the stats and easy commands!
Thank you,
An___idiot
Not sure what is going on, but mine isn't working as intended.
First, I seem to have an issue with the server status screen constantly showing;
Secondly, the Bukkit Log screen just always says 'Server log not found, creating one..'.
Lastly, everytime I attempt to start the server, it always responds with 'Server already started' when I know it isn't. It also causes the entire program to freeze if it requests shutdown. End up having to send the quit command into screen to exit it.
CentOS 2.6.32-279.14.1.el6.x86_64 x86_64 GNU/Linux
Quick comment just to say I've posted in the forum on the off chance you get notices from the comments but not the forum :)
Its not bad, but there's two big issue, my server keep crashing after 24 hours or so, and when i tried to update bukkit, it did DOWNGRADE it, i were using the 1.4.2 server, and it got me back to 1.3, so i couldnt login anymore on my server beacause of the version difference
The foo is strong with this one.
@Raxxon
For the delay, just add a variable at the end of the abm.conf file like this :
#Shutdown Delay
ShutddownDelay=30
Then, in functions.sh in the StopServer() function, between line 472 and 473, add :
sleep $ShutddownDelay
Here, it will wait 30 seconds before the Shutdown.
FYI, just postin a ticket, about problem with querying Minequery (causing SocketException in the plugin).
Using nc "by hand" on the linux command line is working ok (ie open the nc connection, then type QUERY), but the line : echo "QUERY" | nc localhost 25565 causes this exception : 2012-10-13 16:14:54 [SEVERE] Minequery server thread shutting down java.net.SocketException: Broken pipe at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109) at java.net.SocketOutputStream.write(SocketOutputStream.java:132) at java.io.DataOutputStream.writeBytes(DataOutputStream.java:276) at net.minestatus.minequery.Request.handleRequest(Request.java:99) at net.minestatus.minequery.Request.run(Request.java:58) at java.lang.Thread.run(Thread.java:679)
@techrosis
Exactly. Just fire up ABM again and you are good to go.
If, for whatever reason, you need to connect directly to a specific screen session, type: "screen -ls" to find the screen number and "screen -r <name.number>" to attach specifically there. The vast majority of the time this isn't needed.
@Kugane
We do not have specific init scripts yet for ABM. It is on our todo.
Sorry if this has been asked before. Is there a way to resume the screens properly. I like to connect remote via ssh and would love to just resume the session. As of now all I can do is resume the menu screen. Thanks again.
Edit: nm, Figured it out. Just quit out of ABM then log out. Reconnect and relaunch ABM and it resumes. AWESOME!
I would like the ascii manager bukkit, "minecraft" as users, start on rc.local but I get it back not -. -
sry for my english google translator
@techrosis
Can you please try to format that better for me, its hard to make it out clearly.
@Sutekn
Yeah I also noticed that. I was one field off and was getting the packets per second on the RX. That has been corrected in 0.2.8 which is on github. I have a few more things I want to fix before I push 0.2.8 but feel free to use what's on github, just might not always work ;>)
Thanks again for pointing that out. -Jon
Hi user777,
Thanks for this script, I was using my own but this is much.. much better for managing my home minecraft server. Im running Arch and noticed that the Tx and Rx were incorrect.
This was while streaming a video from my server. I checked and the variables in functions.sh ($netrx & $nettx) are grabbing the txpck/s and then rxkB/s, so for me at least I need to change "awk '{print $5,$6}'" to "awk '{print $6,$7}" on line 614 of functions.sh.
I can see if your clock is in 24hour format then $5 and $6 would likely be correct.
-Joe
<<reply 876184>>
So two Bukkit servers on one box? At this point in time No. Unless you were doing a jailed environment.
Not to say that it can't.
So if you wanna monkey around with it you are going to need to look to two place
1) in include/scripts/functions.sh
Edit this function to look for something more unique. So you could name server 1's jar file server1.jar and server2.jar
# Find PID of Bukkit Server.
checkServer () {
bukkitPID=`ps -ef |grep "java $jargs -jar $bukkitdir/craftbukkit" | grep -v grep | awk '{ print $2 }'`
}
2) You will need to mess with the screen config. In the same functions file.
Look for the startServer function and mess with these parts:
serverscreenpid=`screen -ls |grep bukkit-server |cut -f 1 -d .`
and
screen -d -m -S bukkit-server
You will want those unique.
Hope that helps. If it's something a lot of people are looking for then I might add it. But for now feel free to muck around with it to make it fit your needs.
Cheers,
-Jon