Pascal Plugin Interface fr
Mots clés : xchat_plugins documentation française xchat pascal greffon plugin interface pascal xchat programmation pascal library plugin_sample

Interface Pascal pour Xchat

Introduction

Ceci est l'interface Pascal pour X-Chat. Sa conception n'est rien d'autre qu'un wrapper vers lʼAPI C Les scripts écrits en utilisant cette unité fonctionneront donc avec n'importe quelle version de xchat et seule la documentation concernant les greffons C s'applique sans modification autreque celle concernant les conventions du language.

Pour les impatients : Les greffons X-CXhat sont des bibliotèques (généralement .so ou .dll) et ne nécessitent aucune dépendance.
Sur tout OS supporté (ex. : Linux OSx Solaris Win32 et sans doute WIN64) utiliser la commande :

	fpc myplugin.pas

C'est suffisant Voir lʼexemple.

library plugin_sample;
uses
  xchat_plugins;
 
{$IFDEF WIN32}
{$i xchat_plugins_macros.i}
{$ENDIF}
 
const
 
 PNAME    = 'AutoOp';
 PDESC    = 'Auto Ops anyone that joins';
 PVERSION = '0.1';
 
var
 
  ph : xchat_plugin;            // handle du greffon
 
const
 
  enable : boolean = true;      // Etat du greffon
 
function join_cb(word: array of pchar; userdata : pointer): longint; cdecl;
begin
  if (enable) then              // Rend Op QUICONQUE rejoint le salon
    xchat_commandf(ph, 'OP %s', word[1]);
   // word[1] est le pseudo, comme dans paramétres->Avancé->Fenêtre des événements texte de xchat
 
  exit(XCHAT_EAT_NONE);         // ne pas avaler cet événement, xchat a besoin de le voir!
end;
 
function autooptoggle_cb(word : array of pchar; word_eol : array of pchar; userdata: pointer):longint;cdecl;
begin
  enable := not enable;
  if (enable) then
    xchat_print(ph, 'AutoOping now enabled!\n')
  else
    xchat_print(ph, 'AutoOping now disabled!\n');
 
  exit(XCHAT_EAT_ALL);          // avaler cette commande de manière à ce que xchat et les autres greffons ne puissent pas la traiter
end;
 
procedure xchat_plugin_get_info(var name, desc, version : pchar; var reserved : pointer) cdecl;
begin
   name := PNAME;
   desc := PDESC;
   version := PVERSION;
end;
 
function xchat_plugin_init( plugin_handle  : xchat_plugin;
                        var plugin_name    : pchar;
                        var plugin_desc    : pchar;
                        var plugin_version : pchar;
                            arg            : pointer) : longint; cdecl;
begin
   // nous avons besoin de le sauvegarder pour l'utiliser avec les fonctions « xchat_* »
   ph := plugin_handle;
 
   // informer xchat de nos infos
   plugin_name := PNAME;
   plugin_desc := PDESC;
   plugin_version := PVERSION;
 
   xchat_hook_command(ph, 'AutoOpToggle', XCHAT_PRI_NORM, @autooptoggle_cb,
                          'Usage: AUTOOPTOGGLE, Turns OFF/ON Auto Oping', nil);
   xchat_hook_print(ph, 'Join', XCHAT_PRI_NORM, @join_cb, nil);
 
   xchat_print(ph, 'AutoOpPlugin loaded successfully!\n');
 
   exit(XCHAT_SUCCESS);         // return 1 en cas de succès
end;
 
end.

L'exemple est également accessible ici : sample_plugin.pas.

Contact Information

Contact Nicotux à l'adresse <nicotux@xchatfr.org> pour les questions, commentaires et corrections concernant cette page ou l'interface Pascal elle même.
Documentation ; FR / EN
nous sommes également accessibles sur le serveur irc de www.xchatfr.org (en savoir plus).

Propriété intellectuelle - Sitemap - Ring - lusidoc - EuropNet - Fantasya - Andromede - Chat-FR - X Chat FR - Chat Gratuit - biat.ch

trollab Creative Commons Debian Powered Apache Powered PHP Powered Mysql Powered