ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/FreeBSDAdmin/IRC/trout.cpp
Revision: 1449
Committed: 2012-12-02T14:05:43-08:00 (12 years, 6 months ago) by douglas
File size: 1369 byte(s)
Log Message:
Fix for ZNC 1.0.


File Contents

# Content
1 // Trout
2 //
3 // Douglas Thrift
4 //
5 // $Id$
6
7 #include <znc/main.h>
8 #include <znc/Modules.h>
9 #include <znc/Chan.h>
10 #include <znc/Client.h>
11 #include <znc/IRCNetwork.h>
12
13 #include "foreach.hpp"
14
15 class Trout : public CModule
16 {
17 public:
18 MODCONSTRUCTOR(Trout) {}
19 virtual ~Trout() {}
20
21 virtual bool OnLoad(const CString &args, CString &message)
22 {
23 ::srandomdev();
24
25 return true;
26 }
27
28 virtual EModRet OnUserMsg(CString &target, CString &message)
29 {
30 if (message.Token(0).Equals("!trout"))
31 {
32 CString who(message.Token(1));
33
34 if (who.empty())
35 if (GetNetwork()->IsChan(target))
36 {
37 typedef std::map<CString, CNick> NickMap;
38
39 VCString nicks;
40
41 _foreach (const NickMap, nick, GetNetwork()->FindChan(target)->GetNicks())
42 nicks.push_back(nick->first);
43
44 who = nicks[::random() % nicks.size()];
45 }
46 else
47 who = target;
48
49 message = "\001ACTION slaps " + who + " around a bit with a large trout\001";
50
51 if (GetNetwork()->IsChan(target))
52 PutUser(":" + GetClient()->GetNickMask() + " PRIVMSG " + target + " :" + message);
53 else
54 PutUser(":" + target + " NOTICE " + GetClient()->GetNick() + " :\001ACTION \002" + GetClient()->GetNick() + "\017 slaps " + who + " around a bit with a large trout\001");
55 }
56
57 return CONTINUE;
58 }
59 };
60
61 MODULEDEFS(Trout, "Slap people around a bit with a large trout");
62
63 // vim: noexpandtab tabstop=4

Properties

Name Value
svn:keywords Id