core

module
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2023 License: GPL-3.0

README

gopher

Gophercraft

Go Reference Chat on discord

The Gophercraft project provides 100% Go libraries and programs for research and experimentation with MMORPG software.

⚠️ WARNING: Gophercraft is experimental and prone to all sorts of game-ruining exploits. Don't use it yet for anything serious yet.

Read here for more information

Server setup/installation (Linux)

# Install packages
sudo apt install git golang mariadb-server

git clone https://github.com/Gophercraft/core gophercraft; cd gophercraft

# Install Gophercraft Core
go install github.com/Gophercraft/core/cmd/gophercraft_wiz
go install github.com/Gophercraft/core/cmd/gophercraft_home
go install github.com/Gophercraft/core/cmd/gophercraft_world

# Generate configuration files and create databases with the Gophercraft Wizard
gophercraft_wiz

# You can edit your configurations in ~/.local/Gophercraft/Home/Home.txt
# and in ~/.local/Gophercraft/<worldserver folder>/World.txt
gophercraft_home

# in a different command prompt
# launch worldserver
gophercraft_world <Name of server>

home server

The center of a Gophercraft network is the Home server.

The home server acts as a central authority in a Gophercraft network, similar to the MaNGOS "realmd".

Upon creating new World config, an ECDSA keypair is generated. The Home server associates this public key with a new Realm ID.

Now, the world server can post its info back to Home, and that will update the realm list. Hooray!

Tip: Set OpenRegistration to true in your Home.txt if you wish to allow anybody to register a world server.

world server (or realm server)

The world server contains the in-game experience. Players connect to it with the IP address posted by the registered world server.

It aims to be highly extensible through the use of datapacks and Go plugins.

Directories

Path Synopsis
generated by protoc-gen-gcraft : DO NOT EDIT
generated by protoc-gen-gcraft : DO NOT EDIT
cmd
gcraft_stringer
Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.
Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.
protoc-gen-gcraft
protoc-gen-go is a plugin for the Google protocol buffer compiler to generate Go code.
protoc-gen-go is a plugin for the Google protocol buffer compiler to generate Go code.
protoc-gen-gcraft/generator
The code generator for the plugin for the Google protocol buffer compiler.
The code generator for the plugin for the Google protocol buffer compiler.
protoc-gen-gcraft/generator/internal/remap
Package remap handles tracking the locations of Go tokens in a source text across a rewrite by the Go formatter.
Package remap handles tracking the locations of Go tokens in a source text across a rewrite by the Go formatter.
arc4
Package arc4 provides multiple implementations of RC4-based socket encryption methods.
Package arc4 provides multiple implementations of RC4-based socket encryption methods.
srp
Package datapack allows users to extend Gophercraft with ease.
Package datapack allows users to extend Gophercraft with ease.
format
blp
chunked
Package chunked implements RIFF-like encoding used in the WDT and ADT terrain formats
Package chunked implements RIFF-like encoding used in the WDT and ADT terrain formats
content
Package content offers a simplified API for accessing game data archives
Package content offers a simplified API for accessing game data archives
dbc
dbc/dbdefs
Code generated by gcraft_packdbdefs.
Code generated by gcraft_packdbdefs.
mpq
Package mpq allows the reading of compressed data from MPQ archives.
Package mpq allows the reading of compressed data from MPQ archives.
ngdp/ccfg
Package ccfg handles CASC and NGDP config text files this package shouldn't be used for general text encoding
Package ccfg handles CASC and NGDP config text files this package shouldn't be used for general text encoding
pkzip
Package pkzip implements a pure Go decoder for the PKWARE compression algorithm
Package pkzip implements a pure Go decoder for the PKWARE compression algorithm
replay
Package replay will provide utilities for recording and playing back game logs
Package replay will provide utilities for recording and playing back game logs
terrain
Package terrain implements decoders for the WDT and ADT terrain formats.
Package terrain implements decoders for the WDT and ADT terrain formats.
Package guid stores the GUID or (Globally Unique Identifier), a 128-bit data type which can contain a type specifier, a server ID, and a global counter.
Package guid stores the GUID or (Globally Unique Identifier), a 128-bit data type which can contain a type specifier, a server ID, and a global counter.
Package home implements the behavior of a Gophercraft home server
Package home implements the behavior of a Gophercraft home server
multiproto
package multiproto allows multiple protocols to be interpreted on a single socket, by receiving a small segment of bytes
package multiproto allows multiple protocols to be interpreted on a single socket, by receiving a small segment of bytes
Internationalization
Internationalization
chat
package chat contains packets relating to the in-game chatbox feature.
package chat contains packets relating to the in-game chatbox feature.
economy
Package economy provides structures for managing money and auctions.
Package economy provides structures for managing money and auctions.
update
Package update provides functions for serializing and deserializing SMSG_UPDATE_OBJECT.
Package update provides functions for serializing and deserializing SMSG_UPDATE_OBJECT.
update/d12340
Descriptor module for version 12340 3.3.5a (WotLK)
Descriptor module for version 12340 3.3.5a (WotLK)
update/d3368
Descriptor module for version 3368 (Alpha)
Descriptor module for version 3368 (Alpha)
update/d5875
Descriptor module for protocol 5875 1.12.1 (Vanilla)
Descriptor module for protocol 5875 1.12.1 (Vanilla)
update/d8606
Descriptor module for version 8606 2.4.3 (TBC)
Descriptor module for version 8606 2.4.3 (TBC)
update/descriptorsupport
This package imports all the official object update descriptors.
This package imports all the official object update descriptors.
xp
ai
randomness
randomness provides pseudo-random utilities for in-game use.
randomness provides pseudo-random utilities for in-game use.
wdb
Package wdb contains the realm databases.
Package wdb contains the realm databases.
wdb/models
package realm/wdb/models Contains models for game data, type enums, and conversion functions
package realm/wdb/models Contains models for game data, type enums, and conversion functions
worldserver
Package worldserver is the main ent
Package worldserver is the main ent
Package tempest contains 3D models and formulas.
Package tempest contains 3D models and formulas.
vsn
Package vsn provides utilities for handling protocol versions, as well as Gophercraft software versions.
Package vsn provides utilities for handling protocol versions, as well as Gophercraft software versions.
cli

Jump to

Keyboard shortcuts

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