Skip to main content

TCPR library for King Arthur's Gold

Project description

kagtcprlib · AUR Build Status

A TCPR library for King Arthur's Gold, aiming to provide a simple solution for writing interesting TCPR mods.

  • Supports async connections to multiple KAG servers.

The basic design of the library is that the user creates a Client instance:

client = Client(nickname="playercount", host="localhost", port=50301, rcon_password="ilovetrenchrun")

Then adds some handlers to it:

client.add_handler(PingHandler())

Then calls the client's connect method:

client.connect()

Whenever the client receives a line of text from KAG, all matching handlers will be run. If any handler returns some text, it will be sent back to KAG as an RCON command.

What each handler does is totally up to the user. This could involve creating entries in a database, posting to a web API, or just logging to a file.

Example

import logging
import kagtcprlib
from kagtcprlib.handlers import BaseHandler

class PingHandler(BaseHandler):
    """Respond to 'ping' from KAG with code to print 'pong' in chat.
    """
    def handle(self, client_nickname, timestamp, content):
        if content == "ping":
            logging.info("Got ping from %s, sending pong.", client_nickname)
            return "getNet().server_SendMsg('pong');"


if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO)
    client = kagtcprlib.Client(nickname="playercount", host="localhost", port=50301,
                               rcon_password="ilovetrenchrun")

    client.add_handler(PingHandler())
    client.connect_forever()

For more examples see the examples/ folder.

Contributing

You are welcome to contribute to this project.

Please ensure your feature branch is based on the master branch and is named like feature-foo-bar.

You must run pylint over your code and ensure it receives at least a score of 9.

Docs

https://benjamingorman.github.io/kagtcprlib/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kagtcprlib-0.2.1.tar.gz (244.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kagtcprlib-0.2.1-py3-none-any.whl (248.5 kB view details)

Uploaded Python 3

File details

Details for the file kagtcprlib-0.2.1.tar.gz.

File metadata

  • Download URL: kagtcprlib-0.2.1.tar.gz
  • Upload date:
  • Size: 244.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for kagtcprlib-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d1074fc01ac062e9932b9c3256935fbf8316f56fd3ee99c1ad3b530c67e0309e
MD5 e41ec98b980ffca49366c2a8eff51e82
BLAKE2b-256 e663cb68ba742e2e88dbc04e7ee6cbcadd16463b12e83dff3a2360d87a620138

See more details on using hashes here.

File details

Details for the file kagtcprlib-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: kagtcprlib-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 248.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.5

File hashes

Hashes for kagtcprlib-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b1e3623640b73bb587aad9fc080e35914aa0e38de77a9460c09e0cf78d7596a9
MD5 8f22b2a80fafc69681e86e07c1c132a2
BLAKE2b-256 d9b896d1e05b1abf9203238412c21f0518395644f63f70ebf1d2efbd05fa757f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page