root/trunk/src/game/IRCConf.cpp @ 39

Revision 39, 7.7 kB (checked in by yumileroy, 17 years ago)

[svn] * Various small changes here and there.
* Implementing MangChat? IRC system.
* Added new config option, MAX_WHO, can be used to set the limit of characters being sent in a /who request from client.

Original author: XTZGZoReX
Date: 2008-10-12 14:03:38-05:00

Line 
1/*
2 * MangChat By |Death| And Cybrax
3 *
4 * This Program Is Free Software; You Can Redistribute It And/Or Modify It Under The Terms
5 * Of The GNU General Public License
6 * Written and Developed by Cybrax. cybraxvd@gmail.com
7 * |Death| <death@hell360.net>, Lice <lice@yeuxverts.net>, Dj_baby & Sanaell, Tase
8 * With Help And Support From The MaNGOS Project Community.
9 * PLEASE RETAIN THE COPYRIGHT OF THE AUTHORS.
10 */
11#include "IRCClient.h"
12#include "IRCCmd.h"
13#include "../shared/Config/Config.h"
14#include "IRCConf.h"
15Config MCConfig;
16void IRCClient::SetCfg(char const* cfgfile)
17{
18    sIRC.CfgFile = cfgfile;
19}
20bool IRCClient::LoadConfig(char const* cfgfile)
21{
22    if (!MCConfig.SetSource(cfgfile))
23        sLog.outString("*** MangChat: Unable to open configuration file, All default options are being used.");
24        else sLog.outString("*** MangChat: Found the configuration file, %s", cfgfile);
25
26        int ConfCnt = 0;
27    sIRC._chan_count = 0;
28    if(MCConfig.GetIntDefault("irc.active", 1) == 1)
29        sIRC.Active = true;
30    else
31        sIRC.Active = false;
32    sIRC._Host = MCConfig.GetStringDefault("irc.host", "irc.freenode.net");
33    if(sIRC._Host.size() > 0)
34        ConfCnt++;
35    sIRC._Mver = MCConfig.GetStringDefault("irc.mver", "Version 1.6.5");
36        sIRC._Port = MCConfig.GetIntDefault("irc.port", 6667);
37    sIRC._User = MCConfig.GetStringDefault("irc.user", "MangChat");
38    sIRC._Pass = MCConfig.GetStringDefault("irc.pass", "MyDumbPass");
39    sIRC._Nick = MCConfig.GetStringDefault("irc.nick", "MangChat");
40    sIRC._Auth = MCConfig.GetIntDefault("irc.auth", 0);
41        sIRC._Auth_Nick = MCConfig.GetStringDefault("irc.auth.nick", "AuthNick");
42    sIRC._ICC = MCConfig.GetStringDefault("irc.icc", "001");
43    sIRC._defchan = MCConfig.GetStringDefault("irc.defchan", "lobby");
44    sIRC._ldefc = MCConfig.GetIntDefault("irc.ldef", 0);
45    sIRC._wct = MCConfig.GetIntDefault("irc.wct", 30000);
46        sIRC.ajoin = MCConfig.GetIntDefault("irc.ajoin", 1);
47    sIRC.ajchan = MCConfig.GetStringDefault("irc.ajchan", "world");
48    sIRC.onlrslt = MCConfig.GetIntDefault("irc.online.result", 10);
49    sIRC.BOTMASK = MCConfig.GetIntDefault("Botmask", 0);
50    sIRC.logfile = MCConfig.GetStringDefault("irc.logfile.prefix", "IRC_");
51        for(int i = 1; i < MAX_CONF_CHANNELS;i++)
52    {
53        std::ostringstream ss;
54        ss << i;
55        std::string ci = "irc.chan_" + ss.str();
56        std::string t_chan = MCConfig.GetStringDefault(ci.c_str(), "");
57        if(t_chan.size() > 0)
58        {
59            sIRC._chan_count++;
60            sIRC._irc_chan[sIRC._chan_count] = t_chan;
61            ci = "wow.chan_" + ss.str();
62            sIRC._wow_chan[sIRC._chan_count] = MCConfig.GetStringDefault(ci.c_str(), t_chan.c_str());
63        }
64    }
65    sIRC.JoinMsg = MCConfig.GetStringDefault("irc.joinmsg", "Whhaaazzzzaaaa, MangChat $Ver Baby!!");
66    sIRC.RstMsg  = MCConfig.GetStringDefault("irc.rstmsg", "MangChat Is Restarting, I Will Be Right Back!");
67    sIRC.kikmsg = MCConfig.GetStringDefault("irc.kickmsg", "Do Not Kick Me Again, Severe Actions Will Be Taken!");
68    // IRC LINES
69    sIRC.ILINES[WOW_IRC] = MCConfig.GetStringDefault("chat.wow_irc", "\003<WoW>[\002$Name($Level)\002\003] $Msg");
70    sIRC.ILINES[IRC_WOW] = MCConfig.GetStringDefault("chat.irc_wow", "\003<IRC>[$Name]: $Msg");
71    sIRC.ILINES[JOIN_WOW] = MCConfig.GetStringDefault("chat.join_wow", "\00312>>\00304 $Name \003Joined The Channel!");
72    sIRC.ILINES[JOIN_IRC] = MCConfig.GetStringDefault("chat.join_irc", "\003[$Name]: Has Joined IRC!");
73    sIRC.ILINES[LEAVE_WOW] = MCConfig.GetStringDefault("chat.leave_wow", "\00312<<\00304 $Name \003Left The Channel!");
74    sIRC.ILINES[LEAVE_IRC] = MCConfig.GetStringDefault("chat.leave_irc", "\003[$Name]: Has Left IRC!");
75    sIRC.ILINES[CHANGE_NICK] = MCConfig.GetStringDefault("chat.change_nick", "\003<> $Name Is Now Known As $NewName!");
76    // MangChat Options
77    sIRC._MCA = MCConfig.GetIntDefault("irc.maxattempt", 10);
78    sIRC._autojoinkick = MCConfig.GetIntDefault("irc.autojoin_kick", 1);
79    sIRC._cmd_prefx = MCConfig.GetStringDefault("irc.command_prefix", ".");
80       
81        sIRC._op_gm = MCConfig.GetIntDefault("irc.op_gm_login", 0);
82        sIRC._op_gm_lev = MCConfig.GetIntDefault("irc.op_gm_level", 3);
83
84    // Misc Options
85    sIRC.games = MCConfig.GetIntDefault("irc.fun.games", 0);
86        sIRC.gmlog = MCConfig.GetIntDefault("irc.gmlog", 1);
87        sIRC.BOTMASK = MCConfig.GetIntDefault("BotMask", 0);
88    sIRC.Status = MCConfig.GetIntDefault("irc.StatusChannel", 1);
89        sIRC.anchn = MCConfig.GetIntDefault("irc.AnnounceChannel", 1);
90        sIRC.autoanc = MCConfig.GetIntDefault("irc.auto.announce", 30);
91        sIRC.ojGM1 = MCConfig.GetStringDefault("irc.gm1", "[Moderator]");
92    sIRC.ojGM2 = MCConfig.GetStringDefault("irc.gm2", "[Game Master]");
93    sIRC.ojGM3 = MCConfig.GetStringDefault("irc.gm3", "[BugTracker]");
94    sIRC.ojGM4 = MCConfig.GetStringDefault("irc.gm4", "[DevTeam Admin]");
95    sIRC.ojGM5 = MCConfig.GetStringDefault("irc.gm5", "[Root Admin]");
96    // REQUIRED GM LEVEL
97    QueryResult *result = WorldDatabase.PQuery("SELECT `Command`, `gmlevel` FROM `IRC_Commands` ORDER BY `Command`");
98    if(result)
99    {
100        Field *fields = result->Fetch();
101        for (uint64 i=0; i < result->GetRowCount(); i++)
102        {
103            std::string command = fields[0].GetCppString();
104            uint32 gmlvl = fields[1].GetUInt32();
105            if(command == "acct") sIRC.CACCT = gmlvl;
106                        if(command == "ban") sIRC.CBAN = gmlvl;
107                        if(command == "char") sIRC.CCHAN = gmlvl;
108                        if(command == "char") sIRC.CCHAR = gmlvl;
109            if(command == "fun") sIRC.CFUN = gmlvl;
110                        if(command == "help") sIRC.CHELP = gmlvl;
111                        if(command == "inchan") sIRC.CINCHAN = gmlvl;
112                        if(command == "info") sIRC.CINFO = gmlvl;
113            if(command == "item") sIRC.CITEM = gmlvl;
114            if(command == "jail") sIRC.CJAIL = gmlvl;
115            if(command == "kick") sIRC.CKICK = gmlvl;
116            if(command == "kill") sIRC._KILL = gmlvl;
117            if(command == "level") sIRC.CLEVEL = gmlvl;
118                        if(command == "lookup") sIRC.CLOOKUP = gmlvl;
119            if(command == "money") sIRC.CMONEY = gmlvl;
120            if(command == "mute") sIRC.CMUTE = gmlvl;
121                        if(command == "online") sIRC.CONLINE = gmlvl;
122            if(command == "pm") sIRC.CPM = gmlvl;
123            if(command == "restart") sIRC.CRESTART = gmlvl;
124            if(command == "revive") sIRC.CREVIVE = gmlvl;
125            if(command == "saveall") sIRC.CSAVEALL = gmlvl;
126            if(command == "shutdown") sIRC.CSHUTDOWN = gmlvl;
127            if(command == "spell") sIRC.CSPELL = gmlvl;
128            if(command == "sysmsg") sIRC.CSYSMSG = gmlvl;
129            if(command == "tele") sIRC.CTELE = gmlvl;
130                        if(command == "top") sIRC.CTOP = gmlvl;
131            if(command == "who") sIRC.CWHO = gmlvl;
132            result->NextRow();
133        }
134        delete result;
135    }
136    else
137    {
138        sIRC.CACCT     = 3;
139        sIRC.CBAN      = 3;
140        sIRC.CCHAN     = 3;
141        sIRC.CCHAR     = 3;
142        sIRC.CFUN      = 3;
143        sIRC.CHELP     = 3;
144        sIRC.CINCHAN   = 3;
145        sIRC.CINFO     = 3;
146        sIRC.CITEM     = 3;
147        sIRC.CJAIL     = 3;
148        sIRC.CKICK     = 3;
149        sIRC._KILL     = 3;
150        sIRC.CLEVEL    = 3;
151        sIRC.CLOOKUP   = 3;
152        sIRC.CMONEY    = 3;
153        sIRC.CMUTE     = 3;
154        sIRC.CONLINE   = 3;
155        sIRC.CPM       = 3;
156        sIRC.CRESTART  = 3;
157        sIRC.CREVIVE   = 3;
158        sIRC.CSAVEALL  = 3;
159        sIRC.CSHUTDOWN = 3;
160        sIRC.CSPELL    = 3;
161        sIRC.CSYSMSG   = 3;
162        sIRC.CTELE     = 3;
163        sIRC.CTOP      = 3;
164        sIRC.CWHO      = 3;
165    }
166    return true;
167}
168
169std::string IRCClient::GetChatLine(int nItem)
170{
171    return sIRC.ILINES[nItem];
172}
Note: See TracBrowser for help on using the browser.