IRCALEM.Com Genel Forum, IRC Forumu IF - Genel IRCd (Sunucu, Servis, Botlar, Korumalar) UnrealIRCd Unreal3.2.x - Modülleri Unreal !sure Bağlantı süresi gösterme
irc

Unreal !sure Bağlantı süresi gösterme
Aytac
Unreal !sure Bağlantı süresi gösterme
0
400
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Etiketler
bağlantı süresi unreal gösterme sure

Bu konuyu görüntüleyen kullanıcı(lar):1 Ziyaretçi
Şuan Offine!
Şuan Offine!
Aytac Administrator
********
Proje Sorumlusu

  • Üyelik tarihi    04.02.2020
  • Konum  78 Karabük
  • Konular351
  • Mesajlar364
  • Verilen beğeni8 in 5 posts
  • Alınan beğeni6
  • Rep puanı 6

* Bağlantı süresi modülü - Yazan : SaW (Nebiliymben)
* __________________________________________________ ___
* Kullanim: !sure <nick> (kanalda)
* Belirtilen nickin sunucuya giris ya da çıkış zamanını
* ve ne kadar süredir bagli olduğunu gosterir.
* Verilen nickin en son ne zaman sunucuda bulunduğunu
* göstermesi yönüyle "seen" özelliği de taşımaktadır.
* nick belirtilmemişse sorgulamayı yapan kişinin
* nickini esas alır.
* Unreal3.2.7 ve Unreal3.2.6'da test edilmiştir.
* Bu beta sürümdur. Herhangi bir hatayla
* karşılaşırsaniz bildiriniz.

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

Sadece Network ve Root adminlere göre !sure komutu nasıl ayarlıyabiliriz?

Kod :
/* remote ve diger serverlar etkilenmesin */
if (!MyClient(sptr))
return text;

ALTINA,
Kod :
   
if (!IsNetAdmin(sptr) && !IsRootAdmin(sptr)) {
sendto_channel_butone(NULL, &me, chptr, ":%s PRIVMSG %s :%s, '%s' komutunu kullanmaya yetkiniz yok.",
mesajci, chptr->chname, sptr->name, sure);
return text;
}
EKLE, komutu kullanmaya çalışan herhangi bir kullanıcıya iletilecek olan mesajda, aşağıdaki gibi olacaktır.

<Aytac> !sure
<süre.bilgisi> Aytac, '!sure' komutunu kullanmaya yetkiniz yok.

Kod :
/*
*   =====================================================
*   Bağlantı süresi modülü - Yazan : SaW (Nebiliymben)
*   _____________________________________________________
*   Kullanim: !sure <nick> (kanalda)
*   Belirtilen nickin sunucuya giris ya da çıkış zamanını
*   ve ne kadar süredir bagli olduğunu gosterir.
*   Verilen nickin en son ne zaman sunucuda bulunduğunu
*   göstermesi yönüyle "seen" özelliği de taşımaktadır.
*   nick belirtilmemişse sorgulamayı yapan kişinin
*   nickini esas alır.
*   Unreal3.2.7 ve Unreal3.2.6'da test edilmiştir.
*   Bu beta sürümdur. Herhangi bir hatayla
*   karşılaşırsaniz bildiriniz.
*   e-mail: [email protected]
*   =====================================================
*/

#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"
#ifdef STRIPBADWORDS
#include "badwords.h"
#endif
#ifdef _WIN32
#include "version.h"
#endif
/* Komut adı */
#define sure "!sure"
/*
* Kanala bilgi mesajı gönderecek nick.
* Şuanki hali renkli bir nicktir.
* Dilerseniz renksiz bir nick yapabilirsiniz.
*/
#define mesajci "6süre.bilgisi"
DLLFUNC char *sure_chanmsg(aClient *, aClient *, aChannel *, char *, int);
extern MODVAR aWhowas *WHOWASHASH[WW_MAX];

ModuleHeader MOD_HEADER(m_sure)
  = {
    "m_sure - kisilerin baglanti sureleri hakkinda bilgiler",    
    "v1-beta 18/02/2010",
    "SaW",
    "3.2-b8-1",
    NULL
    };


DLLFUNC int MOD_INIT(m_sure)(ModuleInfo *modinfo)
{
    HookAddPCharEx(modinfo->handle, HOOKTYPE_CHANMSG, sure_chanmsg);
    return MOD_SUCCESS;
}

DLLFUNC int MOD_LOAD(m_sure)(int module_load)
{
     return MOD_SUCCESS;
}

DLLFUNC int MOD_UNLOAD(m_sure)(int module_unload)
{
    return MOD_SUCCESS;
}


DLLFUNC char *sure_chanmsg(aClient *cptr, aClient *sptr, aChannel *chptr, char *text, int notice)
{
    /* remote ve diger serverlar etkilenmesin */
    if (!MyClient(sptr))
        return text;
    aWhowas *temp;
    aClient *rumuz;
    char tekst[1024];
    ircsprintf(tekst, "%s", text);
    char saat[1024];
    char *komut = strtok(tekst, " "); /* Kanala gönderilen mesajdaki ilk kelime */
    char *nick = strtok(NULL, " "); /* Kanala gönderilen mesajdaki ikinci kelime */
    char *nick2 = strtok(NULL, " "); /* Kanala gönderilen mesajdaki üçüncü kelime */
    /* Boş mesajsa */
    if (!komut)
        return text;
    /* Mesajdaki ilk kelime sure komutu değilse */
    if (strcmp(komut, sure) != 0)
        return text;
    /* Birden fazla nick belirtilmişse */
    if (nick2)
    {
        sendto_channel_butone(NULL, &me, chptr,
                ":%s PRIVMSG %s :%s, Bir defada bir nick için sorgulama yapabilirsiniz!",
                    mesajci, chptr->chname, sptr->name);
        return text;
    }
    /* Bir nick belirtilmiş ve o nick sunucuda bulunmuyorsa */
    if (nick && !find_person(nick, NULL))
    {
        temp = WHOWASHASH[hash_whowas_name(nick)];
        int found = 0;
        found = 0;
        for (; temp; temp = temp->next)
        {
            if (!mycmp(nick, temp->name))
            {
            found++;
            break;
            }
        }
        /* Sunucuda hiç bulunmadıysa */
        if (!found)
        {
            sendto_channel_butone(NULL, &me, chptr,
                ":%s PRIVMSG %s :Belirttiğiniz nick sunucuda bulunmuyor.",
                mesajci, chptr->chname);
            return text;
        }
        /* Son çıkış zamanını bulup şuanki zamandan çıkarıyoruz,
        çıkan sonucu gün/sa/dk/sn cinsine çeviriyoruz */
        if ((TStime() - temp->logoff) > 86400)
            ircsprintf(saat, "%d gün %d sa %d dk %d sn önce buradaydı.",
                ((TStime() - temp->logoff) / 86400),
                (((TStime() - temp->logoff) % 86400) / 3600),
                ((((TStime() - temp->logoff) % 86400) % 3600) / 60),
                (((((TStime() - temp->logoff) % 86400) % 3600) % 60) % 60));
        else if ((TStime() - temp->logoff) > 3600)
            ircsprintf(saat, "%d sa %d dk %d sn önce buradaydı.",
                (((TStime() - temp->logoff) / 3600)),
                (((TStime() - temp->logoff) % 3600) / 60),
                ((((TStime() - temp->logoff) % 3600) % 60) % 60));
        else if ((TStime() - temp->logoff) > 60)
            ircsprintf(saat, "%d dk %d sn önce buradaydı.",
                ((TStime() - temp->logoff) / 60),
                (((TStime() - temp->logoff) % 60) % 60));
        else
            ircsprintf(saat, "sunucudan daha yeni çıktı.");        
            sendto_channel_butone(NULL, &me, chptr,
                ":%s PRIVMSG %s :%s, %s",
                mesajci, chptr->chname, nick, saat);
    }
    /* Bir nick belirtilmiş ve o nick şuan sunucudaysa */
    else if (nick && find_person(nick, NULL) && MyClient(find_person(nick, NULL)))
    {
            rumuz =  find_person(nick, NULL);
            if ((TStime() - rumuz->firsttime) > 86400)
                ircsprintf(saat, "%s, %d gün %d sa %d dk %d saniyedir sunucuda bulunuyor.",
                    nick, ((TStime() - rumuz->firsttime) / 86400),
                    (((TStime() - rumuz->firsttime) % 86400) / 3600),
                    ((((TStime() - rumuz->firsttime) % 86400) % 3600) / 60),
                    (((((TStime() - rumuz->firsttime) % 86400) % 3600) % 60) % 60));
            else if ((TStime() - rumuz->firsttime) > 3600)
                ircsprintf(saat, "%s, %d sa %d dk %d saniyedir sunucuda bulunuyor.",
                    nick, (((TStime() - rumuz->firsttime) / 3600)),
                    (((TStime() - rumuz->firsttime) % 3600) / 60),
                    ((((TStime() - rumuz->firsttime) % 3600) % 60) % 60));
            else if ((TStime() - rumuz->firsttime) > 60)
                ircsprintf(saat, "%s, %d dk %d saniyedir sunucuda bulunuyor.",
                    nick, ((TStime() - rumuz->firsttime) / 60),
                    (((TStime() - rumuz->firsttime) % 60) % 60));
            else
                ircsprintf(saat, "%s sunucuya daha yeni girdi.", nick);
            sendto_channel_butone(NULL, &me, chptr,
                ":%s PRIVMSG %s :%s",
                mesajci, chptr->chname, saat);
    }
    /* Bir nick belirtilmemişse sorgulamayı yapan kişinin nickini esas al */
    else if (!nick)
    {
            if ((TStime() - sptr->firsttime) > 86400)
                ircsprintf(saat, "%s, %d gün %d sa %d dk %d saniyedir sunucuda bulunuyorsunuz.",
                    sptr->name, ((TStime() - sptr->firsttime) / 86400),
                    (((TStime() - sptr->firsttime) % 86400) / 3600),
                    ((((TStime() - sptr->firsttime) % 86400) % 3600) / 60),
                    (((((TStime() - sptr->firsttime) % 86400) % 3600) % 60) % 60));
            else if ((TStime() - sptr->firsttime) > 3600)
                ircsprintf(saat, "%s, %d sa %d dk %d saniyedir sunucuda bulunuyorsunuz.",
                    sptr->name, (((TStime() - sptr->firsttime) / 3600)),
                    (((TStime() - sptr->firsttime) % 3600) / 60),
                    ((((TStime() - sptr->firsttime) % 3600) % 60) % 60));
            else if ((TStime() - sptr->firsttime) > 60)
                ircsprintf(saat, "%s, %d dk %d saniyedir sunucuda bulunuyorsunuz.",
                    sptr->name, ((TStime() - sptr->firsttime) / 60),
                    (((TStime() - sptr->firsttime) % 60) % 60));
            else
                ircsprintf(saat, "%s, sunucuya daha yeni girdiniz.", sptr->name);
                    sendto_channel_butone(NULL, &me, chptr,
                    ":%s PRIVMSG %s :%s",
                    mesajci, chptr->chname, saat);
    }
    return text;
}
“İnsanların en hayırlısı, insanlara faydalı olandır”. H.Ş.



Foruma Git: