wiki:Development/PlugIns

Version 1 (modified by akempgen, 14 years ago) (diff)

--

TracNav(Development)? This is part of the Development Documentation Project, please help document Colloquy if you know anything that would be relevant here for other users to know about.

Writing PlugIns for Colloquy

Colloquy opens up a lot of hooks to plugin developers to provide additional functionality or process chat messages. Plugins can be written in Objective-C (utilizing Cocoa), F-Script or AppleScript. Most hooks exist in all plugin types, but more advanced plugins can be written with Cocoa and F-Script.

Cocoa

To develop Cocoa PlugIns, you will need:

  • Apple's Xcode (Project Builder is no longer supported).
  • Colloquy Headers from the SDK (or fresh from the Subversion Repository).
  • Reasonably good knowledge of programming in general, and Objective-C utilizing the Cocoa frameworks. This is not for beginners!

Read more…?

F-Script

To develop F-Script PlugIns, you will need:

  • A plain text editor (TextEdit is fine in plain-text mode).
  • The F-Script framework (available from the F-Script site).
  • The latest list of block names Colloquy looks for (available in the Colloquy SDK F-Script template).
  • Reasonably good knowledge of F-Script, Colloquy classes and utilizing the Cocoa frameworks.

Read more…

AppleScript

To develop AppleScript PlugIns, you will need:

  • Apple's Script Editor.
  • Colloquy's Scripting Dictionary (available from within Script Editor).
  • Reasonably good knowledge of AppleScript.

Read more…

Python

-

Read more…


PlugIns can be installed in one of the following places:

~/Library/Application Support/Colloquy/PlugIns
/Library/Application Support/Colloquy/PlugIns
/Network/Library/Application Support/Colloquy/PlugIns

The current SDK can be downloaded here and includes examples and headers you will need to get started.

The Colloquy plugin system is constantly evolving as areas are highlighted that need to be addressed to add more flexibility. With the current system, it's possible to create a wide range of plugins. However, if you start writing a plugin and find you are unable to do exactly what you would like, just let me know.