StarryPy

De Nefald Wiki
Aller à : navigation, rechercher


StarryPy
StarryPy
Général
Catégorie Starbound [edit]
Métadatas
Création 23/05/2014
Dernière révision 28/09/2017


WebGUI de StarryPy


StarryPy est un wrapper de Starbound créé par CarrotsAreMediocre, avec python 2.7. La version actuelle, très efficace, donnera suite à une version en python 3.4, StarryPy3k.

Caractéristiques

Avec les plugins intégrés (que vous pouvez retirer)
  • Gestion des joueurs. Kick, ban, whois, playerlist. Plusieurs niveaux de joueurs
  • Message du jour (motd)
  • Build protection par joueur/niveau
  • Warping
  • Commande Give
  • Starter items pour les nouveaux joueurs
  • Affichage des join/quit
  • Et bien plus encore

Installation & configuration

Installation

Sur Debian, l'installation est on ne peut plus simple mais nécessite cependant un sudoers, si python 2.7 n'est pas installé sur votre machine.

Tout d'abord assurons-nous que vous satisfaisiez tous les prérequis
sudo apt-get install python2.7 python-dev python-pip git
Une fois ceci fait, clonez le repo dans le répertoire de votre choix en utilisant git
git clone https://github.com/CarrotsAreMediocre/StarryPy
Installez ensuite les requirements python de StarryPy
sudo pip install -r StarryPy/requirements.txt

Et nous voilà rendus.

Configuration

Il vous faut configurer deux fichiers en particulier, celui de StarryPy et celui de Starbound, afin de les faire correspondre l'un, l'autre.


Créez un fichier de config pour StarryPy en copiant config.json.default et en le renommant config.json, que vous trouverez dans le répertoire config. Éditez-le.
  • upstream_port - Le port sur lequel tournera Starbound. Il est recommandé d'utiliser le port 21024 et de le faire correspondre à celui indiqué dans starbound.config
  • upstream_hostname - Changez cette donnée si vous hébergez votre serveur starbound sur un autre serveur.
  • bind_port - Cela devrait être 21025 normalement. Il s'agit du port d'écoute de StarryPy.
  • passthrough - Assurez-vous qu'il est sur false. Il s'agit d'un switch off d'urgence pour StarryPy.

Enfin, ouvrez starbound.config et modifiez le gameport afin de le faire correspondre à celui indiqué dans upstream_port dans config.json.

<spoiler>

{
    "bind_address": "",
    "bind_port": 21025,
    "chat_prefix": "#",
    "chattimestamps": true,
    "colors": {
        "admin": "^#C443F7;",
        "default": "^#F7EB43;",
        "guest": "^#F7EB43;",
        "irc": "^#e39313;",
        "moderator": "^#4385F7;",
        "owner": "^#F7434C;",
        "registered": "^#A0F743;"
    },
    "command_prefix": "/",
    "core_plugin_path": "core_plugins",
    "debug_file": "debug.log",
    "logging_format_console": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    "logging_format_debugfile": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    "logging_format_logfile": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
    "owner_uuid": "!!--REPLACE THIS--!!",
    "passthrough": false,
    "player_db": "config/player.db",
    "plugin_config": {
        "admin_messenger": {
            "auto_activate": true
        },
        "afk_plugin": {
            "afk_msg": "is now AFK",
            "afkreturn_msg": "has returned",
            "auto_activate": true
        },
        "announcer_plugin": {
            "auto_activate": true
        },
        "bookmarks_plugin": {
            "auto_activate": true
        },
        "brutus_whisper": {
            "auto_activate": true
        },
        "chat_logger": {
            "auto_activate": true
        },
        "claims": {
            "auto_activate": true,
            "max_claims": 5
        },
        "colored_names_plugin": {
            "auto_activate": true
        },
        "command_dispatcher": {
            "auto_activate": true
        },
        "emotes_plugin": {
            "auto_activate": true
        },
        "fuelgiver_plugin": {
            "auto_activate": true
        },
        "irc": {
            "auto_activate": false,
            "bot_nickname": "botname",
            "channel": "#channel",
            "color": "^#e39313;",
            "echo_from_channel": true,
            "nickserv_password": "password",
            "port": 6667,
            "server": "irc.freenode.net"
        },
        "loginwho_plugin": {
            "auto_activate": true
        },
        "motd_plugin": {
            "auto_activate": true,
            "motd": "Welcome to the server! Play nice."
        },
        "mute_manager": {
            "auto_activate": true
        },
        "new_player_greeter_plugin": {
            "auto_activate": true,
            "items": [
            ],
            "message": "Welcome new Starbounder ;)"
        },
        "starteritems_plugin": {
            "auto_activate": true,
            "items": [
            [ "bandage", 20 ],
            [ "burger", 20 ],
            [ "stoneaxe", 1 ],
            [ "stonehoe", 1 ],
            [ "stonepickaxe", 1 ],
            [ "solariumore", 30 ],
            [ "money", 1000 ]
            ],
            "message": "You were given a set of starter items ;)"
        },
        "planet_protect": {
            "auto_activate": true,
            "protect_everything": false,
            "bad_packets": [
                "CONNECT_WIRE",
                "DISCONNECT_ALL_WIRES",
                "ENTITY_INTERACT",
                "OPEN_CONTAINER",
                "CLOSE_CONTAINER",
                "SWAP_IN_CONTAINER",
                "DAMAGE_TILE",
                "DAMAGE_TILE_GROUP",
                "REQUEST_DROP",
                "MODIFY_TILE_LIST"
            ],
            "bad_packets_mild": [
                "CONNECT_WIRE",
                "DISCONNECT_ALL_WIRES",
                "DAMAGE_TILE",
                "DAMAGE_TILE_GROUP",
                "MODIFY_TILE_LIST"
            ],
            "blacklist": [
                "bomb",
                "bombblockexplosion",
                "boneswoosh",
                "bouldersmashexplosion",
                "bouncycluster",
                "bouncyclustergrenade",
                "cluster",
                "clustergoo",
                "clustergrenade",
                "defensiveexplosion",
                "dungeonpodexplosion",
                "electricexplosion",
                "electrogrenade",
                "explosivebullet",
                "explosivegoo",
                "fireexplosion",
                "friendlyboneexplosion",
                "gas",
                "gas2",
                "gasgrenade",
                "glowbomb",
                "glowgas",
                "gravitybomb",
                "grenade",
                "grenade",
                "grenadeexplosion",
                "icestorm",
                "impactgrenade",
                "invisibleprojectile",
                "jellybossexplode",
                "jellybossgoo",
                "jumpbomb",
                "jumpgas",
                "largemeteor",
                "lavaballoon",
                "lavaprojectile",
                "magicmolotov",
                "megabeam",
                "meteor",
                "meteorblockprojectile",
                "meteorblockspawner",
                "meteorexplosion",
                "molotov",
                "molotovflame",
                "nail",
                "nailbomb",
                "plasmabullet",
                "plasmaexplosion2",
                "plasmagrenade",
                "plasmatorpedo",
                "poisonsmoke",
                "poisonstatusprojectile",
                "poopbreath",
                "pulsecannon",
                "pulsecannonexplosion",
                "purpleplasma",
                "regularexplosion",
                "regularexplosion2",
                "regularexplosionnospark",
                "rocket",
                "rocketexplosion",
                "runbomb",
                "rungas",
                "shockbomb",
                "smallmeteor",
                "smallregularexplosion",
                "targetexplosion",
                "vsmallregularexplosion",
                "vsmallregularexplosionnodamage",
                "water",
                "zbomb",
                "spinningrocket",
                "stationaryrocket"
            ],
            "player_planets": {},
            "protected_planets": []
        },
        "player_manager": {
            "auto_activate": true,
            "name_removal_regexes": [
                "\\^#[\\w]+;",
                "[^ \\w]+"
            ]
        },
        "planet_visitor_announcer_plugin": {
            "auto_activate": true
        },
        "players_plugin": {
            "auto_activate": true
        },
        "plugin_manager": {
            "auto_activate": true
        },
        "starbound_config_manager": {
            "auto_activate": true
        },
        "uptime_plugin": {
            "auto_activate": true
        },
        "user_management_commands": {
            "auto_activate": true
        },
        "warpy_plugin": {
            "auto_activate": true
        },
        "web_gui": {
            "auto_activate": true,
            "cookie_token": "",
            "log_path": "webgui.log",
            "log_path_access": "webgui_access.log",
            "ownerpassword": "!!PUT A PASSWORD HERE",
            "port": 8083,
            "remember_cookie_token": true,
            "restart_script": ""
        }
    },
    "plugin_path": "plugins",
    "port_check": true,
    "reap_time": 10,
    "server_connect_timeout": 5,
    "server_name": "--ADD NAME--",
    "starbound_path": "/opt/starbound/",
    "upstream_hostname": "localhost",
    "upstream_port": 21024
}

</spoiler>

Lancement

Voilà! Il ne nous reste plus qu'à lancer le wrapper. Pour cela une seule commande suffit. Commande que je vous recommande de d'exécuter dans un screen

screen -S StarryPy python server.py

Commandes

commande description
/afk Définir votre status sur AFK
/bookmark Bookmarker la planète courante
/fuel Octroyez-vous votre fuel quotidien
/goto <bookmark> Téléportez-vous à la planète bookmarkée
/me L'incontournable emote
/motd Voir le motd
/planet Afficher les joueurs se tenant sur votre planète
/players Lister les joueurs connectés
/poi les Points d‘intérêts (POI) sont les bookmarks globaux du serveur. Tapez /poi <nom> pour vous téléportez sur l'une d'elle.
/spawn Rendez-vous au spawn
/uptime Afficher le serveur uptime