Remote Console v1.0 - Manage your server from any computer

Discussion in 'Resources' started by Accalia de Elementia, Jul 20, 2011.

Thread Status:
Not open for further replies.
  1. Remote Console - Manage your server from any computer:
    Version: v1.0

    Remote Console is a Python application that uses JSONAPI to communicate with and control your Minecraft server.

    Requires:
    JSONAPI by Alec Gorge

    Usage Instructions:
    Show Spoiler

    Remote Console is entirely text based so all interaction is in the form of commands, much like the minecraft chat itself. Commands are split into five categories:
    • internal (local) - Commands that affect Minecraft Remote Console on your local computer
    • connection - Commands that affect the connection between Minecraft Remote Console and JSONAPI
    • JSONAPI - execute JSONAPI methods on the remote server
    • Minecraft - executes minecraft console commands
    • Chat - sends a chat message to the remote server
    These categories are differentiated by a prefix character. Each category has exactly one unique prefix character, except for chat which is a catch-all category. The prefixes are:
    • # - system commands
    • : - JSONAPI commands
    • / - Minecraft commands
    For a complete listing of available commands and how to use them consult the help commands, which are unimaginatively named: #help, %help, :help and /help

    Following is a quick session example that connects to a server, lists connected players through JSONAPI, giving the player an item through a Minecraft command, sending a chat message and disconnecting. User input is indicated by prefixing the line with a triple chevron ('>>>')
    Code:
    >>> #connect localhost 20059 admin demo ""
    2011-07-19 20:32:07 [INFO] Lord_DragonFly [/74.75.145.48:57867] logged in with entity id 153454 at ([world] -762.7432328432731, 64.0, 672.1997188286858)
    >>> :getPlayer Lord_Dragonfly
    {
      "worldInfo": {
        "environment": "normal",
        "fullTime": 1558040,
        "name": "world",
        "time": 22040
      },
      "name": "Lord_DragonFly",
      "ip": "/74.75.145.48:57867",
      "itemInHand": {
        "amount": 37,
        "type": 89,
        "durability": 0
      },
      "inVehicle": false,
      "sleeping": false,
      "health": 5,
      "inventory": {
        "armor": {
          "helmet": {
            "amount": 0,
            "type": 0,
            "durability": -1
          },
          "chestplate": {
            "amount": 0,
            "type": 0,
            "durability": -1
          },
          "leggings": {
            "amount": 0,
            "type": 0,
            "durability": -1
          },
          "boots": {
            "amount": 0,
            "type": 0,
            "durability": -1
          }
        },
        "inventory": [
          {
            "amount": 37,
            "type": 89,
            "durability": 0
          },
          {
            "amount": 1,
            "type": 271,
            "durability": 0
          },
          null,
          {
            "amount": 55,
            "type": 50,
            "durability": 0
          },
          {
            "amount": 64,
            "type": 3,
            "durability": 0
          },
          {
            "amount": 50,
            "type": 3,
            "durability": 0
          },
          null,
          {
            "amount": 22,
            "type": 24,
            "durability": 0
          },
          {
            "amount": 1,
            "type": 278,
            "durability": 1375
          },
          null,
          null,
          null,
          null,
          null,
          null,
          null,
          {
            "amount": 2,
            "type": 288,
            "durability": 0
          },
          {
            "amount": 2,
            "type": 287,
            "durability": 0
          },
          null,
          {
            "amount": 64,
            "type": 50,
            "durability": 0
          },
          null,
          null,
          null,
          null,
          null,
          {
            "amount": 64,
            "type": 24,
            "durability": 0
          },
          {
            "amount": 64,
            "type": 24,
            "durability": 0
          },
          null,
          {
            "amount": 64,
            "type": 24,
            "durability": 0
          },
          {
            "amount": 8,
            "type": 12,
            "durability": 0
          },
          {
            "amount": 64,
            "type": 12,
            "durability": 0
          },
          {
            "amount": 64,
            "type": 12,
            "durability": 0
          },
          {
            "amount": 64,
            "type": 12,
            "durability": 0
          },
          {
            "amount": 64,
            "type": 24,
            "durability": 0
          },
          {
            "amount": 64,
            "type": 24,
            "durability": 0
          },
          {
            "amount": 64,
            "type": 24,
            "durability": 0
          }
        ],
        "hand": {
          "amount": 37,
          "type": 89,
          "durability": 0
        }
      },
      "sneaking": false,
      "world": 0,
      "op": true,
      "location": {
        "y": 64.0,
        "x": -762.65625,
        "yaw": -173.45679000000001,
        "z": 672.28125,
        "pitch": -10.199923999999999
      }
    }
    >>> /give Lord_Dragonfly 1 1
    2011-07-19 20:38:16 [INFO] Giving Lord_DragonFly some 1
    2011-07-19 20:38:16 [INFO] APIWrapperMethods: Giving Lord_DragonFly some 1
    >>> Hello there Dragonfly, have some stone.
    2011-07-19 20:38:41 [INFO] <Metatron> Hello there Dragonfly, have some stone.
    2011-07-19 20:38:41 [INFO] message:<Metatron> Hello there Dragonfly, have some stone.
    >>> #quit
    

    Features:
    • Allows complete administration of any bukkit enabled server through JSONAPI
    • Builtin chat
    • Execute any console command
    • Execute any JSONAPI command
    Download Minecraft Remote Console: ZIP tar.bz2
    Source Code

    Changelog:
    Version 1.0
    • Complete rewrite to improve maintainability
    • Improve stability
    • Remove 15 Kludge-o-ramas from the code
    • Remove 'hidden' command aliases
    Version 0.5
    • Add command history
    • Add persistant environment variables
    • Move repository from private SVN to public GitHub
    • Add some documentation
    Earlier versions:
    Show Spoiler

    Version 0.4
    • Can impersonate any identity in chat (default: Megatron)
    • Code cleanup and class restructure
    • New version of MinecraftAPI.py
      • Reduce memory footprint
      • Remove automatically generated helper methods as they are not portable
    Version 0.3
    • Get help on any loaded JSONAPI command
    • Can participate in chat
    Version 0.2
    • Query JSONAPI for information on loaded methods
    • Execute any loaded JSONAPI method.
    • Execute any console command.
    Version 0.1
    • Initial checkin to private SVN repository
    • Connect to JSONAPI
    • Execute limited set of JSONAPI commands
     
    Alec Gorge likes this.
  2. Offline

    Alec Gorge

    I use this!

    Hands down the most powerful way to administer a server.
     
    Accalia de Elementia likes this.
  3. Offline

    maetthew

    Wooow nice work! Will try out immediately!
     
  4. Current TODO List:
    • Add Aliaas commands
    • Make help system more intelligent
    • make default size larger
    • Move cursor to end of line on command scrollback
    • Add more awesome
    • Document installation/use on Mac and Windows
    • Add in app splash screen
    • Get some screenshots of it in action
    • Add comments to code for extra readability
    • Update MinecraftAPI.py and demo site and push to Alec (JSONAPI)
    • Add "guided" mode with full user friendly UI (may need help with designing the graphic assets here)
    • Create a logo for the app.

    Shout if you want me to add something to this list.

    @Alec Gorge have you found the hidden command aliases yet? they aren't reported in the help screens but they will cut down on typing if you administer a lot of servers
     
  5. Offline

    Alec Gorge

    What do you mean hidden command aliases?

    Can you give an example?
     
  6. They are in the source code in CommandHandlers.py

    Mostly they take the form of shortening a command to its first one or two letters for faster typing.

    For example %c means %connect

    There are others. I didnt do any for the JSONAPI methods because i cant know what they are ahead of time.

    The next version will allow you to define alias commands yourself, something that you cant do right now without editing source
     
  7. Version 1.0 is out. no new major functionality released. This was mostly just a cleanup and reorganization to support the next release.

    Note: Commands have changed. any '%' command is now a '#' command

    Changelog:
    Version 1.0
    • Complete rewrite to improve maintainability
    • Improve stability
    • Remove 15 Kludge-o-ramas from the code
    • Remove 'hidden' command aliases

    Download Minecraft Remote Console: ZIP tar.bz2
    Source Code

    Planned for 1.5:
    • User defined aliases
    • User created scripts for complex administration
    • Proper documentation
     
  8. Offline

    Mattyice47

    How do you install it on Mac?
     
  9. Offline

    Arklelinuke

    I'm sorry for being a noob, but I have no idea how to run this. I have the prerequisite mentioned above, can someone please help me?
     
  10. Offline

    Thunderfire202

    How do you install?
     
  11. Offline

    gongora101

    How do I use this?
     
  12. Offline

    bobacadodl

    Goblom likes this.
Thread Status:
Not open for further replies.

Share This Page