Pascal Plugin Interface fr

Interface Pascal pour Xchat

  1. Introduction
  2. Exemple
  3. Contact Information

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 autre que celle concernant les conventions du language.

Pour les impatients : Les greffons X-CXhat sont des bibliothè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.

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 xchat.trollab.org (en savoir plus).

Propriété intellectuelle - Ring - XChat FR

trollab Creative Commons Debian Powered Apache Powered PHP Powered Mysql Powered