AntiBedtrap.sk

Created by Daenningas

Other available versions. Ordered by newest to oldest versions:

Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.

# AntiBedTrap v1.1
On death of player:
  if {lastdeath.%uuid of player%} is not set:
    # last death not set on player.
    set {lastdeath.%uuid of player%} to now
    # Make sure death counter is zero before we begin.
    subtract {deathcounter.%uuid of player%} from {deathcounter.%uuid of player%}
  else if difference between {lastdeath.%uuid of player%} and now is smaller than 30 seconds:
    # Assuming it takes a player less than 30 seconds to die from lava or suffication each time when bed trapped.
    add 1 to {deathcounter.%uuid of player%}
    set {lastdeath.%uuid of player%} to now
  else:
    # Make sure to set last death time when last death was more than 30 seconds ago.
    set {lastdeath.%uuid of player%} to now
  if {deathcounter.%uuid of player%} is 2:
    send "%{deathcounter.%uuid of player%}% deaths within 30 seconds of each other." to player
    send "Bed trap detection started." to player
    send "Continue to respawn to a count of 5 times to be set free." to player
  else if {deathcounter.%uuid of player%} is 3:
    send "%{deathcounter.%uuid of player%}% deaths within 30 seconds of each other." to player
  else if {deathcounter.%uuid of player%} is 4:
    send "%{deathcounter.%uuid of player%}% deaths within 30 seconds of each other." to player
  else if {deathcounter.%uuid of player%} is 5:
    send "%{deathcounter.%uuid of player%}% deaths within 30 seconds of each other." to player
    # Player has died five times in rapid succession.
    # Very high probability of being bed trapped.
    # Get rid of any obsidian or lava in the area as well.
    loop blocks in radius 20 around player:
      loop-blocks is equal to obsidian or lava
      set loop-blocks to air
    # Create glass bubble around player.
    loop blocks in radius 2 around player:
      set loop-blocks to glass
    # Create air pocket for player.
    loop blocks in radius 1 around player:
      set loop-blocks to air
    # Two second delay needed for items to be able to be placed in player inventory.
    wait 2 seconds
    give a iron pickaxe to the player
    give a iron axe to the player
    send "You were bed trapped and are now free. Unfortunately you may have lost the items you were carrying." to player
    send "Here are a couple of tools to dig your way out." to player
    subtract {deathcounter.%uuid of player%} from {deathcounter.%uuid of player%}