From 5ff2a20caeba3a245458adc890b853caf4944992 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sun, 29 Mar 2015 12:53:28 +0300
Subject: eathena: add packet CMSG_KICK_FROM_CHAT_ROOM 0x00e2.

---
 src/net/chathandler.h           | 2 ++
 src/net/eathena/chathandler.cpp | 6 ++++++
 src/net/eathena/chathandler.h   | 2 ++
 src/net/eathena/protocol.h      | 1 +
 src/net/tmwa/chathandler.cpp    | 4 ++++
 src/net/tmwa/chathandler.h      | 2 ++
 6 files changed, 17 insertions(+)

diff --git a/src/net/chathandler.h b/src/net/chathandler.h
index 2452aecb1..f8659a8b2 100644
--- a/src/net/chathandler.h
+++ b/src/net/chathandler.h
@@ -92,6 +92,8 @@ class ChatHandler notfinal
                                         const std::string &title) const = 0;
 
         virtual void setChatRoomOwner(const std::string &nick) const = 0;
+
+        virtual void kickFromChatRoom(const std::string &nick) const = 0;
 };
 
 }  // namespace Net
diff --git a/src/net/eathena/chathandler.cpp b/src/net/eathena/chathandler.cpp
index 3fb487a3a..f0587602d 100644
--- a/src/net/eathena/chathandler.cpp
+++ b/src/net/eathena/chathandler.cpp
@@ -965,4 +965,10 @@ void ChatHandler::setChatRoomOwner(const std::string &nick) const
     outMsg.writeString(nick, 24, "nick");
 }
 
+void ChatHandler::kickFromChatRoom(const std::string &nick) const
+{
+    createOutPacket(CMSG_KICK_FROM_CHAT_ROOM);
+    outMsg.writeString(nick, 24, "nick");
+}
+
 }  // namespace EAthena
diff --git a/src/net/eathena/chathandler.h b/src/net/eathena/chathandler.h
index 87599fd20..3fd70290a 100644
--- a/src/net/eathena/chathandler.h
+++ b/src/net/eathena/chathandler.h
@@ -96,6 +96,8 @@ class ChatHandler final : public MessageHandler, public Ea::ChatHandler
 
         void setChatRoomOwner(const std::string &nick) const override final;
 
+        void kickFromChatRoom(const std::string &nick) const override final;
+
     protected:
         static std::string extractChannelFromMessage(std::string &chatMsg);
 
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index e95a5716e..5cea63669 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -496,6 +496,7 @@
 #define CMSG_LEAVE_CHAT_ROOM         0x00e3
 #define CMSG_SET_CHAT_ROOM_OPTIONS   0x00de
 #define CMSG_SET_CHAT_ROOM_OWNER     0x00e0
+#define CMSG_KICK_FROM_CHAT_ROOM     0x00e2
 
 #define CMSG_SKILL_LEVELUP_REQUEST   0x0112
 #define CMSG_STAT_UPDATE_REQUEST     0x00bb
diff --git a/src/net/tmwa/chathandler.cpp b/src/net/tmwa/chathandler.cpp
index f54d2cac0..c60c1f600 100644
--- a/src/net/tmwa/chathandler.cpp
+++ b/src/net/tmwa/chathandler.cpp
@@ -703,4 +703,8 @@ void ChatHandler::setChatRoomOwner(const std::string &nick A_UNUSED) const
 {
 }
 
+void ChatHandler::kickFromChatRoom(const std::string &nick A_UNUSED) const
+{
+}
+
 }  // namespace TmwAthena
diff --git a/src/net/tmwa/chathandler.h b/src/net/tmwa/chathandler.h
index dee315352..58c292275 100644
--- a/src/net/tmwa/chathandler.h
+++ b/src/net/tmwa/chathandler.h
@@ -94,6 +94,8 @@ class ChatHandler final : public MessageHandler, public Ea::ChatHandler
 
         void setChatRoomOwner(const std::string &nick) const override final;
 
+        void kickFromChatRoom(const std::string &nick) const override final;
+
     protected:
         static void processChat(Net::MessageIn &msg);
 
-- 
cgit v1.2.3-70-g09d2