Git Product home page Git Product logo

stationhub's Introduction

unitystation

Codacy Badge Tests GitHub last commit Discord License: AGPL v3

CONTAINS BUILT WITH

Unitystation has been active since late 2016

Visit us on Steam:

Support us on Patreon:

Also, Check our progress on our blog and changelog page.

Join the community

Talk to us on Discord:

Feel like getting involved?

Read our Quick Start guide here

  1. Get Unity Hub
  2. Install editor version 2023.2.20f1
  3. Fork the repo
  4. Add your changes
  5. Read the contribution guidelines
  6. Submit a pull request

Warning

It is highly recommended to run the Unitystation project on an SSD in the editor.

Note

The first-time import process will take a while. Depending on your system configuration, This process could take up to 1 hour or 15 minutes. Subsequent launches of the project should take a maximum of a minute.

LICENSE

All code after commit 44695c862d6d84cfc99354d6dfba1f0b70f20407 on 2017/03/12 at 11:39 PM CET is licensed under GNU AGPL v3.

All code before commit 44695c862d6d84cfc99354d6dfba1f0b70f20407 on 2017/03/12 at 11:39 PM CET is licensed under GNU GPL v3. If you have committed code to this repository before this time, please contact us if you want your code distributed under GNU AGPL v3 instead (Including tools unless their readme specifies otherwise.)

See LICENCE for more details.

All assets including icons and sound are under a Creative Commons 3.0 BY-SA license unless otherwise indicated.

cc-by-sa

stationhub's People

Contributors

bod9001 avatar corp-0 avatar corruptcomputer avatar deadliness13 avatar dependabot[bot] avatar dooblynoobly avatar elijahrane avatar hecksadecimal avatar maxisjoe avatar redlinetriad avatar saileshbk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

stationhub's Issues

Security issues

We need to consider the issue of sandboxing and the safety of hub itself.
Currently as far as I know, we have taken no steps in the direction of hub security/sandboxing
this really needs to be fixed

macOS build missing file extension, preventing launch

The application in the Unitystation .dmg is missing the .app file extension and will open as a directory instead of launching as an application when opened.
Screen Shot 2021-07-28 at 12 20 06 AM

I'm willing to work on this and submit a PR if somebody can point me in the right direction. I'm also willing to test a fix offered somewhere else.

extracting zip files doesn't preserve file permissions.

OS: MacOS Catalina 10.15
version: 928 and latest from repo.

EDIT:

The real problem with MacOS being unable to launch the game from hub was that the way we unzip the .app bundle doesn't preserve file permissions.

A solution would be making hub set the file permissions for the executable after extracting.

This problem should also affect Linux.


So executing the application wasn't the only problem we face, launching the game from the application is also erroring.

Steps:
1- Run the application using ./StationHub
2- Downlaod a game build and try to launch it

error from log:

[16:53:47 INF] Start OSX
LSOpenURLsWithRole() failed for the application /Users/pichula/.local/share/StationHub/Installations/Unitystation4121/Unitystation.app with error -10810

Autoupdate breaks when we need to change content of Lib folder

OS: Windows
Version: 928 => 929

We did an Avalonia update in the middle and I think it makes auto-update break, at least on windows version. Other OS's need reproduction.

Steps:

  1. Have 928 version.
  2. Execute and proceed to auto update.
  3. At the end, it should close whinning about a missing library file.

Builds are missing ian icon

OS: windows, linux, osx
version: 928, latest at the time

All builds main executable are missing the ian icon at the moment.

Upgrade system for the hub itself

We need to poll the api to check the version of the hub against the latest version and prompt the user to update.

We then need to work out the system of downloading the latest update through the hub and installing.

This will need to be tackled before 0.4 alpha release

Rework Views with new desing.

Create Views:

ServerList, DevBlog (News), Settings in contains HubView.
Rework AuthView desing and contains.

For Windows

Support custom window.

Add custom url protocol.

Main

Create script for connection stationhub://ip:port/.

For Windows:

Use Microsoft.Win32 register.

For Linux:

Use cmd Linux to add.

Inaccurate error message when creating account with invalid email

Issue

When creating an account with an invalid email address (e. g. adfassdsadfasdffsad) the following error is shown:

StationHub_2020-04-05_14-07-46

This is inaccurate - the user hasn't created an account yet, and no email is sent.

The user is then returned to the login screen. They lose the progress they made in the registration form; They have to enter their user name name and password again.

Suggested resolution

  • Make the error message more generic

or

  • Inform the user that they have a typo in their email address

and optionally:

  • return the user to the account creation screen instead of the login screen.

Code Sign all builds

We need to set up code signing for all of the builds.

We will need to find a way to tie it into github actions and also keep the keys secure.

Server Ping

Test ping to server and show it in the launcher.

Progress bar lost when downloading and a server list fetch occurs

OS: tested on Windows and Mac, missing Linux reproduction
Version: 928, only happens from commit 2d2e6af onwards.
Introduced after: #102

Description: The progress bar is lost while downloading and a server list fetch occurs.

Steps:

  1. Build and download an installation.
  2. Wait until server list is refreshed.
  3. Progress bar is lost, button goes back to "Download".

News section

A section that shows the latest news for the Unitystation repository.

Using System.Net.NetworkInformation.Ping causes portability issues.

On POSIX systems, System.Net.NetworkInformation.Ping is hardcoded to look in a few places like /bin/ping or /usr/bin/ping. These are not guaranteed to be available, especially in sandboxed environments. If we could use another method that does not use the system ping binary or can use an arbitrary binary that would probably solve the ping display bug in sandboxes and single file exports.

Download managment

Allow for users to see all current, pending, stopped, and completed downloads.
Also allow for the starting and stopping of them.

Potential exploit by server operator pointing to unofficial build

Apparently, gameserver operators have complete control on where Station Hub sources the build for that server. It is possible, even if unlikely, that a server operator with Station Hub access could go rogue and change the source of the build, potentially pointing to a malicious executable.

This isn't good; Station Hub should verify that the build comes from a trusted source. This could be done by changing the operator's configuration to request a build version, (as opposed to the apparent current solution, which is to provide a URL?) Station Hub can then ensure the source comes from the Unitystation CDN. Or, at least, the hub client can validate the suggested URL that it comes from our CDN.

can't launch StationHub on MacOS when the build is self-contained

OS: MacOS Catalina 10.15
version: 928 and latest repo

If the build is self-contained, it can't be ran by double clicking although it can if you run them from terminal using ./StationHub. Interestingly enough, you actually can double click it when it isn't self-contained.

Steps:
1- Build using --self-contained args
2- Try double clicking the executable
3- Try running using terminal and command ./StationHub

Authentication

Allow and require valid credentials to use the launcher

Server list

Display the list of servers and their information.

Stuck on login screen on first login

OS: Windows, although it seems it also occurs in Linux
version: 928, latest version

Steps to reproduce:

  • Delete all folders and files, use a fresh version of the application
  • fill the inputs with your credentials and click "log in".
  • It won't change to the server list view even though it is updating the server list in the background.

Broken Old Version Checking

image

The installation autoremove feature will not remove either one of these installation, even though one has to be older than the other.

Installations management

Required features:

  • Delete installation
  • Open installation in file explorer
  • Launch installation

Remember email

Allow for the option of saving the email, which should be used by default on next login.

user version of the app shows the debug console

version: 928 and latest

Having the debug console is handy for us developers, but it is very ugly for the final users.

To solve this issue, modify our ci workflow to perform two different types of builds, debug and release. Release should overwrite the project configuration like this -p:OutputType=WinExe

Users can download a server's station files multiple times at once.

Description: A user can download the server files multiple times. The progress bar will also reset when switching tabs, or when the server list refreshes. The progress bar's disappearance is merely visual, as the download continues just fine in the console.

This issue occurred on windows 10.

Steps to reproduce:

  1. Start downloading a server's station files.
  2. Switch to a different tab of the stationhub, then switch back.
  3. Start downloading a server's station files again.

Alternatively,

  1. Start downloading a server's station files.
  2. Click download again when the server list refreshes.

Video showing off the issue:

horribly.cropped.for.file.size.bug.preview.mp4

Login feedback

Show errors about why the login failed instead of doing nothing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.