| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515 |
- /*
- * Copyright (c) 2014, Oculus VR, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
- #include "RoomsPlugin.h"
- #include "RakPeerInterface.h"
- #include "ProfanityFilter.h"
- #include "MessageIdentifiers.h"
- #include "Kbhit.h"
- #include <ctype.h>
- #include "Gets.h"
- struct SampleCallbacks : public RakNet::RoomsCallback
- {
- // Results of calls
- virtual void CreateRoom_Callback( const RakNet::SystemAddress &senderAddress, RakNet::CreateRoom_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void EnterRoom_Callback( const RakNet::SystemAddress &senderAddress, RakNet::EnterRoom_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void JoinByFilter_Callback( const RakNet::SystemAddress &senderAddress, RakNet::JoinByFilter_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void LeaveRoom_Callback( const RakNet::SystemAddress &senderAddress, RakNet::LeaveRoom_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void GetInvitesToParticipant_Callback( const RakNet::SystemAddress &senderAddress, RakNet::GetInvitesToParticipant_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void SendInvite_Callback( const RakNet::SystemAddress &senderAddress, RakNet::SendInvite_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void AcceptInvite_Callback( const RakNet::SystemAddress &senderAddress, RakNet::AcceptInvite_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void StartSpectating_Callback( const RakNet::SystemAddress &senderAddress, RakNet::StartSpectating_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void StopSpectating_Callback( const RakNet::SystemAddress &senderAddress, RakNet::StopSpectating_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void GrantModerator_Callback( const RakNet::SystemAddress &senderAddress, RakNet::GrantModerator_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void ChangeSlotCounts_Callback( const RakNet::SystemAddress &senderAddress, RakNet::ChangeSlotCounts_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void SetCustomRoomProperties_Callback( const RakNet::SystemAddress &senderAddress, RakNet::SetCustomRoomProperties_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void GetRoomProperties_Callback( const RakNet::SystemAddress &senderAddress, RakNet::GetRoomProperties_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void ChangeRoomName_Callback( const RakNet::SystemAddress &senderAddress, RakNet::ChangeRoomName_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void SetHiddenFromSearches_Callback( const RakNet::SystemAddress &senderAddress, RakNet::SetHiddenFromSearches_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void SetDestroyOnModeratorLeave_Callback( const RakNet::SystemAddress &senderAddress, RakNet::SetDestroyOnModeratorLeave_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void SetReadyStatus_Callback( const RakNet::SystemAddress &senderAddress, RakNet::SetReadyStatus_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void GetReadyStatus_Callback( const RakNet::SystemAddress &senderAddress, RakNet::GetReadyStatus_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void SetRoomLockState_Callback( const RakNet::SystemAddress &senderAddress, RakNet::SetRoomLockState_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void GetRoomLockState_Callback( const RakNet::SystemAddress &senderAddress, RakNet::GetRoomLockState_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void AreAllMembersReady_Callback( const RakNet::SystemAddress &senderAddress, RakNet::AreAllMembersReady_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void KickMember_Callback( const RakNet::SystemAddress &senderAddress, RakNet::KickMember_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void UnbanMember_Callback( const RakNet::SystemAddress &senderAddress, RakNet::UnbanMember_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void GetBanReason_Callback( const RakNet::SystemAddress &senderAddress, RakNet::GetBanReason_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void AddUserToQuickJoin_Callback( const RakNet::SystemAddress &senderAddress, RakNet::AddUserToQuickJoin_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void RemoveUserFromQuickJoin_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RemoveUserFromQuickJoin_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void IsInQuickJoin_Callback( const RakNet::SystemAddress &senderAddress, RakNet::IsInQuickJoin_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void SearchByFilter_Callback( const RakNet::SystemAddress &senderAddress, RakNet::SearchByFilter_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void ChangeHandle_Callback( const RakNet::SystemAddress &senderAddress, RakNet::ChangeHandle_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- virtual void Chat_Callback( const RakNet::SystemAddress &senderAddress, RakNet::Chat_Func *callResult) {(void) senderAddress; callResult->PrintResult();}
- // Notifications due to other room members
- virtual void QuickJoinExpired_Callback( const RakNet::SystemAddress &senderAddress, RakNet::QuickJoinExpired_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void QuickJoinEnteredRoom_Callback( const RakNet::SystemAddress &senderAddress, RakNet::QuickJoinEnteredRoom_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomMemberStartedSpectating_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomMemberStartedSpectating_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomMemberStoppedSpectating_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomMemberStoppedSpectating_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void ModeratorChanged_Callback( const RakNet::SystemAddress &senderAddress, RakNet::ModeratorChanged_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void SlotCountsSet_Callback( const RakNet::SystemAddress &senderAddress, RakNet::SlotCountsSet_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void CustomRoomPropertiesSet_Callback( const RakNet::SystemAddress &senderAddress, RakNet::CustomRoomPropertiesSet_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomNameSet_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomNameSet_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void HiddenFromSearchesSet_Callback( const RakNet::SystemAddress &senderAddress, RakNet::HiddenFromSearchesSet_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomMemberReadyStatusSet_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomMemberReadyStatusSet_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomLockStateSet_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomLockStateSet_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomMemberKicked_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomMemberKicked_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomMemberHandleSet_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomMemberHandleSet_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomMemberLeftRoom_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomMemberLeftRoom_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomMemberJoinedRoom_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomMemberJoinedRoom_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomInvitationSent_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomInvitationSent_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomInvitationWithdrawn_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomInvitationWithdrawn_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void RoomDestroyedOnModeratorLeft_Callback( const RakNet::SystemAddress &senderAddress, RakNet::RoomDestroyedOnModeratorLeft_Notification *notification) {(void) senderAddress; notification->PrintResult();}
- virtual void Chat_Callback( const RakNet::SystemAddress &senderAddress, RakNet::Chat_Notification *notification) {(void) senderAddress; notification->PrintResult(); printf("Chat=%s\nFiltered=%s\n", notification->chatMessage.C_String(), notification->filteredChatMessage.C_String());}
- };
- static const char *GAME_IDENTIFIER="My Game";
- static const char *ROOM_NAME="My Room";
- void GetUserName(RakNet::RoomsPluginFunc *func)
- {
- printf("Which user? 1=User1, 2=User2, 3=User3, 4=User4: ");
- char ch = getche();
- if (ch=='1')
- func->userName="User1";
- else if (ch=='2')
- func->userName="User2";
- else if (ch=='3')
- func->userName="User3";
- else
- func->userName="User4";
- printf("\n");
- }
- void GetRoomName(RakNet::RakString &dest)
- {
- char buff[256];
- printf("Enter room name, or enter for default: ");
- Gets(buff,sizeof(buff));
- if (buff[0]==0)
- dest=ROOM_NAME;
- else
- dest=buff;
- }
- void GetTargetName(RakNet::RakString *target)
- {
- printf("Which target user? 1=User1, 2=User2, 3=User3, 4=User4: ");
- char ch = getche();
- if (ch=='1')
- *target="User1";
- else if (ch=='2')
- *target="User2";
- else if (ch=='3')
- *target="User3";
- else
- *target="User4";
- printf("\n");
- }
- void main(void)
- {
- printf("A system for creating rooms for players to meet in before starting games.\n");
- printf("Difficulty: Intermediate\n\n");
- // Do the unit test to make sure the core functionality is correct. The plugin just does networking
- //RakNet::AllGamesRoomsContainer::UnitTest();
- RakNet::RakPeerInterface *client, *server;
- RakNet::RoomsPlugin roomsPluginClient, roomsPluginServer;
- client = RakNet::RakPeerInterface::GetInstance();
- server = RakNet::RakPeerInterface::GetInstance();
- RakNet::SocketDescriptor sd1(0,0),sd2(1234,0);
- RakNet::StartupResult sr;
- sr = client->Startup(1,&sd1, 1);
- RakAssert(sr==RakNet::RAKNET_STARTED);
- sr=server->Startup(1,&sd2, 1);
- RakAssert(sr==RakNet::RAKNET_STARTED);
- server->SetMaximumIncomingConnections(1);
- client->AttachPlugin(&roomsPluginClient);
- server->AttachPlugin(&roomsPluginServer);
- RakNet::ProfanityFilter profanityFilter;
- profanityFilter.AddWord("Crapola");
- roomsPluginServer.SetProfanityFilter(&profanityFilter);
- roomsPluginServer.roomsContainer.AddTitle(GAME_IDENTIFIER);
- SampleCallbacks sampleCallbacks;
- RakNet::SystemAddress localAddress=server->GetMyBoundAddress();
- roomsPluginClient.SetServerAddress(localAddress);
- roomsPluginClient.SetRoomsCallback(&sampleCallbacks);
- RakNet::ConnectionAttemptResult car = client->Connect("127.0.0.1", 1234, 0, 0, 0);
- RakAssert(car==RakNet::CONNECTION_ATTEMPT_STARTED);
- printf("A. CreateRoom\n");
- printf("B. EnterRoom\n");
- printf("C. JoinByFilter\n");
- printf("D. LeaveRoom\n");
- printf("E. GetInvitesToParticipant\n");
- printf("F. SendInvite\n");
- printf("G. AcceptInvite\n");
- printf("H. StartSpectating\n");
- printf("I. StopSpectating\n");
- printf("J. GrantModerator\n");
- printf("K. ChangeSlotCounts\n");
- printf("L. SetCustomRoomProperties\n");
- printf("M. ChangeRoomName\n");
- printf("N. SetHiddenFromSearches\n");
- printf("O. SetDestroyOnModeratorLeave\n");
- printf("P. SetReadyStatus\n");
- printf("Q. GetReadyStatus\n");
- printf("R. SetRoomLockState\n");
- printf("S. GetRoomLockState\n");
- printf("T. AreAllMembersReady\n");
- printf("U. KickMember\n");
- printf("V. UnbanMember\n");
- printf("W. GetBanReason\n");
- printf("X. AddUserToQuickJoin\n");
- printf("Y. RemoveUserFromQuickJoin\n");
- printf("Z. IsInQuickJoin\n");
- printf("1. SearchByFilter\n");
- printf("2. ChangeHandle\n");
- printf("3. RoomChat\n");
- printf("4. GetRoomProperties\n");
- RakNet::Packet *p;
- char ch;
- while (1)
- {
- p=client->Receive();
- if (p)
- {
- if (p->data[0]==ID_CONNECTION_REQUEST_ACCEPTED)
- printf("ID_CONNECTION_REQUEST_ACCEPTED\n");
- else if (p->data[0]==ID_CONNECTION_ATTEMPT_FAILED)
- printf("ID_CONNECTION_ATTEMPT_FAILED\n");
- else if (p->data[0]==ID_NO_FREE_INCOMING_CONNECTIONS)
- printf("ID_NO_FREE_INCOMING_CONNECTIONS\n");
- client->DeallocatePacket(p);
- }
- p=server->Receive();
- if (p)
- {
- if (p->data[0]==ID_NEW_INCOMING_CONNECTION)
- {
- roomsPluginServer.LoginRoomsParticipant("User1", p->systemAddress, p->guid, RakNet::UNASSIGNED_SYSTEM_ADDRESS);
- roomsPluginServer.LoginRoomsParticipant("User2", p->systemAddress, p->guid, RakNet::UNASSIGNED_SYSTEM_ADDRESS);
- roomsPluginServer.LoginRoomsParticipant("User3", p->systemAddress, p->guid, RakNet::UNASSIGNED_SYSTEM_ADDRESS);
- roomsPluginServer.LoginRoomsParticipant("User4", p->systemAddress, p->guid, RakNet::UNASSIGNED_SYSTEM_ADDRESS);
- }
- server->DeallocatePacket(p);
- }
-
- if (kbhit())
- {
- ch = getch();
- switch (toupper(ch))
- {
- case 'A':
- {
- printf("CreateRoom\n");
- RakNet::CreateRoom_Func func;
- GetUserName(&func);
- GetRoomName(func.networkedRoomCreationParameters.roomName);
- func.networkedRoomCreationParameters.slots.publicSlots=1;
- func.gameIdentifier=GAME_IDENTIFIER;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'B':
- {
- printf("EnterRoom\n");
- RakNet::EnterRoom_Func func;
- GetUserName(&func);
- // Create or join the specified room name
- GetRoomName(func.networkedRoomCreationParameters.roomName);
- func.query.AddQuery_STRING(
- DefaultRoomColumns::GetColumnName(DefaultRoomColumns::TC_ROOM_NAME),
- func.networkedRoomCreationParameters.roomName.C_String());
- func.networkedRoomCreationParameters.slots.publicSlots=2;
- func.roomMemberMode=RMM_PUBLIC;
- func.gameIdentifier=GAME_IDENTIFIER;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'C':
- {
- printf("JoinByFilter\n");
- RakNet::JoinByFilter_Func func;
- GetUserName(&func);
- RakNet::RakString roomName;
- GetRoomName(roomName);
- func.query.AddQuery_STRING(
- DefaultRoomColumns::GetColumnName(DefaultRoomColumns::TC_ROOM_NAME),
- roomName.C_String());
- func.gameIdentifier=GAME_IDENTIFIER;
- func.roomMemberMode=RMM_PUBLIC;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'D':
- {
- printf("LeaveRoom\n");
- RakNet::LeaveRoom_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'E':
- {
- printf("GetInvitesToParticipant\n");
- RakNet::GetInvitesToParticipant_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'F':
- {
- printf("SendInvite\n");
- RakNet::SendInvite_Func func;
- GetUserName(&func);
- GetTargetName(&func.inviteeName);
- func.inviteToSpectatorSlot=false;
- func.subject="SendInviteSubject";
- func.body="SendInviteSubject";
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'G':
- {
- printf("AcceptInvite\n");
- RakNet::AcceptInvite_Func func;
- GetUserName(&func);
- GetTargetName(&func.inviteSender);
- func.roomId=1;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'H':
- {
- printf("StartSpectating\n");
- RakNet::StartSpectating_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'I':
- {
- printf("StopSpectating\n");
- RakNet::StopSpectating_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'J':
- {
- printf("GrantModerator\n");
- RakNet::GrantModerator_Func func;
- GetUserName(&func);
- GetTargetName(&func.newModerator);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'K':
- {
- printf("ChangeSlotCounts\n");
- RakNet::ChangeSlotCounts_Func func;
- GetUserName(&func);
- func.slots.publicSlots=1;
- func.slots.reservedSlots=0;
- func.slots.spectatorSlots=1;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'L':
- {
- printf("SetCustomRoomProperties\n");
- RakNet::SetCustomRoomProperties_Func func;
- GetUserName(&func);
- DataStructures::Table customRoomProperties;
- func.table.AddColumn("Custom Column 1", DataStructures::Table::STRING);
- func.table.AddColumn("Custom Column 2", DataStructures::Table::NUMERIC);
- DataStructures::Table::Row* row = func.table.AddRow(0);
- row->cells[0]->Set("Custom Column 1 value");
- row->cells[1]->Set(12345);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'M':
- {
- printf("ChangeRoomName\n");
- RakNet::ChangeRoomName_Func func;
- GetUserName(&func);
- func.newRoomName="New room name";
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'N':
- {
- printf("SetHiddenFromSearches\n");
- RakNet::SetHiddenFromSearches_Func func;
- GetUserName(&func);
- func.hiddenFromSearches=true;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'O':
- {
- printf("SetDestroyOnModeratorLeave\n");
- RakNet::SetDestroyOnModeratorLeave_Func func;
- GetUserName(&func);
- func.destroyOnModeratorLeave=true;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'P':
- {
- printf("SetReadyStatus\n");
- RakNet::SetReadyStatus_Func func;
- GetUserName(&func);
- func.isReady=true;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'Q':
- {
- printf("GetReadyStatus\n");
- RakNet::GetReadyStatus_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'R':
- {
- printf("SetRoomLockState\n");
- RakNet::SetRoomLockState_Func func;
- GetUserName(&func);
- func.roomLockState=RakNet::RLS_ALL_LOCKED;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'S':
- {
- printf("GetRoomLockState\n");
- RakNet::GetRoomLockState_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'T':
- {
- printf("AreAllMembersReady\n");
- RakNet::AreAllMembersReady_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'U':
- {
- printf("KickMember\n");
- RakNet::KickMember_Func func;
- GetUserName(&func);
- GetTargetName(&func.kickedMember);
- func.reason="KickMemberReason";
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'V':
- {
- printf("UnbanMember\n");
- RakNet::UnbanMember_Func func;
- GetUserName(&func);
- GetTargetName(&func.bannedMemberName);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'W':
- {
- printf("GetBanReason\n");
- RakNet::GetBanReason_Func func;
- GetUserName(&func);
- func.roomId=1;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'X':
- {
- printf("AddUserToQuickJoin\n");
- RakNet::AddUserToQuickJoin_Func func;
- GetUserName(&func);
- func.networkedQuickJoinUser.timeout=30000;
- func.networkedQuickJoinUser.minimumPlayers=4;
- func.gameIdentifier=GAME_IDENTIFIER;
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'Y':
- {
- printf("RemoveUserFromQuickJoin\n");
- RakNet::RemoveUserFromQuickJoin_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case 'Z':
- {
- printf("IsInQuickJoin\n");
- RakNet::IsInQuickJoin_Func func;
- GetUserName(&func);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case '1':
- {
- printf("SearchByFilter\n");
- RakNet::SearchByFilter_Func func;
- GetUserName(&func);
- func.gameIdentifier=GAME_IDENTIFIER;
- func.onlyJoinable=true;
- // Not specifying any search parameters returns all rooms
- // RakNet::RakString roomName;
- // GetRoomName(roomName);
- // func.roomQuery.AddQuery_STRING(
- // DefaultRoomColumns::GetColumnName(DefaultRoomColumns::TC_ROOM_NAME),
- // roomName.C_String());
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case '2':
- {
- printf("ChangeHandle\n");
- RakNet::ChangeHandle_Func func;
- GetUserName(&func);
- func.newHandle="Crapola";
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case '3':
- {
- printf("RoomChat\n");
- RakNet::Chat_Func func;
- GetUserName(&func);
- func.chatMessage="Hello world. This is Crapola";
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- case '4':
- {
- printf("GetRoomProperties\n");
- RakNet::GetRoomProperties_Func func;
- GetUserName(&func);
- GetRoomName(func.roomName);
- roomsPluginClient.ExecuteFunc(&func);
- }
- break;
- }
- }
- }
- RakNet::RakPeerInterface::DestroyInstance(client);
- RakNet::RakPeerInterface::DestroyInstance(server);
- }
|