Hoşgeldin Misafir

Standart UnrealIRCD 3x Modül Yapısı - Ders - 1 -

Re-Start

Re-Start

Moderatör
MĂRĂCINENI – Argeșelu
11 Ara 2017
2,277 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:
Merhaba Arkadaşlar,

Her Hafta UnrealIRCD Modül Api Yapısını Kullanarak Elimden Geldigince Sıfırdan Modul Yapmasini ve Derlemesini Göstermek İstiyorum...

Konu: Modul Oluşturma
Ders: 1. Seviye

Gerekli Programlar: Dev-C++ veya Notepad++

Ben Şahsen Dev-C++ Kullaniyorum


Gerekli Kütüphaneler
Kod:
#include "config.h"
#include "struct.h"
#include "common.h"
#include "sys.h"
#include "numeric.h"
#include "msg.h"
#include "channel.h"
#include <time.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#include <io.h>
#endif
#include <fcntl.h>
#include "h.h"
#include "proto.h"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif

Modülümüzü yazmadan önce yukarda belirtilen kütüphaneleri en üst satira eklememiz gerekmektedir ve daha sonra modülün olmazsa olmazlari

Modül Başlıgı (Module Header)

Örnek Bir Başlık Yapalım..

Kod:
ModuleHeader MOD_HEADER(m_ilkmodulum)
  = {
    "m_ilkmodulum",    /* [COLOR="red"]Modülün adı[/COLOR] */
    "v1", /* [COLOR="red"]Versiyon[/COLOR] */
    "Bu Benim İlk Modül Denemem", /* [COLOR="red"]Modülün kısa açıklaması[/COLOR] */
    "3.2-b8-1",
    NULL 
    };

Yukarda görüldügü gibi modülümüzün ismini verip ve gerekli açıklayamı yaptık daha sonra ikinci kısma geçiyoruz

Modül Başlangıcı (MOD_INIT)

Kod:
DLLFUNC int MOD_INIT(m_ilkmodulum)(ModuleInfo *modinfo)
{
    
    MARK_AS_OFFICIAL_MODULE(modinfo); //[COLOR="red"] Modülü UnrealIRCD işle[/COLOR]
    return MOD_SUCCESS; // [COLOR="red"]Modül Yüklenmesi Başarılı Oldumu Çalıştır[/COLOR]
}

Ve Diger Gerekli Kısım Olan Sunucu %100 hazır olduğunda ilk çalıştırılacak Apimiz

Modül Yükü (MOD_LOAD)

Kod:
DLLFUNC int MOD_LOAD(m_ilkmodulum)(int module_load)
{
    return MOD_SUCCESS;
}

Modül boşken çağrılacak Apimiz

Modül Boşaltma (MOD_UNLOAD)

Kod:
DLLFUNC int MOD_UNLOAD(m_ilkmodulum)(int module_unload)
{

    return MOD_SUCCESS;
}

Ve İlk Modülümüzü Oluşturduk

Unreal3x src/modules/ klasoru içine atip
Unreal3x ana dizininde make custommodule MODULEFILE=m_ilkmodulum

ve unrealircd.conf içine loadmodule "src/modules/m_ilkmodulum.so";

ekliyip ./unreal rehash veya sunucuda /rehash komutunu kullandiginizda modulun hatasiz bir sekilde entregre oldugunu göreceksiniz /module komutunu kullanarak calistigini göreceksiniz

İlk Dersimizde TASLAK Modul Oluşturduk İkinci Dersimizde İşlemlere Geçecez Takip Etmeye Devam Edin