Spleef

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

Step 1

Add a chat command named "spleef".

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

Step 2

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))
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.

Step 3

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))
    # @highlight
    blocks.fill(SNOW, pos(0, 4, 0), pos(10, 4, 10))
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.

Step 4

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.

Step 5

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))
    # @highlight
    blocks.fill(SNOW, pos(0, 4, 0), pos(num1, 4, num1))
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.

Step 6

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))
    blocks.fill(SNOW, pos(0, 4, 0), pos(num1, 4, num1))
    # @highlight
    mobs.teleport_to_position(mobs.target(ALL_PLAYERS), pos(num1 / 2, 5, num1 / 2))
player.on_chat("spleef", on_chat)

Step 8

Set the game mode to survival for all players.

def on_chat(num1):
    blocks.fill(LAVA, pos(0, -1, 0), pos(num1, -1, num1))
    blocks.fill(SNOW, pos(0, 4, 0), pos(num1, 4, num1))
    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)