Mana
Loading...
Searching...
No Matches
net.cpp
Go to the documentation of this file.
1/*
2 * The Mana Client
3 * Copyright (C) 2009 The Mana World Development Team
4 * Copyright (C) 2009-2012 The Mana Developers
5 *
6 * This file is part of The Mana Client.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 */
21
22#include "net/net.h"
23
24#include "log.h"
25
26#include "net/adminhandler.h"
27#include "net/charhandler.h"
28#include "net/chathandler.h"
29#include "net/generalhandler.h"
30#include "net/guildhandler.h"
32#include "net/loginhandler.h"
33#include "net/gamehandler.h"
34#include "net/npchandler.h"
35#include "net/partyhandler.h"
36#include "net/playerhandler.h"
37#include "net/abilityhandler.h"
38#include "net/tradehandler.h"
39
41
43
44#include "utils/gettext.h"
45
59
64
69
74
79
84
89
94
99
104
109
114
119
124
125namespace Net
126{
127
128static ServerType networkType = ServerType::Unknown;
129
131{
132 if (server.type == ServerType::Unknown)
133 {
134 // TODO: Query the server about itself and choose the netcode based on
135 // that
136 if (server.port == 6901)
138 else if (server.port == 9601)
139 server.type = ServerType::ManaServ;
140 else
141 Log::critical(_("Unknown Server Type! Exiting."));
142 }
143
144 if (networkType == server.type && getGeneralHandler() != nullptr)
145 {
147 }
148 else
149 {
150 unload();
151
152 switch (server.type)
153 {
154#ifdef MANASERV_SUPPORT
157 break;
158#endif
161 break;
162 default:
163 Log::critical(_("Server protocol unsupported"));
164 break;
165 }
166
168
169 networkType = server.type;
170 }
171
172 getLoginHandler()->setServer(server);
173
175}
176
177void unload()
178{
179 if (!generalHandler)
180 return;
181
183 delete generalHandler;
184
185 adminHandler = nullptr;
186 charHandler = nullptr;
187 chatHandler = nullptr;
188 generalHandler = nullptr;
189 inventoryHandler = nullptr;
190 loginHandler = nullptr;
191 gameHandler = nullptr;
192 guildHandler = nullptr;
193 npcHandler = nullptr;
194 partyHandler = nullptr;
195 playerHandler = nullptr;
196 abilityHandler = nullptr;
197 tradeHandler = nullptr;
198}
199
201{
202 return networkType;
203}
204
205} // namespace Net
virtual void load()=0
virtual void unload()=0
virtual void reload()=0
virtual void connect()=0
void setServer(const ServerInfo &server)
uint16_t port
Definition serverinfo.h:43
ServerType type
Definition serverinfo.h:40
#define _(s)
Definition gettext.h:38
Net::AbilityHandler * abilityHandler
Definition net.cpp:57
Net::AdminHandler * adminHandler
Definition net.cpp:46
Net::CharHandler * charHandler
Definition net.cpp:47
ManaServ::GameHandler * gameHandler
Definition net.cpp:52
Net::ChatHandler * chatHandler
Definition net.cpp:48
ManaServ::LoginHandler * loginHandler
Definition net.cpp:51
Net::GuildHandler * guildHandler
Definition net.cpp:53
Net::InventoryHandler * inventoryHandler
Definition net.cpp:50
Net::NpcHandler * npcHandler
Definition net.cpp:54
Net::PartyHandler * partyHandler
Definition net.cpp:55
Net::PlayerHandler * playerHandler
Definition net.cpp:56
Net::TradeHandler * tradeHandler
Definition net.cpp:58
The network communication layer.
LoginHandler * getLoginHandler()
Definition net.cpp:95
void connectToServer(ServerInfo &server)
Handles server detection and connection.
Definition net.cpp:130
ServerType getNetworkType()
Definition net.cpp:200
GameHandler * getGameHandler()
Definition net.cpp:75
CharHandler * getCharHandler()
Definition net.cpp:65
ChatHandler * getChatHandler()
Definition net.cpp:70
PlayerHandler * getPlayerHandler()
Definition net.cpp:110
GuildHandler * getGuildHandler()
Definition net.cpp:85
GeneralHandler * getGeneralHandler()
Definition net.cpp:80
AbilityHandler * getAbilityHandler()
Definition net.cpp:115
void unload()
Definition net.cpp:177
TradeHandler * getTradeHandler()
Definition net.cpp:120
AdminHandler * getAdminHandler()
Definition net.cpp:60
PartyHandler * getPartyHandler()
Definition net.cpp:105
InventoryHandler * getInventoryHandler()
Definition net.cpp:90
NpcHandler * getNpcHandler()
Definition net.cpp:100
Net::GuildHandler * guildHandler
Definition net.cpp:53
Net::LoginHandler * loginHandler
Definition net.cpp:51
Net::AdminHandler * adminHandler
Definition net.cpp:46
Net::PartyHandler * partyHandler
Definition net.cpp:55
Net::GeneralHandler * generalHandler
Definition net.cpp:49
Net::CharHandler * charHandler
Definition net.cpp:47
Net::TradeHandler * tradeHandler
Definition net.cpp:58
Net::AbilityHandler * abilityHandler
Definition net.cpp:57
Net::GameHandler * gameHandler
Definition net.cpp:52
Net::InventoryHandler * inventoryHandler
Definition net.cpp:50
Net::NpcHandler * npcHandler
Definition net.cpp:54
Net::ChatHandler * chatHandler
Definition net.cpp:48
Net::PlayerHandler * playerHandler
Definition net.cpp:56
ServerType
Definition serverinfo.h:29