gophercraft

module
v0.0.0-...-382259f Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2021 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.

Gophercraft aims to target many different protocol versions through an all-in-one approach, instead of trying support every protocol version with its own Git branch.

At the moment it is functionally only a sandbox, but our hope is to extend its functionality further.

What works so far in Gophercraft Core:

  • Registration
  • Authentication
  • Server selection
  • Creating characters
  • Moving around in the world (3368, 5875, 8606)
  • Authentication and realm list server
  • Authentication protocol client
  • Game server
  • Basic client connection library
  • HTTP JSON API for facilitating registration
  • Support for Windows, Linux and Mac OS X
  • Formatting/conversion tools written in pure Go
  • Integrated mod manager

: Gophercraft is currently in development and extremely unstable: expect crashes, bugs, a general lack of features and a frequently changing API.

⚠️ WARNING: Gophercraft is currently prone to all sorts of game-ruining exploits, and requires additional hardening before you use it for your own project.

Don't hesitate to report errors or ask for clarification in the Discord!

Deployment

This diagram shows an example configuration of Gophercraft:

network diagram

Server setup/installation

MariaDB Server is recommended for the best results.

# Install packages
sudo apt-get install git golang mariadb-server

# Install Gophercraft Core
go get -u -v github.com/superp00t/gophercraft/cmd/gcraft_wizard
go get -u -v github.com/superp00t/gophercraft/cmd/gcraft_core_auth
go get -u -v github.com/superp00t/gophercraft/cmd/gcraft_core_world

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

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

# launch worldserver
gcraft_core_world

Directories

Path Synopsis
generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT
generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT generated by protoc-gen-gcraft : DO NOT EDIT 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.
csv
Package econ provides economy-related structs and functions.
Package econ provides economy-related structs and functions.
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
Package dbc implements a reflection-based decoder for multiple versions of the DBC/DB2 format
Package dbc implements a reflection-based decoder for multiple versions of the DBC/DB2 format
mpq
Package mpq allows the reading of compressed data from MPQ archives.
Package mpq allows the reading of compressed data from MPQ archives.
ngdp/casc
Package casc [soon™] implements the Content-Addressable Storage Container (CASC) format.
Package casc [soon™] implements the Content-Addressable Storage Container (CASC) format.
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
terrain
Package terrain implements decoders for the WDT and ADT terrain formats.
Package terrain implements decoders for the WDT and ADT terrain formats.
Package gcore implements the main functionality of the Gophercraft Core Authserver.
Package gcore implements the main functionality of the Gophercraft Core Authserver.
sys
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.
chat
package chat contains packets relating to the in-game chatbox feature.
package chat contains packets relating to the in-game chatbox feature.
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 object update descriptors so you can use multiple versions without recompiling.
This package imports object update descriptors so you can use multiple versions without recompiling.
wdb
Package wdb contains the Worldserver databases.
Package wdb contains the Worldserver databases.
worldserver
Package worldserver is the main ent
Package worldserver is the main ent
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.

Jump to

Keyboard shortcuts

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