X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2FChanUser.h;h=e98a8cd25efeecddff6e6e28ac3ef791306b07b0;hb=29dd2a00d5d26bb042dfbe90fdd96eea1a0be300;hp=076b7f79d76177472513ee58dd15439d382d75ae;hpb=0f1dc61921eef1db8e404a5a82372e2d1cd55daa;p=NeonServV5.git diff --git a/src/ChanUser.h b/src/ChanUser.h index 076b7f7..e98a8cd 100644 --- a/src/ChanUser.h +++ b/src/ChanUser.h @@ -1,3 +1,19 @@ +/* ChanUser.h - NeonServ v5.6 + * Copyright (C) 2011-2012 Philipp Kreil (pk910) + * + * 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 3 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, see . + */ #ifndef _ChanUser_h #define _ChanUser_h #include "main.h" @@ -5,31 +21,39 @@ #define CHANUSERFLAG_OPPED 0x01 #define CHANUSERFLAG_VOICED 0x02 #define CHANUSERFLAG_INVISIBLE 0x04 +#define CHANUSERFLAG_HALFOPPED 0x08 -#define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_VOICED) +#define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_HALFOPPED | CHANUSERFLAG_VOICED) struct ChanNode; struct UserNode; +struct NeonSpamNode; struct ChanUser { unsigned char flags; struct ChanNode *chan; struct UserNode *user; + int visCount; //visible counter - if this is 0, the ChanUser gets removed + int chageEvents; time_t changeTime; + struct NeonSpamNode *spamnode; + struct ChanUser *next_user; struct ChanUser *next_chan; }; +#ifndef DND_FUNCTIONS struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user); struct ChanUser* addInvisibleChanUser(struct ChanNode *chan, struct UserNode *user); -int isUserOnChan(struct UserNode *user, struct ChanNode *chan); -struct ChanUser* getChanUser(struct UserNode *user, struct ChanNode *chan); -struct ChanUser* getChannelUsers(struct ChanNode *chan, struct ChanUser *last); -struct ChanUser* getUserChannels(struct UserNode *user, struct ChanUser *last); +/* MODULAR ACCESSIBLE */ int isUserOnChan(struct UserNode *user, struct ChanNode *chan); +/* MODULAR ACCESSIBLE */ struct ChanUser* getChanUser(struct UserNode *user, struct ChanNode *chan); +/* MODULAR ACCESSIBLE */ struct ChanUser* getChannelUsers(struct ChanNode *chan, struct ChanUser *last); +/* MODULAR ACCESSIBLE */ struct ChanUser* getUserChannels(struct UserNode *user, struct ChanUser *last); void delChanUser(struct ChanUser *chanuser, int freeChanUser); void removeChanUserFromLists(struct ChanUser *chanuser, int remove_from_userlist, int remove_from_channellist, int freeChanUser); - -#endif \ No newline at end of file +void freeChanUser(struct ChanUser *chanuser); +#endif +#endif