https://github.com/benbaptist/minecraft-wrapper
A simple & intuitive Minecraft Server wrapper. Supports IRC, backups, a plugin system, and more.
https://github.com/benbaptist/minecraft-wrapper
backup irc minecraft-server-wrapper minecraft-wrapper python wrapper
Last synced: 4 months ago
JSON representation
A simple & intuitive Minecraft Server wrapper. Supports IRC, backups, a plugin system, and more.
- Host: GitHub
- URL: https://github.com/benbaptist/minecraft-wrapper
- Owner: benbaptist
- License: other
- Created: 2013-09-01T23:06:52.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2020-04-01T18:44:04.000Z (about 6 years ago)
- Last Synced: 2023-03-11T05:48:09.101Z (about 3 years ago)
- Topics: backup, irc, minecraft-server-wrapper, minecraft-wrapper, python, wrapper
- Language: Python
- Homepage: http://wrapper.benbaptist.com/
- Size: 27.4 MB
- Stars: 73
- Watchers: 12
- Forks: 20
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Outdated Repository #
Wrapper.py has moved to a [new repository](https://github.com/benbaptist/wrapper.py). It features a total re-write, with better performance, Python 2.x and 3.x compatibility from the ground up, a new, sleek dashboard interface, and more.
This will remain online as an archived repository only.
An extremely huge thank-you to @suresttexas00 for maintaining the Wrapper.py project for so long! Wrapper would've been dead in the road long ago if it weren't for you.
# Overview #
-------------------------------------------
Wrapper.py is an easy to use Minecraft server wrapper for adding extra functionality into the server without modifying
the server jar file. It also comes with a relatively simple and straight-forward - yet powerful - plugin API that can be used
to create Bukkit-like plugins with no server modding. The API works best when operated in proxy mode.
We also have a gitter channel: [](https://gitter.im/benbaptist/minecraft-wrapper?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
### **Wrapper.py Versions**
- [Master branch "stable"](https://github.com/benbaptist/minecraft-wrapper/tree/master): Stable branch that is only updated with serious bug fixes and major releases. [1](#f1)
- [Development branch "dev"](https://github.com/benbaptist/minecraft-wrapper/tree/development): Development branch with newer features.
NOTICE: Wrapper will Accept the minecraft server EULA on your behalf. [2](#f2)
# Features #
-------------------------------------------
Wrapper.py supports the following features:
- [Plugin system](/documentation/plugin_api.md) for adding extra features to a vanilla server.
- Permissions system with group support.
- Proxy mode operation allows you to add extra bukkit-like functionality to plugins:
- Real `/` command interface.
- Built in hub worlds / multi-server support!
- Use the built-in /hub functionality with world configurations set up in the wrapper config, __or__
- Implement your own customized version with the plugin API by calling the player.connect() method.
- Limit entity breeding / spawning with entity controls.
- Monitor, Modify, and change:
- player chat.
- player block /digging/placement.
- player inventory.
- .. and More!
- Automatic Backups
- Automatically delete the oldest backups once you reach a specified number of backups
- Specify which folders and files get backed up
- IRC bridge
- Controlling server from IRC
- Achievements, deaths, and whatnot appear on IRC
- Chat between Minecraft server and IRC channels
- Scheduled reboots
- Web remote for controlling the server and the wrapper through your web browser
- Shell scripts that are called upon certain events (similar to plugin events, but quicker and easier)
- Minecraft 1.7 and later support
- Colorized console logging.
# Installation #
### **Python Versions**
Python 3.5 + is suggested,
***[However...](/documentation/pyversions.md)***
### **Dependencies**
Wrapper.py requires the following packages:
- Python packages: `pip, requests, cryptography, bcrypt, setuptools, pkg_resources`
- Tar is required for backups.
- ***[More...](/documentation/depends.md)***
#### [**LINUX download and setup**](/documentation/linux.md)
#### [**Windows Download and setup**](/documentation/windows.md)
### **Start Up**
You only need to download Wrapper.py. The '\wrapper' folder is the source code and is just the extracted version
of Wrapper.py. Wrapper.py is a Python-executable archive folder containing the sourcecode.
To start Wrapper, open a console where the `Wrapper.py` or `/wrapper` sourcecode are
located and type the following into the console to start:
`python Wrapper.py|/wrapper [--passphrase 'passphrase']` The passphrase must be 8 or more characters in length!
#### [Starting Wrapper.py for the first time...](/documentation/first_start.md)
Once wrapper has started:
- Open the wrapper.properties.json file and tune the file to your remaining preferences.
- Tune and setup your server and server.properties accordingly.
- Restart wrapper.
```
[15:28:08] [Server thread/INFO]: Starting minecraft server version 1.12.2
[15:28:08] [Server thread/INFO]: Loading properties
...
[15:28:16] [Server thread/INFO]: Preparing spawn area: 94%
[15:28:17] [Server thread/INFO]: Done (7.956s)! For help, type "help" or "?"
[15:28:17] [Wrapper.py/INFO]: Server started
[15:28:17] [Wrapper.py/INFO]: Proxy listening on *:25566
```
### Operating wrapper ###
- Any console command beginning with a slash (/) will be interpreted firstly as a Wrapper.py command.
- Type /help to see a list of Wrapper.py commands.
- To completely shutdown the wrapper, type /halt.
- To enter passwords into the wrapper.properties.config file, use the `/password` console command to enter the applicable password:
`/password Web web-password `
Please read our [Doc page](/documentation/readme.md) for additional information and review the issues page before submitting bug reports.
If you run into any bugs, please _do_ report them!
If you have questions, please use our [Gitter page](https://gitter.im/benbaptist/minecraft-wrapper) instead of creating an issue.
# API #
The references for the wrapper plugin API are here:
[Wrapper.py Plugin API](/documentation/plugin_api.md)
#### New Permissions System ####
A file in the wrapper root directory "superOPs.txt" now augments the "Ops.json" file. Operators in the ops.json file can be assigned a higher (wrapper) OP level. The contents of the file are laid out just like server.properties (lines of \=\).
Sample `superops.txt`:
```
Suresttexas00=5
BenBaptist=9
```
Higher op levels are required to run sensitive wrapper commands like `/perms`.
#### Plugins ####
The modern event list is updated with each build: [Wrapper events](/documentation/events.rst) [3](#f3)
Check the 'example-plugins' and 'stable-plugins' folders to see some example plugins. These are very useful for seeing how the API functions.
- TEMPLATE.py and EXAMPLE.py are mostly just shells of a plugin to work off of. They contain useful tutorial comments.
- zombie.py is a fun test plugin that leaves behind undead versions of people when killed by undead mobs.
- speedboost.py gives everyone a speedboost when someone dies - similar to survival games.
- poll.py allows players to vote for certain things on the server. It isn't very up-to-date at the moment, however.
- Essentials is a plugin loosely based off of Essentials for Bukkit.
- WorldEdit - is a plugin loosely based on the WorldEdit for Bukkit by sk89q
- SmallBrother is a lightweight logging plugin based on the old Bukkit plugin, BigBrother
- Open.py is a plugin that opens a window with nothing. This plugin was probably just a test plugin and may not work, but contains example code for accessing packets from the player api.
__Tip__:
If you want to see more error messages and other useful messages while developing plugins or debugging wrapper,
look for the logging.json file and make changes to the "console" section:
```json
...
"console": {
"stream": "ext://sys.stdout",
"formatter": "standard",
"class": "logging.StreamHandler",
"filters": [
"plugin"
],
"level": "INFO" <-- Set to DEBUG for more detailed output
},
...
```
1 - The old stable branch "master", version 0.7.6, build 83 has now been archived in the ["Original"](https://github.com/benbaptist/minecraft-wrapper/tree/Original) branch. The original
version only supports minecraft versions up to 1.8. [↩](#a1)
2 - Using wrapper means you also accept the EULA, which will be set to true in the eula.txt file in your server folder. [Mojang EULA](https://account.mojang.com/documents/minecraft_eula) [↩](#a2)
3 - The original Event list (Wrapper version 0.7.6) - [0.7.6 Wrapper list of events](https://docs.google.com/spreadsheet/ccc?key=0AoWx24EFSt80dDRiSGVxcW1xQkVLb2dWTUN4WE5aNmc&usp=sharing) [↩](#a3)