import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( // This is the theme of your application. // // TRY THIS: Try running your application with "flutter run". You'll see // the application has a purple toolbar. Then, without quitting the app, // try changing the seedColor in the colorScheme below to Colors.green // and then invoke "hot reload" (save your changes or press the "hot // reload" button in a Flutter-supported IDE, or press "r" if you used // the command line to start the app). // // Notice that the counter didn't reset back to zero; the application // state is not lost during the reload. To reset the state, use hot // restart instead. // // This works for code too, not just values: Most code changes can be // tested with just a hot reload. colorScheme: ColorScheme.fromSeed(seedColor: Colors.black), ), home: const MyHomePage(title: 'The official Squog website'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({super.key, required this.title}); // This widget is the home page of your application. It is stateful, meaning // that it has a State object (defined below) that contains fields that affect // how it looks. // This class is the configuration for the state. It holds the values (in this // case the title) provided by the parent (in this case the App widget) and // used by the build method of the State. Fields in a Widget subclass are // always marked "final". final String title; @override State createState() => _MyHomePageState(); } class _MyHomePageState extends State { @override Widget build(BuildContext context) { // This method is rerun every time setState is called, for instance as done // by the _incrementCounter method above. // // The Flutter framework has been optimized to make rerunning build methods // fast, so that you can just rebuild anything that needs updating rather // than having to individually change instances of widgets. return Scaffold( // appBar: AppBar( // // TRY THIS: Try changing the color here to a specific color (to // // Colors.amber, perhaps?) and trigger a hot reload to see the AppBar // // change color while the other colors stay the same. // backgroundColor: Colors.black, // // Here we take the value from the MyHomePage object that was created by // // the App.build method, and use it to set our appbar title. // title: Text(widget.title,style: TextStyle(color: Colors.white),), // ), body: Align( alignment: Alignment.topCenter, // Center is a layout widget. It takes a single child and positions it // in the middle of the parent. child: ListView( // Column is also a layout widget. It takes a list of children and // arranges them vertically. By default, it sizes itself to fit its // children horizontally, and tries to be as tall as its parent. // // Column has various properties to control how it sizes itself and // how it positions its children. Here we use mainAxisAlignment to // center the children vertically; the main axis here is the vertical // axis because Columns are vertical (the cross axis would be // horizontal). // // TRY THIS: Invoke "debug painting" (choose the "Toggle Debug Paint" // action in the IDE, or press "p" in the console), to see the // wireframe for each widget. children: [ Column( children: [ Text("The squog website", style: TextStyle(fontSize: 30, fontFamily: "Serif", fontWeight: FontWeight.bold)), Text("\n"), Text("Official squog content:", style: TextStyle(fontSize: 25, fontFamily: "Serif", fontWeight: FontWeight.bold)), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Column( children: [ Text("The squog Git service:", style: TextStyle(fontSize: 25, fontFamily: "Serif", fontWeight: FontWeight.bold)), FloatingActionButton.extended( label: Text( "Open the Git service", style: TextStyle(fontSize: 20, color: Colors.white), ), onPressed: () => _launchUrl( "https://git.squog.ru", ), backgroundColor: Colors.black, ), ], ), Column( children: [ Text("The SquogBot:", style: TextStyle(fontSize: 25, fontFamily: "Serif", fontWeight: FontWeight.bold)), Text("SquogBot is a Discord Bot made for the Squog Pack Discord server.", style: TextStyle(fontSize: 20, fontFamily: "Serif", fontWeight: FontWeight.bold)), Text("SquogBot has:", style: TextStyle(fontSize: 20, fontFamily: "Serif", fontWeight: FontWeight.bold)), Text("- Voice chat music", style: TextStyle(fontSize: 20),), Text("- Funny Squog commands", style: TextStyle(fontSize: 20),), Text("- User / Messages logs", style: TextStyle(fontSize: 20),), Text("- AI Chat Bot", style: TextStyle(fontSize: 20),), Text("\n"), Text("You can freely use the code:", style: TextStyle(fontSize: 20),), FloatingActionButton.extended( label: Text( "Open the SquoGit repository", style: TextStyle(fontSize: 20, color: Colors.white), ), onPressed: () => _launchUrl( "https://git.squog.ru/entar/SquogBot", ), backgroundColor: Colors.black, ), Text("\n"), Text("You can freely use SquogBot on your server:", style: TextStyle(fontSize: 20),), FloatingActionButton.extended( label: Text( "Add SquogBot to YOUR server", style: TextStyle(fontSize: 20, color: Colors.white), ), onPressed: () => _launchUrl( "https://discord.com/oauth2/authorize?client_id=1356561662429368411&permissions=554053986560&integration_type=0&scope=bot", ), backgroundColor: Colors.black, ), ], ) ] ), Text("\n\n"), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Text("The squid dog pack has 11 members:", style: TextStyle(fontSize: 20, fontFamily: "Serif")), Image(image: NetworkImage("https://squog.ru/images/Packpng.png"), height: 500, width: 300,) ], ), Text("\n\n"), Text("Entars Section", style: TextStyle(fontSize: 30, fontFamily: "Serif", fontWeight: FontWeight.bold)), Text( "My projects:", style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Column( children: [ Text( "Ultimate Funkin'", style: TextStyle( fontSize: 20, color: Colors.black, ), ), Row( children: [ Image( image: NetworkImage( "https://tr.rbxcdn.com/180DAY-7cef5ee7f5d75ab0c1740f485f199bef/768/432/Image/Png/noFilter", ), width: 200, height: 150, ), Image( image: NetworkImage( "https://tr.rbxcdn.com/180DAY-bdebecbe63973eb38a7f0c9387215c29/768/432/Image/Webp/noFilter", ), width: 200, height: 150, ), ], ), Row( children: [ Image( image: NetworkImage( "https://tr.rbxcdn.com/180DAY-155cf8845e1cfde3ab91a82012ce63fd/768/432/Image/Png/noFilter", ), width: 200, height: 150, ), Image( image: NetworkImage( "https://tr.rbxcdn.com/180DAY-dc50b1ddf946b287e0896a4e905c8a24/768/432/Image/Png/noFilter", ), width: 200, height: 150, ), ], ), FloatingActionButton.extended( label: Text( "Open game page", style: TextStyle(fontSize: 20, color: Colors.white), ), onPressed: () => _launchUrl( "https://www.roblox.com/games/77723352776553/BETA-Ultimate-Funkin", ), backgroundColor: Colors.black, ), //PROJECT 2 //PROJECT 2 Text("\n\n"), Text( "Gravity Gun Physics Test Place", style: TextStyle( fontSize: 20, color: Colors.black, ), ), Row( children: [ Image( image: NetworkImage( "https://tr.rbxcdn.com/180DAY-3e7a9a53344e6dd736082d55aa50b2fb/768/432/Image/Png/noFilter", ), width: 400, height: 300, ), ], ), FloatingActionButton.extended( label: Text( "Open game page", style: TextStyle(fontSize: 20, color: Colors.white), ), onPressed: () => _launchUrl( "https://www.roblox.com/games/18778461137/Gravity-Gun-Tech-Demo", ), backgroundColor: Colors.black, ), ], ), ], ), Text("\n\n"), Text( "Groups i work for:", style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), Text("\n\n"), Column( mainAxisAlignment: MainAxisAlignment.center, spacing: 10, children: [ FloatingActionButton.extended( label: Text( "Open game page", style: TextStyle(fontSize: 20, color: Colors.white), ), onPressed: () => _launchUrl( "https://www.roblox.com/communities/7324652/PL-PHOENIX-LABORATORIES#!/about", ), backgroundColor: Colors.black, ), Image( image: NetworkImage( "https://tr.rbxcdn.com/180DAY-a4ac6b030eca5f3839391a0ba876c04d/150/150/Image/Webp/noFilter", ), ), FloatingActionButton.extended( label: Text( "Open game page", style: TextStyle(fontSize: 20, color: Colors.white), ), onPressed: () => _launchUrl( "https://www.roblox.com/communities/596408/U-L-T-R-A#!/about", ), backgroundColor: Colors.black, ), Image( image: NetworkImage( "https://tr.rbxcdn.com/180DAY-cfa7f0db8da2728757629abcf55f21db/150/150/Image/Webp/noFilter", ), ), FloatingActionButton.extended( label: Text( "Open game page", style: TextStyle(fontSize: 20, color: Colors.white), ), onPressed: () => _launchUrl( "https://www.roblox.com/communities/34376118/Spirepoint-Institute#!/about", ), backgroundColor: Colors.black, ), Image( image: NetworkImage( "https://tr.rbxcdn.com/180DAY-5d0ab7697e950ce0d7dfef6737009210/150/150/Image/Webp/noFilter", ), ), ], ), Text("\n\n"), Text( "My socials:", style: TextStyle(fontSize: 30, fontWeight: FontWeight.bold), textAlign: TextAlign.center, ), Text("\n"), Row( mainAxisAlignment: MainAxisAlignment.center, spacing: 10, children: [ FloatingActionButton( onPressed: () => _launchUrl( "https://www.youtube.com/@entar4577", ), backgroundColor: Colors.black, child: Image(image: NetworkImage("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSeKN3zsQdLc-xPggCwHs75iVLEaqLlKec9EA&s")), ), FloatingActionButton( onPressed: () => _launchUrl( "https://discord.com/users/923104746510905355", ), backgroundColor: Colors.black, child: Image(image: NetworkImage("https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ0nrxwLV6cMNmFTmTNrAuXpu4SEq5DW38QeA&s")), ), ], ), ], ) ] ), ), ); } } Future _launchUrl(String link) async { final Uri evilLink = Uri.parse(link); if (!await launchUrl(evilLink)) { throw Exception('Could not launch $evilLink'); } }