[project @ 2002-08-18 21:32:48 by unknown_lamer]
[clinton/bobotpp.git] / source / Interp.C
index f4de9ee..c1514a6 100644 (file)
@@ -49,7 +49,8 @@ scm_apply_wrapper(void *data)
 void
 Interp::Startup()
 {
-//  scm_primitive_load_path(scm_makfrom0str("ice-9/boot-9.scm"));
+  // Hooks
+  scm_c_define ("bot:exit-hook", scm_make_hook (scm_long2num (0)));
 
   // Symbols
   // bot:user-*
@@ -77,14 +78,22 @@ Interp::Startup()
   scm_c_define ("hooks/part", scm_long2num(Hook::LEAVE));
   scm_c_define ("hooks/mode", scm_long2num(Hook::MODE));
   scm_c_define ("hooks/message", scm_long2num(Hook::MESSAGE));
-  //  scm_c_define ("hooks/names", scm_long2num(Hook::NAMES));
   scm_c_define ("hooks/notice", scm_long2num(Hook::NOTICE));
   scm_c_define ("hooks/public", scm_long2num(Hook::PUBLIC));
   scm_c_define ("hooks/public-notice", scm_long2num(Hook::PUBLIC_NOTICE));
   scm_c_define ("hooks/raw", scm_long2num(Hook::RAW));
   scm_c_define ("hooks/timer", scm_long2num(Hook::TIMER));
   scm_c_define ("hooks/topic", scm_long2num(Hook::TOPIC));
-
+  // send hooks
+  scm_c_define ("hooks/send/public", scm_long2num (Hook::SEND_PUBLIC));
+  scm_c_define ("hooks/send/message", scm_long2num (Hook::SEND_MESSAGE));
+  scm_c_define ("hooks/send/action", scm_long2num (Hook::SEND_ACTION));
+  scm_c_define ("hooks/send/ctcp", scm_long2num (Hook::SEND_CTCP));
+  // dcc hooks
+  scm_c_define ("hooks/dcc/chat-begin", 
+               scm_long2num (Hook::DCC_CHAT_BEGIN));
+  scm_c_define ("hooks/dcc/chat-message", 
+               scm_long2num (Hook::DCC_CHAT_MESSAGE));
 
   // procedures
   bot_new_procedure ("bot:action", (SCMFunc)ScriptCommands::Action, 2, 0, 0);
@@ -146,11 +155,19 @@ Interp::Startup()
   bot_new_procedure ("bot:delcommand", (SCMFunc)ScriptCommands::delCommand, 
                     1, 0, 0);
   bot_new_procedure ("bot:addhook", (SCMFunc)ScriptCommands::AddHook, 
-                    3, 2, 0);
+                    3, 3, 0);
   bot_new_procedure ("bot:addtimer", (SCMFunc)ScriptCommands::AddTimer, 
                     2, 0, 0);
   bot_new_procedure ("bot:deltimer", (SCMFunc)ScriptCommands::DelTimer, 
                     1, 0, 0);
+
+  scm_c_define_gsubr ("bot:DCC-chat-send", 2, 0, 0,
+                     (SCMFunc)ScriptCommands::sendDCCChatMessage);
+
+  // "Low Level" Message functuions
+  scm_c_define_gsubr ("bot:send-CTCP", 3, 0, 0,
+                     (SCMFunc)ScriptCommands::sendCTCP);
+
   // load bobot-utils
   scm_primitive_load 
     (scm_makfrom0str (String(PREFIX) + 
@@ -161,7 +178,9 @@ Interp::Startup()
 
 void
 Interp::Shutdown()
-{ }
+{ 
+  scm_c_run_hook (gh_lookup ("bot:exit-hook"), SCM_EOL);
+}
 
 void
 Interp::Execute(Bot *b, String command)