/* -*- LPC -*- */
/*
* $Locker: $
* $Id: gchat.c,v 1.8 1999/06/21 09:10:39 tape Exp $
* $Log: gchat.c,v $
* Revision 1.8 1999/06/21 09:10:39 tape
* This command is no longer used. --Tape/21/06/99
*
* Revision 1.7 1998/10/27 02:52:45 gruper
* Made the command ear muffable.
*
* Revision 1.6 1998/10/20 01:08:25 presto
* Removed an extra space in the output messages
*
* Revision 1.5 1998/10/11 02:18:04 presto
* Changed "You ask BlahGroup asking: ..." to "You ask BlahGroup: ..."
*
* Revision 1.4 1998/09/27 20:33:20 ceres
* Added chats to players history
*
* Revision 1.3 1998/06/23 23:55:29 presto
* Fixed something I stuffed up with the last fix. :-b
*
* Revision 1.2 1998/06/21 18:37:03 presto
* fixed typo, added "in <language>" to "asking" messages
*
* Revision 1.1 1998/01/06 05:29:43 ceres
* Initial revision
*
*/
#include <language.h>
#include <player.h>
#include <drinks.h>
inherit "cmds/base";
inherit "cmds/speech";
// This command is no longer used. --Tape/21/06/99
#define TEAM_HANDLER "/obj/handlers/team"
#define TP this_player()
mixed cmd(string arg) {
string word, cur_lang, group;
object ob, *members, *earmuffed;
return notify_fail( "This command is no longer used. Please "
"use \"group say\" instead.\n" );
/* Don't allow someone with gchat ear muffed to use the command. */
if( TP->check_earmuffs( "gchat" ) )
return notify_fail( "You have gchat ear muffed.\n" );
group = TEAM_HANDLER->query_group(this_player());
if(!group)
return notify_fail("You are not a member of any group.\n");
if(!arg)
return notify_fail("Syntax: gchat <message>\n");
cur_lang = TP->query_current_language();
if (!LANGUAGE_HAND->query_language_spoken(cur_lang))
return notify_fail(capitalize(cur_lang)+" is not a spoken language.\n");
if (!LANGUAGE_HAND->query_language_distance(cur_lang))
return notify_fail(capitalize(cur_lang)+" is not able to spoken at a "
"distance.\n");
word = query_word_type(arg, "");
if (word != "")
word = word + "ing";
if (TP->query_volume(D_ALCOHOL))
arg = drunk_speech(arg);
if(function_exists("mangle_tell", environment(TP)))
arg = environment(TP)->mangle_tell(arg, ob, 0);
/* Who's a member of the group? */
members = TEAM_HANDLER->query_members(group);
members -= ({ this_player() });
/* Check that the group has members. (Strange Phenomenon(tm)?)
* This check wasn't made when word == asking - was this intentinal? */
if ( !members ) {
TEAM_HANDLER->leave_group( group, this_player() );
TEAM_HANDLER->end_group( group );
write( "Somehow your group has no members. "
"Your group has been ended. "
"I hope this is okay.\n" );
return 1;
}
/* Remove people with gchat earmuffed from array of
* people to give the message to. */
earmuffed = ({ });
foreach( ob in members ) {
if( ob->check_earmuffs( "gchat" ) ) {
earmuffed += ({ ob });
members -= ({ ob });
}
}
if( sizeof( earmuffed ) ) {
write( capitalize( query_multiple_short( earmuffed ) ) +
( sizeof( earmuffed ) > 1 ? " have":" has" )+
" gchat ear muffed.\n");
}
if( !sizeof( members ) ) {
return notify_fail( "It seems you are the only one listening to "
"this channel.\n" );
} else if(word != "asking") {
if( word != "" )
word = " "+ word;
foreach(ob in members) {
if ( ob && interactive( ob ) )
ob->event_person_tell(TP, capitalize((string)TP->query_name())+
" tells "+ group + word +": ", arg,
cur_lang );
}
if(cur_lang != "common")
word += " in "+cur_lang;
my_mess("You tell "+ group + word +": ", arg);
TP->add_tell_history( "You tell "+ group + word + ": ", arg );
} else {
foreach(ob in members) {
if ( ob && interactive( ob ) )
ob->event_person_tell(TP, capitalize((string)TP->query_name())+
" asks "+group+": ", arg, cur_lang );
}
if(cur_lang != "common")
word = " in "+ cur_lang;
else word = "";
my_mess( "You ask "+ group + word +": ", arg);
TP->add_tell_history( "You ask "+ group + word + ": ", arg );
}
TP->adjust_time_left(-5);
return 1;
}