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

    Basically if you have access to the server OS and can install python then you can also run Starry Py. If you just use what they give you, then probably not, unless they want to change it for you.
     
  2. RatixFarrence

    RatixFarrence Scruffy Nerf-Herder

  3. Brockway

    Brockway Pangalactic Porcupine

    Question : the password to connect to the wrapper is the same than the one use to connect to the normal server, bad people can easy bypass the wrapper by entering server port right ?

    Also what is the format to enter here ? just copie the file name or need to translate in some kind of coordinates ? : "protected_planets": []
    Maybe it's related to InGame command too ?
    I need to dig into your wrapper and get use to it...

    1- Currently i whant to protect spawn from everyone,
    2- force user to register,
    3- once they register select the users with build/projectile rights (so put them into another group than register, and still give no right to registered group),
    4- and make a build/permission list for each planet.

    This way i guess i will definitly get ride of my freaking evil grief kid...

    Cheers.
     
  4. teihoo

    teihoo Ketchup Robot

    Not really if you block the port of the original server.

    1- Currently i whant to protect spawn from everyone,

    go to spawn type /protect
    if you want to protect every planet in the universe from guests, change "protect_everything": true, in your config.json, only registered players can build and do stuff on planets then.

    2- force user to register,

    StarryPy doesn't currently support any ingame ways to register a user. :(

    3- once they register select the users with build/projectile rights (so put them into another group than register, and still give no right to registered group),

    You can set moderators and admins, that can promote ppl using /promote Name registered to a registered user. That's it.

    4- and make a build/permission list for each planet.

    This is possible by doing /protect Player_name on a given planet, these planets are then protected for anyone below admin rank, or being on the list.
     
    Brockway likes this.
  5. NuRRi

    NuRRi Starship Captain

    Now that the Wrapper is working I ve to say WOW!
    Thanks a lot for the work and effort.

    I just tested the IRC Bot that is included in Starrypy and have a question / suggestions:
    The Bot posts every ingame chat to IRC also admin commands that start with "/" like /help /uptime. So you see something like "User: /help" in the IRC Channel.
    Thats not so great because IRC users will see what the admins for example are doing (using commands etc).
    Is there a possibility to tell the bot that it should not post "/" commands to the irc?

    This would be really great.
    Thanks everyone!
     
  6. teihoo

    teihoo Ketchup Robot

    Glad to hear you got it up and running. And Yeah I know. The IRC plugin in 2.x has been rewritten and already does what you say. I didn't make the plugin, and I'm in the middle of some rework on 1.x version, if time permits I'll look into this plugin as well, since its much requested. On the other note, i just found a thing that speeds up 1.x tremendously, I'll be posting a fix tomorrow (I hope! sadly or luckily i stumbled on some issues and now stuff will work better since i found the cause, I'll skip ship protection for this update since its giving me headaches and just finish the nicknames bulletproof logic).
     
    NuRRi likes this.
  7. teihoo

    teihoo Ketchup Robot

    I might add i have a claiming system plugin almost done, just working out on few minor stuff, this will add a predefined number of possible claims for a player. Global value will be set in config, and will be ignored by admins and owners.
     
    SweFox likes this.
  8. Aviakio

    Aviakio Weight of the Sky

    Try changing on_chat_sent to this:
    Code:
        def on_chat_sent(self, data):
            parsed = chat_sent().parse(data.data)
            if not parsed.message.startswith('/'):
                for p in self.irc_factory.irc_clients.itervalues():
                    p.msg(self.channel, "<%s> %s" % (self.protocol.player.name.encode("utf-8"), parsed.message.encode("utf-8")))
    
            return True
     
    NuRRi likes this.
  9. FuzzyThor

    FuzzyThor Existential Complex

    @SweFox I found a better way to use a restart script with the webgui using @Fatmice idea
    If you have the tasks in windows scheduled tasks you can just use these commands in a bat file.
    Code:
    @ Echo off
    Schtasks /run /tn Starbound-kills
    timeout /t 5
    Schtasks /run /tn Starbound-Spawner
    NOTE: I added a space between @ and echo since @ triggers the forum to look for a name after @.


    Edit:
    @Fatmice I noticed that wiht this method it prevents the irc plugin from working correctly
     
    Last edited: Mar 13, 2014
  10. Brockway

    Brockway Pangalactic Porcupine


    So you saying to me that there is a guest rank, and registered rank, but when someone register he stay on the guest rank anyway ?

    Cheers.

    Edit: maybe user cant register, and only staff can change them to other groups anyway ?
    Also what is the rights of groups ? There is a list somewhere ?
     
    Last edited: Mar 13, 2014
  11. teihoo

    teihoo Ketchup Robot

    User cannot register. He can be promoted by an admin, owner or moderator. I should put up a list of commands per rank for the latest version.
     
  12. FuzzyThor

    FuzzyThor Existential Complex

    For some reason when i have a bat in task scheduler to start starrypy the irc plugin fails to connect. It never fails if i manually run the bat
     
  13. teihoo

    teihoo Ketchup Robot

    I've just posted an update for the development beta 1.4.2 - it includes a DB upgrade tool (thanks to @traxo ) and I think I nailed the slugish feeling when warping on/off planet/ship, it seems to speed up things greatly. Even for protection checks, for me it feels blazing fast now, I'd really like some feedback on it, for anyone that can help with testing (thanks a lot to @SweFox and his team for testing my betas, and giving valuable feedback, <3 you guys!) and I've also included web_gui plugin, seems its very stable and neat!
    Still only in my fork for now, as its still WIP, but its comming close to a first 1.4 release. https://github.com/teihoo/StarryPy_Teihoo
     
    Bacon likes this.
  14. User registration can be tweaked if starrypy itself gets its own accessconfig file, so we can even fill the db file with one external site registration (or link it to one like cryto wrapper does), and avoid the core system where it needs one restart each db change. That could be optional but it would be great users could enter only with IP, with guest permissions, and when enter with login, registered rank. :)
    What needs to be done as Devs are not really caring about server software sadly. We just need a brave modder!
     
  15. teihoo

    teihoo Ketchup Robot

    I'll have to look what I actually get on connect request, maybe its not hard if I can get the login info, could just append passwords to the original names, which are unique anyway.
     
  16. Brockway

    Brockway Pangalactic Porcupine

    I dont think that dev are not caring, because they announce that the game will be only user-sided, and after feadback of the community announce real server-side content integrated into the game system.
    Thats really a big change and a big security and server capability big-up !
    The only thing that is just too bad, that is they dont understand that as a priority and really believe that people will play more solo than multi...
     
  17. Yes Multiplayer is the biggest part of this game, yet, players on it, try to play as they can but they avoid the frustrating at times. The problem will always be mods and the file edit cheating that is always capable to cause problems to one server, as bartwe said already at the end most game will still be client-side inside multiplayer, even with server-side chars i will always wonder how will they fight exploiting if they still make the server trust clients. But right now that is the less of a problem, the big focus on server stability and core features.
     
  18. teihoo

    teihoo Ketchup Robot

    StarryPy ingame commands (for beta 1.4.3)
    (some commands were changed since 1.3.2, so I'll just use the new set for this tutorial)

    Ranks in StarryPy
    GUEST
    -> REGISTERED -> MODERATOR -> ADMIN -> OWNER

    Help command /help
    Issuing a /help is the best way to get you started with commands in StarryPy.
    /help [command] - will display help for that particular command. Note that [ ] brackets indicate optional parameters, while ( ) brackets indicate required parameters. | represents an optional different use of parameters (example: (IP | Name indicates a name or IP are correct values)

    Commands from ground up!
    As a GUEST, you have these commands available by default:
    spy-guest.png
    /afk - sets your status to AFK, chatting or using weapons/items will unset your AFK status
    /bookmark (name) - creates a planet bookmark with chosen name (only usable on planet)
    /claim [name] - claim a planet (first claim must not use [name] - name can be used when planet is claimed and owner of the planet wants to add other players to the planet build list)
    /fuel - gives you a daily fuel supply
    /goto [name] - warps your ship to a previously bookmarked planet, or lists bookmarks (only usable on ship)
    /me (emote | text) - planetary broadcasted player emotes
    /motd - displays server Message of the Day
    /planet - displays player on your planet
    /players or /who - displays currently online player list
    /poi [name] - warps your ship to an admin defined Planet of Interest, or displays PoI list
    /r (message) - reply to last received whisper
    /remove (name) - remove a planet bookmark
    /spawn - warps your ship to spawn (only usable on ship)
    /starteritems - gives you predefined server set of items
    /unclaim [name] - unclaims a previously claimed planet or removes player from planet build list, if name is supplied
    /uptime - displays server uptime and version
    /w or /whisper (name) - whisper to another player (personal message)
    /whoami - displays your player information


    With REGISTERED permission, you only get a little more:
    spy-registered.png
    /nick (new nickname) - changes your server nickname to a new one
    /whois (name) - displays chosen player information (at this rank, only original char name and date of last login are displayed to the player, same goes for moderator rank)


    If you ever get to MODERATOR's permission level, you can do even more (obviously):
    spy-moderator.png
    /kick (name) - kick a player from server
    /motd_set (new message) - set a new Message of the Day
    /mute (name) - mute a player (muted players can use ## to talk to admins)
    /promote (name) (rank) - promotes or demotes a player to a specific rank
    /unmute (name) - unmutes a muted player


    At ADMIN permission level, the following commands become available:
    spy-admin.png
    /ban (IP | name) - ban an IP or player name
    /ban_list - display banned IP's and players list
    /item (player name) (item name) [quantity] - gives item to player (quantity is optional - default 1 )
    /nick_set (name) (new nickname) - sets a player's nickname to a new one
    /player_del (name) - deletes a player from database
    /player_list [search] - displays players in a database, use search if more then 25 players
    /poi_del (name) - removes a PoI from the list
    /poi_set (name) - creates a new server PoI (need to be on a planet)
    /protect [name] - protects the current planet, or / and adds players to planet build allowed list
    /protect_list - display planet build allowed list for protected planets
    /unban (IP | name) - unban an IP or player name
    /unclaimable - set the planet as unclaimable (need to be on a planet)
    /unprotect [name] - removes protection from a planet, or removes a player from planet's allowed list
    /warp [player] (to player) - warp player to another player's ship
    /warp_ship [player] (to player) - warp ship from player to another player
    (NOTE: a bit outdated list of ingame items can be found here http://pastebin.com/ut4kchgH )


    The lucky OWNER's can do crazy stuff, like shutdown a server ?!?! or in case of failure, disable a plugin ...
    spy-owner.png
    /passthrough - actually never use this, unless you get some serious StarryPy issues, and want to keep ppl online until you can safely restart - it will simply pass through all network to the Starbound Server directly - and do note, that you have to set "passthrough" to false in config, or the server will stay in passthrough mode even after restart!
    /plugin_disable (name) - disable an enabled plugin
    /plugin_enable (name) - enable a disabled plugin
    /plugin_list - list all the active and inactive plugins
    /protect_all - toggle Planetary Protection (only registered users and above can build on planets, normal planet protection always applies)
    /shutdown - and then all goes black
    /ss - the official Gestapo mode (Social Spy, owners will see all whispers)
    /timestamps - toggle server display of chat timestamps


    Special commands
    ## - starts an admin chat, note that only admins or owners will see a display of these messages
    ### - broadcast - an admin or owner can create a big red server broadcast, that players should notice (rly)

    spy-broadcast.png


    Emotes /me
    spy-emotes.png
    Emotes offer a convenience to express your feelings with a bit of style like: /me dance
    spy-emotes-dance.png
    There are also 2 utility emotes that will either randomly flip a coin or do a random roll between 1 and 100.
    spy-emotes-rollflip.png

    Demo images of some commands used
    Who is below admin rank will only display basic information (guests cannot use /whois):
    spy-whois-registered.png

    Admins see more info with /whois:
    spy-whois-admin.png

    For managing players /player_list will show you registered users, you can use /player_del to remove a user from DB:
    spy-player-list.png

    Banning works by IP or name in the following pic I banned NumSol player and IP 192.123.123.123 and unbanned them:
    spy-banning.png

    Planet protection for custom planets works based on player names - or you can toggle /protect_all
    spy-protect.png

    For convenience purposes I've also put all this in a PDF file available here.

    Edit: Added claim commands introduced in version 1.4.3.
     
    Last edited: Apr 15, 2014
  19. @teihoo nice list, such info should be gathered to form one official documentation, so people will stop being lost about everything.
    Yet one suggestion about commands, one thing that makes the list big is commands about the same system, like bookmarks, never thought of use one main /bookmark command and then /bookmark go LOCATION, /bookmark add LOCATION and /bookmark remove LOCATION ? Instead of 3 different commands that appear on the command list, one player doing /bookmark would instant return him the correct usage, to add, remove and travel to them. :)
    For me it's a bit confusing a "bajillion" commands, the same thing happens with /poi_del, /poi_set and /poi the /poi could return the correct usage for the same, delete, set and travel to with one main command and not 3 different ones :lolwut:

    Don't you agree that can organize better commands into this groups and decently reduce the number of commands on /help so it returns you the main commands only?

    EDIT: With this the number of commands would be reduced from 41 to ~30 (the ones i notice to be about the same thing).
     
    Last edited: Mar 14, 2014
    teihoo and traxo like this.
  20. Brockway

    Brockway Pangalactic Porcupine

    So, how did we get a different password on Starrypy and vanilla ?

    Because to bypass Starrypy actually people just have to put :21024 after server name and can connect without starrypy filter...

    Edit: does i have to download the last build here ? https://github.com/teihoo/StarryPy_Teihoo

    Edit2: Nice commande list, but permissions list are as important maybe more...
    what group can build ? Can use projectiles ? can bypass protection of planets ? can spawn npc ? etc...
     
    Last edited: Mar 14, 2014

Share This Page