Command-line Quake3 Server Commander

Miscellaneous programs and scripts, opensource or not, and sometimes, random mathematical stuff.
Post Reply
User avatar
Gamall
Hic sunt dracones
Posts: 4137
Joined: Fri May 26, 2006 11:09 pm
Contact:

Command-line Quake3 Server Commander

Post by Gamall » Sun Sep 30, 2007 6:41 pm

-> On filefront: http://jediknight3.filefront.com/file/C ... nder;83459

-> New version: here
qcmd-release.zip
(149.33 KiB) Downloaded 379 times

Code: Select all

*****************************************************************
**             JEDI KNIGHT: Jedi Academy & Outcast             **
*****************************************************************
 
  #-----------------------------------------------------------#  
  #       TITLE : Command-line Quake3 Server Commander        #  
  #                   TYPE : Server Utility                   #  
  #                       VERSION : 0.1                       #  
  #               AUTHOR : Gamall Wednesday Ida               #  
  #               E-MAIL : gamall.ida@gmail.com               #  
  #              WEBSITE : http://gamall-ida.com              #  
  #                                                           #  
  #                    FILESIZE : ~150 Ko                     #  
  #                   OS : Windows & Linux                    #  
  #               RELEASE DATE : September 2007               #  
  #-----------------------------------------------------------#  
 
 
 
+   WHAT IS THAT ?                                               
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 
 There  is  (as far as I know) no easy way to send an order to a 
 server from a simple bash script under Windows  or  Linux,  for 
 instance  a  cronjob  changing  maps  or  adding  passwords  at 
 specific times. In order to do something as trivial as that  in 
 a  script,  one needs PERL socket programming or some ugly unix 
 pipes hack. I have  no  idea  if  this  is  even  doable  under 
 Windows.                                                        
 
 This  program  is  a very simple tool, written in C++, allowing 
 anybody to send any command to  any  server  using  the  Quake3 
 protocol, which is the case of Jedi Knight servers, without any 
 unnecessary hassle.                                             
 
 
+   HOW DO I USE IT ?                                            
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 
 Running  the executable without any argument displays some help 
 text:                                                           
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
       ** Quake3 Commander v. 0.1
       ** by Gamall Wednesday Ida
       ** email : gamall.ida@gmail.com
       ** web   : gamall-ida.com
       
       
       Usage: ./qcmd -ip 127.0.0.1 -p 21000 -c rcon MyPass map mp/ffa3
       
       Other options :
       -format : clean display for query 'getinfo' or 'getstatus'
       -timeout: seconds before timeout                [def=2]
       -retries: if timeout, how many times do I try ? [def=2]
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 
 Note that depending on  your  system  and  where  you  put  the 
 executable,  you  might  not  need  the "./" before the command 
 name. And never under Windows. This is  not  specific  to  this 
 program anyway :P                                               
                                                                 
 Let  us  see  some  example  of  commands and the corresponding 
 output of the program. Here the RCon password of my  server  is 
 set  to  "MyPass".  Note that the script need not be run on the 
 same system than the server. If it is, however, you can use the 
 IP "127.0.0.1" or "localhost".                                  
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
       ./qcmd -ip 213.251.186.99 -p 29070 
                                 -c rcon MyPass say Hello there !
       
       Time      'Sun Sep 30 18:06:19 2007'
       To server '213.251.186.99:29070'
       Command   'rcon MyPass say Hello there !'
       Answer    [    print
       broadcast: print "server: Hello there !\n"
       ]
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 
 You can  also  use  non-RCon  commands  such  as  getstatus  or 
 getinfo:                                                        
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
       ./qcmd -ip 213.251.186.99 -p 29070 -c getinfo
       
       Time      'Sun Sep 30 18:13:34 2007'
       To server '213.251.186.99:29070'
       Command   'getinfo'
       Answer    [    infoResponse
       \game\japlus\fdisable\163837\wdisable\524279\truejedi\0
       \needpass\1\gametype\0\sv_maxclients\24\clients\0\mapname
       \the_academy_v3\hostname\^1Dragon's Lair\protocol\26]
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 
 As  you  can  see,  the server's answer is, in that case, quite 
 illegible. Use the  -format  option  to  get  a  more  readable 
 answer:                                                         
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
       ./qcmd -ip 213.251.186.99 -p 29070 -c getinfo -format
       
       Time      'Sun Sep 30 18:17:25 2007'
       To server '213.251.186.99:29070'
       Command   'getinfo'
       Answer    [    infoResponse
       
              -> game : japlus
              -> fdisable : 163837
              -> wdisable : 524279
              -> truejedi : 0
              -> needpass : 1
              -> gametype : 0
              -> sv_maxclients : 24
              -> clients : 0
              -> mapname : the_academy_v3
              -> hostname : ^1Dragon's Lair
              -> protocol : 26]
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 
 Of course, since you will use this program inside a script, you 
 won't  be there to read anything... but you can easily redirect 
 the output to a log file: the command                           
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
       ./qcmd -ip 213.251.186.99 -p 29070 -c getinfo -format >> mylog.txt
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 
 Will append the output to the file "mylog.txt", and create  the 
 file if it didn't already exist, so you can easily keep logs of 
 every  command that is sent by your script/cronjob/etc. And for 
 once, it works the same way under both Windows  and  Linux  :-) 
 
 There  is  no need to speak about -timeout and -retries, as the 
 default values should be perfect in most cases.                 
 
 If the server doesn't answer, be it because you  are  targeting 
 the  wrong  IP:Port  or  sending  an incorrect command, you can 
 expect a timeout error message:                                 
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
       qcmd -ip 213.251.186.99 -p 29071 -c getstatus -format
       
       Time      'Sun Sep 30 18:39:22 2007'
       To server '213.251.186.99:29071'
       Command   'getstatus'
       Answer    [
       ERROR: Socket timeout, no reply received.
       ]
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 
 
+   CONTACT                                                      
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 
 If you need  help,  or  have  suggestions,  comments,  insults, 
 praise  or  in  general, anything to say about this program you 
 expect me to read and answer to, please post on  the  program's 
 topic on my website:                                            
 
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
       http://gamall-ida.com/f/viewtopic.php?f=3&t=342
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~      
 
 
+   END OF FILE                                                  
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-o          +
 




























  +-----------------------------+
  | File generated with 'GaTeX',|
  | an ASCII typesetting system |
  | by  Gamall  Wednesday  Ida. |
  |   http://gamall-ida.com     |
  +-----------------------------+
  Build: Sun Sep 30 19:02:14 2007
  File : readme.gat.txt
{<§ Gamall Wednesday Ida §>}
{ Mods and Programs - Mods TES-IV Oblivion }

User avatar
Gamall
Hic sunt dracones
Posts: 4137
Joined: Fri May 26, 2006 11:09 pm
Contact:

Re: Command-line Quake3 Server Commander

Post by Gamall » Mon Oct 29, 2007 4:05 pm

LINUX:

In case of library dependencies problems with the two linux executables, here are two statically linked versions of the executable. One of these is bound to work on your system.
StaticQCMD.zip
(1.1 MiB) Downloaded 371 times
If they both fail, please copy and paste
  • The error message when you try to run each executable (the four of them: two static and two dynamic)
  • The output of the 'cat /proc/version' command.
Oh, if all else fails, 'wine qcmd.exe' should work like a charm. Ok that's perverted :foufou
{<§ Gamall Wednesday Ida §>}
{ Mods and Programs - Mods TES-IV Oblivion }

Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests