go-mcc

command module
v0.0.0-...-878a95c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2022 License: MIT Imports: 9 Imported by: 0

README

go-mcc

Introduction

go-mcc is an open source Minecraft classic server written in Go. It is fully compatible with the original client, World of Minecraft and ClassiCube. It supports a large subset of the Classic Protocol Extension (CPE) project.

The core functionality of go-mcc can be extended through the use of plugins. The Core plugin provides important features typically found in Minecraft servers, such as ban lists and data persistence. The configuration and data are stored in an SQLite database.

go-mcc implements a rank-based permission system. Users can execute only those commands for which they have the required permissions, which are defined by one or more permission flags. The use of a command can also be explicitly allowed or denied for each rank.

Install

Building from source

The following commands will build the server executable go-mcc and the Core plugin plugins/core.so.

git clone git@github.com:andreasgoulas/go-mcc.git
cd go-mcc
make all

To use a plugin, you need to place it in the plugins/ directory of the server.

Configuration

The server can be configured via the server.json file.

Field Type Description
server-port integer Port the server is listening on.
server-name string Name of the server.
motd string Message of the day displayed when players join the server.
verify-names boolean Whether to verify the player names.
public boolean Whether the server should be displayed on the server list.
max-players integer Maximum number of players connected at the same time.
heartbeat string Heartbeat URL.
main-level string Name of the main level.

Core can be configured using SQL. core.db is created the first time that the server runs. The following tables can be edited to configure the player permissions.

ranks

This table stores the rank entries.

Field Type Description
name string Rank name.
tag string Tag that prefixes the name of all members of this rank.
permissions integer Bitwise-OR of one or more permission flags.

Core defines the following permission flags.

Name Value Commands
operator 1 /stop, /rank, /skin
ban 2 /ban, /banip, /unban, /unbanip
kick 4 /kick
chat 8 /mute, /nick, /say
teleport 16 /tp
summon 32 /summon
level 64 /env, /load, /main, /newlvl, /physics, /save...

The op rank, which has access to all commands, is created by default.

command_rules

This table stores the explicit command permissions for each rank.

Field Type Description
command string Command name.
rank string Rank name.
access integer Whether the command is allowed or denied.
block_rules

This table stores the block permissions for each rank.

Field Type Description
block_id integer Block ID.
action integer Break = 0, Place = 1
rank string Rank name.
access integer Whether the action is allowed or denied.
config

This table stores the plugin configuration options.

Field Type
cfg_key string
cfg_value string

The following options are supported.

Key Description
default_rank Name of default rank.

License

go-mcc is licensed under the MIT License.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL