WebChunk

command module
v0.0.0-...-8203687 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2024 License: AGPL-3.0 Imports: 62 Imported by: 0

README

WebChunk with overworld section from Constantiam

WebChunk is a simple web server written in Go that works with Postgres datbase to store and render chunks from Minecraft to your browser.

It is mainly targeted at multiplayer anarchy servers because of "hacking" being a bold word that fits literally every game modification.

Designed to accept chunks from multiple players at once, provide very fast deserialization, storage and mapping information.

Join discord server for more info!

Features

  • Map rendering:
    • Colored terrain view
    • Heightmap terrain view
    • Portals/chests heatmap overlay
    • Colors customization
    • Biome view
    • Serving images over HTTP
    • Customizable overlaying
  • Connectivity:
    • Accepting chunks from HTTP
    • Sniffing chunks through proxied connection
    • Accepting compressed chunks
    • Concurrent use
    • Compatibility with Minecraft's region file format

Complete roadmap

Data source

Currently storage interface operates with anvil chunk format that can be grabbed from both region files and game itself. WebChunk acts like a proxy for server connections and will sniff chunk information from the connection. World directories can be used directly. Storing multiple versions of same chunk is also permitted and viewed as a feature that can be further supported and used to analyze how terrain/world changed, potentially converting whole thing into data analysis framework (only with postgresql storage).

Storage

WebChunk currently supports storing data in PostgreSQL database (empty template of schemas are located in db/sql/init/init.sh) and in region files. Work has been put into making storage interfacing not complex and as easy to implemet as possible, although it supports multiple worlds it is not mandatory to provide multi-world functionality or even more than one dimension. There are no plans on being able to store older chunk versions with filesystem storage.

How does it work?

Upon deploying WebChunk to a server or starting it locally it will accept NBT serialized chunk information over HTTP endpoint and store it in attached Postgres database, this is basically it! Front page has a Leaflet map that requests images from WebChunk and displays them nicely and organized.

Security and safety of the data

WebChunk is built to provide service to owner of the database and web server. It does not feature any user profiles, access rights or any other means of stopping other people from communicating with service. That directly means that you (owner of WebChunk deployment) in charge of regulating who can access resource. WebChunk may also have unknown vulnerabilities that can allow other people to gain unwanted access.

License

GNU Affero General Public License v3.0

See file LICENSE in the project root

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
data
biomes
this file is generated with biome_gen.c
this file is generated with biome_gen.c
tools

Jump to

Keyboard shortcuts

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