go-teeworlds-protocol/README.md
2024-06-23 17:00:39 +08:00

1.8 KiB

go-teeworlds-protocol

Early and active development! Still undergoing major refactors!

WARNING! NOT READY TO BE USED YET!

Apis might change. Packages and repository might be renamed!

A client side network protocol implementation of the game teeworlds.

low level api for power users

The packages chunk7, messages7, network7, packer, protocol7 Implement the low level 0.7 teeworlds protocol. Use them if you want to build something advanced such as a custom proxy.

high level api for ease of use

The package teeworlds7 implements a high level client library. Designed for ease of use.

package main

import (
	"fmt"
	"os"
	"time"

	"github.com/teeworlds-go/go-teeworlds-protocol/messages7"
	"github.com/teeworlds-go/go-teeworlds-protocol/teeworlds7"
)

func main() {
	client := teeworlds7.Client{Name: "nameless tee"}
	
	// Register your callback for incoming chat messages
	// For a full list of all callbacks see: https://github.com/teeworlds-go/go-teeworlds-protocol/tree/master/teeworlds7/user_hooks.go
	client.OnChat(func(msg *messages7.SvChat, defaultAction teeworlds7.DefaultAction) {
		// the default action prints the chat message to the console
		// if this is not called and you don't print it your self the chat will not be visible
		defaultAction()

		if msg.Message == "!ping" {
			// Send reply in chat using the SendChat() action
			// For a full list of all actions see: https://github.com/teeworlds-go/go-teeworlds-protocol/tree/master/teeworlds7/user_actions.go
			client.SendChat("pong")
		}
	})

	client.Connect("127.0.0.1", 8303)
}

Example usages:

  • client_verbose a verbose client show casing the easy to use high level api

tests

go test ./...

projects using go-teeworlds-protocol