Skip to content
This repository has been archived by the owner on Jun 13, 2024. It is now read-only.

Starlight v2 #25

Draft
wants to merge 105 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
e9f8478
Upload v2 draft
Oct 28, 2022
941ab91
Push v2 draft (build 2)
Nov 3, 2022
c6a8761
Delete abandoned project
Nov 3, 2022
d23bc77
Remove legacy project
Nov 3, 2022
1889d46
Build 3
Nov 11, 2022
bdf4bda
Run code cleanup
Nov 12, 2022
cda0a06
Refactor Session.cs
Nov 12, 2022
bbe36f4
Refactor JoinRequest.cs and add method for Session.cs
Nov 12, 2022
c72799d
Refactor RbxUser.cs + modify Session.cs documentation
Nov 12, 2022
f16f88e
Refactor pages
Nov 12, 2022
2fa84d7
Refactor AuthType.cs
Nov 12, 2022
6524893
Refactor JoinResponse.cs
Nov 12, 2022
2eb6646
Refactor JoinScript.cs
Nov 12, 2022
73ddb9e
Refactor JoinStatus.cs
Nov 12, 2022
9dce6f8
Refactor JoinType.cs
Nov 12, 2022
2f4dfe3
Refactor UdmuxEndpoint.cs
Nov 12, 2022
1450ba3
Remove exceptions
Nov 12, 2022
bfb9d13
Refactor Bootstrapper.cs
Nov 13, 2022
7453ef7
Refactor Client.cs
Nov 13, 2022
b56f7b7
Refactor ClientScope.cs
Nov 13, 2022
152188f
Revert "Refactor ClientScope.cs"
Nov 13, 2022
e96846f
Refactor ClientScope.cs
Nov 13, 2022
20dd214
Refactor Downloadable.cs
Nov 13, 2022
77935da
Refactor InstallConfig.cs
Nov 13, 2022
517d832
Refactor Utility.cs
Nov 13, 2022
965d373
Refactor Launch.cs and merge PostLaunch and SchemeLaunch with Launch
Nov 13, 2022
6e77c26
Add documentation for Launcher.cs
Nov 13, 2022
86ea471
Add documentation for Launcher.cs
Nov 13, 2022
736602d
Add login method with AuthType support
Nov 13, 2022
6054cc6
Bug fix in cultures
Nov 13, 2022
c4d6858
Refactor LaunchParams.cs
Nov 13, 2022
3280018
Refactor ClientInstance.cs
Nov 13, 2022
4cc4a6b
Refactor ProgressTracker.cs
Nov 13, 2022
d5f1a39
Refactor AsyncHelpers.cs and Shared.cs
Nov 13, 2022
ec61ed5
Refactor Plugins
Nov 13, 2022
aa37536
Fix an error in documentation
Nov 13, 2022
537fde8
CancellationToken support for Session.cs
Nov 13, 2022
2c0895f
CancellationToken support for Page.cs
Nov 13, 2022
e7ee698
CancellationToken support for Utility.cs
Nov 13, 2022
dd06440
CancellationToken support for Bootstrapper.cs
Nov 13, 2022
c821a01
Remove .editorconfig
Nov 13, 2022
7b7b357
Add .gitattributes
Nov 13, 2022
a2ffc01
CancellationToken support for Client.cs
Nov 13, 2022
94eeeff
CancellationToken support for Downloadable.cs
Nov 13, 2022
279a399
CancellationToken support for Launcher.cs
Nov 13, 2022
9e81933
CancellationToken support for Launcher.cs
Nov 13, 2022
f85bb05
Documentation for ParseResultFlags.cs
Nov 13, 2022
a0487fa
Modify Scheme.cs
Nov 13, 2022
8a625ff
Review
Nov 13, 2022
1a0d252
Synch. wrappers for Session
Nov 13, 2022
9c23dc4
Remove extension addition to solution file
Nov 13, 2022
cd10fc5
Synch. wrappers for Page
Nov 14, 2022
3856b88
Synch. wrappers for Bootstrapper
Nov 14, 2022
761df7e
Synch. wrappers for Client
Nov 14, 2022
a0ded7f
Synch. wrappers for Downloadable
Nov 14, 2022
80b1d3a
Synch. wrappers for Launcher
Nov 14, 2022
4841eae
Redo exceptions
Nov 14, 2022
d0b9b39
💄 Automated code cleanup
Nov 14, 2022
a601f1f
Bugfixes
Nov 14, 2022
6348b49
Refactor ThumbFollow.cs
Nov 14, 2022
7b2fcf1
XSRF cache bugfix
Nov 14, 2022
27302c1
Fix bugs
Nov 14, 2022
4005815
Bugfix for task scheduler
Nov 14, 2022
ffeeda8
Review
Nov 14, 2022
a89fb65
Installation script (#23)
Nov 16, 2022
e56b4eb
Review
Nov 20, 2022
2a877c1
Migrate from ClientScope to direct path
Nov 20, 2022
9755fe3
Make plugins run async code
Nov 20, 2022
1d9d7c3
Installation script updates
Nov 20, 2022
ae76e39
Update app
Nov 20, 2022
650156b
Remove documentation
Nov 20, 2022
9513adb
Update projects
Nov 20, 2022
c14ee4e
Remove COM reference
Nov 20, 2022
16235ba
Fix signature problem
Nov 20, 2022
291e5ab
Move to .NET 6.0
Nov 20, 2022
cee1b8d
Compatibility
Nov 20, 2022
2160853
Build 4
Nov 20, 2022
e57f089
Review PluginSdk.cs
Nov 20, 2022
5bf5bbf
Migrate to AppVeyor
Nov 20, 2022
3903840
Comply with CodeFactor
Nov 20, 2022
68da90b
💄 Format code
Nov 20, 2022
b8ec802
Fix dependencies for Starlight.App
Nov 20, 2022
a0f9362
Fix debug-only build
Nov 20, 2022
8f8ca1b
Gitpod
reversed-coffee Dec 2, 2022
4af5d3a
Clean up temporary files
reversed-coffee Dec 2, 2022
8380e38
Fix Gitpod dockerfile/workspace
reversed-coffee Dec 2, 2022
d847e27
Fix appveyor configuration
reversed-coffee Dec 2, 2022
915f1ef
Use official Docker image
reversed-coffee Dec 2, 2022
4679da5
Linux build support
reversed-coffee Dec 2, 2022
d062e96
Update README.md
reversed-coffee Dec 2, 2022
353e2ec
Commit filtering and formatting
reversed-coffee Dec 2, 2022
83ed13f
Update bundle artifact name
Dec 2, 2022
163e9b5
Update artifact name
Dec 2, 2022
4d45a3a
Enforce new code style
Dec 2, 2022
b7a57b4
Whitespace issues
Dec 3, 2022
46d9f18
Update editorconfig and fix auto-refactoring bug
Dec 3, 2022
97ba6ef
Update README.md
Dec 4, 2022
47bdbed
Add exclusion rules
Dec 4, 2022
89f9752
Remove submodules
Dec 9, 2022
6aaa98a
Use newer HackerFramework
Dec 9, 2022
815741c
Use newer HackerFramework
Dec 9, 2022
2196820
Use Thread.Interrupt in favor.
reversed-coffee Jan 9, 2023
9b7cce5
Simplify instance code
reversed-coffee Jan 9, 2023
f453c03
Fix previous 2 commits
reversed-coffee Jan 9, 2023
5620ea2
Push partial
reversed-coffee Jan 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@

[*.{appxmanifest,axml,build,c,c++,cc,cginc,compute,config,cp,cpp,cshtml,csproj,cu,cuh,cxx,dbml,discomap,dtd,fx,fxh,h,hh,hlsl,hlsli,hlslinc,hpp,htm,html,hxx,inc,inl,ino,ipp,jsproj,lsproj,mpp,mq4,mq5,mqh,njsproj,nuspec,proj,props,razor,resw,resx,StyleCop,targets,tasks,tpp,usf,ush,vbproj,xml,xsd}]
indent_style = space
indent_size = 4
tab_width = 4

[*.{asax,ascx,aspx,axaml,cs,css,master,paml,skin,vb,xaml,xamlx,xoml}]
indent_style = space
indent_size = 4
tab_width = 4

[*]

# Microsoft .NET properties
csharp_new_line_before_members_in_object_initializers = false
csharp_new_line_before_open_brace = none
csharp_preferred_modifier_order = public, private, protected, internal, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async, required:suggestion
csharp_style_var_elsewhere = true:suggestion
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
dotnet_separate_import_directive_groups = true
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:none
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:none
dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
dotnet_style_qualification_for_event = false:suggestion
dotnet_style_qualification_for_field = false:suggestion
dotnet_style_qualification_for_method = false:suggestion
dotnet_style_qualification_for_property = false:suggestion

# ReSharper properties
resharper_blank_lines_after_control_transfer_statements = 1
resharper_blank_lines_around_single_line_auto_property = 1
resharper_blank_lines_around_single_line_local_method = 1
resharper_blank_lines_around_single_line_property = 1
resharper_blank_lines_before_block_statements = 1
resharper_blank_lines_before_multiline_statements = 1
resharper_csharp_blank_lines_around_single_line_invocable = 1
resharper_csharp_empty_block_style = together
resharper_default_private_modifier = implicit
resharper_int_align_switch_expressions = true
resharper_int_align_switch_sections = true
resharper_object_creation_when_type_not_evident = target_typed
resharper_place_simple_embedded_statement_on_same_line = false

# ReSharper inspection severities
resharper_arrange_redundant_parentheses_highlighting = hint
resharper_arrange_this_qualifier_highlighting = hint
resharper_arrange_type_member_modifiers_highlighting = none
resharper_built_in_type_reference_style_for_member_access_highlighting = hint
resharper_built_in_type_reference_style_highlighting = hint
resharper_comment_typo_highlighting = none
resharper_cpp_clang_tidy_modernize_use_nodiscard_highlighting = none
resharper_identifier_typo_highlighting = none
resharper_redundant_base_qualifier_highlighting = warning
resharper_string_literal_typo_highlighting = none
resharper_suggest_var_or_type_built_in_types_highlighting = hint
resharper_suggest_var_or_type_elsewhere_highlighting = hint
resharper_suggest_var_or_type_simple_types_highlighting = hint
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* text=auto
*.csproj filter=tabspace
*.cs filter=tabspace
*.yml filter=tabspace2
52 changes: 0 additions & 52 deletions .github/workflows/ci.yml

This file was deleted.

8 changes: 0 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -379,14 +379,6 @@ MigrationBackup/
# Fody - auto-generated XML schema
FodyWeavers.xsd

# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace

# Local History for Visual Studio Code
.history/

Expand Down
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "submodules/HackerFramework"]
path = submodules/HackerFramework
url = https://github.com/RealNickk/HackerFramework.git
url = https://github.com/RealNickk/HackerFramework
1 change: 1 addition & 0 deletions .gitpod.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
FROM gitpod/workspace-dotnet:latest
18 changes: 18 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
workspaceLocation: Starlight/gitpod-ws.code-workspace

tasks:
- before: |
sudo apt-get install -y cmake clang mingw-w64-common
cmake -S. -Bbuild -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build build --target all

image:
file: .gitpod.Dockerfile

vscode:
extensions:
- llvm-vs-code-extensions.vscode-clangd
- twxs.cmake
- ms-vscode.cmake-tools
- webfreak.debug
- muhammad-sammy.csharp
26 changes: 26 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"version": "0.2.0",
"configurations": [
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/src/Starlight.Gui/bin/Debug/Starlight.Gui.dll",
"args": [],
"cwd": "${workspaceFolder}/src/Starlight.Gui",
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach"
}
]
}
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"cmake.sourceDirectory": "${workspaceFolder}/src"
}
16 changes: 16 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"windows": {
"command": ".\\build.ps1"
},
"linux": {
"command": "bash build.sh"
},
"problemMatcher": "$msCompile"
}
]
}
107 changes: 67 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,74 @@
**THIS IS A DRAFT BRANCH. DO NOT INSTALL STARLIGHT FROM HERE.**

# Starlight

![Downloads](https://img.shields.io/github/downloads/Substrant/Starlight/total)
![Open Issues](https://img.shields.io/github/issues-raw/Substrant/Starlight)
![Open Issues](https://img.shields.io/github/issues-closed-raw/Substrant/Starlight)

C# implementation of the Roblox launcher. This launcher has the full
capabilities of the official launcher. It's agile, trackerless, and has many
more features that the official launcher lacks. This may be the 2nd rewrite of
Starlight, but it's the first one that's actually good, and finally out of
early development hell.

Sources:
* [Roadmap](Roadmap.md)
* [Documentation](docs/Home.md)

## Safety
Starlight should work with any Roblox exploit that doesn't hook the launch
scheme. If you're using a Roblox exploit that hooks the launch scheme, you
will have to turn off the hooking feature in that specific exploit.

Exploits like Synapse X are known to hook the launch scheme, and may not work
simultaneously with Starlight. You may have to explicitly disable the custom
launcher in your exploit's settings.

This program does not inject any DLLs, however it does modify the Roblox
task scheduler from an external process. This is done to set the FPS cap. This
shouldn't be a problem, but I thought I'd throw that out. It should be
undetectable by Roblox's anti-cheat.

## Issues and Support
[![CodeFactor](https://www.codefactor.io/repository/github/substrant/starlight/badge)](https://www.codefactor.io/repository/github/substrant/starlight)
[![Build status](https://ci.appveyor.com/api/projects/status/c8yjgsuwky78ai42?svg=true)](https://ci.appveyor.com/project/RealNickk/starlight)

An open-sourced Roblox multi-tool.

## Installation

**Starlight may be falsely flagged by your antivirus. If your antivirus is deleting Starlight, you'll have to make an exception rule.**

<details>
<summary>Creating an exception for Starlight (Windows Defender)</summary>
<br>

If Starlight is being flagged/deleted by Windows Defender, you can quite easily make an exception. Starlight is installed into ".starlight" in your user folder (with the installation script) and is downloaded as a temporary file in the temp directory. You need to make an exception for "%userprofile%/.starlight/" and possibly "%temp%/bundle_win32.zip".

You can create an exception by doing the following:

1. Open Windows Defender.
- Windows 10: Go to Start (<kbd>Win</kbd>) -> Settings -> Update & Security -> Windows Security -> Virus & threat protection
- Windows 11: Go to Start (<kbd>Win</kbd>) -> Settings -> Privacy & Security -> Virus & threat protection
1. Under "Virus & threat protection settings", click "Manage settings", then under "Exclusions", select "Add or remove exclusions".
1. Click "Add a exclusion".
1. Navigate to your profile (you can type `C:\Users\YourUsernameHere` or `%userprofile%` in the top path bar and press enter) and create a folder called ".starlight".
1. Click into the ".starlight" folder and click "Open".

</details>

### Powershell

You can install Starlight with a single command line entry using Powershell.

1. Hit <kbd>Win</kbd> + <kbd>R</kbd>
1. Type in "powershell.exe" and press enter.
1. Paste the following entry into the command line:
```powershell
Invoke-WebRequest "https://get-starlight.substrant.dev" | Invoke-Expression
```

### Portable Binaries

Portable installations of Starlight do not have the capability of automatically updating. Installation through Powershell is highly recommended.

Official releases of Starlight can be found on the [releases](https://github.com/Substrant/Starlight/releases) page.

Experimental builds of Starlight can be found on [AppVeyor](https://ci.appveyor.com/project/RealNickk/starlight/history), where you can download build artifacts.

## Support and Issues

**Starlight does not have a Discord server.**

If you have any issues with Starlight, please open an issue on the GitHub
repository. I will try to respond as soon as possible. Please include as much
information as possible, including screenshots and logs. If you're not being
very descriptive, I may not be able to help you.
If there is an issue with Starlight on your end, or you want to provide enhancement ideas for Starlight, please write an issue! When making an issue, please provide as much information as possible—reproduction steps, detailed examples. Don't be shy if it's your first issue—you're just talking to another person; there's no need to speak formally.

## Contribution

Contribution to Starlight allowed and actively encouraged. When making pull requests, ensure that the new code follows the code style and is tested. Failure to do so will result in a postpone of the merge until the issues are fixed.

## Disclaimers

Starlight is open-sourced software. The binaries that are distributed regarding Starlight may be flagged by an antivirus. Digital licenses for signing executable files are quite expensive, and we can't afford it. Antivirus programs are very unreliable and sometimes make zero sense. Starlight is not malware, and you can check that yourself by reverse engineering the binaries, which aren't obfuscated, but packed. You can also check the source code on GitHub and compile from the source. Releases of Starlight from Substrant are only available at GitHub, AppVeyor, or a Substrant-owned domain. Anywhere else Starlight is downloaded is not a safe source.

Licenses provided with other software that modify Roblox—Synapse X, Script-Ware, etc.—may be compatible with Starlight. However, their licenses may not allow third party tools to modify Roblox along with their software.

Roblox's terms of service states that reverse engineering software provided by Roblox and the attempt to bypass security measures put in place by Roblox violates their terms of service. When using Starlight, you are virtually breaking Roblox's rules.

Starlight supports user-made plugins to improve the software without having to contribute to the repository. Plugins not released under Substrant are not maintained by Substrant and may me malicious. It is your responsibility as a client to ensure that a plugin is safe—which does **NOT** mean to scan it with an antivirus. Ensure that the source of a plugin is safe with software like dotPeek or dnSpy, as plugins have the ability to execute arbitrary code.

## Contributing
If you want to contribute, please make sure to follow the code style of the
project. There's not much to it, but it's important to keep it consistent. I
don't have any more rules, so as long as that's followed, you're good to go.
## Legal

## License
Starlight is licensed under the BSD 3-Clause license. See [LICENSE](LICENSE) for
more information. I probably won't enforce it unless you're being a jerk by
saying you made 100% of it or something along the lines of that.
Starlight is provided as open-source software. To allow for flexible use, Starlight is licensed under the BSD 3-Clause license. To view the terms of the license, see [LICENSE](LICENSE).
56 changes: 0 additions & 56 deletions Roadmap.md

This file was deleted.

Loading