Internet Chess club on Facebook Internet Chess club on Twitter Internet Chess club on Google+ Internet Chess club on YouTube Internet Chess club on LinkedIn Subscribe to Internet Chess Club RSS feed

PLUGINS

***** Plugins *****

Contents:
1. What are plugins?
2. What plugins are available, and where can I get them?
3. How do I run plugins?
4. Security
5. Writing a plugin

---------------------------------------------------------

1. What are plugins?

Blitzin 2, the ICC's interface software for Windows, supports
helper applications called "plugins".  A plugin is a separate program
that is launched by Blitzin and communicates with Blitzin, but
otherwise runs independently of it.

Plugins are intended to provide extra functionality that can
be added to Blitzin by third-party programmers.

---------------------------------------------------------

2. What plugins are available, and where can I get them?

Plugins are available at

http://download.chessclub.com/blitzin2/plugins/

Currently, there are six plugins available in that directory:

  SpeakMove, which does voice synthesis for Blitzin.  Author: Slimemold.
  See http://download.chessclub.com/blitzin2/plugins/SpeakMove
  Very cool.  You'll need Blitzin 2.30 or higher to use this during
  a rated game.  Current version is 1.2.

  Logit, which logs games in PGN form, including variations and
  commentary.  Author: fishbait.  Current is 1.3 beta, no installer.

  WoodIn, which gets moves from the DGT Electronic Board.  Author:
  hajewiet@home.nl.  See also http://www.dgtprojects.com.  Current
  version is 3.00, released Feb 2004.  Very cool!  Best for playing
  slower games.  Also has voice synthesis for moves, and can be used
  for that in place of SpeakMove even if you don't have the DGT board.
  You'll need Blitzin 2.30 or higher to use WoodIn during a rated game.

  Broadcaster, which gets moves from a PGN file, and updates an
  examined game.  E.g. this can be used with the DGT Electronic Board
  in conjunction with the Lost Boys software.  Broadcaster is a
  beta release.  Author: Slimemold.

  ExtraButtons, which provides an extra set of user-configurable
  buttons, which appear as a floating toolbar.  Author: Slimemold.

  BettingBot Better, which makes it easy to bet chips on players
  in tournaments etc.  See "help BettingBot" for a description of the
  betting game, but note that you don't need to learn the commands
  for it if you use this plugin to place your bets instead.
  Plugin author: Kewlper.  BettingBot author: Kiebitz.

More plugins available elsewhere:

  Two plugins by Mike Adams can be downloaded at
  http://www.lanternchess.com/blitzinplugins/ - Observer1 allows you to follow
  multiple people who are on your gnotify list or in a group like GM.
  You can specify how many boards you want to open, or a specific time
  control you want to follow like 3 0.  
  Autogame will allow users to send commands at the start or end of a game. 
  Users can alias these commands to send specific greetings after a game 
  that vary by result of win, loss or draw or do something at game start. 
  Autogame can also log all games the user observes to PGN and Autogame 
  can log chat. There is also a noidle feature and Autogame can send 
  the command iloggedon each time the user logs on to be aliased to do something.

  Plstat, which keeps track of your results and tells you how you
  scored against other players.  You can read about it and download
  a copy at http://bgoeke.de/.  Author: fledermaus

All plugins are provided as-is, with no warranty of any kind.

---------------------------------------------------------

3. How do I run plugins?

Blitzin must know at run-time which plugins to run.  Thus, it
is necessary to specify the plugins on the Blitzin "command line".
Some plugins come with installers which create an icon for you
that will run Blitzin + the plugin.  If not (or if you want to
run two or more plugins simultaneously), then you'll want to make
such an icon yourself.  Here's how:

a. Create a copy of your Blitzin 2 icon: right-click on the icon
and select Copy, then right-click on the desktop and select Paste.
If you wish, you can also rename this new icon by right-clicking
on it and selecting Rename.

b. Edit the icon's command line: right-click on the new icon,
select Properties, click on the Shortcut tab, and go to the
textfield labelled Target.

c. Specify the filename of the plugin: in the Target textfield,
after c:\blitzin2\Blitzin2.exe  (or similar), add a space, then
add /plugin=filename.exe, or if there are spaces in the filename,
add /plugin="file name.exe".  This assumes the plugin is in the
same directory as Blitzin 2; if not, you need to specify the full
path as well, for example /plugin=c:\blitzin2\myplugins\filename.exe.

---------------------------------------------------------

4. Security

A plugin, like all applications, is capable of doing mean and
nasty things to your system.  Do not run a plugin unless you
trust the source.

IMPORTANT:
On the other side of the security issue, Blitzin does not
"trust" just any plugin.  To prevent computer cheating all
all communication from Blitzin to a plugin is suspended during
a rated game, unless you have a (C) label on your account.

BlitzIn 2.30+ includes the ability to have "trusted" plugins,
that *can* receive information while playing a rated game.  This
mechanism is used to allow the SpeakMove plugin to vocalize
moves, tells, and kibitzes while playing.  SpeakMove is
available at http://download.chessclub.com/blitzin2/plugins/SpeakMove.
WoodIn is also trusted.

---------------------------------------------------------

5. Writing a plugin

A "Plugin Development Kit" is available at the plugin ftp site
(http://download.chessclub.com/blitzin2/plugins/).
The sample code and communication code in the devkit is written
in Microsoft Visual C++ (version 6).  I doubt it is very portable
to non-C languages, although you are welcome to try.  If there is
sufficient demand, I might compile the communication code as a
DLL, for easier access by languages like Visual Basic.

Currently, the devkit simply contains example VC++ code for
2 simple plugins.  To write your own plugin, you will need
to copy IPCConduit.* and PluginUtil.* into your own project.
Read PluginUtil.h for internal documentation.  And see
the main .cpp files in the two samples for examples of use.

Writing a plugin requires some familiarity with ICC's
"datagram" protocol for server-to-client communication.  This
protocol is described at length in

http://download.chessclub.com.s3.amazonaws.com/formats/formats.txt

Please do not ask us to solve your programming problems.  Any
questions can be asked to channel 126 (the programming channel).
Questions about formats.txt or other ICC-specific issues can
be addressed to Metamorphy, although you might try channel 2
or channel 126 first.

See also: Blitzin, programmers