1. When making a thread, please tag your thread accordingly using the menu to the left of the textfield where you name your thread where applicable. Server Advertisements and Mod Releases should be contained to their respective subforums.

Server Discussion Project Starlight - Starbound Server Extension - Player Commands, Admins and more! - Open Source!

Discussion in 'Multiplayer' started by Opalium, Dec 20, 2013.

  1. Opalium

    Opalium Pangalactic Porcupine

    Project Starlight
    A Starbound server extension
    By Opalium

    News:
    Project Starlight is discontinued.

    --------------------------------------------------------------------------------------------------------------------
    Project Starlight is now open-source. You can find the details below.

    --------------------------------------------------------------------------------------------------------------------
    Welcome to Project Starlight!
    Project Starlight (or just Starlight, in short) is a Starbound server wrapper and management tool, the first ever created for Starbound. It allows you to extend the abilities of your Starbound server and add new features.

    IMPORTANT NOTICE:
    Project Starlight is not completely stable!
    I've done my best to test all of the features, but some bugs/problems may still occur.


    Feature list:
    • In-Game chat commands!
    • Custom server messages!
    • In-Game private messages/whispers!
    • Admin-only chat!
    • Easy player kicking/banning!
    • UUID-based Player banning!
    • UUID-based Admin privileges!
    • Players and Worlds lists!
    • Server MOTD!
    • Enhanced Log with customizable filters!
    • Non-GUI - can be run from a console/terminal window!
    • Fancy text-based user interface!
    • Cross Platform!*
    • 100% Free!
    • Open-source! (More details below)
    * Starlight is written in a way that should make it cross-platform. However, I did not personally test it on all platforms - only Windows.

    Screenshots:

    [​IMG]

    [​IMG]

    [​IMG]
    Commands:
    Starlight comes with built-in server management commands. All of these commands can be ran from the console, and some can be run from the game itself, too!
    Here's a list of them. You can always see the list by typing "help" in Starlight's console:

    • Kick - kicks a player from the server.
    • Ban - bans a player from the server for a specific amount of time/permanently.
    • Say - sends a server message to all connected players.
    • Playerlist - shows a list of all online players.
    • Whisper or /p - sends a private message to a player.
    • Prefixing message with # - sends a message to admins only.
    • Worlds - shows a list of all loaded worlds. (Console only)
    • Admins - shows a list of all online Admins. (Console only)
    • ASay - sends a message to admins only. (Console only)
    • FullLog - shows the entire server log for this session. (Console only)
    • LogFilters - controls the log filters, allowing the user to choose what messages will be filtered. (Console only)
    • LogInterval - sets how often the console output will update. (Console only)
    • Restart - restarts the server (Console only)
    • Exit - saves everything and shuts down Starlight. (Console only)
    • Help - shows the command list.
    Installation:
    Starlight requires Java to work. If you don't have Java, you can download the newest version from here: http://java.com/en/download/manual.jsp

    1. Download the files from the link below.
    2. Extract all of them to your Starbound server directory (win32 on Windows, linux`32/linux64 on Linux).
    3. Optional: Navigate to the Starlight folder and edit Config.txt to your liking. Make sure to read the instructions!
    4. Finally, run Start_Starlight.bat (Windows) or Start_Starlight.sh (Mac/Linux)
    Done! You are now running Starlight!

    --------------------------------------------------------------------------------------------------------------------
    Show Your Appreciation!
    I am developing Project Starlight on my free time and out of good will and the hope of helping the community. I'm putting a lot of time and effort in it to make sure you'll have the best experience from it.
    Project Starlight is provided for 100% and will always be. I do not make any profit out of this project.
    However, if you enjoy my work and wish to give something back, why not make a small donation? This is the best way to thank me for my hard work.
    If you wish to donate, click the buttom below.
    Thank you very much!
    .
    [​IMG]
    You can donate any amount you like - anything is welcome!
    --------------------------------------------------------------------------------------------------------------------
    Source code:
    Starlight is open-sourced, allowing anyone who wants to extend it or modify it to do so.
    The GitHub repository can be found here:
    https://github.com/TheOpalium/ProjectStarlight
    Starlight is distributed under the GPL v3 license.
    (Please notice that the repository will not be updated)

    Download:

    Current version: 0.3.1 Beta (Final Update)

    • UUID detection remake: UUID detection now fully works everytime, obtaining the UUID from the connection data.
    • Important Exceptions are now printed to Starlight's log.
    • The whitelist now properly blocks players who are not in it.
    • Fixed a bug where custom file locations in the config could cause Starlight not to load properly.
    • Fixed a bug where clients would randomly crash when connecting to the server.
    • Critical errors will now shut-down Starlight immediately, instead of waiting 5 seconds.
    Download: http://bit.ly/JbnEFP

    Previous versions:
    Version 0.3 Beta:

    • Added compatibility with version Angry Koala (628)
    • New feature: Server Restart
    • This allows you to easily restart your Starbound server through Starlight. You can set automatic restarts every once in a while, as well as manually restart with a single command.
    • New feature: UUID Whitelist
    • The UUID Whitelist allows you to set a list of specific players that may join your server. This can be useful if you wish to run a private or registration-based server without the struggle of creating user accounts.
    • You can now set custom locations for Starbound.config and Starbound's server launcher in Starlight's config. This can be useful if Starlight fails to find it. Instructions can be found in the config aswell.
    • The port checking in Linux based systems is fixed.
    • Added an anti-crash mechanism to deal with the "big bad server error" - "MapException: Key 'X'"
    • Fixed a bug where sometimes server messages caused players to crash.
    • You can now run commands on player names with a space by putting them in quotes.
    • Improved the console performance on long text outputs.
    • Disabled Starlight's whispers. They will be reenabled after I remake them.
    Download: https://www.dropbox.com/s/yywyvt7wf6vghg3/ProjectStarlight_0-3-beta.zip

    Version 0.2.3 Beta

    • 0.2.3 - New Command: exitnow - shuts down Starlight immediately. (instead of after 5 seconds)
    • 0.2.3 - You can now make Starlight ignore previous instances of Starbound on startup through the config.
    • 0.2.2 - You can now change Starlight's listening port through the config.
    • 0.2.1 - The port check can now be disabled in the config if it doesn't work for you. However, if you do that, you MUST manually change the port in Starbound.config to 21020!
    • New feature: Whispers!
    • New command: whisper (also /p ingame) - sends a private message to a specific user
    • New Feature: Admin chat!
    • This is a chat that only admins can see. Typing # before your message in-game will send the message through the admin's chat. This can be used by players to contact admins, or by the admins to chat between them.
    • New console command: asay - sends a message through Admin's chat.
    • New Feature: MOTD!
    • The MOTD is a text message that will be shown to players when they connect.
    • New Feature: Player Join and Leave notifications!
    • New: Config file
    • The config file allows you to change a vareity of Starlight's settings. It can be found inside Starlight's folder as config.txt
    • New: Automatic Port Setup!
    • This feature will automatically make the changes needed in Starbound's config, so you don't have to worry about it! This feature can also be disabled in Starlight's config.
    • New console command: admins - shows a list of all online admins
    • New console command: loginterval - sets how frequent will the console output update.
    • The command list in console is now multi-paged.
    • Fixed a bug where Starlight could not load some files on Linux.
    • Fixed a few random crashes.
    • Some text clean-ups.
    Download: https://www.dropbox.com/s/s3k3qzzqu7rrrwi/ProjectStarlight_0-2-3-beta.zip

    FAQ:
    Q: When I start up Starlight, it tells me it cannot find Starbound's port. What is this?
    A: Starlight automatically tries to set up your port settings to make it work. However, sometimes it will not be able to do so. In those cases, you can disable the port check manually through the config.
    IMPORTANT: If you do so, you MUST manually change the port. To do so, open up Starbound.config and change the line named "gamePort" to 21020.

    Q: Sometimes I see weird texts about exceptions popping in the console, is it bad?
    A: These are just some error messages that help at finding problems. Usually it doesn't have any affect on your server, but it would be better if you could report those errors so I can fix them, even if they don't make any problems.

    Q: Sometimes my server messages are cut in the middle, with the ending removed. Why?
    A: This is because of a bug in Starbound. If a line in the chat panel is longer than 58 characters, all clients who receive the message will crash. Due to this, Starlight has a length check that removes any additional characters, preventing this crash.

    Q: What language is Starlight written in?
    A: Java.

    Q: What versions does Starlight support?
    A: The latest verion of Starlight was tested on version "Angry Koala" (628) of Starbound.

    -----------------------------------------------------------------------
    Thanks for reading!
    I hope you will enjoy using Project Starlight and find a good use in it.
    Enjoy!

    ~Opalium
     
    Last edited: Mar 7, 2014
  2. Opalium

    Opalium Pangalactic Porcupine

    Project Starlight has been discontinued.

    ~Opalium.
     
    Last edited: Mar 7, 2014
  3. DumbBellDoor

    DumbBellDoor Space Hobo

    This is great! Good job!
     
    Opalium likes this.
  4. TheBorg

    TheBorg Aquatic Astronaut

    Looks neat, from the page that is.
    Might be easier for linux and mac if the Starlight wrapper was not looking for an .exe file ^^
     
  5. shibdib

    shibdib Starship Captain

    Going to give this a try!
     
    Opalium likes this.
  6. shibdib

    shibdib Starship Captain

    Well maybe.. I see it's run in cmd.exe which makes restarting it annoying as I have multiple instances of cmd.exe running
     
  7. Stadl0r

    Stadl0r Contact!

    Great to see this plugin! I'm in the process of installing it on my dedicated linux server. One question, how might I find my UUID if i'm running starlight for chat purposes only as I dont have desktop access (only SSH)
     
  8. Stadl0r

    Stadl0r Contact!

    Update: I tried starting it on Linux and this was the error i recieved after putting it into the dir starbound/linux64 where my server is launched from

    [​IMG]
     
  9. TheBorg

    TheBorg Aquatic Astronaut

    Run the wrapper in a screen, http://www.howtoforge.com/linux_screen.

    You could edit the starting .sh to something like:
    screen -S SCREEN_NAME java -jar starlight.jar

    Anyway before you can achieve that the wrapper should actually be able to boot with the linux/mac version of the Starbound server. Probably a small mistake the maker missed out on. :)
     
  10. Opalium

    Opalium Pangalactic Porcupine

    Oh wow...I really forgot about this one... haha.
    I've uploaded a fix. Hopefully it works this time.

    The UUID is printed to the log every time a player connects. Just take a look there.
     
  11. TheOtherDrew

    TheOtherDrew Big Damn Hero

    Code:
    Q: Sometimes Starlight doesn't show my UUID when I connect. What can I do?
    A: It happens sometimes. Just try reconnecting a few times.
    Does this affect ban's or admin recognition?
     
  12. Opalium

    Opalium Pangalactic Porcupine

    Well, yeah. However, it rarely happens. Usually on the next connection it will work.
    Also, bans are also IP based, in addition to UUID checking.
     
  13. TheOtherDrew

    TheOtherDrew Big Damn Hero

    Fair enough, just wanted to make sure before I play around too much.
    I'm going to double check some things on my end but it seems that when using your app, The server crashes on windows server 2012.
    Something about not being able to bind to the port.... Guess while I typed this I decided to double check and make sure you are not running as a man in the middle.
    You ARE!!!! So I solved my own problem. However I suggest you put some error checking in and make a warning on start, to make sure that the port has been changed for the server.. Just a thought.

    Or maybe big bold lettering in RED that says change the port!

    thanks again,.

    EDIT: Maybe even have your app edit the file so that there is no issue, but with a big warning and confirmation screen that tells people that you have changed their config.
     
  14. AcidWeb

    AcidWeb Aquatic Astronaut

    Nice work.
    Could you share method how you send chat messages to game?
     
  15. TheOtherDrew

    TheOtherDrew Big Damn Hero

    Opalium, I took your quick response to place the instructions in red as very humorous. You have a nice application here..
    Hope that red text will keep some questions at bay. Thank you!!
     
    Opalium likes this.
  16. Opalium

    Opalium Pangalactic Porcupine

    I'm already making this right now. I'll let the user choose what port and make the changes automatically. Thanks for the suggestion!
     
  17. TheOtherDrew

    TheOtherDrew Big Damn Hero

    Is it currently possible to intercept player coords? I'm wondering if with your MITM approach, you can tell where a client is located, because this opens up new possibilities. Which I will PM you about if you are able to do so. Thanks again.
     
  18. Opalium

    Opalium Pangalactic Porcupine

    Do you mean universe coords (as in coords of the planet you are in)?
    Or actual position of the player in a specific world (as in x,y coords)?
     
  19. TheOtherDrew

    TheOtherDrew Big Damn Hero

    Both really, I'm pretty sure Universe coords are known right?
    I see you have private worlds listed as a work in progress, I can see that being cool. I'm curious though, upon trying to transfer to that world, do you simply block the packet sending and send a chat message to the player?
    It's along the lines of private worlds but rather being able to op and de-op people on a "land claim". No need to PM you now since you are already working towards private worlds.

    EDIT: Suggestion to add to your list.
    Resource usage monitor @ the top of the application that updates a little more frequently than 30 second intervals would be nice.

    Can you add the option to send private messages from console. If you are not aware you can send PM's in game with "/w playername" before your message.

    Maybe some sort of stat system, player time on the server, different names used, worlds entered that kind of stuff.
    Then I can as a user send a message to the server and ask for my stats.

    Probably need MySQL or similar DB for info storage. I can see people using this info for top players of the month etc.

    These are all just thoughts, Hope you don't mind me putting them out there.
     
    Last edited: Dec 21, 2013
  20. TheOtherDrew

    TheOtherDrew Big Damn Hero

    Having an error on Windows Server 2012.
    Finally got around to trying to connect to my server.
    Here is as image of the error.
    The starbound_server.exe then crashes.
     

Share This Page