Example #1
0
 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());
 }
Example #2
0
 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);
 }
Example #3
0
 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());
 }
Example #4
0
    $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);
}
Example #5
0
 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());
 }
Example #6
0
 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());
     }
 }