mojira.dev
MC-302517

Kick players Server Management Protocol API request syntax is incorrect

The Server Management Protocol request syntax requires the ‘params’ field to be sent as an array. As of 1.21.9 Pre-Release 4, the minecraft:players/kick request syntax was updated/adjusted. Now, if you send the request params as an array, it returns an error, but sending it as an object succeeds.

Sending request as an array

# V1.21.9-pre4
REQUEST:
{
  "jsonrpc":"2.0",
  "id":3,
  "method":"minecraft:players/kick",
  "params":[{                          # <-- Sent as array
    "kick": [{
      "player": {
        "name": "PetergrineFalcon"
      },
      "message": {
        "literal": "You have been kicked."
      }
    }]
  }]
}

RESPONSE:
{
  'jsonrpc': '2.0',
  'id': 3,
  'error': {
    'code': -32602,
    'message': 'Invalid params',
    'data': 'Not a json array: {"kick":[{"player":{"name":"PetergrineFalcon"},"message":{"literal":"You have been kicked."}}]}'
  }
}

Sending request as an object

# V1.21.9-pre4
REQUEST:
{
  "jsonrpc":"2.0",
  "id":3,
  "method":"minecraft:players/kick",
  "params":{                           # <-- Sent as object
    "kick": [{
      "player": {
        "name": "PetergrineFalcon"
      },
      "message": {
        "literal": "You have been kicked."
      }
    }]
  }
}

RESPONSE:
{
  'jsonrpc': '2.0',
  'id': 3,
  'result': [{
    'name': 'PetergrineFalcon'
  }]
}

Comments 2

Please edit your report to change the Affected Version to the version shown on the Minecraft title screen

Sending the parameters as an array should look like this:

{
  "jsonrpc":"2.0",
  "id":3,
  "method":"minecraft:players/kick",
  "params":[[{
      "player": {
        "name": "PetergrineFalcon"
      },
      "message": {
        "literal": "You have been kicked."
      }
  }]]
}

This is correctly accepted by the server. You had an extra object in there, that isn’t correct.

Peter Vanderhyde

(Unassigned)

Unconfirmed

(Unassigned)

1.21.9, 1.21.10 Release Candidate 1

Retrieved