diff options
Diffstat (limited to 'src/elogin/init.c')
-rw-r--r-- | src/elogin/init.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/elogin/init.c b/src/elogin/init.c new file mode 100644 index 0000000..6105b3b --- /dev/null +++ b/src/elogin/init.c @@ -0,0 +1,59 @@ +// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) 2014 Evol developers + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "common/HPMi.h" +#include "common/malloc.h" +#include "common/mmo.h" +#include "common/socket.h" +#include "common/strlib.h" +#include "login/login.h" + +#include "ecommon/init.h" +#include "elogin/config.h" +#include "elogin/login.h" +#include "elogin/parse.h" + +#include "common/HPMDataCheck.h" /* should always be the last file included! (if you don't make it last, it'll intentionally break compile time) */ + +HPExport struct hplugin_info pinfo = +{ + "evol_login", + SERVER_TYPE_LOGIN, + "0.1", + HPM_VERSION +}; + +HPExport void plugin_init (void) +{ + interfaces_init_common(); + + login = GET_SYMBOL("login"); + + addPacket(0x7530, 22, login_parse_version, hpParse_Login); + addPacket(0x027c, 95, elogin_parse_client_login2, hpParse_Login); + addPacket(0x5000, 54, elogin_parse_change_paassword, hpParse_FromChar); + addHookPre("login->parse_client_login", elogin_parse_client_login_pre); + addHookPre("login->parse_request_connection", elogin_parse_request_connection); + addHookPre("login->check_password", elogin_check_password); + addHookPre("login->parse_ping", elogin_parse_ping); +} + +HPExport void server_preinit (void) +{ + iMalloc = GET_SYMBOL("iMalloc"); + addLoginConf("update_server", config_update_server); + addLoginConf("inter_server_ip", config_inter_server_ip); +} + +HPExport void server_online (void) +{ +} + +HPExport void plugin_final (void) +{ + config_final(); +} |