gurba-0.40/
gurba-0.40/bin/
gurba-0.40/lib/
gurba-0.40/lib/cmds/guild/fighter/
gurba-0.40/lib/cmds/monster/
gurba-0.40/lib/cmds/race/catfolk/
gurba-0.40/lib/cmds/race/dwarf/
gurba-0.40/lib/cmds/verb/
gurba-0.40/lib/daemons/data/
gurba-0.40/lib/data/boards/
gurba-0.40/lib/data/messages/
gurba-0.40/lib/data/players/
gurba-0.40/lib/design/
gurba-0.40/lib/domains/gurba/
gurba-0.40/lib/domains/gurba/guilds/fighter/
gurba-0.40/lib/domains/gurba/monsters/
gurba-0.40/lib/domains/gurba/objects/armor/
gurba-0.40/lib/domains/gurba/objects/clothing/
gurba-0.40/lib/domains/gurba/objects/weapons/
gurba-0.40/lib/domains/gurba/vendors/
gurba-0.40/lib/kernel/cmds/admin/
gurba-0.40/lib/kernel/daemons/
gurba-0.40/lib/kernel/include/
gurba-0.40/lib/kernel/lib/
gurba-0.40/lib/kernel/net/
gurba-0.40/lib/kernel/sys/
gurba-0.40/lib/logs/
gurba-0.40/lib/pub/
gurba-0.40/lib/std/modules/languages/
gurba-0.40/lib/std/races/
gurba-0.40/lib/std/races/monsters/
gurba-0.40/lib/wiz/fudge/
gurba-0.40/lib/wiz/spud/
gurba-0.40/src/host/beos/
gurba-0.40/src/host/pc/res/
gurba-0.40/src/kfun/
gurba-0.40/src/lpc/
gurba-0.40/src/parser/
gurba-0.40/tmp/
inherit MONSTER;
inherit M_BLOCKEXITS;
inherit M_TRIGGERS;
inherit M_ACTIONS;

string guild;

void set_guild( string new_guild ) {
  guild = new_guild;
}

string query_guild( void ) {
  return( guild );
}

int do_block( object who ) {
  if( who->guild_member( guild ) )
    return( 1 );
  return( 0 );
}

void do_dub( object who ) {
  who->set_title( "$N the newest member." );
}

void join_guild( string who ) {
  object player;

  player = USER_D->find_player( who );
  if( player == 0 )
    return;

  if( player->guild_member( guild ) != 0 ) {
    this_player()->respond( "say But, you're already a member?" );
    return;
  }

  if( this_object()->can_join( player ) ) {
    player->join_guild( guild );
    this_object()->do_join( player );
  } else {
    this_object()->do_reject( player );
    return;
  }

  do_dub( player );

  CHANNEL_D->chan_join( query_guild(), player );
  CHANNEL_D->event_player_join( ({ player->query_name(), 
				   GUILD_D->query_guild_title( query_guild() ) 
				}) );
}

void leave_guild( string who ) {
  object player;

  player = USER_D->find_player( who );
  if( player == 0 )
    return;

  if( player->guild_member( guild ) == 0 ) {
    this_player()->respond( "say Why do you want to leave, when you're not a member?" );
    return;
  }

  if( this_object()->can_leave( player ) ) {
    player->leave_guild( guild );
    this_object()->do_leave( player );
    CHANNEL_D->chan_leave( query_guild(), player );
    player->set_title( "$N the guildless." );
    
  } else {
    this_object()->do_keep( player );
  }
}