Add/Remove Friends

Add/Remove Ignores
This commit is contained in:
HikikoMarmy
2025-07-17 22:03:56 +01:00
2 changed files with 87 additions and 56 deletions

View File

@@ -3,6 +3,9 @@
#include <map> #include <map>
#include <functional> #include <functional>
/* 0001 */ #include "Event/RequestAddFriend.h"
/* 0002 */ #include "Event/RequestAddIgnore.h"
/* 0005 */ #include "Event/RequestCancelGame.h" /* 0005 */ #include "Event/RequestCancelGame.h"
/* 0006 */ #include "Event/RequestCreateAccount.h" /* 0006 */ #include "Event/RequestCreateAccount.h"
@@ -22,6 +25,10 @@
/* 0017 */ #include "Event/RequestLogout.h" /* 0017 */ #include "Event/RequestLogout.h"
/* 0018 */ #include "Event/RequestMatchGame.h" /* 0018 */ #include "Event/RequestMatchGame.h"
/* 001C */ #include "Event/RequestRemoveFriend.h"
/* 001D */ #include "Event/RequestRemoveIgnore.h"
/* 0021 */ #include "Event/RequestSendInstantMessage.h"
/* 0022 */ #include "Event/RequestSendRoomMessage.h" /* 0022 */ #include "Event/RequestSendRoomMessage.h"
/* 0023 */ #include "Event/RequestStartGame.h" /* 0023 */ #include "Event/RequestStartGame.h"
/* 0024 */ #include "Event/RequestTouchSession.h" /* 0024 */ #include "Event/RequestTouchSession.h"
@@ -46,13 +53,24 @@
/* 005E */ #include "Event/RequestSaveCharacter_RTA.h" /* 005E */ #include "Event/RequestSaveCharacter_RTA.h"
/* 005F */ #include "Event/RequestUserJoinSuccess.h" /* 005F */ #include "Event/RequestUserJoinSuccess.h"
/* 0060 */ #include "Event/RequestCancelGame_RTA.h" /* 0060 */ #include "Event/RequestCancelGame_RTA.h"
/* 0061 */ #include "Event/RequestGetFriendList.h" /* 0061 */ #include "Event/RequestGetSocialListInitial.h"
/* 0062 */ #include "Event/RequestGetSocialListUpdate.h"
/* 0066 */ #include "Event/RequestDoClientDiscovery_RTA.h" /* 0066 */ #include "Event/RequestDoClientDiscovery_RTA.h"
const std::map< int16_t, std::function< std::unique_ptr< GenericRequest >() > > REQUEST_EVENT = const std::map< int16_t, std::function< std::unique_ptr< GenericRequest >() > > REQUEST_EVENT =
{ {
{ 0x0001, []() -> std::unique_ptr< GenericRequest >
{
return std::make_unique< RequestAddFriend >();
}
},
{ 0x0002, []() -> std::unique_ptr< GenericRequest >
{
return std::make_unique< RequestAddIgnore >();
}
},
{ 0x0005, []() -> std::unique_ptr< GenericRequest > { 0x0005, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestCancelGame >(); return std::make_unique< RequestCancelGame >();
@@ -123,6 +141,21 @@ const std::map< int16_t, std::function< std::unique_ptr< GenericRequest >() > >
return std::make_unique< RequestMatchGame >(); return std::make_unique< RequestMatchGame >();
} }
}, },
{ 0x001C, []() -> std::unique_ptr< GenericRequest >
{
return std::make_unique< RequestRemoveFriend >();
}
},
{ 0x001D, []() -> std::unique_ptr< GenericRequest >
{
return std::make_unique< RequestRemoveIgnore >();
}
},
{ 0x0021, []() -> std::unique_ptr< GenericRequest >
{
return std::make_unique< RequestSendInstantMessage >();
}
},
{ 0x0022, []() -> std::unique_ptr< GenericRequest > { 0x0022, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestSendRoomMessage >(); return std::make_unique< RequestSendRoomMessage >();
@@ -135,97 +168,102 @@ const std::map< int16_t, std::function< std::unique_ptr< GenericRequest >() > >
}, },
{ 0x0024, []() -> std::unique_ptr< GenericRequest > { 0x0024, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestTouchSession >(); return std::make_unique< RequestTouchSession >();
} }
}, },
{ 0x0025, []() -> std::unique_ptr< GenericRequest > { 0x0025, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestDoClientDiscovery >(); return std::make_unique< RequestDoClientDiscovery >();
} }
}, },
{ 0x0027, []() -> std::unique_ptr< GenericRequest > { 0x0027, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestGetEncryptionKey >(); return std::make_unique< RequestGetEncryptionKey >();
} }
}, },
{ 0x0042, []() -> std::unique_ptr< GenericRequest > { 0x0042, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestGetRules >(); return std::make_unique< RequestGetRules >();
} }
}, },
{ 0x0043, []() -> std::unique_ptr< GenericRequest > { 0x0043, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestGetServerAddress >(); return std::make_unique< RequestGetServerAddress >();
} }
}, },
{ 0x0044, []() -> std::unique_ptr< GenericRequest > { 0x0044, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestUpdateGameData >(); return std::make_unique< RequestUpdateGameData >();
} }
}, },
{ 0x0054, []() -> std::unique_ptr< GenericRequest > { 0x0054, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestCreatePublicGame_RTA >(); return std::make_unique< RequestCreatePublicGame_RTA >();
} }
}, },
{ 0x0055, []() -> std::unique_ptr< GenericRequest > { 0x0055, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestMatchGame_RTA >(); return std::make_unique< RequestMatchGame_RTA >();
} }
}, },
{ 0x0056, []() -> std::unique_ptr< GenericRequest > { 0x0056, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestCreatePrivateGame_RTA >(); return std::make_unique< RequestCreatePrivateGame_RTA >();
} }
}, },
{ 0x0057, []() -> std::unique_ptr< GenericRequest > { 0x0057, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestGetGame_RTA >(); return std::make_unique< RequestGetGame_RTA >();
} }
}, },
{ 0x0058, []() -> std::unique_ptr< GenericRequest > { 0x0058, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestCreateNewCharacter_RTA >(); return std::make_unique< RequestCreateNewCharacter_RTA >();
} }
}, },
{ 0x005B, []() -> std::unique_ptr< GenericRequest > { 0x005B, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestGetNetCharacterList_RTA >(); return std::make_unique< RequestGetNetCharacterList_RTA >();
} }
}, },
{ 0x005C, []() -> std::unique_ptr< GenericRequest > { 0x005C, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestGetNetCharacterData_RTA >(); return std::make_unique< RequestGetNetCharacterData_RTA >();
} }
}, },
{ 0x005D, []() -> std::unique_ptr< GenericRequest > { 0x005D, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestAppendCharacterData >(); return std::make_unique< RequestAppendCharacterData >();
} }
}, },
{ 0x005E, []() -> std::unique_ptr< GenericRequest > { 0x005E, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestSaveCharacter_RTA >(); return std::make_unique< RequestSaveCharacter_RTA >();
} }
}, },
{ 0x005F, []() -> std::unique_ptr< GenericRequest > { 0x005F, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestUserJoinSuccess >(); return std::make_unique< RequestUserJoinSuccess >();
} }
}, },
{ 0x0060, []() -> std::unique_ptr< GenericRequest > { 0x0060, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestCancelGame_RTA >(); return std::make_unique< RequestCancelGame_RTA >();
} }
}, },
{ 0x0061, []() -> std::unique_ptr< GenericRequest > { 0x0061, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestGetFriendList >(); return std::make_unique< RequestGetSocialListInitial >();
} }
},
{ 0x0062, []() -> std::unique_ptr< GenericRequest >
{
return std::make_unique< RequestGetSocialListUpdate >();
}
}, },
{ 0x0066, []() -> std::unique_ptr< GenericRequest > { 0x0066, []() -> std::unique_ptr< GenericRequest >
{ {
return std::make_unique< RequestDoClientDiscovery_RTA >(); return std::make_unique< RequestDoClientDiscovery_RTA >();
} }
}, },
}; };

View File

@@ -7,14 +7,7 @@ The server is currently a work in progress.
| Game | Status | | Game | Status |
|-------------------------------|--------------------| |-------------------------------|--------------------|
| Champions of Norrath | ✅ Supported | | Champions of Norrath | ✅ Supported |
| Champions: Return To Arms | ⚠️ ~90% Supported | | Champions: Return To Arms | Supported |
---
Return To Arms TODO:
- ~Online Character Saves~
- ~Chat Room~
- Friends List
- Ignore List
--- ---