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 StarryPy - A plugin driven server wrapper written in Python.

Discussion in 'Multiplayer' started by Carrots Are Mediocre, Jan 29, 2014.

  1. teihoo

    teihoo Ketchup Robot

    Atm it will only do a search on names, might not be bad to have it display ranks and some other options. Maybe I could make something like /player_list rank registered would show only that rank. And for 25 player listing limit, that is hardcoded atm, since it doesn't make much sense displaying that many in that small chat window (again it is how carrots made it originally still). If you want to remove or increase this value in the current version, look at plugin.py file at the bottom

    def format_player_response(self, players):
    if len(players) <= 25:

    just make this number 1000 and you wont break any code and it should display all (for a workaround).
    Anyway it looks like this part needs some thought on how to solve best.
     
  2. danks_

    danks_ Existential Complex

    Yes, of course I understand giving the option of using SQLite, don't misunderstand me, its obviously easier to set up, try to look into some security to the player.db, really really unsafe.
     
  3. Brockway

    Brockway Pangalactic Porcupine

    You can hack a mysql database too... irrelevant.
     
  4. danks_

    danks_ Existential Complex

    You can hack into anything, but I'm pretty sure a flatfile isn't as secure, what kind of argument is that (?)
     
  5. traxo

    traxo Phantasmal Quasar

    I agree that storing the data in a MySQL database would be an improvement in many ways and open many possibilities. But it would NOT improve security. Your argument was that if someone had access to the .db file, he could just read all the data. If someone had access to that file he would probably also have access to the config file in which you store your username and password for MySQL.
    The data itself has to be more secure, for example by only storing hashes of passwords and UUIDs.
     
  6. danks_

    danks_ Existential Complex

    MySQL still feels a lot safer than having a single file in a folder, it's also about a lot easier to get rid of the file and the MySQL Database doesn't even have to be in the same machine than the server, having access to the game server doesn't necessarily mean having access to the database, whereas in the current version, it is.

    As for making hashes, totally agree with you.

    PS. here's my accounts table, not as easy to read as the .db file
    http://www.mediafire.com/download/0qfn52gb5z8gclo/starbound.rar
     
    Last edited: Apr 13, 2014
  7. Underbalanced

    Underbalanced Phantasmal Quasar

    Lol sql is only as secure as sqlite. Back ups still needed. Sql is also a file stored on a server same as sqlite is a file.
     
  8. Usiemon

    Usiemon Cosmic Narwhal

    Pardon me if I overlooked it, but is there a way to make an in-game announcement at certain time?

    What I want to do is to give players a warning before scheduled server reboots.
    I have set up my Ubuntu Linux server to reboot every 4 hours. 10 minutes ahead of each reboot, I'd like to broadcast a warning like
    "The server is rebooting in 10 minutes."

    Thanks in advance,


    Usiemon
     
  9. SweFox

    SweFox Guest

    Last edited by a moderator: Apr 15, 2014
  10. Usiemon

    Usiemon Cosmic Narwhal

    Thanks SweFox!
    This seems helpful. I'll look into it!
     
  11. teihoo

    teihoo Ketchup Robot

    Yep that's good, original was made by @FZFalzar and is left in pull request on plugins site: https://github.com/StarryPy/StarryPy_plugins/pull/24

    I didn't include this one, because in my case I can't do CTRL-C to stop starrypy, I'm not sure why is that so though...
     
  12. Archer

    Archer Spaceman Spiff

    I've set this up and all, but when I replace the owner UUID thing with my own UUID, it will not recognize me as owner... tried it twice with two different characters + server restart.

    Does it require a special way of formatting or something?

    Using the UUID from my player.metadata files

    EDIT: Got it to work, might've been some other issue
     
  13. teihoo

    teihoo Ketchup Robot

    Ye most likely ive made a few different setups and never had an issue with uuid.
     
  14. Archer

    Archer Spaceman Spiff

    The issue was that I was trying to edit the config while the server was online, assuming it would load it on next startup.

    That being said, could there be some kind of reloading command for the config? Or is it there already?

    EDIT: What about a whitelist instead of a blacklist for projectiles, would make more sense imo since the game has tons of projectiles
     
  15. Brockway

    Brockway Pangalactic Porcupine

    i'm note sure, but maybe because end user of the wrapper dont have the knowledge to find out what is every projectile and find them, so it's much simple for them working with a blacklist that already have them all, so you can test/ask the one you need to delete from blacklist.
    (i'm only guessing there)

    Cheers.
     
    Archer likes this.
  16. teihoo

    teihoo Ketchup Robot

    Sadly config is rewritten during the starrypy operation at times, so changing it while running will most likely overwrite your config.

    Now for the whitelist, there's no no "general" blocking of certain packets, unless they're specific type of packets that contain this and that, this is how starrypy was designed and i didn't mess with that in any respect, except making protection work as it was designed - and that turned up to be a huge CPU strain since it does the check for every single block you change. I had 10x10 manipulator i think, which modifies 10x10 = 100 blocks every time you click, and that alone caused starrypy to eat up a lot of CPU. The only thing i could do, is to make it happen in special circumstances, checking for custom planet protection was just too much, so i made it work only if a user is guest and the server uses global protection (/protect_all).

    That is the biggest drawback I found in starrypy, now we're having some talks to rewrite it with a more server side language that will hopefully make these things run a lot better. Right now, I can't say rly much, but I'm hoping the effort will pull together more individual developers that keep forcing their own solutions and then disappearing after a while. Atm, I'm really unsure if any of the wrappers is even suitable for something that could be called a "production" server. StarryPy is currently feature rich (with exception to ship protect) but probably won't perform that well with a lot of players.
     
    Archer likes this.
  17. Archer

    Archer Spaceman Spiff

    I see, I guess it'll all come at a later stage, hopefully there will be a single standard by then, kinda like the way bukkit (or spigot) are to minecraft.

    I'm not bothered that much by the lack of whitelist, but knowing griefers so well I'm pretty sure they'll find a hole somewhere at some point.

    For now I'll definitely be using starrypy, biggest plus for me is that it is under active development :)
     
  18. SweFox

    SweFox Guest

    You will be disappointed
     
  19. Archer

    Archer Spaceman Spiff

    Does anybody perhaps know how to make the server lists properly query a server with starrypy installed?

    Or is that something on their end? Gametracker doesn't even detect the server at all, and starbound-serverlist just shows as N/A.
     
  20. SweFox

    SweFox Guest

    Yes I had the same problem which I sent a ticket and got a reply.

    You have port 21025 closed yes? For safety. Then you obviously let python.exe on the firewall.

    So the gameport is 21025 and starrypy port 21024. You open port 21024 with UDP in your firewall. ONLY UDP!

    Then in starbound-serverlist you set gameport as 21025 and querry as 21024. That fixes it!
     
    Archer likes this.

Share This Page