summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/commandhandler.cpp14
-rw-r--r--src/gui/partywindow.cpp20
-rw-r--r--src/localplayer.cpp15
-rw-r--r--src/net/ea/generalhandler.cpp4
-rw-r--r--src/net/ea/gui/partytab.cpp60
-rw-r--r--src/net/ea/partyhandler.cpp6
-rw-r--r--src/net/ea/partyhandler.h4
-rw-r--r--src/net/partyhandler.h6
-rw-r--r--src/net/tmwserv/generalhandler.cpp16
-rw-r--r--src/net/tmwserv/partyhandler.cpp59
-rw-r--r--src/net/tmwserv/partyhandler.h25
11 files changed, 144 insertions, 85 deletions
diff --git a/src/commandhandler.cpp b/src/commandhandler.cpp
index 6fc28978..586a62cd 100644
--- a/src/commandhandler.cpp
+++ b/src/commandhandler.cpp
@@ -156,9 +156,9 @@ void CommandHandler::handleHelp(const std::string &args, ChatTab *tab)
tab->chatLog(_("/clear > Clears this window"));
tab->chatLog(_("/op > Make a user a channel operator"));
tab->chatLog(_("/kick > Kick a user from the channel"));
+#endif
tab->chatLog(_("/party > Invite a user to party"));
-#endif
tab->chatLog(_("/record > Start recording the chat to an external file"));
tab->chatLog(_("/toggle > Determine whether <return> toggles the chat log"));
@@ -230,14 +230,10 @@ void CommandHandler::handleHelp(const std::string &args, ChatTab *tab)
}
else if (args == "party")
{
-#ifdef TMWSERV_SUPPORT
tab->chatLog(_("Command: /party <nick>"));
tab->chatLog(_("This command invites <nick> to party with you."));
tab->chatLog(_("If the <nick> has spaces in it, enclose it in "
"double quotes (\")."));
-#else
- tab->chatLog(_("Party commands are used on the party tab."));
-#endif
}
else if (args == "present")
{
@@ -449,14 +445,10 @@ void CommandHandler::handleKick(const std::string &args, ChatTab *tab)
void CommandHandler::handleParty(const std::string &args, ChatTab *tab)
{
-#ifdef TMWSERV_SUPPORT
if (args != "")
- {
player_node->inviteToParty(args);
- }
-#else
- tab->chatLog(_("Please use party commands on the party tab."));
-#endif
+ else
+ tab->chatLog("Please specify a name.", BY_SERVER);
}
void CommandHandler::handleMe(const std::string &args, ChatTab *tab)
diff --git a/src/gui/partywindow.cpp b/src/gui/partywindow.cpp
index fde39179..aea1388b 100644
--- a/src/gui/partywindow.cpp
+++ b/src/gui/partywindow.cpp
@@ -24,11 +24,7 @@
#include "gui/widgets/chattab.h"
#include "net/net.h"
-#ifdef TMWSERV_SUPPORT
-#include "net/tmwserv/chatserver/party.h"
-#else
-#include "net/ea/partyhandler.h"
-#endif
+#include "net/partyhandler.h"
#include "utils/gettext.h"
#include "utils/strprintf.h"
@@ -172,23 +168,13 @@ void PartyWindow::action(const gcn::ActionEvent &event)
if (eventId == "yes")
{
localChatTab->chatLog("Accepted invite from " + mPartyInviter);
- // Net::getPartyHandler()->inviteResponse(true);
-#ifdef TMWSERV_SUPPORT
- Net::ChatServer::Party::acceptInvite(mPartyInviter);
-#else
- partyHandler->inviteResponse(true);
-#endif
+ Net::getPartyHandler()->inviteResponse(mPartyInviter, true);
mPartyInviter = "";
}
else if (eventId == "no")
{
localChatTab->chatLog("Rejected invite from " + mPartyInviter);
- // Net::getPartyHandler()->inviteResponse(false);
-#ifdef TMWSERV_SUPPORT
- // TODO
-#else
- partyHandler->inviteResponse(false);
-#endif
+ Net::getPartyHandler()->inviteResponse(mPartyInviter, false);
mPartyInviter = "";
}
}
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index fea3bae8..d44e28c0 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -45,6 +45,7 @@
#include "net/inventoryhandler.h"
#include "net/net.h"
+#include "net/partyhandler.h"
#include "net/playerhandler.h"
#include "net/tradehandler.h"
@@ -54,7 +55,6 @@
#include "net/tmwserv/gameserver/player.h"
#include "net/tmwserv/chatserver/guild.h"
-#include "net/tmwserv/chatserver/party.h"
#else
#include "net/ea/partyhandler.h"
#include "net/ea/skillhandler.h"
@@ -322,21 +322,12 @@ void LocalPlayer::setInvItem(int index, int id, int amount)
void LocalPlayer::inviteToParty(const std::string &name)
{
-#ifdef TMWSERV_SUPPORT
- Net::ChatServer::Party::invitePlayer(name);
-#else
- // need an id
-#endif
+ Net::getPartyHandler()->invite(name);
}
void LocalPlayer::inviteToParty(Player *player)
{
- // Net::getPartyHandler()->invite(player->getId());
-#ifdef TMWSERV_SUPPORT
- Net::ChatServer::Party::invitePlayer(player->getName());
-#else
- partyHandler->invite(player->getId());
-#endif
+ Net::getPartyHandler()->invite(player);
}
void LocalPlayer::moveInvItem(Item *item, int newIndex)
diff --git a/src/net/ea/generalhandler.cpp b/src/net/ea/generalhandler.cpp
index e0974e63..2dee8d1e 100644
--- a/src/net/ea/generalhandler.cpp
+++ b/src/net/ea/generalhandler.cpp
@@ -141,7 +141,9 @@ void GeneralHandler::unload()
{
mNetwork->clearHandlers();
- delete partyTab;
+ // The party tab might not have been made (if we never loaded the main GUI)
+ if (partyTab)
+ delete partyTab;
}
void GeneralHandler::flushNetwork()
diff --git a/src/net/ea/gui/partytab.cpp b/src/net/ea/gui/partytab.cpp
index 0e0e339e..5f6da0f9 100644
--- a/src/net/ea/gui/partytab.cpp
+++ b/src/net/ea/gui/partytab.cpp
@@ -22,8 +22,7 @@
#include "partytab.h"
#include "net/net.h"
-
-#include "net/ea/partyhandler.h"
+#include "net/partyhandler.h"
#include "resources/iteminfo.h"
#include "resources/itemdb.h"
@@ -44,8 +43,7 @@ PartyTab::~PartyTab()
void PartyTab::handleInput(const std::string &msg)
{
- // Net::getPartyHandler()->chat(msg);
- partyHandler->chat(msg);
+ Net::getPartyHandler()->chat(msg);
}
void PartyTab::handleCommand(std::string msg)
@@ -58,36 +56,44 @@ void PartyTab::handleCommand(std::string msg)
{
if (args == "")
{
- partyTab->chatLog(_("-- Help --"));
- partyTab->chatLog(_("/help > Display this help."));
- partyTab->chatLog(_("/create > Create a new party"));
- partyTab->chatLog(_("/new > alias of create"));
- partyTab->chatLog(_("/leave > leave the party you are in"));
+ chatLog(_("-- Help --"));
+ chatLog(_("/help > Display this help."));
+ chatLog(_("/create > Create a new party"));
+ chatLog(_("/new > Alias of create"));
+ chatLog(_("/invite > Invite a player to your party"));
+ chatLog(_("/leave > Leave the party you are in"));
}
else if (args == "create" || args == "new")
{
- partyTab->chatLog(_("Command: /party new <party-name>"));
- partyTab->chatLog(_("Command: /party create <party-name>"));
- partyTab->chatLog(_("These commands create a new party <party-name."));
+ chatLog(_("Command: /new <party-name>"));
+ chatLog(_("Command: /create <party-name>"));
+ chatLog(_("These commands create a new party called <party-name>."));
}
//else if (msg == "settings")
//else if (msg == "info")
+ else if (args == "invite")
+ {
+ chatLog(_("Command: /invite <nick>"));
+ chatLog(_("This command invites <nick> to party with you."));
+ chatLog(_("If the <nick> has spaces in it, enclose it in "
+ "double quotes (\")."));
+ }
else if (args == "leave")
{
- partyTab->chatLog(_("Command: /party leave"));
- partyTab->chatLog(_("This command causes the player to leave the party."));
+ chatLog(_("Command: /leave"));
+ chatLog(_("This command causes the player to leave the party."));
}
else if (args == "help")
{
- partyTab->chatLog(_("Command: /help"));
- partyTab->chatLog(_("This command displays a list of all commands available."));
- partyTab->chatLog(_("Command: /help <command>"));
- partyTab->chatLog(_("This command displays help on <command>."));
+ chatLog(_("Command: /help"));
+ chatLog(_("This command displays a list of all commands available."));
+ chatLog(_("Command: /help <command>"));
+ chatLog(_("This command displays help on <command>."));
}
else
{
- partyTab->chatLog(_("Unknown command."));
- partyTab->chatLog(_("Type /help for a list of commands."));
+ chatLog(_("Unknown command."));
+ chatLog(_("Type /help for a list of commands."));
}
}
else if (type == "create" || type == "new")
@@ -95,17 +101,19 @@ void PartyTab::handleCommand(std::string msg)
if (args.empty())
chatLog(_("Party name is missing."), BY_SERVER);
else
- // Net::getPartyHandler()->create(args);
- partyHandler->create(args);
+ Net::getPartyHandler()->create(args);
+ }
+ else if (type == "invite")
+ {
+ Net::getPartyHandler()->invite(args);
}
else if (type == "leave")
{
- // Net::getPartyHandler()->leave();
- partyHandler->leave();
+ Net::getPartyHandler()->leave();
}
else if (type == "settings")
{
- partyTab->chatLog(_("The settings command is not yet implemented!"));
+ chatLog(_("The settings command is not yet implemented!"));
/*
MessageOut outMsg(CMSG_PARTY_SETTINGS);
outMsg.writeInt16(0); // Experience
@@ -114,6 +122,6 @@ void PartyTab::handleCommand(std::string msg)
}
else
{
- partyTab->chatLog("Unknown command");
+ chatLog("Unknown command");
}
}
diff --git a/src/net/ea/partyhandler.cpp b/src/net/ea/partyhandler.cpp
index 863765d5..f76bd7d8 100644
--- a/src/net/ea/partyhandler.cpp
+++ b/src/net/ea/partyhandler.cpp
@@ -219,10 +219,10 @@ void PartyHandler::join(int partyId)
{
}
-void PartyHandler::invite(int playerId)
+void PartyHandler::invite(Player *player)
{
MessageOut outMsg(CMSG_PARTY_INVITE);
- outMsg.writeInt32(playerId);
+ outMsg.writeInt32(player->getId());
}
void PartyHandler::invite(const std::string &name)
@@ -230,7 +230,7 @@ void PartyHandler::invite(const std::string &name)
// TODO
}
-void PartyHandler::inviteResponse(bool accept)
+void PartyHandler::inviteResponse(const std::string &inviter, bool accept)
{
MessageOut outMsg(CMSG_PARTY_INVITED);
outMsg.writeInt32(player_node->getId());
diff --git a/src/net/ea/partyhandler.h b/src/net/ea/partyhandler.h
index d156cdc1..41338c96 100644
--- a/src/net/ea/partyhandler.h
+++ b/src/net/ea/partyhandler.h
@@ -39,11 +39,11 @@ class PartyHandler : public MessageHandler, public Net::PartyHandler
void join(int partyId);
- void invite(int playerId);
+ void invite(Player *player);
void invite(const std::string &name);
- void inviteResponse(bool accept);
+ void inviteResponse(const std::string &inviter, bool accept);
void leave();
diff --git a/src/net/partyhandler.h b/src/net/partyhandler.h
index af84a746..85b7a2ba 100644
--- a/src/net/partyhandler.h
+++ b/src/net/partyhandler.h
@@ -24,6 +24,8 @@
#include <string>
+class Player;
+
namespace Net {
class PartyHandler
@@ -33,11 +35,11 @@ class PartyHandler
virtual void join(int partyId) = 0;
- virtual void invite(int playerId) = 0;
+ virtual void invite(Player *player) = 0;
virtual void invite(const std::string &name) = 0;
- virtual void inviteResponse(bool accept) = 0;
+ virtual void inviteResponse(const std::string &inviter, bool accept) = 0;
virtual void leave() = 0;
diff --git a/src/net/tmwserv/generalhandler.cpp b/src/net/tmwserv/generalhandler.cpp
index c5f00624..504af023 100644
--- a/src/net/tmwserv/generalhandler.cpp
+++ b/src/net/tmwserv/generalhandler.cpp
@@ -51,19 +51,19 @@ namespace TmwServ {
GeneralHandler::GeneralHandler():
mBeingHandler(new BeingHandler),
mBuySellHandler(new BuySellHandler),
- mCharServerHandler(new TmwServ::CharServerHandler),
- mChatHandler(new TmwServ::ChatHandler),
+ mCharServerHandler(new CharServerHandler),
+ mChatHandler(new ChatHandler),
mEffectHandler(new EffectHandler),
mGuildHandler(new GuildHandler),
- mInventoryHandler(new TmwServ::InventoryHandler),
+ mInventoryHandler(new InventoryHandler),
mItemHandler(new ItemHandler),
- mLoginHandler(new TmwServ::LoginHandler),
+ mLoginHandler(new LoginHandler),
mLogoutHandler(new LogoutHandler),
- mMapHandler(new TmwServ::MapHandler),
- mNpcHandler(new TmwServ::NpcHandler),
+ mMapHandler(new MapHandler),
+ mNpcHandler(new NpcHandler),
mPartyHandler(new PartyHandler),
- mPlayerHandler(new TmwServ::PlayerHandler),
- mTradeHandler(new TmwServ::TradeHandler)
+ mPlayerHandler(new PlayerHandler),
+ mTradeHandler(new TradeHandler)
{
accountServerConnection = Net::getConnection();
gameServerConnection = Net::getConnection();
diff --git a/src/net/tmwserv/partyhandler.cpp b/src/net/tmwserv/partyhandler.cpp
index 08e58667..5aecca76 100644
--- a/src/net/tmwserv/partyhandler.cpp
+++ b/src/net/tmwserv/partyhandler.cpp
@@ -21,9 +21,11 @@
#include "net/tmwserv/partyhandler.h"
-#include "net/tmwserv/chatserver/chatserver.h"
#include "net/tmwserv/protocol.h"
+#include "net/tmwserv/chatserver/chatserver.h"
+#include "net/tmwserv/chatserver/party.h"
+
#include "net/messagein.h"
#include "gui/partywindow.h"
@@ -35,6 +37,10 @@
#include <iostream>
+Net::PartyHandler *partyHandler;
+
+namespace TmwServ {
+
PartyHandler::PartyHandler()
{
static const Uint16 _messages[] = {
@@ -47,7 +53,7 @@ PartyHandler::PartyHandler()
0
};
handledMessages = _messages;
-
+ partyHandler = this;
}
void PartyHandler::handleMessage(MessageIn &msg)
@@ -104,3 +110,52 @@ void PartyHandler::handleMessage(MessageIn &msg)
} break;
}
}
+
+void PartyHandler::create(const std::string &name)
+{
+ // TODO
+}
+
+void PartyHandler::join(int partyId)
+{
+ // TODO
+}
+
+void PartyHandler::invite(Player *player)
+{
+ invite(player->getName());
+}
+
+void PartyHandler::invite(const std::string &name)
+{
+ Net::ChatServer::Party::invitePlayer(name);
+}
+
+void PartyHandler::inviteResponse(const std::string &inviter, bool accept)
+{
+ if (accept)
+ Net::ChatServer::Party::acceptInvite(inviter);
+ // TODO: rejection
+}
+
+void PartyHandler::leave()
+{
+ // TODO
+}
+
+void PartyHandler::kick(int playerId)
+{
+ // TODO
+}
+
+void PartyHandler::chat(const std::string &text)
+{
+ // TODO
+}
+
+void PartyHandler::requestPartyMembers()
+{
+ // TODO
+}
+
+} // namespace TmwServ
diff --git a/src/net/tmwserv/partyhandler.h b/src/net/tmwserv/partyhandler.h
index 66e29b0d..9dad4bbc 100644
--- a/src/net/tmwserv/partyhandler.h
+++ b/src/net/tmwserv/partyhandler.h
@@ -23,16 +23,39 @@
#define NET_TMWSERV_PARTYHANDLER_H
#include "net/messagehandler.h"
+#include "net/partyhandler.h"
#include <string>
-class PartyHandler : public MessageHandler
+namespace TmwServ {
+
+class PartyHandler : public MessageHandler, public Net::PartyHandler
{
public:
PartyHandler();
void handleMessage(MessageIn &msg);
+
+ void create(const std::string &name = "");
+
+ void join(int partyId);
+
+ void invite(Player *player);
+
+ void invite(const std::string &name);
+
+ void inviteResponse(const std::string &inviter, bool accept);
+
+ void leave();
+
+ void kick(int playerId);
+
+ void chat(const std::string &text);
+
+ void requestPartyMembers();
};
+} // namespace TmwServ
+
#endif