mirror of
https://github.com/Tiiffi/mcrcon.git
synced 2025-10-27 11:21:07 -04:00
Compare commits
125 Commits
v0.0.5
...
v0.6.2-dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 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 | |||
| 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
|
||||
*.dev
|
||||
*.win
|
||||
*.txt
|
||||
*.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
|
||||
67
CHANGELOG.md
Normal file
67
CHANGELOG.md
Normal file
@ -0,0 +1,67 @@
|
||||
#### Version history:
|
||||
|
||||
###### 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 @@
|
||||
Compiling 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 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.
|
||||
5
LICENSE
5
LICENSE
@ -1,4 +1,4 @@
|
||||
Copyright (c) 2012-2013, Tiiffi <tiiffi --> gmail_dot_com>
|
||||
Copyright (c) 2012-2019, Tiiffi <tiiffi at gmail>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
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.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
distribution.
|
||||
|
||||
49
Makefile
Normal file
49
Makefile
Normal file
@ -0,0 +1,49 @@
|
||||
# if you want to cross compile
|
||||
# export PATH=$PATH:/path/to/compiler/bin
|
||||
# export CROSS_COMPILE=arm-none-linux-gnueabi-
|
||||
# make
|
||||
|
||||
EXENAME = mcrcon
|
||||
PREFIX ?= /usr/local
|
||||
|
||||
INSTALL = install
|
||||
LINKER =
|
||||
RM = rm -v -f
|
||||
|
||||
CC = cc
|
||||
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)
|
||||
92
README.md
92
README.md
@ -1,10 +1,90 @@
|
||||
####Compiling:
|
||||
# mcrcon
|
||||
|
||||
```gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c```
|
||||
|
||||
On windows, remember to link with winsockets.
|
||||
Add ```-lws2_32``` to compiler command line on Mingw GCC.
|
||||
mcrcon is console based Minecraft [rcon](https://developer.valvesoftware.com/wiki/Source_RCON_Protocol) client for remote administration and server maintenance scripts.
|
||||
|
||||
---
|
||||
|
||||
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.
|
||||
|
||||
- Gentoo Linux: https://packages.gentoo.org/packages/games-util/mcrcon
|
||||
- Arch Linux: https://aur.archlinux.org/packages/mcrcon/
|
||||
|
||||
##### 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.
|
||||
|
||||
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:
|
||||
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
|
||||
-h Print usage
|
||||
-v Version information
|
||||
-w Wait for specified duration (seconds) between each command
|
||||
```
|
||||
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:
|
||||
```mcrcon -H my.minecraft.server -p password "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 at gmail
|
||||
* IRC: tiiffi @ quakenet
|
||||
* 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 2019" "Version 0.6.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 -h
|
||||
Print usage
|
||||
.IP -v
|
||||
Output version information
|
||||
.IP -w
|
||||
Wait for specified duration (seconds) between each command
|
||||
.PP
|
||||
Commands with spaces must be enclosed in quotes.
|
||||
.br
|
||||
mcrcon will start in terminal mode if no commands are given.
|
||||
.SH ENVIRONMENTAL 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 to server ("say", "save-all" and "stop"), and wait 2 seconds between them
|
||||
.RS
|
||||
\fBmcrcon\fR -H my.minecraft.server -p password -w 2 "say Server is restarting!" save-all stop
|
||||
.RE
|
||||
.SH BUGS
|
||||
Bugs can be reported to \fBtiiffi+mcrcon at gmail\fR or \fBhttps://github.com/Tiiffi/mcrcon/issues/\fR
|
||||
Reference in New Issue
Block a user