/* * IMC2 - an inter-mud communications protocol * * imc-comm.h: command interface definitions * * Copyright (C) 1996 Oliver Jowett <oliver@sa-search.massey.ac.nz> * * 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 (see the file COPYING); if not, write to the * Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * */ #ifndef IMC_COMM_H #define IMC_COMM_H #include "imc.h" /** Semi-configurable bits **/ /* time between keepalive broadcasts (seconds) */ #define IMC_KEEPALIVE_TIME 300 /* time before dropping a mud off rlist (seconds) */ #define IMC_KEEPALIVE_TIMEOUT 350 /** End of configurable bits **/ #define IMC_IGNORE_EXACT 0 /* match exactly */ #define IMC_IGNORE_PREFIX 1 /* ignore prefixes when matching */ #define IMC_IGNORE_SUFFIX 2 /* ignore suffixes when matching */ #define IMC_IGNORE 1 /* ignore sender */ #define IMC_NOTRUST 2 /* don't trust sender's levels */ typedef struct _imc_ignore_data { char *name; int type; /* exact, prefix, suffix */ int flags; /* ignore, notrust */ struct _imc_ignore_data *next; } imc_ignore_data; extern imc_ignore_data *imc_ignore_list; extern char *imc_prefix; #define IMC_INVIS 1 #define IMC_HIDDEN 2 typedef struct { char name[IMC_NAME_LENGTH]; /* name of character */ int invis; /* invisibility state */ int see; /* invis-detection state */ int level; /* trust level */ int wizi; /* wizi level */ int sex; /* 0=male, 1=female, 2=other :) */ } imc_char_data; /* Function prototypes declared/called */ void imc_send_chat(const imc_char_data *from, int channel, const char *argument, const char *to); void imc_send_emote(const imc_char_data *from, int channel, const char *argument, const char *to); void imc_send_tell(const imc_char_data *from, const char *to, const char *argument, int isreply); void imc_send_who(const imc_char_data *from, const char *to, const char *type); void imc_send_whoreply(const char *to, const char *data); void imc_send_beep(const imc_char_data *from, const char *to); void imc_send_keepalive(void); void imc_send_ping(const char *to, int time_s, int time_u); void imc_send_pingreply(const char *to, int time_s, int time_u); void imc_recv_chat(const imc_char_data *from, int channel, const char *argument); void imc_recv_emote(const imc_char_data *from, int channel, const char *argument); void imc_recv_tell(const imc_char_data *from, const char *to, const char *argument, int isreply); void imc_recv_whoreply(const char *to, const char *data); void imc_recv_who(const imc_char_data *from, const char *type); void imc_recv_beep(const imc_char_data *from, const char *to); void imc_recv_keepalive(const char *from, const char *version); void imc_recv_ping(const char *from, int time_s, int time_u); void imc_recv_pingreply(const char *from, int time_s, int time_u); imc_ignore_data *imc_getignore(const char *who); int imc_isignored(const char *who); void imc_addignore(const char *who, int flags); int imc_delignore(const char *who); imc_ignore_data *imc_newignore(void); void imc_freeignore(imc_ignore_data *ign); const char *imc_ignore(const char *what); const char *imc_sockets(void); const char *imc_list(int level); const char *imc_getstats(void); int imc_command(const char *argument); int imc_saveconfig(void); int imc_readconfig(void); int imc_saveignores(void); int imc_readignores(void); void imc_reloadconfig(void); int imc_startup(const char *name, int port, const char *config); void imc_idle(void); void imc_shutdown(void); #endif