Files
mcrcon/README.md

116 lines
4.1 KiB
Markdown

####Compiling:
```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.
---
More info [here](http://forums.bukkit.org/threads/admin-rcon-mcrcon-remote-connection-client-for-minecraft-servers.70910/).
####Usage:
Usage: mcrcon [OPTIONS]... [COMMANDS]...
Sends rcon commands to minecraft server.
```
Option:
-h Prints usage.
-s Silent mode. Do not print data received from rcon.
-t Terminal mode. Acts as interactive terminal.
-p Rcon password. Default: "".
-H Host address or ip.
-P Port. Default: 25575.
-c Do not print colors. Disables bukkit color printing.
-r Print everything in raw mode.
Good for debugging and custom handling of the output.
```
Invidual commands must be separated with spaces.
Example:
```mcrcon -c -H 192.168.1.42 -P 9999 -p password cmd1 "cmd2 with spaces"```
####Enable rcon
Remember to enable rcon by changing/adding these lines to ```server.properties``` file.
```
enable-rcon=true
rcon.password=your_rcon_pasword
rcon.port=9999
```
####Contact:
WWW: http://sourceforge.net/projects/mcrcon/
MAIL: tiiffi_at_gmail_dot_com
IRC: tiiffi @ quakenet
BUG REPORTS: https://github.com/Tiiffi/mcrcon/issues
####Version history
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 comestic fixes 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)