Skip to content

Latency/TINTIN-.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TinTin#


A terminal screen-scraping client enhanced with features for various communication protocols such as telnet/ssh/etc. Serves as a macro pre-processor and proprietary interpreter based scripting language. Includes Peer-To-Peer chat relay.

This project is currently under construction!


  • CREATED BY: Latency McLaughlin
  • FRAMEWORK: .NET Core 2.0
  • SUPPORTS: Visual Studio, DotGNU, Rider, MonoDevelop, etc.
  • UPDATED: 10/9/2017
  • TAGS: C# .NET TinTin TinTin++ TinTin# Client Interpreter
  • VERSION: v3.0.0

Navigation


TinTin++ is a MUD client primarily written for Unix-like systems and is now available for multi-platform use. It is one of the oldest MUD clients in existence and a successor of the TINTIN(++) client.

According to its author, TINTIN stands for "The kIckiN Tickin dIkumud clieNt".

TINTIN originated as a single file containing 700 lines of C code, allowing triggers and aliases, that was posted on Usenet by Peter Unold on April 1, 1992. On October 6 1992 Peter Unold made his final release, TINTIN III, which was a much more matured and feature rich program.

In 1993 the development of TINTIN was continued by Bill Reiss who announced the release of TinTin++ v1.0 on July 3, 1993. On April 25, 1994 TinTin++ 1.5 was announced, which was a joint effort by Bill Reiss, David A. Wagner, Rob Ellsworth, and Jeremy C. Jack.

After the 1.5 release in 1994 active development came to a halt. TinTin++ 1.5 had gained significant popularity however, and being public domain this resulted in many derivative works like zMUD, yTin, Lyntin, Pueblo, WinTin95, and GGMud.

In 1998 development was continued briefly by Rob Elsworth who incorporated several patches by Sverre Normann before handing over development to Davin Chan who re-licensed the software to GNU GPL on July 12th, 2001 in his final release of TinTin++ 1.86b.

In 2004 development was continued by Igor van den Hoven.

In 2017 development was continued by Latency McLaughlin and had ported it to .NET Core in C# as a universal platform for all and a complete re-write and overhaul consoladating several systems and making things easier to use.

TinTin# is a console telnet client enhanced with features that work particularly well for playing MUDs, though it allows connecting to Linux and Bulletin Board System servers as well.

To enhance game play on MUDs, the client can create a split screen arrangement, which divides the interface into input, output, and status areas. Input handling is enhanced with readline-like input editing, macro, and alias support. Text received from the server can be highlighted or set to execute triggers written in the TINTIN scripting language, which resembles the C/C++/C#/Java programming languages.

TinTin# has various other features that are commonly found in modern MUD clients, such as automapping, MCCP, friend-to-friend messaging, logging in HTML, and a TELNET event handler.

Supported Protocols

Character Mode Directly transmit the mud client's input, required for BBSes, *NIX servers, and Roguelike MUDs.
GMCP Generic Mud Communication Protocol.
Go Ahead Allows the server to indicate the end of output for better mud client side prompt handling.
IPv6 Allows 128-bit IP addresses.
MCCP Mud Client Compression Protocol.
MSDP Mud Server Data Protocol.
MSSP Mud Server Status Protocol.
MudMaster Chat Instant messaging and file transfers over private P2P connections.
NAWS Sends the mud client's window size to the server.
Regular Expressions Use powerful Perl Compatible Regular Expressions in triggers and commands.
TELNET Connect to *NIX servers and BBSes using TELOPT negotiations.
VT100 Displays both mud client and server side text interfaces.
xterm 256 colors Highlight in 256 colors instead of the traditional 16 colors.

Program Features
Action Triggers a script when a matching line of text is found.
Alias Allows command shortcuts bundling multiple commands together.
All Execute commands across multiple sessions.
Associative Arrays Fast and flexible variable system using nested associative arrays.
Auto Mapper Creates an interactive map to help visualize and navigate the game world.
Bell Rings the terminal bell.
Buffer Manipulates the scrollback buffer.
Class Labels a set of triggers to belong to a given class which allows removing or saving them independently.
Chat Used to create peer to peer connections to other clients.
Chat_Protocol Inter-mud chat protocols.
Colors Displays the color list and attributes for the terminal.
Config Displays the environment variables used by the client and offers re-assignments to them if specified.
Control Flow Uses braces for nesting, Break, Case, Continue, Default, If, Else, Elseif, Forall, Foreach, Loop, Return, Switch, and While statements, allowing C-like programming.
Cr Carriage return.
Cursor Adds customizable input editing with macros.
Debug Enables the debugging mode giving useful information for finding bugs in your scripts.
Delay Executes a script after a set amount of seconds has passed.
Echo Echos a string verbatim.
End Terminates the process and closes all sessions.
Escape_Codes Displays the list of escape codes available.
Event Executes a script when an event occurs.
Format Formats text using a printf like syntax.
Function Executes a script and substitutes the function call with the return value.
Gag Prevents lines of text from being displayed. Alias for #substitute {message} {}
Greeting A greeting message to be specified or overridden.
Grep Searches and displays matching lines in the scrollback buffer.
Help Displays documentation for a given command or displays the list as a collection if no argument was specified.
Highlight Changes the color of incoming text.
History Buffer Stores the last commands you typed. Press UP to scroll through the list, or ctrl-r to find matches.
Ignore Toggles verbatim all the nodes associated per list type specified that were registered.
Info Displays the amount of nodes per list type registered.
Input editing Input editing and handling that is almost identical to the Linux shell.
Keypad Keypad configuration layout.
Kill Iterates the command specified and removes registered statements associated.
Line Redirects control of the output line being sent as a pre-trigger.
Lists Stores information as a list instead of as an associative array.
Log Logs incoming data as HTML, VT100, or plain text.
Macro Assigns commands to any possible key combination.
Map Used for the auto-mapper.
Math Uses 64 bit floating point arithmatic and logical expressions.
Mathexp Mathematical expressions are used for calculations and boolean if checks.
Message Toggles output being sent verbatim for individual commands.
Name Uses the session name unique to the running session as a macro which was appended to the command list. Renders context switching or indirect session command execution.
Nop No operation statement.
OSInfo Retrieves operating system information.
Parse Works similarly to a LINQ aggregate statement.
Path Records movements and creates a list of commands to move from one location to another.
Pathdir Bitvectored cardinal direction configuration macros.
Prompt Captures lines and places them on the split line for the creation of status bars.
Session Opens one or multiple sessions to connect to a server.
Read Reads in a script file. Script code can be indented and spaced out over several lines.
Regexp Used to compare the given string to the given regular expression.
Repeat Repeats the same command multiple times.
Replace Searchs the variable for the given string in oldtext and replace it with the string given in newtext.
Run Runs a given application, such as ssh, or sftp, with access to all of TinTin++'s scripting capabilities.
Scan Reads in an ANSI or plain text log file so you can view it in the scrollback buffer.
Script Runs the given script written in bash, lua, perl, php, python, ruby, etc, storing the output as a variable or processing it as a command.
Scrollback Stores up to one million lines of text which can be viewed using page-up/down.
Send Sends the text directly to the terminal.
Showme Displays the registered statements or greps those when argument is specified.
Snoop Displays output from multiple sessions active uniquely specified.
Speedwalk Builds an array of cardinal directions specified with semi-colon delimiter and executes the unrolling.
Split Screen Splits the screen in an input, output, and status area.
Substitute Matches text or patterns and replaces them with a substitute text.
Suspend Suspends the process to give control back to the shell.
Switchboard Iterates the commands registered, including macros auto-generated.
System Execute commands from the shell.
Tab Completion Recalls hard to spell words by typing the first couple of letters and pressing tab till the right match shows up. By default the scrollback buffer is used for tabbing.
Textin Reads in a script file to be ammended globally.
Ticker Asynchronous trigger with timeout to execute statements.
UnTab Removes the completion word from the tab completion list.
Variable Variables are global for each session and can be accessed by adding a $ before the variable name.
Wildcards Used for string match searches using regular expressions.
Write Write out scripts that are automatically indented, making scripts easy to read and debug.
Writebuffer Writes the scrollback buffer to file.
Zap Closes the active session. If no session is active it will terminate the program.

Shortcut Guide

Shortcut Comment
Ctrl+A / HOME Beginning of line
Ctrl+B / Backward one character
Ctrl+C Send EOF
Ctrl+E / END End of line
Ctrl+F / Forward one character
Ctrl+H / Backspace Delete previous character
Tab Command line completion
Shift+Tab Backwards command line completion
Ctrl+J / Enter Line feed
Ctrl+K Cut text to the end of line
Ctrl+L Clear line
Ctrl+M Same as Enter key
Ctrl+N / Forward in history
Ctrl+P / Backward in history
Ctrl+U Cut text to the start of line
Ctrl+W Cut previous word
Backspace Delete previous character
Delete Delete succeeding character

This library can be installed using NuGet:

Name:    TinTin#
Source:  nuget.org

GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007

About

TINTIN# client interpreter for screen scraping network communications.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published