mirror of
https://github.com/Tiiffi/mcrcon.git
synced 2025-10-27 11:21:07 -04:00
Compare commits
170 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | |||
| 8fdda295e2 | |||
| 0b1853dccc | |||
| d338537e23 | |||
| 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 | |||
| f4fb9e27ab | |||
| a2b2117af5 | |||
| 1c5d807121 | |||
| 42f06c89a8 | |||
| 60f8dc946c | |||
| 10789a7c44 | |||
| 6523e58d4a | |||
| 02ae39747e | |||
| 9ccea062c6 | |||
| 64c8c6ba16 | |||
| f02e32793d | |||
| b4a64d21cd | |||
| afbed173aa | |||
| 56389a8bec | |||
| 0198ca77a7 | |||
| 598297b9c6 | |||
| 1d559bd8ef | |||
| 3fdf9d570d | |||
| f54b2efd21 | |||
| a043b6fa54 | |||
| c5d1e95ef8 | |||
| d0e293f249 | |||
| 46e7ed1781 | |||
| 2f8c462c0f | |||
| b8776a0984 | |||
| a416251bfb | |||
| 6ef31675d8 | |||
| b878ff1255 | |||
| 8441c578be | |||
| 29f1f9c400 | |||
| 951f39cdbd | |||
| 57d0cdbf95 | |||
| 71d10a0af0 | |||
| 93e3e54357 | |||
| 16819a6992 | |||
| 1c5654de2d | |||
| 796fb23195 | |||
| e763c4df73 | |||
| 6f0af9964c | |||
| d2b434daf9 | |||
| f879937329 | |||
| c9a740a3ce | |||
| 4d12f96e21 | |||
| 46af96a3a4 | |||
| a0e638edc9 | |||
| f9595188d5 | |||
| c1bfcbb611 | |||
| d92a60bed4 | |||
| 449eac6358 | |||
| 88c91d4096 | |||
| 786767e9f1 | |||
| edc750ccef | |||
| 3e60b0d28f | |||
| a0d3d7f52e | |||
| 4b663958aa | |||
| cbbdbcca93 | |||
| c9e3f86a89 | |||
| c5731c1109 | |||
| 9c6c8e3069 | |||
| 7605586324 | |||
| e8f685ff0a | |||
| 0a803aab55 | |||
| 7e10b01691 | |||
| 660a2a1e27 | |||
| 915f9a7972 | |||
| 1c367aa725 | |||
| 4f1ec0c0f9 | |||
| e4e0d95e5e | |||
| 26159e7cc3 | |||
| 873e7672fb | |||
| e924373898 | |||
| c503dedd37 | |||
| e2b3bb16e3 | |||
| 5f05286170 | |||
| 3ab3e51889 | |||
| 0a117b008c | |||
| d1266e97b3 | |||
| 1d8175faba | |||
| 79f0d7ad09 | |||
| 670e599554 | |||
| 957ff80842 | |||
| f5c0ab9fde | |||
| 062156a006 | |||
| 044cd6640e | |||
| 5b6c192686 | |||
| 91ac3e3fac | |||
| 64dc3ac2d0 | |||
| 9809d13d63 | |||
| b1a42cb993 |
6
.gitignore
vendored
6
.gitignore
vendored
@ -2,5 +2,9 @@
|
|||||||
*.o
|
*.o
|
||||||
*.dev
|
*.dev
|
||||||
*.win
|
*.win
|
||||||
|
*.txt
|
||||||
*.layout
|
*.layout
|
||||||
*.project
|
*.project
|
||||||
|
mcrcon
|
||||||
|
todo
|
||||||
|
*.plist
|
||||||
|
|||||||
20
.travis.yml
Normal file
20
.travis.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
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
|
||||||
85
CHANGELOG.md
Normal file
85
CHANGELOG.md
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
#### Version history:
|
||||||
|
|
||||||
|
###### 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
|
||||||
|
* Thanks to Hagb @ Github
|
||||||
|
|
||||||
|
###### 0.6.0
|
||||||
|
- Version numbering changed to more sane system (0.0.5 -> 0.6.0)
|
||||||
|
- Fixed munged output
|
||||||
|
- Support for using environment variables to set some basic options
|
||||||
|
- Cleaned networking code
|
||||||
|
- Various code cleanups
|
||||||
|
- Changes and updates in usage text and error reporting
|
||||||
|
- Version option flag (-v) added
|
||||||
|
- Man page added
|
||||||
|
- Proper makefile added
|
||||||
|
|
||||||
|
###### 0.0.5
|
||||||
|
- IPv6 support!
|
||||||
|
* Thanks to 'Tanja84dk' for addressing the real need of IPv6.
|
||||||
|
|
||||||
|
- Fixed bug causing crash / segmentation fault (invalid write) when receiving malformed rcon packet.
|
||||||
|
|
||||||
|
- Program makes use of C99 feature (variable-length arrays) so "-std=gnu99" flag on
|
||||||
|
GCC-compiler must be used to avoid unecessary warnings.
|
||||||
|
|
||||||
|
- Rcon receive buffer is now bigger (2024 bytes -> 10240 bytes).
|
||||||
|
* Thanks to 'gman_ftw' @ Bukkit forums.
|
||||||
|
|
||||||
|
- Fixed invalid error message when receiving empty rcon packet (10 bytes).
|
||||||
|
* Thanks to 'pkmnfrk' @ bukkit forums.
|
||||||
|
|
||||||
|
- Terminal mode now closes automatically when rcon socket is closed by server
|
||||||
|
or if packet size cannot be retrieved correctly.
|
||||||
|
|
||||||
|
- Client now tries to clean the incoming socket data if last package was out of spec.
|
||||||
|
|
||||||
|
###### 0.0.4
|
||||||
|
- Reverted back to default getopts options error handler (opterr = 1).
|
||||||
|
Custom error handler requires rewriting.
|
||||||
|
- Some cosmetic changes in program output strings.
|
||||||
|
- Program usage(); function now waits for enter before exiting on Windows.
|
||||||
|
|
||||||
|
###### 0.0.3
|
||||||
|
- Colors are now supported on Windows too!
|
||||||
|
- Terminal mode is now triggered with "-t" flag. "-i" flag still works for
|
||||||
|
backwards compatibility.
|
||||||
|
- Bug fixes (Packet size check always evaluating false and color validity
|
||||||
|
check always evaluating true).
|
||||||
|
|
||||||
|
###### 0.0.2
|
||||||
|
- License changed from 'ISC License' to 'zlib/libpng License'.
|
||||||
|
- Bug fixes & code cleanups
|
||||||
|
- Interactive mode (-i flag). Client acts as interactive terminal.
|
||||||
|
- Program return value is now the number of rcon commmands sent successfully.
|
||||||
|
If connecting or authentication fails, the return value is -1.
|
||||||
|
- Colors are now enabled by default. Now '-c' flag disables the color support.
|
||||||
|
|
||||||
|
###### 0.0.1
|
||||||
|
- Added experimental support for bukkit colors.
|
||||||
|
Should work with any sh compatible shell.
|
||||||
|
- Packet string data limited to max 2048 (DATA_BUFFSIZE) bytes.
|
||||||
|
No idea how Minecraft handles multiple rcon packets.
|
||||||
|
If someone knows, please mail me so I can implement it.
|
||||||
22
INSTALL.md
Normal file
22
INSTALL.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Building and installing
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Only dependency is C library and POSIX getopt support.
|
||||||
|
|
||||||
|
Compiling with GCC or CLANG:
|
||||||
|
|
||||||
|
cc -std=gnu99 -Wpedantic -Wall -Wextra -Os -s -o mcrcon mcrcon.c
|
||||||
|
|
||||||
|
Note: on Windows remember to link with winsock 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.
|
||||||
5
LICENSE
5
LICENSE
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2012-2013, Tiiffi <tiiffi --> gmail_dot_com>
|
Copyright (c) 2012-2021, 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
|
||||||
@ -17,4 +17,5 @@ freely, subject to the following restrictions:
|
|||||||
misrepresented as being the original software.
|
misrepresented as being the original software.
|
||||||
|
|
||||||
3. This notice may not be removed or altered from any source
|
3. This notice may not be removed or altered from any source
|
||||||
distribution.
|
distribution.
|
||||||
|
|
||||||
52
Makefile
Normal file
52
Makefile
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# if you want to cross compile:
|
||||||
|
# export PATH=$PATH:/path/to/compiler/bin
|
||||||
|
# export CROSS_COMPILE=arm-none-linux-gnueabi-
|
||||||
|
# make
|
||||||
|
#
|
||||||
|
# Windows cross compile:
|
||||||
|
# i686-w64-mingw32-gcc -std=gnu99 -Wall -Wextra -Wpedantic -Os -s -o mcrcon.exe mcrcon.c -lws2_32
|
||||||
|
|
||||||
|
EXENAME = mcrcon
|
||||||
|
PREFIX ?= /usr/local
|
||||||
|
|
||||||
|
INSTALL = install
|
||||||
|
LINKER =
|
||||||
|
RM = rm -v -f
|
||||||
|
|
||||||
|
CC = gcc
|
||||||
|
CFLAGS = -std=gnu99 -Wall -Wextra -Wpedantic -Os -s
|
||||||
|
EXTRAFLAGS ?= -fstack-protector-strong
|
||||||
|
|
||||||
|
ifeq ($(OS), Windows_NT)
|
||||||
|
LINKER = -lws2_32
|
||||||
|
EXENAME = mcrcon.exe
|
||||||
|
RM = cmd /C del /F
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(shell uname), Darwin)
|
||||||
|
INSTALL = ginstall
|
||||||
|
CFLAGS = -std=gnu99 -Wall -Wextra -Wpedantic -Os
|
||||||
|
endif
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
all: $(EXENAME)
|
||||||
|
|
||||||
|
$(EXENAME): mcrcon.c
|
||||||
|
$(CROSS_COMPILE)$(CC) $(CFLAGS) $(EXTRAFLAGS) -o $@ $< $(LINKER)
|
||||||
|
|
||||||
|
ifneq ($(OS), Windows_NT)
|
||||||
|
.PHONY: install
|
||||||
|
install:
|
||||||
|
$(INSTALL) -vD $(EXENAME) $(DESTDIR)$(PREFIX)/bin/$(EXENAME)
|
||||||
|
$(INSTALL) -vD -m 0644 mcrcon.1 $(DESTDIR)$(PREFIX)/share/man/man1/mcrcon.1
|
||||||
|
@echo "\nmcrcon installed. Run 'make uninstall' if you want to uninstall.\n"
|
||||||
|
|
||||||
|
.PHONY: uninstall
|
||||||
|
uninstall:
|
||||||
|
$(RM) $(DESTDIR)$(PREFIX)/bin/$(EXENAME) $(DESTDIR)$(PREFIX)/share/man/man1/mcrcon.1
|
||||||
|
@echo "\nmcrcon uninstalled.\n"
|
||||||
|
endif
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
$(RM) $(EXENAME)
|
||||||
93
README.md
93
README.md
@ -1,10 +1,91 @@
|
|||||||
####Compiling:
|
# mcrcon
|
||||||
|
|
||||||
```gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c```
|
mcrcon is console based Minecraft [rcon](https://developer.valvesoftware.com/wiki/Source_RCON_Protocol) client for remote administration and server maintenance scripts.
|
||||||
|
|
||||||
On windows, remember to link with winsockets.
|
|
||||||
Add ```-lws2_32``` to compiler command line on Mingw GCC.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
More info [here](http://forums.bukkit.org/threads/admin-rcon-mcrcon-remote-connection-client-for-minecraft-servers.70910/).
|
### Installing:
|
||||||
|
|
||||||
|
##### via packet manager:
|
||||||
|
See https://pkgs.org/download/mcrcon for available packages in various Linux distros (note that available packages might be outdated).
|
||||||
|
|
||||||
|
- Gentoo Linux: https://packages.gentoo.org/packages/games-util/mcrcon
|
||||||
|
- Arch Linux: https://aur.archlinux.org/packages/mcrcon/
|
||||||
|
|
||||||
|
##### building from sources:
|
||||||
|
```sh
|
||||||
|
git clone https://github.com/Tiiffi/mcrcon.git
|
||||||
|
cd mcrcon
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
```
|
||||||
|
Check [INSTALL.md](INSTALL.md) for more details.
|
||||||
|
|
||||||
|
Precompiled binaries (if provided)*: https://github.com/Tiiffi/mcrcon/releases/latest
|
||||||
|
|
||||||
|
<sub>*At the moment binaries are provided for Linux and Windows.</sub>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Usage:
|
||||||
|
mcrcon [OPTIONS] [COMMANDS]
|
||||||
|
|
||||||
|
Sends rcon commands to Minecraft server.
|
||||||
|
|
||||||
|
```
|
||||||
|
Option:
|
||||||
|
-H Server address (default: localhost)
|
||||||
|
-P Port (default: 25575)
|
||||||
|
-p Rcon password
|
||||||
|
-t Terminal mode
|
||||||
|
-s Silent mode
|
||||||
|
-c Disable colors
|
||||||
|
-r Output raw packets
|
||||||
|
-w Wait for specified duration (seconds) between each command (1 - 600s)
|
||||||
|
-h Print usage
|
||||||
|
-v Version information
|
||||||
|
```
|
||||||
|
Server address, port and password can be set using following environment variables:
|
||||||
|
```
|
||||||
|
MCRCON_HOST
|
||||||
|
MCRCON_PORT
|
||||||
|
MCRCON_PASS
|
||||||
|
```
|
||||||
|
###### 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:
|
||||||
|
> Send three commands ("say", "save-all", "stop") and wait five seconds between the commands.
|
||||||
|
|
||||||
|
```mcrcon -H my.minecraft.server -p password -w 5 "say Server is restarting!" save-all stop```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##### Enable rcon on server
|
||||||
|
Remember to enable rcon by adding following lines to [```server.properties```](https://minecraft.gamepedia.com/Server.properties) file.
|
||||||
|
```
|
||||||
|
enable-rcon=true
|
||||||
|
rcon.port=25575
|
||||||
|
rcon.password=your_rcon_pasword
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
##### Contact:
|
||||||
|
|
||||||
|
* WWW: https://github.com/Tiiffi/mcrcon/
|
||||||
|
* MAIL: tiiffi+mcrcon at gmail
|
||||||
|
* BUG REPORTS: https://github.com/Tiiffi/mcrcon/issues/
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### License
|
||||||
|
|
||||||
|
This project is licensed under the zlib License - see the [LICENSE](LICENSE) file for details.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<sub>Master:</sub> 
|
||||||
|
<sub>Develop:</sub> 
|
||||||
|
|||||||
66
mcrcon.1
Normal file
66
mcrcon.1
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
.\" Process this file with
|
||||||
|
.\" groff -man -Tascii mcrcon.1
|
||||||
|
.\"
|
||||||
|
.TH MCRCON 1 "October 2021" "Version 0.7.2"
|
||||||
|
.SH NAME
|
||||||
|
mcrcon \- send rcon commands to a Minecraft server
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.B mcrcon [
|
||||||
|
options
|
||||||
|
.B ] [
|
||||||
|
commands
|
||||||
|
.B ]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
mcrcon is Minecraft rcon client for remote administration and server maintenance scripts.
|
||||||
|
.SH OPTIONS
|
||||||
|
.IP -H
|
||||||
|
Server address (default: localhost)
|
||||||
|
.IP -P
|
||||||
|
Port (default: 25575)
|
||||||
|
.IP -p
|
||||||
|
Rcon password
|
||||||
|
.IP -t
|
||||||
|
Terminal mode
|
||||||
|
.IP -s
|
||||||
|
Silent mode
|
||||||
|
.IP -c
|
||||||
|
Disable colors
|
||||||
|
.IP -r
|
||||||
|
Output raw packets
|
||||||
|
.IP -w
|
||||||
|
Wait for specified duration (seconds) between each command (1 - 600s)
|
||||||
|
.IP -h
|
||||||
|
Print usage
|
||||||
|
.IP -v
|
||||||
|
Output version information
|
||||||
|
.PP
|
||||||
|
Commands with spaces must be enclosed in quotes.
|
||||||
|
.br
|
||||||
|
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
|
||||||
|
\fBMCRCON_HOST
|
||||||
|
.br
|
||||||
|
\fBMCRCON_PORT
|
||||||
|
.br
|
||||||
|
\fBMCRCON_PASS\fR
|
||||||
|
.PP
|
||||||
|
Note that command-line options will override environment variables.
|
||||||
|
.SH EXAMPLES
|
||||||
|
Make rcon connection in terminal mode using default port
|
||||||
|
.RS
|
||||||
|
\fBmcrcon\fR -H my.minecraft.server -p password
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Send "weather clear" command to server using custom port 1337
|
||||||
|
.RS
|
||||||
|
\fBmcrcon\fR -H my.minecraft.server -P 1337 -p password "weather clear"
|
||||||
|
.RE
|
||||||
|
.PP
|
||||||
|
Send three commands ("say", "save-all", "stop") and wait five seconds between the commands.
|
||||||
|
.RS
|
||||||
|
\fBmcrcon\fR -H my.minecraft.server -p password -w 5 "say Server is restarting!" save-all stop
|
||||||
|
.RE
|
||||||
|
.SH BUGS
|
||||||
|
Report bugs to \fBtiiffi+mcrcon at gmail\fR or \fBhttps://github.com/Tiiffi/mcrcon/issues/\fR
|
||||||
Reference in New Issue
Block a user