summaryrefslogtreecommitdiff
path: root/src/mods/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/mods/commands')
-rw-r--r--src/mods/commands/Makefile6
-rwxr-xr-x[-rw-r--r--]src/mods/commands/Makefile.in2
-rw-r--r--src/mods/commands/yc_about.cpp98
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_all.cpp101
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_away.cpp150
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_col.cpp167
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_compopt.cpp45
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_exec.cpp108
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_fake.cpp67
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_getroom.cpp94
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_getrusage.cpp93
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_help.cpp105
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_invisible.cpp69
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_j.cpp203
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_ko.cpp112
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_m.cpp89
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_md5.cpp108
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_me.cpp77
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_morph.cpp101
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_msg.cpp128
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_q.cpp51
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_reload.cpp57
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_ren.cpp132
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_s.cpp105
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_set.cpp199
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_template.cpp51
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_time.cpp55
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_topic.cpp162
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_uptime.cpp55
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_users.cpp55
-rwxr-xr-x[-rw-r--r--]src/mods/commands/yc_version.cpp45
31 files changed, 1089 insertions, 1801 deletions
diff --git a/src/mods/commands/Makefile b/src/mods/commands/Makefile
index 27da7a3..6aec38d 100644
--- a/src/mods/commands/Makefile
+++ b/src/mods/commands/Makefile
@@ -1,4 +1,4 @@
-SRCS=yc_away.cpp yc_col.cpp yc_compopt.cpp yc_exec.cpp yc_fake.cpp yc_getroom.cpp yc_getrusage.cpp yc_getstatus.cpp yc_help.cpp yc_invisible.cpp yc_j.cpp yc_ko.cpp yc_m.cpp yc_md5.cpp yc_me.cpp yc_morph.cpp yc_msg.cpp yc_q.cpp yc_reload.cpp yc_ren.cpp yc_s.cpp yc_set.cpp yc_template.cpp yc_time.cpp yc_topic.cpp yc_uptime.cpp yc_version.cpp
+SRCS=yc_about.cpp yc_all.cpp yc_away.cpp yc_col.cpp yc_compopt.cpp yc_exec.cpp yc_fake.cpp yc_getroom.cpp yc_getrusage.cpp yc_help.cpp yc_invisible.cpp yc_j.cpp yc_ko.cpp yc_m.cpp yc_md5.cpp yc_me.cpp yc_morph.cpp yc_msg.cpp yc_q.cpp yc_reload.cpp yc_ren.cpp yc_s.cpp yc_set.cpp yc_template.cpp yc_time.cpp yc_topic.cpp yc_uptime.cpp yc_users.cpp yc_version.cpp
MODS=$(addprefix ../../../mods/commands/, $(SRCS:.cpp=.so))
CC=g++
INCLUDES=`cat ../../includes.add`
@@ -17,6 +17,8 @@ mods: infotext $(MODS)
clean:
@echo Cleaning command modules
@if test -d ../../../mods/commands; then rm -Rf ../../../mods/commands; fi
+../../../mods/commands/yc_about.so: yc_about.cpp
+../../../mods/commands/yc_all.so: yc_all.cpp
../../../mods/commands/yc_away.so: yc_away.cpp
../../../mods/commands/yc_col.so: yc_col.cpp
../../../mods/commands/yc_compopt.so: yc_compopt.cpp
@@ -24,7 +26,6 @@ clean:
../../../mods/commands/yc_fake.so: yc_fake.cpp
../../../mods/commands/yc_getroom.so: yc_getroom.cpp
../../../mods/commands/yc_getrusage.so: yc_getrusage.cpp
-../../../mods/commands/yc_getstatus.so: yc_getstatus.cpp
../../../mods/commands/yc_help.so: yc_help.cpp
../../../mods/commands/yc_invisible.so: yc_invisible.cpp
../../../mods/commands/yc_j.so: yc_j.cpp
@@ -43,4 +44,5 @@ clean:
../../../mods/commands/yc_time.so: yc_time.cpp
../../../mods/commands/yc_topic.so: yc_topic.cpp
../../../mods/commands/yc_uptime.so: yc_uptime.cpp
+../../../mods/commands/yc_users.so: yc_users.cpp
../../../mods/commands/yc_version.so: yc_version.cpp
diff --git a/src/mods/commands/Makefile.in b/src/mods/commands/Makefile.in
index 42884b6..ce8c00f 100644..100755
--- a/src/mods/commands/Makefile.in
+++ b/src/mods/commands/Makefile.in
@@ -4,9 +4,9 @@ INCLUDES=`cat ../../includes.add`
CFLAGS=`cat ../cflags.add`
all: mods
$(MODS):
+ @echo -n "Compiling command module `basename $@` "
@if ! test -d `dirname $@`; then mkdir -p `dirname $@`; fi
@$(CC) $(CFLAGS) $(INCLUDES) -shared -s -o $@ `echo $(notdir $@) | sed s/.so/.cpp/`
- @echo -n "Command module `basename $@ | sed s/\.so// | sed s/yc_//` "
@du -hc $@ | tail -n 1 | sed s/total// | sed "s/ //g"
infotext:
@echo Compiling command modules
diff --git a/src/mods/commands/yc_about.cpp b/src/mods/commands/yc_about.cpp
index b4449a1..086e126 100644
--- a/src/mods/commands/yc_about.cpp
+++ b/src/mods/commands/yc_about.cpp
@@ -1,27 +1,3 @@
-/*:*
- *: File: ./src/mods/commands/yc_about.cpp
- *:
- *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE
- *:
- *: Copyright (C) 2003 Paul C. Buetow, Volker Richter
- *: Copyright (C) 2004 Paul C. Buetow
- *: Copyright (C) 2005 EXA Digital Solutions GbR
- *:
- *: This program is free software; you can redistribute it and/or
- *: modify it under the terms of the GNU General Public License
- *: as published by the Free Software Foundation; either version 2
- *: of the License, or (at your option) any later version.
- *:
- *: This program is distributed in the hope that it will be useful,
- *: but WITHOUT ANY WARRANTY; without even the implied warranty of
- *: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *: GNU General Public License for more details.
- *:
- *: You should have received a copy of the GNU General Public License
- *: along with this program; if not, write to the Free Software
- *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *:*/
-
#include "../../incl.h"
/*
@@ -30,54 +6,54 @@
using namespace std;
-extern "C"
-{
- int extern_function(void *v_arg)
- {
-
- container *c=(container *)v_arg;
-
- user *p_user = (user*) c->elem[1]; // the corresponding user
- vector<string> *params = (vector<string>*) c->elem[2]; // param array
- chat* p_chat = (chat*) ((dynamic_wrap*)c->elem[3])->CHAT;
- conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
-
- if ( ! params->empty() )
- {
- vector<string>::iterator iter = params->begin();
- string s_searched_user( *iter );
- bool b_found;
- user* p_searched_user = p_chat->get_user( s_searched_user, b_found );
-
- if ( b_found )
- {
- string s_msg = "<b>" + p_searched_user->get_colored_name() + "</b>"
+extern "C" {
+ int extern_function(void *v_arg)
+ {
+
+ container *c=(container *)v_arg;
+
+ user *p_user = (user*) c->elem[1]; // the corresponding user
+ vector<string> *params = (vector<string>*) c->elem[2]; // param array
+ chat* p_chat = (chat*) ((dynamic_wrap*)c->elem[3])->CHAT;
+ conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
+
+ if ( ! params->empty() )
+ {
+ vector<string>::iterator iter = params->begin();
+ string s_searched_user( *iter );
+ bool b_found;
+ user* p_searched_user = p_chat->get_user( s_searched_user, b_found );
+
+ if ( b_found )
+ {
+ string s_msg = "<b>" + p_searched_user->get_colored_name() + "</b>"
+ p_conf->get_elem("chat.msgs.userhasstatus") + "<b>"
+ tool::int2string(p_searched_user->get_status())
- + "</b>, "
+ + "</b>, "
+ p_conf->get_elem("chat.msgs.userinroom") + "<b>"
- + p_searched_user->get_room()->get_name()
- + "</b><br>\n"
+ + p_searched_user->get_room()->get_name()
+ + "</b><br>\n"
+ p_conf->get_elem("chat.msgs.lastactivity") + "<b>"
+ tool::int2string((int)( p_searched_user->get_last_activity()))
- + "</b><br>\n";
- p_user->msg_post( &s_msg );
- }
- else
- {
- string s_msg = "<font color=\"#"
+ + "</b><br>\n";
+ p_user->msg_post( &s_msg );
+ }
+
+ else
+ {
+ string s_msg = "<font color=\"#"
+ p_conf->get_elem("chat.html.errorcolor")
- + "\"><b>"
+ + "\"><b>"
+ s_searched_user + "</b> "
+ p_conf->get_elem("chat.msgs.err.notavailable")
+ "</font><br>\n";
- p_user->msg_post( &s_msg );
+ p_user->msg_post( &s_msg );
- }
- }
+ }
+ }
- return 0;
- }
+ return 0;
+ }
}
diff --git a/src/mods/commands/yc_all.cpp b/src/mods/commands/yc_all.cpp
index 24edb56..c4c9cdf 100644..100755
--- a/src/mods/commands/yc_all.cpp
+++ b/src/mods/commands/yc_all.cpp
@@ -1,27 +1,3 @@
-/*:*
- *: File: ./src/mods/commands/yc_all.cpp
- *:
- *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE
- *:
- *: Copyright (C) 2003 Paul C. Buetow, Volker Richter
- *: Copyright (C) 2004 Paul C. Buetow
- *: Copyright (C) 2005 EXA Digital Solutions GbR
- *:
- *: This program is free software; you can redistribute it and/or
- *: modify it under the terms of the GNU General Public License
- *: as published by the Free Software Foundation; either version 2
- *: of the License, or (at your option) any later version.
- *:
- *: This program is distributed in the hope that it will be useful,
- *: but WITHOUT ANY WARRANTY; without even the implied warranty of
- *: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *: GNU General Public License for more details.
- *:
- *: You should have received a copy of the GNU General Public License
- *: along with this program; if not, write to the Free Software
- *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *:*/
-
#include <iostream>
#include "../../chat/chat.h"
/*
@@ -30,44 +6,43 @@
using namespace std;
-extern "C"
-{
- int valid_color( string );
-
- int extern_function(void *v_arg)
- {
- container *c=(container *)v_arg;
-
- user *p_user = (user*) c->elem[1]; // the corresponding user
- vector<string> *params= (vector<string>*) c->elem[2]; // param array
- timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR;
- conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
- chat* p_chat = (chat*) ((dynamic_wrap*)c->elem[3])->CHAT;
-
- string s_tmp = "";
- string s_msg = "";
-
-
- if ( ! params->empty() )
- {
- vector<string>::iterator iter = params->begin();
- for ( iter = params->begin(); iter != params->end(); iter++ )
- s_tmp.append( *iter + " " );
-
- s_msg = p_timr->get_time() + " <b><font color=\"#"
- + p_conf->get_elem("chat.html.sysmsgcolor")
- + "\"> "
- + p_conf->get_elem("chat.msgs.system");
-
- p_chat->string_replacer(&s_tmp);
- s_msg.append( s_tmp + "</font></b><br>\n" );
- p_chat->msg_post( &s_msg );
- return 0;
- }
-
- s_msg = p_conf->colored_error_msg("chat.msgs.err.wrongcommandusage");
- p_user->msg_post(s_msg);
- return 0;
- }
+extern "C" {
+ int valid_color( string );
+
+ int extern_function(void *v_arg)
+ {
+ container *c=(container *)v_arg;
+
+ user *p_user = (user*) c->elem[1]; // the corresponding user
+ vector<string> *params= (vector<string>*) c->elem[2]; // param array
+ timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR;
+ conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
+ chat* p_chat = (chat*) ((dynamic_wrap*)c->elem[3])->CHAT;
+
+ string s_tmp = "";
+ string s_msg = "";
+
+
+ if ( ! params->empty() )
+ {
+ vector<string>::iterator iter = params->begin();
+ for ( iter = params->begin(); iter != params->end(); iter++ )
+ s_tmp.append( *iter + " " );
+
+ s_msg = p_timr->get_time() + " <b><font color=\"#"
+ + p_conf->get_elem("chat.html.sysmsgcolor")
+ + "\"> "
+ + p_conf->get_elem("chat.msgs.system");
+
+ p_chat->string_replacer(&s_tmp);
+ s_msg.append( s_tmp + "</font></b><br>\n" );
+ p_chat->msg_post( &s_msg );
+ return 0;
+ }
+
+ s_msg = p_conf->colored_error_msg("chat.msgs.err.wrongcommandusage");
+ p_user->msg_post(s_msg);
+ return 0;
+ }
}
diff --git a/src/mods/commands/yc_away.cpp b/src/mods/commands/yc_away.cpp
index 0e879fc..af4a4a5 100644..100755
--- a/src/mods/commands/yc_away.cpp
+++ b/src/mods/commands/yc_away.cpp
@@ -1,96 +1,70 @@
-/*:*
- *: File: ./src/mods/commands/yc_away.cpp
- *:
- *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE
- *:
- *: Copyright (C) 2003 Paul C. Buetow, Volker Richter
- *: Copyright (C) 2004 Paul C. Buetow
- *: Copyright (C) 2005 EXA Digital Solutions GbR
- *:
- *: This program is free software; you can redistribute it and/or
- *: modify it under the terms of the GNU General Public License
- *: as published by the Free Software Foundation; either version 2
- *: of the License, or (at your option) any later version.
- *:
- *: This program is distributed in the hope that it will be useful,
- *: but WITHOUT ANY WARRANTY; without even the implied warranty of
- *: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *: GNU General Public License for more details.
- *:
- *: You should have received a copy of the GNU General Public License
- *: along with this program; if not, write to the Free Software
- *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *:*/
-
#include "../../incl.h"
#include "../../chat/room.h"
#include "../../chat/user.h"
using namespace std;
-extern "C"
-{
- int extern_function(void *v_arg)
- {
- container *c=(container *)v_arg;
-
- user* p_user = (user*) c->elem[1]; // the corresponding user
- conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
- timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR;
- vector<string> *params = (vector<string>*) c->elem[2]; // param array
-
- string s_msg;
- string s_away;
- string s_col;
-
- vector<string>::iterator iter;
-
- string s_time = p_timr->get_time();
-
- s_away.append( s_time ).append( " " );
-
- s_msg = s_time
- + " "
- + p_user->get_colored_bold_name()
- + " "
- + p_conf->get_elem("chat.msgs.setmodeaway")
- + "<font color=" + p_user->get_col2() + ">";
-
- if ( params->size() > 0 )
- {
- s_msg.append(": ");
- for ( iter = params->begin(); iter != params->end(); iter++ )
- {
- s_msg.append( " " + *iter );
- s_away.append( *iter + " " );
- }
- }
- else
- {
- s_msg.append(".");
- }
-
- s_msg.append( "</font><br>\n" );
-
- room* p_room = p_user->get_room();
-
- // Remove ' from away message:
- auto unsigned int pos;
-
- do
- {
- pos = s_away.find_first_of( "'" );
- if ( pos == string::npos )
- break;
- s_away.replace( pos, 1, "\"" );
- }
- while (true);
-
- p_user->set_away( true, s_away );
- p_room->reload_onlineframe();
- p_room->msg_post ( &s_msg );
-
- return 0;
- }
+extern "C" {
+ int extern_function(void *v_arg)
+ {
+ container *c=(container *)v_arg;
+
+ user* p_user = (user*) c->elem[1]; // the corresponding user
+ conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
+ timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR;
+ vector<string> *params = (vector<string>*) c->elem[2]; // param array
+
+ string s_msg;
+ string s_away;
+ string s_col;
+
+ vector<string>::iterator iter;
+
+ string s_time = p_timr->get_time();
+
+ s_away.append( s_time ).append( " " );
+
+ s_msg = s_time
+ + " "
+ + p_user->get_colored_bold_name()
+ + " "
+ + p_conf->get_elem("chat.msgs.setmodeaway")
+ + "<font color=" + p_user->get_col2() + ">";
+
+ if ( params->size() > 0 )
+ {
+ s_msg.append(": ");
+ for ( iter = params->begin(); iter != params->end(); iter++ )
+ {
+ s_msg.append( " " + *iter );
+ s_away.append( *iter + " " );
+ }
+ }
+
+ else
+ {
+ s_msg.append(".");
+ }
+
+ s_msg.append( "</font><br>\n" );
+
+ room* p_room = p_user->get_room();
+
+ // Remove ' from away message:
+ auto unsigned int pos;
+
+ do {
+ pos = s_away.find_first_of( "'" );
+ if ( pos == string::npos )
+ break;
+ s_away.replace( pos, 1, "\"" );
+ } while (true);
+
+ p_user->set_away( true, s_away );
+ p_room->reload_onlineframe();
+ p_room->msg_post ( &s_msg );
+
+ return 0;
+ }
}
diff --git a/src/mods/commands/yc_col.cpp b/src/mods/commands/yc_col.cpp
index dca1bde..4449278 100644..100755
--- a/src/mods/commands/yc_col.cpp
+++ b/src/mods/commands/yc_col.cpp
@@ -1,27 +1,3 @@
-/*:*
- *: File: ./src/mods/commands/yc_col.cpp
- *:
- *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE
- *:
- *: Copyright (C) 2003 Paul C. Buetow, Volker Richter
- *: Copyright (C) 2004 Paul C. Buetow
- *: Copyright (C) 2005 EXA Digital Solutions GbR
- *:
- *: This program is free software; you can redistribute it and/or
- *: modify it under the terms of the GNU General Public License
- *: as published by the Free Software Foundation; either version 2
- *: of the License, or (at your option) any later version.
- *:
- *: This program is distributed in the hope that it will be useful,
- *: but WITHOUT ANY WARRANTY; without even the implied warranty of
- *: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *: GNU General Public License for more details.
- *:
- *: You should have received a copy of the GNU General Public License
- *: along with this program; if not, write to the Free Software
- *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *:*/
-
#include <iostream>
#include "../../wrap.h"
#include "../../chat/room.h"
@@ -34,79 +10,76 @@
using namespace std;
-extern "C"
-{
- int valid_color( string );
-
- int extern_function(void *v_arg)
- {
- container *c=(container *)v_arg;
-
-
- user *p_user = (user*)c->elem[1]; // the corresponding user
- vector<string> *params= (vector<string>*) c->elem[2]; // param array
-
- string s_color;
- string s_color2;
-
- conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
- timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR;
- if ( params->empty() )
- {
- s_color = p_conf->get_elem( "chat.html.user.color1" );
- s_color2 = p_conf->get_elem( "chat.html.user.color2" );
- }
- else
- {
- s_color = (string) params->front();
- params->erase( params->begin() );
- if ( ! params->empty() )
- s_color2 = (string) params->front();
- else
- s_color2 = p_conf->get_elem( "chat.html.user.color1" );
- }
-
- s_color = tool::to_lower( s_color );
- s_color2 = tool::to_lower( s_color2 );
-
- if( valid_color(s_color) != 1 )
- {
- string *answerstring=new string(s_color + " is not a valid color.<br>\n");
- p_user->msg_post( answerstring );
- }
- else if( valid_color(s_color2) != 1 )
- {
- string *answerstring=new string( s_color2 + " is not a valid color.<br>\n");
- p_user->msg_post( answerstring );
- }
- else
- {
- string *answerstring=new string(p_timr->get_time() + " " + p_user->get_colored_bold_name()+ " changes color to <font color=\"#"
- + s_color + "\">" + s_color + "</font> <font color=\"#"
- + s_color2 + "\">" + s_color2 + "</font><br>\n");
- p_user->get_room()->msg_post( answerstring );
- p_user->set_col1(s_color);
- p_user->set_col2(s_color2);
- p_user->get_room()->reload_onlineframe();
- }
-
- return 0;
- }
- int valid_color( string s_color )
- {
-
- if(s_color.size()!=6)
- return 0;
- string valid="abcdef0123456789";
- for(int i=0;i<s_color.size();i++)
- {
- string s_char=s_color.substr(i,1);
- if(valid.find(s_char)==string::npos)
- return 0;
- }
-
- return 1;
- }
+extern "C" {
+ int valid_color( string );
+
+ int extern_function(void *v_arg)
+ {
+ container *c=(container *)v_arg;
+
+
+ user *p_user = (user*)c->elem[1]; // the corresponding user
+ vector<string> *params= (vector<string>*) c->elem[2]; // param array
+
+ string s_color;
+ string s_color2;
+
+ conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
+ timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR;
+ if ( params->empty() )
+ {
+ s_color = p_conf->get_elem( "chat.html.user.color1" );
+ s_color2 = p_conf->get_elem( "chat.html.user.color2" );
+ }
+
+ else
+ {
+ s_color = (string) params->front();
+ params->erase( params->begin() );
+ if ( ! params->empty() )
+ s_color2 = (string) params->front();
+ else
+ s_color2 = p_conf->get_elem( "chat.html.user.color1" );
+ }
+
+ s_color = tool::to_lower( s_color );
+ s_color2 = tool::to_lower( s_color2 );
+
+ if( valid_color(s_color) != 1 )
+ {
+ string *answerstring=new string(s_color + " is not a valid color.<br>\n");
+ p_user->msg_post( answerstring );
+ }
+ else if( valid_color(s_color2) != 1 )
+ {
+ string *answerstring=new string( s_color2 + " is not a valid color.<br>\n");
+ p_user->msg_post( answerstring );
+ }
+ else
+ {
+ string *answerstring=new string(p_timr->get_time() + " " + p_user->get_colored_bold_name()+ " changes color to <font color=\"#"
+ + s_color + "\">" + s_color + "</font> <font color=\"#"
+ + s_color2 + "\">" + s_color2 + "</font><br>\n");
+ p_user->get_room()->msg_post( answerstring );
+ p_user->set_col1(s_color);
+ p_user->set_col2(s_color2);
+ }
+
+ return 0;
+ }
+ int valid_color( string s_color ){
+
+ if(s_color.size()!=6) return 0;
+ string valid="abcdef0123456789";
+ for(int i=0;i<s_color.size();i++)
+ {
+ string s_char=s_color.substr(i,1);
+ if(valid.find(s_char)==string::npos)
+ return 0;
+ }
+
+ return 1;
+ }
}
diff --git a/src/mods/commands/yc_compopt.cpp b/src/mods/commands/yc_compopt.cpp
index 43e5e1b..ad6ae99 100644..100755
--- a/src/mods/commands/yc_compopt.cpp
+++ b/src/mods/commands/yc_compopt.cpp
@@ -1,27 +1,3 @@
-/*:*
- *: File: ./src/mods/commands/yc_compopt.cpp
- *:
- *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE
- *:
- *: Copyright (C) 2003 Paul C. Buetow, Volker Richter
- *: Copyright (C) 2004 Paul C. Buetow
- *: Copyright (C) 2005 EXA Digital Solutions GbR
- *:
- *: This program is free software; you can redistribute it and/or
- *: modify it under the terms of the GNU General Public License
- *: as published by the Free Software Foundation; either version 2
- *: of the License, or (at your option) any later version.
- *:
- *: This program is distributed in the hope that it will be useful,
- *: but WITHOUT ANY WARRANTY; without even the implied warranty of
- *: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *: GNU General Public License for more details.
- *:
- *: You should have received a copy of the GNU General Public License
- *: along with this program; if not, write to the Free Software
- *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *:*/
-
#include <iostream>
#include "../../msgs.h"
#include "../../chat/user.h"
@@ -31,17 +7,16 @@
using namespace std;
-extern "C"
-{
- int valid_color( string );
-
- int extern_function(void *v_arg)
- {
- container *c=(container *)v_arg;
- user *p_user = (user*)c->elem[1]; // the corresponding user
- p_user->msg_post( tool::ychat_version() + " " + UNAME + "<br>\n" + COMPOPT + "<br>\n");
+extern "C" {
+ int valid_color( string );
+
+ int extern_function(void *v_arg)
+ {
+ container *c=(container *)v_arg;
+ user *p_user = (user*)c->elem[1]; // the corresponding user
+ p_user->msg_post( tool::ychat_version() + " " + UNAME + "<br>\n" + COMPOPT + "<br>\n");
- return 0;
- }
+ return 0;
+ }
}
diff --git a/src/mods/commands/yc_exec.cpp b/src/mods/commands/yc_exec.cpp
index 6f2d533..f912c20 100644..100755
--- a/src/mods/commands/yc_exec.cpp
+++ b/src/mods/commands/yc_exec.cpp
@@ -1,27 +1,3 @@
-/*:*
- *: File: ./src/mods/commands/yc_exec.cpp
- *:
- *: yChat; Homepage: www.yChat.org; Version 0.7.9.5-RELEASE
- *:
- *: Copyright (C) 2003 Paul C. Buetow, Volker Richter
- *: Copyright (C) 2004 Paul C. Buetow
- *: Copyright (C) 2005 EXA Digital Solutions GbR
- *:
- *: This program is free software; you can redistribute it and/or
- *: modify it under the terms of the GNU General Public License
- *: as published by the Free Software Foundation; either version 2
- *: of the License, or (at your option) any later version.
- *:
- *: This program is distributed in the hope that it will be useful,
- *: but WITHOUT ANY WARRANTY; without even the implied warranty of
- *: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *: GNU General Public License for more details.
- *:
- *: You should have received a copy of the GNU General Public License
- *: along with this program; if not, write to the Free Software
- *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *:*/
-
#include "../../incl.h"
#include "../../chat/room.h"
#include "../../chat/user.h"
@@ -33,58 +9,58 @@
using namespace std;
-extern "C"
-{
- int extern_function(void *v_arg)
- {
- container *c=(container *)v_arg;
+extern "C" {
+ int extern_function(void *v_arg)
+ {
+ container *c=(container *)v_arg;
+
+ user* p_user = (user*) c->elem[1]; // the corresponding user
+ timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR;
+ conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
+ vector<string> *params = (vector<string>*) c->elem[2]; // param array
- user* p_user = (user*) c->elem[1]; // the corresponding user
- timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR;
- conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF;
- vector<string> *params = (vector<string>*) c->elem[2]; // param array
+ string s_command;
+ string s_msg = p_timr->get_time();
+ string s_output;
- string s_command;
- string s_msg = p_timr->get_time();
- string s_output;
+ vector<string>::iterator iter;
+ for ( iter = params->begin(); iter != params->end(); iter++ )
+ s_command.append( " " + *iter );
- vector<string>::iterator iter;
- for ( iter = params->begin(); iter != params->end(); iter++ )
- s_command.append( " " + *iter );
+ s_command.append(" 2>error.log");
- s_command.append(" 2>error.log");
+ s_msg.append( " " + s_command + "<br>\n" );
- s_msg.append( " " + s_command + "<br>\n" );
+ p_user->msg_post( &s_msg );
- p_user->msg_post( &s_msg );
+ FILE *file;
+ char buffer[READBUF];
- FILE *file;
- char buffer[READBUF];
+ if( (file=popen(s_command.c_str(), "r")) == NULL )
+ {
+ s_output = "<font color=\"#"
+ + p_conf->get_elem("chat.html.errorcolor")
+ + p_conf->get_elem("chat.msgs.err.execcommand")
+ + "</font><br>\n";
+ p_user->msg_post( &s_output );
+ }
- if( (file=popen(s_command.c_str(), "r")) == NULL )
- {
- s_output = "<font color=\"#"
- + p_conf->get_elem("chat.html.errorcolor")
- + p_conf->get_elem("chat.msgs.err.execcommand")
- + "</font><br>\n";
- p_user->msg_post( &s_output );
- }
- else
- {
- s_output.append("<hr>\n");
- while(true)
- {
- if(fgets(buffer, READBUF, file) == NULL)
- break;
+ else
+ {
+ s_output.append("<hr>\n");
+ while(true)
+ {
+ if(fgets(buffer, READBUF, file) == NULL)
+ break;
- s_output.append( string(buffer) + "<br>\n" );
- }
+ s_output.append( string(buffer) + "<br>\n" );
+ }
- p_user->msg_post( &s_output );
- pclose(file);
- }
+ p_user->msg_post( &s_output );
+ pclose(file);
+ }
- return 0;
- }
+ return 0;
+ }
}
diff --git a/src/mods/commands/yc_fake.cpp b/src/mods/commands/yc_fake.cpp
index 3eb14