selery ~async
Server for Minecraft (Bedrock Engine) and Minecraft: Java Edition
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
Selery
Selery is a server for ~~Minecraft (Bedrock Engine) 1.2~~ and Minecraft: Java Edition 1.10-1.12 written in D.
Installation
From a pre-built package
Pre-built packages are compiled with the latest version of LDC in release mode and can be found in the releases page, just unzip the onefor your operative system and run the preferred executable.
The following bash script can be used to download and run the install.sh installer.
curl -Ls https://goo.gl/5kfhJG | bash
From source
To build Selery from source you'll need a D compiler (DMD for faster compilation, suitable for testing, or LDC for faster and better code, better for production) and DUB, D's package manager, which is usually included in both DMD and LDC's packages.
Packages and installers are available for several operating systems and architectures at dlang.org's download page.
- Clone the repository using
git clone git://github.com/sel-project/selery
or download the zipped repository from the latest release. - If you want to use the latest release run
git checkout $(git describe --tags --abbrev=0)
in the repository's location. - Build by running
build.bat
on Windows orbuild.sh
on Linux/OS X. - Run the generated executable file.
All in one:
git clone git://github.com/sel-project/selery
cd selery
./build.sh
The build scripts supports some useful options that can be viewed by launching it with --help
.
:warning: Due to issue 17508, Windows x86 must be linked using Microsoft's compiler (-a x86_mscoff
) instead of DMD's. This action is performed automatically by the build script.
Build Status
OS | Arch | DMD (debug) | LDC (debug) | LDC (release) |
---|---|---|---|---|
Windows | x86-64 | |||
Windows | x86 | |||
Linux | x86-64 | |||
OS X | x86-64 |
Model
Selery is based on a hub-node model where a hub asynchronously handles the network part of the software and the node the gameplay one. The hub and the node are internally connected throught a protocol called hncom, the hub-node communication protocol.
Hub
The hub is the interface with the clients, it handles new connections and when they are successfull it forwards them to one of the connected nodes.
A hub with no nodes connected will accept new connections but will kick the players with an End of Stream
message.
Node
The node manages the gameplay part of the server, like the worlds and its entities. A node cannot work without a hub and must always be connected to one; the life of a node starts when a connection with a hub it's established and ends when the connection is interruped.
Nodes are identified by a unique id (given by the hub when the connection is established) and a name, choosen by the node, that must be unique in the hub (if not, the hub will reject the connection). Nodes can also be divided in main nodes and normal nodes. Main nodes will receive players before the other nodes if not specified otherwise by a hub's plugin.
Setting up
Selery's configuration file is created when the server is started in the same path as the executable.
It is named selery.toml
for the default configuration, selery.hub.toml
for the hub and selery.node.toml
for the node.
Every option can also be overriden by a command-line option without altering the configuration file.
selery --display-name="My Minecraft Server"
selery --java-enabled=false
selery --language=it
selery --bedrock-accepted-protocols=160
selery --java-addresses=0.0.0.0:25565,192.168.1.216:8129
More useful command-line options:
--about
or-a
to print the software's build informations in JSON format. The--min
option can be used to print a minified JSON instead of a pretty-printed one.--init
or-i
to initialize the configuration file.--update-config
or-uc
to rewrite the configuration file, maintaining the current configuration. It should be used after updating the software to a newer version that changes the configuration format.--reset
to reset the whole configuration file to its default values.
- ~async released 6 years ago
- sel-project/selery
- MIT
- Copyright (c) 2017-2018 sel-project
- Authors:
- Dependencies:
- terminal, soupply, resusage, memutils, sel-util:format, sel-server, roman, string-transform-d, sel-nbt, imageformats, sel-data, sel-util:terminal, xpacket, my-ip, xbuffer, lighttp, sel-utils
- Versions:
-
0.3.0 2018-Sep-21 0.2.0 2018-Jun-04 0.1.1 2018-Feb-09 0.1.0 2018-Feb-08 ~master 2019-Jan-01 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
0 downloads this month
-
21 downloads total
-
- Score:
- 1.9
- Short URL:
- selery.dub.pm