Software >
A telnet client.
It's Java, but explicitly uses Ruby as its internal language.
It works fairly well for what it is.. but it lacks some basic functionality, namely running a startup script and allowing scripts to set the internal state of the program. So I'm forced to manually load a savefile on startup, and forced to manually connect to a MUD.
Download the jar and run it like:
\java -jar thebean.jar
2006-03-25 ∞
I played around with some more Ruby-related telnet client stuff. I landed on The Bean and took it more seriously now that it's been updated. I had my worries about the project being stale.
Now unfortunately this is a Java application, which automatically rules out anything spectacular without drastic consequences. Everything Java is absolute garbage without exception. Even the very best applications I've seen have serious crippling downsides.
However, The Bean uses Ruby underneath. I played around and actually did some scripting, but the client itself is way too immature for the kind of use I'd put it through. Unfortunate, really.
--
These don't allow options, they just perform the action / pull open the dialogue box:
-
#settings
#style
and#preferences
don't work.
-
#close
#quit
doesn't work.
-
#zap
- not sure what this does
#connect <host> <port>
-
#reconnect
- ignores parameters
-
#save
- ignores parameters?
- note to self: try using this the same way as
#{load "/path/to/file"}
.
-
#saveas
- ignores parameters?
v1.0913 ∞
- Questions:
-
How can variables be saved between sessions?
- Is there an easy way, or should I figure out some ruby magic to do it? I could dump stuff to a file and re-load it later on somehow. I see that #load does stuff..
--#{load "/path/to/file"}
-- However, this fails to work with longer directory chains such as#{load "/home/user/working/mud/thebean/settings2"}
or perhaps it won't work across a symlink?
- Is there an easy way, or should I figure out some ruby magic to do it? I could dump stuff to a file and re-load it later on somehow. I see that #load does stuff..
-
How can I get access to the command history?
- Bugs:
-
Pressing
escape
on the connection dialogue (control-o
) is the same as clickingok
- Pressing
cancel
connects.
- Pressing
-
Pressing
escape
on the load dialogue (control-l
) is the same as clickingok
- Pressing
cancel
loads the last loaded file.
- Pressing
- Feature requests:
- Default window size.
- Launch a default script on startup.
- Save a connections list / provide a mud "bookmark" facility, to make it easier to reconnect to a mud.
- Store all information in plain text format.
- Be able to modify internal settings via scripting. i.e. anything which can be stored in a savefile should also be settable via scripting.
- File saving does not respect the home folder:
~
- Be able to clear the inputline after pressing enter.
- left-clicking once should refocus on the input area
-
middle-clicking in the body of the page should paste into the world.
- To do:
- Puts/print print to the local console.. They should be hacked to output to the world.
- Figure out how to save and load variables from a file. (i.e. "session data")
- Figure out how to connect via the commandline.
-
Figure out how to specify an on-startup script.
- weird:
-
Fonts don't look quite right. Presumably java does things differently. If so, this confirms that java also sucks with fonts.
- Courier 10 at size 16 looks ok. It's the equivalent of courier 10 at 12 everywhere else.
Settings ∞
I learned that the settings file is a gzipped XML document. This means that it's hackable.
Scripting ∞
#{"send this output"} #{"say hello world"} #{if 2 < 3; "say hello"; end}
Set a variable:
#{a=2;''} a => 2 say #{a} => say 2
You type | Sent to the MUD |
---|---|
say hello |
say hello |
say #{1+1} |
say 2 |
say #{a=1;a} |
say 1 |
#{a=1+1;''} |
(nothing is sent) |
#{$session.processUserInput('hello');''} |
hello |
#{if 2 < 3; "say hello"; end} |
say hello |
#{if $1.to_i < $2.to_i * 0.9; "cast heal"; end} |
cast heal (if $1 < 90% of $2) |
ported
date correct