summaryrefslogtreecommitdiff
path: root/src/map/irc.h
blob: 163ac079386b2dc83a54121e39e8818709455740 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
// For more information, see LICENCE in the main folder

#ifndef _IRC_H_
#define _IRC_H_

#include "map.h"

// IRC .conf file [Zido]
#define IRC_CONF	"irc_athena.conf"

// IRC Access levels [Zido]
#define	ACCESS_OWNER	5
#define	ACCESS_SOP		4
#define	ACCESS_OP		3
#define	ACCESS_HOP		2
#define	ACCESS_VOICE	1
#define ACCESS_NORM		0

#define MAX_CHANNEL_USERS	500

extern short use_irc;

extern short irc_announce_flag;
extern short irc_announce_mvp_flag;
extern short irc_announce_shop_flag;
extern short irc_announce_jobchange_flag;

void irc_announce(char *buf);
void irc_announce_jobchange(struct map_session_data *sd);
void irc_announce_shop(struct map_session_data *sd,int flag);
void irc_announce_mvp(struct map_session_data *sd, struct mob_data *md);

int irc_parse(int fd);
void do_final_irc(void);
void do_init_irc(void);
void irc_send(char *buf);
void irc_parse_sub(int fd, char *incoming_string);
int send_to_parser(int fd, char *input,char key[2]);
struct IRC_Session_Info {
    int state;
    int fd;
    char username[30];
    char password[33];
};

typedef struct IRC_Session_Info IRC_SI;

struct channel_data {
	struct {
		char name[256];
		int level;
	}user[MAX_CHANNEL_USERS];
};

int parse_names_packet(char *str); // [Zido]
int parse_names(char *str); // [Zido]
int set_access(char *nick,int level); // [Zido]
int get_access(char *nick); // [Zido]
int irc_rmnames(void); // [Zido]
int irc_read_conf(char *file); // [Zido]

#endif /* _IRC_H_ */