mirror of
				https://github.com/Tiiffi/mcrcon.git
				synced 2025-11-03 21:53:16 -05:00 
			
		
		
		
	Compare commits
	
		
			109 Commits
		
	
	
		
			v0.6.1
			...
			v0.7.3-dev
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 5d1c87b26f | |||
| fd77ad7fc0 | |||
| bc5617407d | |||
| 5ae06f4d37 | |||
| 233031cdcb | |||
| ebf5172cd0 | |||
| 0b72e4d17d | |||
| af70f87bc1 | |||
| 53fd703911 | |||
| c0d28bcb17 | |||
| edf8344983 | |||
| a502204e26 | |||
| 7162bc6fe6 | |||
| f270a485b5 | |||
| df66816bee | |||
| 5c7ab407d7 | |||
| c83d96cc91 | |||
| 427fd206ca | |||
| 1a4010cbba | |||
| 4488127350 | |||
| 6b563df23d | |||
| 5a2dcf41ac | |||
| 7d3f3c1d61 | |||
| fc040ce5ea | |||
| 489306d4a2 | |||
| a8e2a9349e | |||
| deed43ad61 | |||
| aa933d2c1f | |||
| accae57e4b | |||
| fa25cde79c | |||
| e96b2eff6e | |||
| b5951e9634 | |||
| 7b8ea2bf39 | |||
| 05aaff88d4 | |||
| fca278e092 | |||
| b3147ebe43 | |||
| 48c065c304 | |||
| 29a1c99f82 | |||
| bf11460a0d | |||
| 3e8acd5e42 | |||
| ada14bb4d9 | |||
| 336f528668 | |||
| 58a7a86bc3 | |||
| b02201d689 | |||
| 4cff2fe537 | |||
| 0d11c6a4e9 | |||
| 9c68d9cdd4 | |||
| 6d49968df3 | |||
| b118b7b7b9 | |||
| 253fb70a72 | |||
| f351fb134e | |||
| af5e88b528 | |||
| 83cdaae362 | |||
| 876201fe5a | |||
| 3c071c0c45 | |||
| d2ebbd8f12 | |||
| cffa73d223 | |||
| c62d5c8a70 | |||
| 8b75ddf4bf | |||
| 4f3a455095 | |||
| 5fb20c2b83 | |||
| 0c48fbb847 | |||
| fcc9d6d09b | |||
| 018592abc5 | |||
| de926b8c26 | |||
| 0f796b6bbc | |||
| f9d9a02348 | |||
| a8863e1fcc | |||
| 83457075b9 | |||
| 2f1f925ac1 | |||
| 8ff710e231 | |||
| 7737bc2a32 | |||
| 52e717a92b | |||
| 6cc26a8d8b | |||
| 5a0b9ea4e5 | |||
| a16d875626 | |||
| fed62d9e14 | |||
| 4aab776687 | |||
| 5c47b744f5 | |||
| c27f683573 | |||
| bc33bbe09e | |||
| 9eb7af2d71 | |||
| 3f1ea02756 | |||
| a9ec7dc6ac | |||
| 2732e81ca8 | |||
| 9667e8f066 | |||
| 16c2db5c78 | |||
| 8f561f803a | |||
| 7d5cb8016e | |||
| 208e040305 | |||
| cbbfdad94e | |||
| 989dfd6928 | |||
| 6bfd6801c9 | |||
| f0580220e3 | |||
| 4dc7361641 | |||
| 0525c3776e | |||
| 408ec3b1c1 | |||
| 4f791c5e54 | |||
| a4166d7390 | |||
| 888fe0dd07 | |||
| 21337ef5d7 | |||
| ac31d9bc5a | |||
| 60fa0e42d8 | |||
| 00b812249f | |||
| 872ddccbfc | |||
| 67a665a2e4 | |||
| 1cab4cf4db | |||
| 5dc3de375a | |||
| 42939a6a1c | 
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -7,3 +7,4 @@
 | 
				
			|||||||
*.project
 | 
					*.project
 | 
				
			||||||
mcrcon
 | 
					mcrcon
 | 
				
			||||||
todo
 | 
					todo
 | 
				
			||||||
 | 
					*.plist
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								.travis.yml
									
									
									
									
									
								
							@ -1,20 +0,0 @@
 | 
				
			|||||||
language: c
 | 
					 | 
				
			||||||
sudo: false
 | 
					 | 
				
			||||||
dist: trusty
 | 
					 | 
				
			||||||
cache:
 | 
					 | 
				
			||||||
  ccache: true
 | 
					 | 
				
			||||||
compiler:
 | 
					 | 
				
			||||||
- gcc
 | 
					 | 
				
			||||||
- clang
 | 
					 | 
				
			||||||
env:
 | 
					 | 
				
			||||||
  global:
 | 
					 | 
				
			||||||
  - EXTRAFLAGS='-v'
 | 
					 | 
				
			||||||
  - PREFIX="${HOME}"
 | 
					 | 
				
			||||||
install:
 | 
					 | 
				
			||||||
- 'true'
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
- make
 | 
					 | 
				
			||||||
- ./mcrcon -h
 | 
					 | 
				
			||||||
- ./mcrcon -v
 | 
					 | 
				
			||||||
- make install
 | 
					 | 
				
			||||||
- make uninstall
 | 
					 | 
				
			||||||
							
								
								
									
										29
									
								
								BUILDING.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								BUILDING.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					Building and installing
 | 
				
			||||||
 | 
					-----------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Requirements & dependencies:
 | 
				
			||||||
 | 
					- GCC compatible compiler
 | 
				
			||||||
 | 
					- POSIX getopt support from **<unistd.h>**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Compiling
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    cc -std=gnu99 -Wpedantic -Wall -Wextra -Wno-gnu-zero-variadic-macro-arguments -O2 -o mcrcon mcrcon.c
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					>[!NOTE]
 | 
				
			||||||
 | 
					>If you are compiling on Windows remember to link with winsock by adding `-lws2_32` to your compiler command line.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Or you can run **make**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make           - compiles mcrcon
 | 
				
			||||||
 | 
					    make install   - installs compiled binaries and manpage to the system
 | 
				
			||||||
 | 
					    make uninstall - removes binaries and manpage from the system
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    file install locations:
 | 
				
			||||||
 | 
					        /usr/local/bin/mcrcon
 | 
				
			||||||
 | 
					        /usr/local/share/man/man1/mcrcon.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Makefile **install** and **uninstall** rules are not available on Windows.
 | 
				
			||||||
							
								
								
									
										62
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@ -1,9 +1,39 @@
 | 
				
			|||||||
####Version history:
 | 
					#### Version history:
 | 
				
			||||||
######0.6.1
 | 
					
 | 
				
			||||||
 | 
					###### 0.7.3
 | 
				
			||||||
 | 
					 - Add support to Valve style rcon authentication
 | 
				
			||||||
 | 
					 - Change maximum packet size to correct value (4096 -> 4106)
 | 
				
			||||||
 | 
					 - Print auth failed message to stderr instead of stdout
 | 
				
			||||||
 | 
					 - Fail immediately if received packet size is out of spec
 | 
				
			||||||
 | 
					 - Return proper exit code from run_terminal_mode()
 | 
				
			||||||
 | 
					 - Add error messages to rcon_command() function
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					###### 0.7.2
 | 
				
			||||||
 | 
					 - Quit gracefully when Ctrl-D or Ctrl+C is pressed
 | 
				
			||||||
 | 
					 - Remove "exit" and "quit" as quitting commands
 | 
				
			||||||
 | 
					    * these are actual rcon commands on some servers
 | 
				
			||||||
 | 
					 - Suppress compiler warning (strncpy)
 | 
				
			||||||
 | 
					 - Fix erroneous string length in packet building function
 | 
				
			||||||
 | 
					 - Fix typo in ANSI escape sequence for LCYAN
 | 
				
			||||||
 | 
					 - Make stdout and stderr unbuffered
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###### 0.7.1
 | 
				
			||||||
 | 
					 - Deprecate `-i` flag for invoking terminal mode
 | 
				
			||||||
 | 
					 - Add workaround to prevent server-side bug.
 | 
				
			||||||
 | 
					   * https://bugs.mojang.com/browse/MC-154617
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###### 0.7.0
 | 
				
			||||||
 | 
					 - Add -w option for rcon command throttling
 | 
				
			||||||
 | 
					    * Thanks HorlogeSkynet @ Github
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###### 0.6.2
 | 
				
			||||||
 | 
					 - Set default address to localhost
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					###### 0.6.1
 | 
				
			||||||
 - Color coding fixed
 | 
					 - Color coding fixed
 | 
				
			||||||
    * Thanks to Hagb @ Github
 | 
					    * Thanks to Hagb @ Github
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######0.6.0
 | 
					###### 0.6.0
 | 
				
			||||||
 - Version numbering changed to more sane system (0.0.5 -> 0.6.0)
 | 
					 - Version numbering changed to more sane system (0.0.5 -> 0.6.0)
 | 
				
			||||||
 - Fixed munged output
 | 
					 - Fixed munged output
 | 
				
			||||||
 - Support for using environment variables to set some basic options
 | 
					 - Support for using environment variables to set some basic options
 | 
				
			||||||
@ -14,7 +44,7 @@
 | 
				
			|||||||
 - Man page added 
 | 
					 - Man page added 
 | 
				
			||||||
 - Proper makefile added
 | 
					 - Proper makefile added
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######0.0.5
 | 
					###### 0.0.5
 | 
				
			||||||
  - IPv6 support!
 | 
					  - IPv6 support!
 | 
				
			||||||
     * Thanks to 'Tanja84dk' for addressing the real need of IPv6.
 | 
					     * Thanks to 'Tanja84dk' for addressing the real need of IPv6.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -34,20 +64,20 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  - Client now tries to clean the incoming socket data if last package was out of spec.
 | 
					  - Client now tries to clean the incoming socket data if last package was out of spec.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######0.0.4
 | 
					###### 0.0.4
 | 
				
			||||||
  - Reverted back to default getopts options error handler (opterr = 1).
 | 
					  - Reverted back to default getopts options error handler (opterr = 1).
 | 
				
			||||||
    Custom error handler requires rewriting.
 | 
					    Custom error handler requires rewriting.
 | 
				
			||||||
  - Some cosmetic changes in program output strings.
 | 
					  - Some cosmetic changes in program output strings.
 | 
				
			||||||
  - Program usage(); function now waits for enter before exiting on Windows.
 | 
					  - Program usage(); function now waits for enter before exiting on Windows.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######0.0.3
 | 
					###### 0.0.3
 | 
				
			||||||
  - Colors are now supported on Windows too!
 | 
					  - Colors are now supported on Windows too!
 | 
				
			||||||
  - Terminal mode is now triggered with "-t" flag. "-i" flag still works for
 | 
					  - Terminal mode is now triggered with "-t" flag. "-i" flag still works for
 | 
				
			||||||
    backwards compatibility.
 | 
					    backwards compatibility.
 | 
				
			||||||
  - Bug fixes (Packet size check always evaluating false and color validity
 | 
					  - Bug fixes (Packet size check always evaluating false and color validity
 | 
				
			||||||
    check always evaluating true).
 | 
					    check always evaluating true).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######0.0.2
 | 
					###### 0.0.2
 | 
				
			||||||
  - License changed from 'ISC License' to 'zlib/libpng License'.
 | 
					  - License changed from 'ISC License' to 'zlib/libpng License'.
 | 
				
			||||||
  - Bug fixes & code cleanups
 | 
					  - Bug fixes & code cleanups
 | 
				
			||||||
  - Interactive mode (-i flag). Client acts as interactive terminal.
 | 
					  - Interactive mode (-i flag). Client acts as interactive terminal.
 | 
				
			||||||
@ -55,25 +85,9 @@
 | 
				
			|||||||
    If connecting or authentication fails, the return value is -1.
 | 
					    If connecting or authentication fails, the return value is -1.
 | 
				
			||||||
  - Colors are now enabled by default. Now '-c' flag disables the color support.
 | 
					  - Colors are now enabled by default. Now '-c' flag disables the color support.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######0.0.1
 | 
					###### 0.0.1
 | 
				
			||||||
  - Added experimental support for bukkit colors.
 | 
					  - Added experimental support for bukkit colors.
 | 
				
			||||||
    Should work with any sh compatible shell.
 | 
					    Should work with any sh compatible shell.
 | 
				
			||||||
  - Packet string data limited to max 2048 (DATA_BUFFSIZE) bytes.
 | 
					  - Packet string data limited to max 2048 (DATA_BUFFSIZE) bytes.
 | 
				
			||||||
    No idea how Minecraft handles multiple rcon packets.
 | 
					    No idea how Minecraft handles multiple rcon packets.
 | 
				
			||||||
    If someone knows, please mail me so I can implement it.
 | 
					    If someone knows, please mail me so I can implement it.
 | 
				
			||||||
 | 
					 | 
				
			||||||
####TODO:
 | 
					 | 
				
			||||||
  - Make the receive buffer dynamic??
 | 
					 | 
				
			||||||
  - Change some of the packet size issues to fatal errors.
 | 
					 | 
				
			||||||
  - Code cleanups.
 | 
					 | 
				
			||||||
  - Check global variables (remove if possible).
 | 
					 | 
				
			||||||
  - Add some protocol checks (proper packet id check etc..).
 | 
					 | 
				
			||||||
  - Preprocessor (#ifdef / #ifndef) cleanups.
 | 
					 | 
				
			||||||
  - Follow valve rcon protocol standard strictly?
 | 
					 | 
				
			||||||
  - Multiple packet support if minecraft supports it?!
 | 
					 | 
				
			||||||
  - Investigate if player chat messages gets sent through rcon.
 | 
					 | 
				
			||||||
    If they are, the messaging system requires rewriting.
 | 
					 | 
				
			||||||
  - Name resolving should be integrated to connection creation function.
 | 
					 | 
				
			||||||
  - Dont try to cleanup the socket if not authenticated
 | 
					 | 
				
			||||||
  - Better sockets error reporting
 | 
					 | 
				
			||||||
  - Better error function (VA_ARGS support)
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										22
									
								
								INSTALL.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								INSTALL.md
									
									
									
									
									
								
							@ -1,22 +0,0 @@
 | 
				
			|||||||
Compiling and installing
 | 
					 | 
				
			||||||
------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Only dependency is C library with POSIX getopt support. 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Compiling with GCC or CLANG:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    cc -std=gnu99 -Wpedantic -Wall -Wextra -Os -s -o mcrcon mcrcon.c
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
Note: on Window remember to link with winsockets by adding "-lws2_32" to your compiler command line.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Or you can just run "make":
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    make           - compiles mcrcon
 | 
					 | 
				
			||||||
    make install   - installs compiled binaries and manpage to the system
 | 
					 | 
				
			||||||
    make uninstall - removes binaries and manpage from the system
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    file install locations:
 | 
					 | 
				
			||||||
        /usr/local/bin/mcrcon
 | 
					 | 
				
			||||||
        /usr/local/share/man/man1/mcrcon.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Makefile "install" and "uninstall" rules are disabled on windows.
 | 
					 | 
				
			||||||
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							@ -1,4 +1,4 @@
 | 
				
			|||||||
Copyright (c) 2012-2016, Tiiffi <tiiffi_at_gmail_dot_com>
 | 
					Copyright (c) 2012-2024, Tiiffi <tiiffi at gmail>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This software is provided 'as-is', without any express or implied
 | 
					This software is provided 'as-is', without any express or implied
 | 
				
			||||||
warranty. In no event will the authors be held liable for any damages
 | 
					warranty. In no event will the authors be held liable for any damages
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										35
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								Makefile
									
									
									
									
									
								
							@ -1,31 +1,28 @@
 | 
				
			|||||||
# if you want to cross compile
 | 
					# if you want to cross compile:
 | 
				
			||||||
# export PATH=$PATH:/path/to/compiler/bin
 | 
					#   export PATH=$PATH:/path/to/compiler/bin
 | 
				
			||||||
# export CROSS_COMPILE=arm-none-linux-gnueabi-
 | 
					#   export CROSS_COMPILE=arm-none-linux-gnueabi-
 | 
				
			||||||
# make
 | 
					#   make
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Windows cross compile:
 | 
				
			||||||
 | 
					#   x86_64-w64-mingw32-gcc -std=gnu99 -Wall -Wextra -Wpedantic -O2 -fstack-protector-all -o mcrcon.exe mcrcon.c -lws2_32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXENAME = mcrcon
 | 
					EXENAME = mcrcon
 | 
				
			||||||
PREFIX ?= /usr/local
 | 
					PREFIX ?= /usr/local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EXTRAFLAGS ?= -fstack-protector-strong
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
INSTALL = install
 | 
					INSTALL = install
 | 
				
			||||||
LINKER =
 | 
					LINKER =
 | 
				
			||||||
RM = rm -f
 | 
					RM = rm -v -f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CC ?= gcc
 | 
				
			||||||
 | 
					CFLAGS = -std=gnu99 -Wall -Wextra -Wpedantic -Wno-gnu-zero-variadic-macro-arguments -O2
 | 
				
			||||||
 | 
					EXTRAFLAGS ?= -fstack-protector-all
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(OS), Windows_NT)
 | 
					ifeq ($(OS), Windows_NT)
 | 
				
			||||||
    CC = gcc
 | 
					 | 
				
			||||||
	LINKER = -lws2_32
 | 
						LINKER = -lws2_32
 | 
				
			||||||
	EXENAME = mcrcon.exe
 | 
						EXENAME = mcrcon.exe
 | 
				
			||||||
	RM = cmd /C del /F
 | 
						RM = cmd /C del /F
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifeq ($(shell uname), Darwin)
 | 
					 | 
				
			||||||
	INSTALL = ginstall
 | 
					 | 
				
			||||||
	CFLAGS ?= -std=gnu99 -Wall -Wextra -Wpedantic -Os
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
	CFLAGS ?= -std=gnu99 -Wall -Wextra -Wpedantic -Os -s
 | 
					 | 
				
			||||||
endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.PHONY: all
 | 
					.PHONY: all
 | 
				
			||||||
all: $(EXENAME)
 | 
					all: $(EXENAME)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -35,16 +32,16 @@ $(EXENAME): mcrcon.c
 | 
				
			|||||||
ifneq ($(OS), Windows_NT)
 | 
					ifneq ($(OS), Windows_NT)
 | 
				
			||||||
.PHONY: install
 | 
					.PHONY: install
 | 
				
			||||||
install:
 | 
					install:
 | 
				
			||||||
	$(INSTALL) -vD $(EXENAME) $(PREFIX)/bin/$(EXENAME)
 | 
						$(INSTALL) -v $(EXENAME) $(DESTDIR)$(PREFIX)/bin/$(EXENAME)
 | 
				
			||||||
	$(INSTALL) -vD -m 0644 mcrcon.1 $(PREFIX)/share/man/man1/mcrcon.1
 | 
						$(INSTALL) -v -m 0644 mcrcon.1 $(DESTDIR)$(PREFIX)/share/man/man1/mcrcon.1
 | 
				
			||||||
	@echo "\nmcrcon installed. Run 'make uninstall' if you want to uninstall.\n"
 | 
						@echo "\nmcrcon installed. Run 'make uninstall' if you want to uninstall.\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: uninstall
 | 
					.PHONY: uninstall
 | 
				
			||||||
uninstall:
 | 
					uninstall:
 | 
				
			||||||
	rm -f $(PREFIX)/bin/$(EXENAME) $(PREFIX)/share/man/man1/mcrcon.1
 | 
						$(RM) $(DESTDIR)$(PREFIX)/bin/$(EXENAME) $(DESTDIR)$(PREFIX)/share/man/man1/mcrcon.1
 | 
				
			||||||
	@echo "\nmcrcon uninstalled.\n"
 | 
						@echo "\nmcrcon uninstalled.\n"
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: clean
 | 
					.PHONY: clean
 | 
				
			||||||
clean:
 | 
					clean:
 | 
				
			||||||
	$(RM) $(EXENAME)
 | 
						$(RM) $(EXENAME) $(EXENAME).exe
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										110
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										110
									
								
								README.md
									
									
									
									
									
								
							@ -1,70 +1,108 @@
 | 
				
			|||||||
### Installing:
 | 
					# mcrcon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from sources:
 | 
					mcrcon is a command-line [rcon](https://developer.valvesoftware.com/wiki/Source_RCON_Protocol) client intended for remote server administration and maintenance automation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Though originally developed for Minecraft servers, it also works with a variety of other servers using the Valve or Minecraft-style rcon protocol.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Installing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Binary releases
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Pre-built binaries are provided for Linux and Windows: https://github.com/Tiiffi/mcrcon/releases/latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Via package manager
 | 
				
			||||||
 | 
					See https://pkgs.org/download/mcrcon and https://repology.org/project/mcrcon/packages for available packages in various Linux distros (note that some packages might be outdated).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fedora: https://packages.fedoraproject.org/pkgs/mcrcon/mcrcon/
 | 
				
			||||||
 | 
					- Gentoo: https://packages.gentoo.org/packages/games-util/mcrcon
 | 
				
			||||||
 | 
					- Arch: https://aur.archlinux.org/packages/mcrcon/
 | 
				
			||||||
 | 
					- NixOS: https://search.nixos.org/packages?show=mcrcon
 | 
				
			||||||
 | 
					- Snapcraft: https://snapcraft.io/mcrcon-nsg
 | 
				
			||||||
 | 
					- Scoop: https://scoop.sh/#/apps?q=mcrcon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##### Building from sources
 | 
				
			||||||
```sh
 | 
					```sh
 | 
				
			||||||
git clone https://github.com/Tiiffi/mcrcon.git
 | 
					git clone https://github.com/Tiiffi/mcrcon.git
 | 
				
			||||||
cd mcrcon
 | 
					cd mcrcon
 | 
				
			||||||
make
 | 
					make
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# install is optional
 | 
				
			||||||
sudo make install
 | 
					sudo make install
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Check **INSTALL** for more details.
 | 
					_Check [BUILDING.md](BUILDING.md) for more details._
 | 
				
			||||||
 | 
					 | 
				
			||||||
You can also download precompiled binaries*: https://github.com/Tiiffi/mcrcon/releases/latest
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<sub>*At the moment binaries are provided for Linux and Windows.</sub>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Usage:
 | 
					### Usage
 | 
				
			||||||
mcrcon [OPTIONS] [COMMANDS]
 | 
					mcrcon [OPTIONS] [COMMANDS]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Sends rcon commands to Minecraft server.
 | 
					Sends rcon commands to Minecraft server.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Option:
 | 
					Option:
 | 
				
			||||||
  -h            Print usage
 | 
					  -H            Server address (default: localhost)
 | 
				
			||||||
  -H            Server address
 | 
					  -P            Port (default: 25575)
 | 
				
			||||||
  -P            Port (default is 25575)
 | 
					 | 
				
			||||||
  -p            Rcon password
 | 
					  -p            Rcon password
 | 
				
			||||||
  -t            Interactive terminal mode
 | 
					  -t            Terminal mode
 | 
				
			||||||
  -s            Silent mode (do not print received packets)
 | 
					  -s            Silent mode
 | 
				
			||||||
  -c            Disable colors
 | 
					  -c            Disable colors
 | 
				
			||||||
  -r            Output raw packets (debugging and custom handling)
 | 
					  -r            Output raw packets
 | 
				
			||||||
  -v            Output version information
 | 
					  -w            Wait for specified duration (seconds) between each command (1 - 600s)
 | 
				
			||||||
 | 
					  -h            Print usage
 | 
				
			||||||
 | 
					  -v            Version information
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Commands with arguments must be enclosed in quotes.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Server address, port and password can be set using following environment variables:
 | 
					Server address, port and password can be set using following environment variables:
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
MCRCON_HOST
 | 
					MCRCON_HOST
 | 
				
			||||||
MCRCON_PORT
 | 
					MCRCON_PORT
 | 
				
			||||||
MCRCON_PASS
 | 
					MCRCON_PASS
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
Note that command-line options will override environment variables.
 | 
					###### Notes:
 | 
				
			||||||
 | 
					- mcrcon will start in terminal mode if no commands are given
 | 
				
			||||||
 | 
					- Command-line options will override environment variables
 | 
				
			||||||
 | 
					- Rcon commands with spaces must be enclosed in quotes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Example:
 | 
					###### Example:
 | 
				
			||||||
  ```mcrcon -H my.minecraft.server -p password "say Server is restarting!" save-all stop```
 | 
					Send three commands ("say", "save-all", "stop") and wait five seconds between the commands:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```sh
 | 
				
			||||||
 | 
					mcrcon -H my.minecraft.server -p password -w 5 "say Server is restarting!" save-all stop
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> [!TIP]
 | 
				
			||||||
 | 
					>Enable RCON on Minecraft server by adding following lines to [```server.properties```](https://minecraft.gamepedia.com/Server.properties) configuration file.
 | 
				
			||||||
 | 
					>```
 | 
				
			||||||
 | 
					>enable-rcon=true
 | 
				
			||||||
 | 
					>rcon.port=25575
 | 
				
			||||||
 | 
					>rcon.password=your_rcon_pasword
 | 
				
			||||||
 | 
					>```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Enable rcon on server
 | 
					### Contact
 | 
				
			||||||
Remember to enable rcon by adding following lines to ```server.properties``` file.
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
enable-rcon=true
 | 
					 | 
				
			||||||
rcon.port=25575
 | 
					 | 
				
			||||||
rcon.password=your_rcon_pasword
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### Contact:
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* WWW:            https://github.com/Tiiffi/mcrcon/
 | 
					* WWW:            https://github.com/Tiiffi/mcrcon/
 | 
				
			||||||
* MAIL:           tiiffi_at_gmail_dot_com
 | 
					* MAIL:           tiiffi+mcrcon at gmail
 | 
				
			||||||
* IRC:            tiiffi @ quakenet
 | 
					* ISSUES:         https://github.com/Tiiffi/mcrcon/issues/
 | 
				
			||||||
* BUG REPORTS:    https://github.com/Tiiffi/mcrcon/issues/
 | 
					
 | 
				
			||||||
 | 
					> [!TIP]
 | 
				
			||||||
 | 
					>When reporting issues, please provide the following information:
 | 
				
			||||||
 | 
					>
 | 
				
			||||||
 | 
					>- Version of mcrcon: Please specify the precise version number
 | 
				
			||||||
 | 
					>- Game: Indicate the specific game server you're using (e.g., Minecraft, Valve Source Engine game, ARK, ...)
 | 
				
			||||||
 | 
					>- Server version: Provide the exact version of the game server
 | 
				
			||||||
 | 
					>- Mods and Extensions: List all mods and extensions used, including their versions
 | 
				
			||||||
 | 
					>- Issue Description: Clearly describe the problem you're encountering and the expected behavior.
 | 
				
			||||||
 | 
					>- Steps to reproduce
 | 
				
			||||||
 | 
					>
 | 
				
			||||||
 | 
					>If you're tech-savvy, consider providing a packet capture file (PCAP). Remember to use a fake password.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<sub>Master:</sub> 
 | 
					### License
 | 
				
			||||||
<sub>Develop:</sub> 
 | 
					
 | 
				
			||||||
 | 
					This project is licensed under the zlib License - see the [LICENSE](LICENSE) file for details.
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										31
									
								
								create_shortcut.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								create_shortcut.bat
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					@echo off
 | 
				
			||||||
 | 
					@cls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set /p host="Enter host (default: "127.0.0.1"): "
 | 
				
			||||||
 | 
					@if "%host%"=="" set host=127.0.0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set /p port="Enter port (default: 25575): "
 | 
				
			||||||
 | 
					@if "%port%"=="" set port=25575
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set /p passwd="Enter password: "
 | 
				
			||||||
 | 
					@if "%passwd%"=="" set passwd=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set name=connect_%host%-%port%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set /p name="Enter shortcut name (default: "%name%.bat"): "
 | 
				
			||||||
 | 
					@if "%name%"=="" set name=connect_%host%-%port%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set command=@mcrcon.exe -t -H %host% -P %port% -p %passwd%
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@echo %command% >> %name%.bat
 | 
				
			||||||
 | 
					@echo.
 | 
				
			||||||
 | 
					@echo Command: "%command%"
 | 
				
			||||||
 | 
					@echo.
 | 
				
			||||||
 | 
					@echo Shortcut "%name%.bat" created!
 | 
				
			||||||
 | 
					@echo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set "host="
 | 
				
			||||||
 | 
					@set "port="
 | 
				
			||||||
 | 
					@set "passwd="
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@pause
 | 
				
			||||||
							
								
								
									
										29
									
								
								launch.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								launch.bat
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					@echo off
 | 
				
			||||||
 | 
					@cls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@if not exist mcrcon.exe (
 | 
				
			||||||
 | 
					  @echo ERROR: Cannot find "mcrcon.exe". Bailing out!
 | 
				
			||||||
 | 
					  @echo.
 | 
				
			||||||
 | 
					  @pause
 | 
				
			||||||
 | 
					  @exit
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set /p host="Enter host (default: 127.0.0.1): "
 | 
				
			||||||
 | 
					@if "%host%"=="" set host=127.0.0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set /p port="Enter port (default: 25575): "
 | 
				
			||||||
 | 
					@if "%port%"=="" set port=25575
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set /p passwd="Enter password: "
 | 
				
			||||||
 | 
					@if "%passwd%"=="" set passwd=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@echo.
 | 
				
			||||||
 | 
					mcrcon.exe -t -H %host% -P %port% -p %passwd%
 | 
				
			||||||
 | 
					@echo.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@set "host="
 | 
				
			||||||
 | 
					@set "port="
 | 
				
			||||||
 | 
					@set "passwd="
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@pause
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										37
									
								
								mcrcon.1
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								mcrcon.1
									
									
									
									
									
								
							@ -1,9 +1,9 @@
 | 
				
			|||||||
.\" Process this file with
 | 
					.\" Process this file with
 | 
				
			||||||
.\" groff -man -Tascii mcrcon.1
 | 
					.\" groff -man -Tascii mcrcon.1
 | 
				
			||||||
.\"
 | 
					.\"
 | 
				
			||||||
.TH MCRCON 1 "December 2016" "Version 0.6.1"
 | 
					.TH MCRCON 1 "November 2024" "Version 0.7.3"
 | 
				
			||||||
.SH NAME 
 | 
					.SH NAME 
 | 
				
			||||||
mcrcon \- sends rcon commands to a Minecraft server
 | 
					mcrcon \- send rcon commands to a Minecraft server
 | 
				
			||||||
.SH SYNOPSIS
 | 
					.SH SYNOPSIS
 | 
				
			||||||
.B mcrcon [
 | 
					.B mcrcon [
 | 
				
			||||||
options
 | 
					options
 | 
				
			||||||
@ -11,31 +11,34 @@ options
 | 
				
			|||||||
commands
 | 
					commands
 | 
				
			||||||
.B ]
 | 
					.B ]
 | 
				
			||||||
.SH DESCRIPTION
 | 
					.SH DESCRIPTION
 | 
				
			||||||
mcrcon is Minecraft rcon client / terminal with bukkit coloring support.
 | 
					mcrcon is a command-line rcon client intended for remote server administration and maintenance automation.
 | 
				
			||||||
It is well suited for remote administration and server maintenance scripts.
 | 
					 | 
				
			||||||
.SH OPTIONS
 | 
					.SH OPTIONS
 | 
				
			||||||
.IP -h
 | 
					 | 
				
			||||||
Print usage
 | 
					 | 
				
			||||||
.IP -H
 | 
					.IP -H
 | 
				
			||||||
Server address
 | 
					Server address (default: localhost)
 | 
				
			||||||
.IP -P
 | 
					.IP -P
 | 
				
			||||||
Port (default is 25575)
 | 
					Port (default: 25575)
 | 
				
			||||||
.IP -p
 | 
					.IP -p
 | 
				
			||||||
Rcon password
 | 
					Rcon password
 | 
				
			||||||
.IP -t
 | 
					.IP -t
 | 
				
			||||||
Interactive terminal mode
 | 
					Terminal mode
 | 
				
			||||||
.IP -s
 | 
					.IP -s
 | 
				
			||||||
Silent mode (do not print received packets)
 | 
					Silent mode
 | 
				
			||||||
.IP -c
 | 
					.IP -c
 | 
				
			||||||
Disable colors
 | 
					Disable colors
 | 
				
			||||||
.IP -r
 | 
					.IP -r
 | 
				
			||||||
Output raw packets (for debugging and custom handling)
 | 
					Output raw packets
 | 
				
			||||||
 | 
					.IP -w
 | 
				
			||||||
 | 
					Wait for specified duration (seconds) between each command (1 - 600s)
 | 
				
			||||||
 | 
					.IP -h
 | 
				
			||||||
 | 
					Print usage
 | 
				
			||||||
.IP -v
 | 
					.IP -v
 | 
				
			||||||
Output version information
 | 
					Output version information
 | 
				
			||||||
.PP
 | 
					.PP
 | 
				
			||||||
Commands with arguments must be enclosed in quotes.
 | 
					Commands with spaces must be enclosed in quotes.
 | 
				
			||||||
.SH ENVIRONMENTAL VARIABLES
 | 
					.br
 | 
				
			||||||
Server address, port and password can be set using following environment variables:
 | 
					mcrcon will start in terminal mode if no commands are given.
 | 
				
			||||||
 | 
					.SH ENVIRONMENT VARIABLES
 | 
				
			||||||
 | 
					Server address, port and password can be set with following environment variables:
 | 
				
			||||||
.PP
 | 
					.PP
 | 
				
			||||||
\fBMCRCON_HOST
 | 
					\fBMCRCON_HOST
 | 
				
			||||||
.br
 | 
					.br
 | 
				
			||||||
@ -55,9 +58,9 @@ Send "weather clear" command to server using custom port 1337
 | 
				
			|||||||
\fBmcrcon\fR -H my.minecraft.server -P 1337 -p password "weather clear"
 | 
					\fBmcrcon\fR -H my.minecraft.server -P 1337 -p password "weather clear"
 | 
				
			||||||
.RE
 | 
					.RE
 | 
				
			||||||
.PP
 | 
					.PP
 | 
				
			||||||
Send three commands to server (say, save-all and stop)
 | 
					Send three commands ("say", "save-all", "stop") and wait five seconds between the commands.
 | 
				
			||||||
.RS
 | 
					.RS
 | 
				
			||||||
\fBmcrcon\fR -H my.minecraft.server -p password "say Server is restarting!" save-all stop
 | 
					\fBmcrcon\fR -H my.minecraft.server -p password -w 5 "say Server is restarting!" save-all stop
 | 
				
			||||||
.RE
 | 
					.RE
 | 
				
			||||||
.SH BUGS
 | 
					.SH BUGS
 | 
				
			||||||
Bugs can be reported to \fBtiiffi_at_gmail_dot_com\fR or \fBhttps://github.com/Tiiffi/mcrcon/issues/\fR
 | 
					Report bugs to \fBtiiffi+mcrcon at gmail\fR or \fBhttps://github.com/Tiiffi/mcrcon/issues/\fR
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user