Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include "ServiceServer.h"
- #include "NetservModule.h"
- #include "Logger.h"
- #include "ServiceUser.h"
- #include "Sender.h"
- using namespace std;
- class Module : public NetServModule
- {
- public:
- void Load(ServiceServer *server)
- {
- this->server = server;
- }
- void Unload()
- {
- Logger::Log("info", "Unloading 'D'..");
- }
- void RegisterClients()
- {
- Logger::LogSource("info", "deis", "Registering my client.");
- me = new ServiceUser(this, "D", "services", "deisnet.org", "+osdr D", "B]AAAB", "/msg D help");
- server->IntroduceUser(me);
- me->Join("#soczol");
- }
- void OnUserConnected(User *user)
- {
- me->Notice(user, "Welcome to the network, %s!", user->GetNickChar());
- }
- void OnUserQuitted(User *user, char *reason)
- {
- me->Privmsg(server->FindChannelByName("#soczol"), "%s left the IRC network (%s)", user->GetNickChar(), reason);
- }
- void OnUserKilled(User *user, Sender *sender, char *reason)
- {
- if (user == me) {
- RegisterClients();
- Channel *soczol = server->FindChannelByName("#soczol");
- me->Privmsg(soczol, "%s has been killed by %s (%s)", user->GetNickChar(), sender->GetNameChar(), reason);
- }
- }
- void OnChannelModeChanged(Channel *channel, Sender *sender, char *oldmodes, Channel::ModeChangeType type)
- {
- if (type == Channel::Mode)
- {
- me->Privmsg(channel, "Channel mode change by %s [%s]. Old modes: %s, new modes: %s. Type: mode", sender->GetNameChar(), (sender->IsServer() ? "server" : "user"), oldmodes, channel->GetModes());
- }
- else if (type == Channel::OperMode)
- {
- me->Privmsg(channel, "Channel mode change by %s [%s]. Old modes: %s, new modes: %s. Type: opermode", sender->GetNameChar(), (sender->IsServer() ? "server" : "user"), oldmodes, channel->GetModes());
- }
- else if (type == Channel::ClearMode)
- {
- me->Privmsg(channel, "Channel mode change by %s [%s]. Old modes: %s, new modes: %s. Type: clearmode", sender->GetNameChar(), (sender->IsServer() ? "server" : "user"), oldmodes, channel->GetModes());
- }
- }
- void OnChannelUserModeChanged(Channel *channel, Sender *sender, User *target, char *oldmodes, Channel::ModeChangeType type)
- {
- Membership *m = target->GetMembership(channel);
- if (type == Channel::Mode)
- {
- me->Privmsg(channel, "Channel user mode change on %s by %s [%s]. Old modes: %s, new modes: %s. Type: mode", target->GetNickChar(), sender->GetNameChar(), (sender->IsServer() ? "server" : "user"), oldmodes, m->GetModes());
- }
- else if (type == Channel::OperMode)
- {
- me->Privmsg(channel, "Channel user mode change on %s by %s [%s]. Old modes: %s, new modes: %s. Type: opermode", target->GetNickChar(), sender->GetNameChar(), (sender->IsServer() ? "server" : "user"), oldmodes, m->GetModes());
- }
- else if (type == Channel::ClearMode)
- {
- me->Privmsg(channel, "Channel user mode change on %s by %s [%s]. Old modes: %s, new modes: %s. Type: clearmode", target->GetNickChar(), sender->GetNameChar(), (sender->IsServer() ? "server" : "user"), oldmodes, m->GetModes());
- }
- if (target == me && !m->IsOp())
- {
- //server->Send("%s M %s +o %s", server->GetConfig()->ServerNum, channel->GetNameChar(), me->GetNumeric());
- }
- }
- void OnChannelBanAdded(Channel *channel, Sender *sender, Channel::ModeChangeType type, char *mask)
- {
- me->Privmsg(channel, "Ban added by %s: %s", sender->GetNameChar(), mask);
- }
- void OnChannelBanRemoved(Channel *channel, Sender *sender, Channel::ModeChangeType type, char *mask)
- {
- me->Privmsg(channel, "Ban removed by %s: %s", sender->GetNameChar(), mask);
- }
- void OnUserModeChanged(User *user, char *oldmodes)
- {
- me->Privmsg(server->FindChannelByName("#soczol"), "User mode changed for %s. Old modes: %s, new modes: %s", user->GetNickChar(), oldmodes, user->GetModes());
- }
- void OnUserJoinedChannel(Channel *channel, User *user, bool iscreate)
- {
- me->Privmsg(channel, "Hey %s!", user->GetNickChar());
- }
- void OnUserPartedChannel(Channel *channel, User *user, char *reason)
- {
- me->Notice(user, "[%s] Bye %s! (reason: %s)", channel->GetNameChar(), user->GetNickChar(), reason);
- }
- void OnUserKickedFromChannel(Channel *channel, User *user, Sender *by, char *reason)
- {
- me->Notice(user, "[%s] You just got kicked by %s with reason: %s", channel->GetNameChar(), by->GetNameChar(), reason);
- }
- void OnUserPrivmsg(Sender *sender, User *target, char *message)
- {
- User *u;
- if (target != me || sender->IsServer() || ((u = sender->GetUser()) == NULL)) return;
- me->Notice(u, "Unknown command.");
- }
- ServiceServer *GetServer()
- {
- return server;
- }
- char *GetModuleName()
- {
- return "Sample";
- }
- float GetModuleVersion()
- {
- return 1.00;
- }
- private:
- ServiceServer *server;
- ServiceUser *me;
- };
- extern "C" NetServModule* create() {
- return new Module;
- }
- extern "C" void destroy(NetServModule* module) {
- delete module;
- }
Add Comment
Please, Sign In to add comment