mirror of
https://github.com/Tiiffi/mcrcon.git
synced 2025-10-28 03:41:07 -04:00
Compare commits
92 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8fdda295e2 | |||
| 0b1853dccc | |||
| d338537e23 | |||
| 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 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -2,5 +2,8 @@
|
||||
*.o
|
||||
*.dev
|
||||
*.win
|
||||
*.txt
|
||||
*.layout
|
||||
*.project
|
||||
mcrcon
|
||||
todo
|
||||
|
||||
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
|
||||
79
CHANGELOG.md
Normal file
79
CHANGELOG.md
Normal file
@ -0,0 +1,79 @@
|
||||
####Version history:
|
||||
######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.
|
||||
|
||||
####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
Normal file
22
INSTALL.md
Normal file
@ -0,0 +1,22 @@
|
||||
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-2013, Tiiffi <tiiffi --> gmail_dot_com>
|
||||
Copyright (c) 2012-2016, Tiiffi <tiiffi_at_gmail_dot_com>
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any damages
|
||||
|
||||
50
Makefile
Normal file
50
Makefile
Normal file
@ -0,0 +1,50 @@
|
||||
# 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
|
||||
|
||||
EXTRAFLAGS ?= -fstack-protector-strong
|
||||
|
||||
INSTALL = install
|
||||
LINKER =
|
||||
RM = rm -f
|
||||
|
||||
ifeq ($(OS), Windows_NT)
|
||||
CC = gcc
|
||||
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
|
||||
else
|
||||
CFLAGS ?= -std=gnu99 -Wall -Wextra -Wpedantic -Os -s
|
||||
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) $(PREFIX)/bin/$(EXENAME)
|
||||
$(INSTALL) -vD -m 0644 mcrcon.1 $(PREFIX)/share/man/man1/mcrcon.1
|
||||
@echo "\nmcrcon installed. Run 'make uninstall' if you want to uninstall.\n"
|
||||
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
rm -f $(PREFIX)/bin/$(EXENAME) $(PREFIX)/share/man/man1/mcrcon.1
|
||||
@echo "\nmcrcon uninstalled.\n"
|
||||
endif
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(RM) $(EXENAME)
|
||||
70
README.md
70
README.md
@ -1,10 +1,70 @@
|
||||
####Compiling:
|
||||
### Installing:
|
||||
|
||||
```gcc -std=gnu11 -pedantic -Wall -Wextra -O2 -s -o mcrcon mcrcon.c```
|
||||
from sources:
|
||||
```sh
|
||||
git clone https://github.com/Tiiffi/mcrcon.git
|
||||
cd mcrcon
|
||||
make
|
||||
sudo make install
|
||||
```
|
||||
Check **INSTALL** for more details.
|
||||
|
||||
On windows, remember to link with winsockets.
|
||||
Add ```-lws2_32``` to compiler command line on Mingw GCC.
|
||||
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>
|
||||
|
||||
---
|
||||
|
||||
More info [here](http://forums.bukkit.org/threads/admin-rcon-mcrcon-remote-connection-client-for-minecraft-servers.70910/).
|
||||
### Usage:
|
||||
mcrcon [OPTIONS] [COMMANDS]
|
||||
|
||||
Sends rcon commands to Minecraft server.
|
||||
|
||||
```
|
||||
Option:
|
||||
-h Print usage
|
||||
-H Server address
|
||||
-P Port (default is 25575)
|
||||
-p Rcon password
|
||||
-t Interactive terminal mode
|
||||
-s Silent mode (do not print received packets)
|
||||
-c Disable colors
|
||||
-r Output raw packets (debugging and custom handling)
|
||||
-v Output version information
|
||||
```
|
||||
Commands with arguments must be enclosed in quotes.
|
||||
|
||||
Server address, port and password can be set using following environment variables:
|
||||
```
|
||||
MCRCON_HOST
|
||||
MCRCON_PORT
|
||||
MCRCON_PASS
|
||||
```
|
||||
Note that command-line options will override environment variables.
|
||||
|
||||
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``` file.
|
||||
```
|
||||
enable-rcon=true
|
||||
rcon.port=25575
|
||||
rcon.password=your_rcon_pasword
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
#### Contact:
|
||||
|
||||
* WWW: https://github.com/Tiiffi/mcrcon/
|
||||
* MAIL: tiiffi_at_gmail_dot_com
|
||||
* IRC: tiiffi @ quakenet
|
||||
* BUG REPORTS: https://github.com/Tiiffi/mcrcon/issues/
|
||||
|
||||
---
|
||||
|
||||
<sub>Master:</sub> 
|
||||
<sub>Develop:</sub> 
|
||||
|
||||
63
mcrcon.1
Normal file
63
mcrcon.1
Normal file
@ -0,0 +1,63 @@
|
||||
.\" Process this file with
|
||||
.\" groff -man -Tascii mcrcon.1
|
||||
.\"
|
||||
.TH MCRCON 1 "December 2016" "Version 0.6.1"
|
||||
.SH NAME
|
||||
mcrcon \- sends rcon commands to a Minecraft server
|
||||
.SH SYNOPSIS
|
||||
.B mcrcon [
|
||||
options
|
||||
.B ] [
|
||||
commands
|
||||
.B ]
|
||||
.SH DESCRIPTION
|
||||
mcrcon is Minecraft rcon client / terminal with bukkit coloring support.
|
||||
It is well suited for remote administration and server maintenance scripts.
|
||||
.SH OPTIONS
|
||||
.IP -h
|
||||
Print usage
|
||||
.IP -H
|
||||
Server address
|
||||
.IP -P
|
||||
Port (default is 25575)
|
||||
.IP -p
|
||||
Rcon password
|
||||
.IP -t
|
||||
Interactive terminal mode
|
||||
.IP -s
|
||||
Silent mode (do not print received packets)
|
||||
.IP -c
|
||||
Disable colors
|
||||
.IP -r
|
||||
Output raw packets (for debugging and custom handling)
|
||||
.IP -v
|
||||
Output version information
|
||||
.PP
|
||||
Commands with arguments must be enclosed in quotes.
|
||||
.SH ENVIRONMENTAL VARIABLES
|
||||
Server address, port and password can be set using 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)
|
||||
.RS
|
||||
\fBmcrcon\fR -H my.minecraft.server -p password "say Server is restarting!" save-all stop
|
||||
.RE
|
||||
.SH BUGS
|
||||
Bugs can be reported to \fBtiiffi_at_gmail_dot_com\fR or \fBhttps://github.com/Tiiffi/mcrcon/issues/\fR
|
||||
Reference in New Issue
Block a user