Spleef

Let’s build a chat command that creates a Spleef arena.

Chat command

Add a chat command named "spleef".

def on_chat():
    pass
player.on_chat("spleef", on_chat)

Make a lava layer

Place a layer of lava in the ground between the player position of (0, -1, 0) and ten blocks away North and West (10, -1, 10).

def on_chat():
    # @highlight
    blocks.fill(LAVA, pos(0, -1, 0), pos(10, -1, 10), FillOperation.Replace)
player.on_chat("spleef", on_chat)

The fill action takes two locations in the world and fills that area with Lava. (0, -1, 0) means 0 blocks West, 1 block Down (-1 Up), 0 block North. (10, -1, 10) means 10 blocks West, 1 block Down (-1 up), 10 block North.

Make a snow layer

Place another layer of snow in the air between the player position (0, 4, 0) and ten blocks away North and West (10, 4 10).

def on_chat():
    blocks.fill(LAVA, pos(0, -1, 0), pos(10, -1, 10), FillOperation.Replace)
    # @highlight
    blocks.fill(SNOW, pos(0, 4, 0), pos(10, 4, 10), FillOperation.Replace)
player.on_chat("spleef", on_chat)

~0 ~4 ~0 means 0 blocks west, 4 block up, 0 block north. ~10 ~4 ~10 means 10 blocks west, 4 block up, 10 block north.

Try the command

Go to Minecraft, press t to open the chat and enter spleef.

GREIFING ALERT!!! This mod will grief your blocks. Ask your friends before griefing their worlds.

Add a parameter

Add a number parameter to the local on_chat() function by inserting num1 in between the ( ). This will create a new variable called num1. Replace the number 10 with the num1 variable.

# @highlight
def on_chat(num1):
    # @highlight
    blocks.fill(LAVA, pos(0, -1, 0), pos(num1, -1, num1), FillOperation.Replace)
    # @highlight
    blocks.fill(SNOW, pos(0, 4, 0), pos(num1, 4, num1), FillOperation.Replace)
player.on_chat("spleef", on_chat)

So far, the arena created is just 10x10… boring! By using the num1 variable instead, the user can select the size of every game.

Try the parameter

Got to Minecraft and enter spleef 25 in the chat.

Step 7

Teleport all players to a positon that is located at (num1 / 2, 5, num1 / 2).

def on_chat(num1):
    blocks.fill(LAVA, pos(0, -1, 0), pos(num1, -1, num1), FillOperation.Replace)
    blocks.fill(SNOW, pos(0, 4, 0), pos(num1, 4, num1), FillOperation.Replace)
    # @highlight
    mobs.teleport_to_position(mobs.target(ALL_PLAYERS), pos(num1 / 2, 5, num1 / 2))
player.on_chat("spleef", on_chat)

Set Survival Mode

Set the game mode to survival for all players.

def on_chat(num1):
    blocks.fill(LAVA, pos(0, -1, 0), pos(num1, -1, num1),FillOperation.Replace)
    blocks.fill(SNOW, pos(0, 4, 0), pos(num1, 4, num1), FillOperation.Replace)
    mobs.teleport_to_position(mobs.target(ALL_PLAYERS), pos(num1 / 2, 5, num1 / 2))
    # @highlight
    gameplay.set_game_mode(SURVIVAL, mobs.target(ALL_PLAYERS))
player.on_chat("spleef", on_chat)