From a73c9a522757d87ce04a93152ce4bdb6f1928ba9 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Tue, 27 Nov 2012 20:54:54 -0800 Subject: [PATCH] Framework for Minecraft server --- minecraft/config | 2 +- minecraft/config.info | 2 +- minecraft/images/conf.gif | Bin 0 -> 2859 bytes minecraft/images/icon.gif | Bin 0 -> 2859 bytes minecraft/images/logs.gif | Bin 0 -> 2500 bytes minecraft/images/manual.gif | Bin 0 -> 1456 bytes minecraft/images/users.gif | Bin 0 -> 1699 bytes minecraft/index.cgi | 53 ++++++++++++++++++++++++++++++++++++ minecraft/lang/en | 23 ++++++++++++++++ minecraft/minecraft-lib.pl | 21 ++++++++++++++ minecraft/module.info | 3 ++ 11 files changed, 102 insertions(+), 2 deletions(-) create mode 100755 minecraft/images/conf.gif create mode 100755 minecraft/images/icon.gif create mode 100755 minecraft/images/logs.gif create mode 100755 minecraft/images/manual.gif create mode 100755 minecraft/images/users.gif create mode 100644 minecraft/index.cgi create mode 100644 minecraft/lang/en create mode 100644 minecraft/module.info diff --git a/minecraft/config b/minecraft/config index 909b82dce..4b2dd125b 100644 --- a/minecraft/config +++ b/minecraft/config @@ -1,3 +1,3 @@ minecraft_dir=/usr/local/minecraft java_cmd=java -init_script=minecraft +init_name=minecraft diff --git a/minecraft/config.info b/minecraft/config.info index 2928fe373..0961f8ccb 100644 --- a/minecraft/config.info +++ b/minecraft/config.info @@ -1,4 +1,4 @@ minecraft_dir=Base directory for Minecraft server,0 minecraft_jar=Full path to Minecraft JAR file,3,In the base directory java_cmd=Full path to java command,0 -init_script=Name of init script,0 +init_name=Name of init script,0 diff --git a/minecraft/images/conf.gif b/minecraft/images/conf.gif new file mode 100755 index 0000000000000000000000000000000000000000..551799d007c9d64ddc4d704ba7d62ccc5abe29a4 GIT binary patch literal 2859 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 JdJ7~V06RMMX`285 literal 0 HcmV?d00001 diff --git a/minecraft/images/icon.gif b/minecraft/images/icon.gif new file mode 100755 index 0000000000000000000000000000000000000000..551799d007c9d64ddc4d704ba7d62ccc5abe29a4 GIT binary patch literal 2859 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 JdJ7~V06RMMX`285 literal 0 HcmV?d00001 diff --git a/minecraft/images/logs.gif b/minecraft/images/logs.gif new file mode 100755 index 0000000000000000000000000000000000000000..af09ea1d9e7f5fde9a48ec3ac3793e4ecb9f42b9 GIT binary patch literal 2500 zcmcJO`BRez0zkhn7gr!5;Ruj~1QHU$^(7n$l0YtU0U_ZAK?4K?Q45qxIHX@f2*_a( zu_B@kP$()YB3A0uP6BwWS_h?LwNrMYw$pZ%-L$nkwzJah{t^4;{qX*Qr&KEhsg)1_ z0Y5wgNd8_Vf_DfJ8yesn7U&lih@%F1Q-ggd!T#YSEQLg%k^E>OIC>~PBFsOMOkk3I zBgw=liXVd#5Jkl?sR68TJUiTr zYJ@T^B6~-qN*I}w#!!nG8WBS)WM-u^b45&DdXzqcm6yTRO4#}0=t2pjK*A}KG7F_K z#j>a(SxkwXRhr2zQbw04qRW+>5;dnn6|+knyIT`y$cnGbPN>R(sJsDedkJ0L&&PG*0jVxUnu*rYnrEc@VH`EX0-(SzB?T9wC5vZL+N z58GrT9kQ`@`LRy<$&Sp?Lz&~9ic^P_TpSw3CO__CvX+-&ap{X-=4P&%m1L z_p`<YMd%9=OXon!CL|HPu5vT7%-1#{iG(>=LUJ%wkjx*419 zT#tUXSAX7?_eo#gY+uQIZ~olj{0n^rXZs80`b#e!E<86-aCV??4c9-c{qz3`ecNBwTvORnW2Cj#x75*;>Kq+F z{~ZN-1AhXsz+e1t6u@&E_|uE5TCh92J&Bxh6|^29ZzE|Y1Q0$#_vPq&Qlo9^c6Z`0 z@W`k8g5#=hF@Apb>(A3SbJ*3BzkKgg7+ZZaJw&=OQaL0z-32!E?EU&m!{*`^Z^pZ3 zM%>#@wH~d>yI8(l@YBfb*2%>B2UFbXo^!`98z=FtjMtKIs> zSTk`g`N+&*XkPsd-S+7u+u`-HZpAe=juAl&@)0-+8 zHsLzyMOLIjsbB6#;=vMqO z73-%sQ~w-UJeM86U3t=E|#HFpJA2HjIyB*nwu>Z*>?C3P3h)RKT4QY$HEO42`HyXe| zs9ua2*|W>y3B0=7dcBqH*F!A^9$1N@I)|04H@eWSHmqBW2@V)`dNm!SwQYtA#qVOg zMu!hjM4c{Fc-CupZIoZ`Kv7Cn;@kfGS9I}4uwm%Nzo{ljj0vxUF`7oO7rf*_UqFNl ze(U)xPJ+nplLatny^#~JZ*U`wY$-$pskDet*a<*xGrGlr#0gH!x?NUc35c8cM&>mR z*gQ%qeQ|@Uc#X~mq`UTSLv!Yf1iP8!Nkh^}u*dUJ9_H;9N>$R0H4fXB-p*r{V@~v< z0ZBb*2LplUSkqMrDZqh@5==Wnff}^MfH-f07tY>U4R&-2hgM4h!h8gJCGKM}ZFZ z`_^t%^btb$x&LMtIWx2G6jI6@(U6$njr>ZCz_eM4(jBcQgpt0&^*fewnxEuHhyT2| zH%jcPO&)eo3K|hpl1JW@Ip_VyJqTYKfOM@o0*=1{Jz{AM=!cF!gzHGQBLSJY-FFOQ zFd^7NGurF5BZi1ayb|Rg{Mhi0%sCO!AqMn_@)r}0xv4J4@vbqamthS`u>OjamsjCX z_VfOW0D9s@fH%W1jQ!T(qk}EaM%HhaZ_=j2W>)c9oz1UB4^v2mpuuHE)B))2mjL$S zV=(78z_+f?7-VyQOk8d@Z_XnLrhnuQ@BJ4lcRC-zvx8oD_G<~I5=r|onzMY*r+?>e zFVjMAK|qd-wZOk-4g><%#XqF$5F=msp7Bhz3=sGnHe~i_HApgELMW081lw1~ znH}&|oRwx}{aBIDTtPA%>RrX`xMO4Pp3nsY?!v2)1`qFVU=QoYegYuQVmvi7=FJzf zj24^*K&E49+6%&G%ifKkzsaza=T#XrX7@OtSg&r!i;qF>@}^V=;0MR=L_J5b;Ykz? zUZ=Y7MO$&MUhQ6oiFh8wy8*1G1c4fBu!O)_3%^!)dL9ALQ;+Qjo}`t)tQC|a&e?9Q Ua4Sc27%Z)5g>*(G27t8x0@RDcQUCw| literal 0 HcmV?d00001 diff --git a/minecraft/images/manual.gif b/minecraft/images/manual.gif new file mode 100755 index 0000000000000000000000000000000000000000..5d7fcec85e477723a9f0998d89ba8e8a2e360f4a GIT binary patch literal 1456 zcmZ?wbhEHbG+;1bc;3gLA;+sJ$E_*HqbbL$Ezhg1z@x9kr?1Rspv-5e!e^!-V4*2s zqbnqAt|MZuBWkW|t0!cqCu|Qy`a*nmX8d-h{B~x%_GWzcrhN8hiZao+)-f*9(XKLaZqmXLKJo6-3GUL?0Vata zGKn6tNnSF^Ub2qC#wp%1sorvF-g4=_av2~bpW&xq9b=yptZta>SrDoqo)uFZrl^$_ zBApj6k)Kc>M~9FGED`t%|)6`*|M!gvh5|Z?WJ;E z<#OE>a=lgZy;X93)d~}96(-l4PAONM*{n3HMR{I_(d>Gq`JKuOx;$nUD=+F%0iwmd zwhQa*7S^e(n5eR1lIqII>YHb(Z=a{JW4^)mSsFX%YwTXAxqpe~{-v4+mT4Ybu6byM z=HV6EhgWJJS*3Gywbt=9M$bh%9nK!Xra{3qyKl$uzQnxasiS(2gP?&%xA zp!k!8k&EF!gAM}_fHDdL$3KSuoH8C8794Em5Z3akSh(dWM&+k7iHA3-&Y4olr|7h0X(C(y|5+-YOeretyu2$lf>bj4FD`Cq z(@MIs;-YxFMd_z6oL`y(7P(KbQuC#{vzfYn-B5sZ6Yg9xq*c+c4wNrIo?Y zx!8C_3YY{G7?`H-FWU4@@bE`PzozQn|DFn2Xg@q8!O!jUMtsAA;}cZ5Yc3o($ZcKz z?uTZ`3tmAbdz17v7bYCP=;(aC=gopyO0T)s^&SdSsZM#@BGweG=(1u!N$bJ zN86t7H#f5}zH%W@rbhkEnTN(!j_p@O|3#X2#Ws9Xxl>y${$c`;qEpSK6Uz+~7@9@3 zQ|{c@Kd<(%p4--kQypr0H_YHwt`(T;%7I zp>pHb&I?Z5#&61*dw6FWPLcB#3R%qA-RiK!?Lq8J)!v%IpVOzy$cQadikS98IbOZw zXQ~_D(TyjR+Iunsm}>YIDsjt}2t0D(yLd4~sY>ifID^}pB~5)TW+@rU9lK^;Sk$Zb z@x>fr--)hb5gB5QEJAMtTt)nCo*&HOeX1JSTjlg;DeDsMyU$)FZaC%j+DY=xlA8=Q zQ!hC4Tkm+_#QirlPSvU7wET2%Rh9(w)g9apBG8>rzV^n7Bg}^LUi^-grBk zRmY5Z``u4d-^IU z6E-LtI4To4EDt*@8Z0YcFf3I!FeNW8Q9>{jMJ_ExG9g1X7&kL+Wi2XXEiOzpCRs8l zQ8YDPGA?2T{Cfqd}2_7VN8r&T|aVidt+9UTv=ymW|CZAd1X>j zZ)R<1XMJT@PjPK8d3<+gUNd-sn_XR5aA|;LWP)X1foD~hU|oP{TVrr#eQH)Se1EQ6 zU5;gAVsdP5aBYfeS%_+1Hh+RkdU}LxU!h}Ttzcg*gN2-CXilJ(-`VeS3$AhE$i7jfjV_e}9&UeK?_}k&B9_g@%@nh>((xLaDBxl8sfUshpRU znVXoenU*tgfp~$Iz*;rLwK8ud%MTvaz(bv$(pqS>5Hr#KFkQ$Ir^h-r(Kl z=;iV5^Z)<_CX>@2HM@dak03rDV0SW;B04x9i001xmFaQ7u{s8|8 z97wRB!Gj1BDqP60p~Hs|BTAe|v7*I`7&B_z$g!iu0|g2Q7GD zP^K(6z`=(PDqg6la8l;XfeXa!LUwFuBLy*k7IfuG)Fnu}@ZdqJlwdk-S5$d&QV)~{ zpH&;J;`1ZQr(Ii61gJW&Oqn4xXntsZ4| zy;?OZ+L>lL6{RTC>Qbd#KN^LqQzwhn5?(qa%1|c6$P*_5^^{RTc>47I<-2Fk-oRh4 zmZ`7C-Vwq}@b|1{C0aYA?)&=j>*o(1J9qA|Bj7-B&Qx;^G=9A2)E=zF#+iMf zK=Owr-n?^kQ;fByLnQi60AE;Q!D7cC!k|qCB1RAb3oS-O zJ&?85LSRr2cYq^KAbEh25Eo~(Vagzh!~D+*ToA6fKuZW=1EDcUV9*gr1Okc|a(KZ| t5uC%l&>Lx}5k?gu7$gD`eUL&0TL?vf#0kVFul(}NH}CxO&|ee~06Ss+zzP5W literal 0 HcmV?d00001 diff --git a/minecraft/index.cgi b/minecraft/index.cgi new file mode 100644 index 000000000..a063c687a --- /dev/null +++ b/minecraft/index.cgi @@ -0,0 +1,53 @@ +#!/usr/local/bin/perl +# Show icons for config editing, whitelist and ops + +use strict; +use warnings; +require './minecraft-lib.pl'; +our (%in, %text, %config, $module_name); + +&ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1); + +my $err = &check_minecraft_server(); +if ($err) { + &ui_print_endpage(&text('index_cerr', $err, "../config.cgi?$module_name")); + } + +my @links = ( "edit_conf.cgi", "edit_users.cgi", + "view_logs.cgi", "edit_manual.gif" ); +my @titles = ( $text{'conf_title'}, $text{'users_title'}, + $text{'logs_title'}, $text{'manual_title'} ); +my @icons = ( "images/conf.gif", "images/users.gif", + "images/logs.gif", "images/manual.gif" ); +&icons_table(\@links, \@titles, \@icons); + +print &ui_hr(); +print &ui_buttons_start(); + +# Show start/stop/restart buttons +my $pid = &is_minecraft_server_running(); +if ($pid) { + print &ui_buttons_row("restart.cgi", $text{'index_restart'}, + $text{'index_restartdesc'}); + print &ui_buttons_row("stop.cgi", $text{'index_stop'}, + $text{'index_stopdesc'}); + } +else { + print &ui_buttons_row("start.cgi", $text{'index_start'}, + $text{'index_startdesc'}); + } + +# Show start at boot button +&foreign_require("init"); +my $starting = &init::action_status($config{'init_name'}); +print &ui_buttons_row("atboot.cgi", + $text{'index_atboot'}, + $text{'index_atbootdesc'}, + undef, + &ui_radio("boot", $starting == 2 ? 1 : 0, + [ [ 1, $text{'yes'} ], [ 0, $text{'no'} ] ])); + +print &ui_buttons_end(); + +&ui_print_footer("/", $text{'index_return'}); + diff --git a/minecraft/lang/en b/minecraft/lang/en new file mode 100644 index 000000000..48620f46e --- /dev/null +++ b/minecraft/lang/en @@ -0,0 +1,23 @@ +index_title=Minecraft Server +index_cerr=An error was detected with your Minecraft server : $1. You may need to adjust the module configuration. +index_stop=Stop Minecraft Server +index_stopdesc=Click this button to stop the running Minecraft server. All clients will be immediately disconnected. +index_start=Start Minecraft Server +index_startdesc=Click this button to start the Minecraft server, so that clients can connect. +index_restart=Restart Minecraft Server +index_restartdesc=Click this button to apply the current configuration by restarting the Minecraft server. +index_atboot=Start at boot? +index_atbootdesc=Change this option to control whether the Minecraft server is started at boot time or not. If it is not currently started at boot and Yes is chosen, a new init script will be created. +index_return=module index + +check_edir=The base directory $1 does not exist +check_ejar=The server JAR file $1 does not exist +check_ejava=The Java executable $1 was not found + +conf_title=Server Configuration + +users_title=Users and Operators + +logs_title=View Log File + +manual_title=Edit Configuration File diff --git a/minecraft/minecraft-lib.pl b/minecraft/minecraft-lib.pl index 5fe383e7f..24d7f6274 100644 --- a/minecraft/minecraft-lib.pl +++ b/minecraft/minecraft-lib.pl @@ -9,4 +9,25 @@ our ($module_root_directory, %text, %gconfig, $root_directory, %config, $module_name, $remote_user, $base_remote_user, $gpgpath, $module_config_directory, @lang_order_list, @root_directories); +# check_minecraft_server() +# Returns an error message if the Minecraft server is not installed +sub check_minecraft_server +{ +-d $config{'minecraft_dir'} || + return &text('check_edir', $config{'minecraft_dir'}); +my $jar = $config{'minecraft_jar'} || + $config{'minecraft_dir'}."/"."minecraft_server.jar"; +-r $jar || + return &text('check_ejar', $jar); +&has_command($config{'java_cmd'}) || + return &text('check_ejava', $config{'java_cmd'}); +return undef; +} + +# is_minecraft_server_running() +# If the minecraft server is running, return the PID +sub is_minecraft_server_running +{ +} + 1; diff --git a/minecraft/module.info b/minecraft/module.info new file mode 100644 index 000000000..e53b4b832 --- /dev/null +++ b/minecraft/module.info @@ -0,0 +1,3 @@ +desc=Minecraft Server +depends=init +category=servers