public static function RetrieveCitizenshipStatusEvent(User $user, PacketParser $packet, ClassContainer $util) { $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("CitizenshipStatusMessageComposer")); $response->WriteString($packet->readString()); $response->WriteInt32(4); $response->WriteInt32(4); $user->Send($response->Finalize()); }
public static function RoomGetInfoMessageEvent(User $user, PacketParser $packet, ClassContainer $util) { $id = $packet->readInt32(); $num = $packet->readInt32(); $num2 = $packet->readInt32(); $room = $util->RoomManager->getRoom($id); if ($num == 0 && $num2 == 1) { $room->SerializeRoomInformation(false, $util, $user); return; } else { if ($num == 0 && $num2 == 0) { $room->SerializeRoomInformation(true, $util, $user); return; } } $room->SerializeRoomInformation(true, $util, $user); }
public static function LandingLoadWidgetMessageEvent(User $user, PacketParser $packet, ClassContainer $util) { $widget = $packet->readString(); $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("LandingWidgetMessageComposer")); if (isset($widget) && $widget != "") { $eventData = explode(",", $widget); if (Regex::match("/gamesmaker/i", $eventData[1])) { return; } $response->WriteString($widget); $response->WriteString($eventData[1]); } else { $response->WriteString(""); $response->WriteString(""); } $user->Send($response->Finalize()); }
$util->HeaderManager =& $headermanager; $util->RSA =& $rsa; $util->Database =& $database; $util->Cache =& $cache; $util->Config =& $config; $util->RoomManager =& $roommanager; $service->execute(function () use($user, $events, $util) { ob_implicit_flush(true); while ($buffer = $user->socketInput->read(4096)) { if ($buffer == "<policy-file-request/>" . chr(0)) { $user->send(Util::Crossdomain()); continue; } $buffer = String::decode($buffer, 'ISO-8859-1'); if ($user->rc4initialized) { $buffer = $user->rc4client->Parse($buffer); } foreach (BufferManager::Parser($buffer) as $packet) { $packet = new PacketParser($packet); $header = $packet->getHeader(); if (isset($events[$header])) { eval($events[$header]["parent"] . '::' . $events[$header]["method"] . '($user, $packet, $util);'); Console::WriteLine("- Executed event for " . $header . " (" . $events[$header]["parent"] . '::' . $events[$header]["method"] . ") "); } else { Console::WriteLine("- Not found event for " . $header . " : " . $packet->getFullPacket()); } } } $user->disconnect(); }, $environment); }
public static function SearchNewNavigatorEvent(User $user, PacketParser $packet, ClassContainer $util) { $name = $packet->readString(); $junk = $packet->readString(); switch ($name) { case "official_view": $navigatorlength = 2; break; case "myworld_view": $navigatorlength = 5; break; case "hotel_view": case "roomads_view": $navigatorlength = count($util->Cache->navigatorcategories) + 1; break; default: $navigatorlength = 1; break; } $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("SearchResultSetComposer")); $response->WriteString($name); $response->WriteString($junk); //$response->WriteInt32(strlen($junk) > 0 ? 1 : $navigatorlength); if (strlen($junk) > 0) { $response->WriteInt32(strlen($junk) > 0 ? 1 : $navigatorlength); SearchResultList::SerializeSearches($junk, $response, $util); } else { $response->WriteInt32(0); //SearchResultList::SerializeSearchResultListStatics($name, true, $response, $util); } $user->Send($response->Finalize()); }
public static function SSOTicketMessageEvent(User $user, PacketParser $packet, ClassContainer $util) { $ticket = $packet->readString(); $query = $util->Database->Query("SELECT * FROM users WHERE auth_ticket = ? LIMIT 1", array($ticket)); if (count($query) == 0) { Console::WriteLine("User not found, ticket : " . $ticket); $user->disconnect(); } else { $check = $util->index->GetUserbyHabboId($query[0]['id']); if ($check) { $check->disconnect(); } $user->habbo = $query[0]; $util->index->habboid[$user->habbo['id']] =& $user; Console::WriteLine("- " . $user->habbo['username'] . " logged in !"); $util->Database->Exec("UPDATE users SET online = '1' WHERE id = ?", array($user->habbo['id'])); $util->Database->Exec("UPDATE server_status SET users_online = users_online + 1"); $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("UniqueMachineIDMessageComposer")); $response->WriteString($user->HWID); $user->Send($response->Finalize()); $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("AuthenticationOKMessageComposer")); $user->Send($response->Finalize()); $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("HomeRoomMessageComposer")); $response->WriteInt32($user->habbo['home_room']); $response->WriteInt32($user->habbo['home_room']); $user->Send($response->Finalize()); $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("MinimailCountMessageComposer")); $response->WriteInt32(0); $user->Send($response->Finalize()); $favoriterooms = $util->Database->Query("SELECT room_id FROM user_favorites WHERE user_id = ?", array($user->habbo['id'])); $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("FavouriteRoomsMessageComposer")); $response->WriteInt32(30); $response->WriteInt32(count($favoriterooms)); foreach ($favoriterooms as $favorite) { $response->WriteInt32($favorite['room_id']); } $user->Send($response->Finalize()); $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("EnableNotificationsMessageComposer")); $response->WriteBoolean(true); $response->WriteBoolean(false); $user->Send($response->Finalize()); $response = new PacketConstructor(); $response->SetHeader($util->HeaderManager->Outgoing("EnableTradingMessageComposer")); $response->WriteBoolean(true); $user->Send($response->Finalize()); } }