Git Product home page Git Product logo

abacura's Introduction

abacura

This is a python implmentation of a MUD client, using the textual library.

Background

I love automating my character. I love progress bars and other cool UI elements. I want to use a terminal UI to MUD.

I've used tintin++ since 1993, but I've gotten to the point where things I want to do are either too complex, or too cumbersome to maintain in tintin. I wrote tintin-helper which scratched the itch for a while, but I want to do more, and I want to enable you to as well.

This project is named after Farancia abacura, the Mud snake.

Installation

I haven't published pip packages yet, waiting on some stability.

Check out the repository and run:

virtualenv venv
source venv/bin/activate
pip install -r requirements.txt

Note: If you intend on using the dev tools, use requirements-dev.txt instead.

Launch with abacura. You can specify --config /path/to/config.file, abacura will look in ~/.abacura by default, but a config file is not required.

Usage

The app starts in the #null session. You can use @connect <name> <host> <port> to connect to a MUD, or you can define a session in ~/.abacura and use @connect <name>. For Legends of Kallisti, there is an add-on module on github at abacura-kallisti which contains more advanced features that are specific to that MUD.

Documentation

I'll be working on a user manual when i get close to a beta-quality release.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please include information about your PR.

License

Will likely be MIT

Sample configuration file (~/.abacura)

  • named sections can be used with @connect <section> to avoid typing host
  • css_path can be used to replace the default Textual CSS configuration
  • screen_class can be used to replace the default screen layout
[global]
module_paths = ["/path/to/additional/python_packages"]
#css_path = "/path/to/custom.css"

[kensho]
#screen_class = "abacura_kallisti.screens.UpsideDownScreen"
host = "kallistimud.com"
port = 4000

State of things

Working:

  • Custom per-session screen layouts
  • sessions via the @connect command (should rename to #session)
  • @config command to view config, or @config <section> to view specific section
  • scrollback
  • MSDP parsing (specific to Legends of Kallisti for complex values, view with @msdp command)
  • TOML config in ~/.abacura, but defaults if it doesn't exist
  • Commands, Triggers, Actions, Timers
  • Session PluginManager - mud- or player-specific stuff goes here

todo:

  • Per Player/Session variables
  • Persistent per-session in-game configuration and preferences
  • Many stock widgets, modal dialogs, etc
  • Trigger matching on ansi-color or plaintext
  • Websocket/REST API support
  • Logging
  • SSL support
  • GCMP and other telnet sub protocols
  • Features comparable to my other project tintin-helper
  • Custom script support

abacura's People

Contributors

perlsaiyan avatar mardanst avatar vajraccedika avatar tylert avatar dependabot[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.