Advertisement
Guest User

[VarScript] trapped blocks

a guest
Jul 3rd, 2014
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 3.65 KB | None | 0 0
  1. import org.bukkit.Bukkit
  2. import org.bukkit.Location
  3. import org.bukkit.Material
  4. import org.bukkit.block.Block
  5. import org.bukkit.block.BlockFace
  6. import org.bukkit.command.Command
  7. import org.bukkit.command.CommandSender
  8. import org.bukkit.entity.Player
  9. import org.bukkit.event.player.PlayerMoveEvent
  10. import org.yaml.snakeyaml.DumperOptions
  11. import org.yaml.snakeyaml.Yaml
  12.  
  13. import java.util.logging.Level
  14.  
  15. List<Block> traps = []
  16.  
  17. Yaml yaml = new Yaml(new DumperOptions(defaultFlowStyle: DumperOptions.FlowStyle.BLOCK))
  18.  
  19. File playerStatsFile = new File(workspace.directory,"traps.yml")
  20.  
  21. playerStatsFile.createNewFile()
  22. playerStatsFile.withInputStream {
  23.     try {
  24.         List<HashMap<String,Object>> loadedList = yaml.load(it) as List<HashMap<String,Object>>;
  25.         loadedList.each { HashMap<String,Object> el ->
  26.             traps.add(new Location(Bukkit.getWorld(el.world as String),
  27.                     el.x as double,
  28.                     el.y as double,
  29.                     el.z as double)
  30.                     .block)   ;
  31.         };
  32.     }catch (ignored){
  33.         Bukkit.getLogger().log(Level.WARNING,"[Traps] Can't load traps file!",ignored)
  34.         workspace.stop()
  35.     }
  36. }
  37.  
  38. workspace.addFinisher({
  39.     List<HashMap<String,Object>> listToSave = []
  40.     traps.each {
  41.         listToSave.add([x:it.location.x,y:it.location.y,z:it.location.z,world:it.location.world.name])
  42.     }
  43.     playerStatsFile.withOutputStream {
  44.         String dump = yaml.dump(listToSave)
  45.         try {
  46.             it.write(dump.getBytes("UTF8"))
  47.         } catch (ignored) {
  48.             Bukkit.getLogger().log(Level.WARNING,"[Traps] Can't save traps to file!",ignored)
  49.         }
  50.     }
  51. })
  52.  
  53. List<Player> damagedPalyers = [];
  54.  
  55. workspace.addEvent({PlayerMoveEvent event ->
  56.     if(damagedPalyers.contains(event.player) && !(traps.contains(event.to.block))){
  57.         damagedPalyers.remove(event.player)
  58.         return
  59.     }
  60.     if(traps.contains(event.to.block) && !(damagedPalyers.contains(event.player))){
  61.         Player plr = event.player
  62.         plr.setFireTicks(20*7)
  63.         damagedPalyers.add(plr)
  64.         plr.sendMessage("\u00A74You been trapped!")
  65.     }
  66. },PlayerMoveEvent)
  67.  
  68. workspace.addCommand("addtrap",{ CommandSender commandSender, Command command, String s, String[] strings ->
  69.     if(!(commandSender instanceof Player)) return false;
  70.     Player player = commandSender
  71.     if(!player.hasPermission("trap.add")){
  72.         player.sendMessage("\u00A74You have not permissions!")
  73.         return true;
  74.     }
  75.     Block bl = player.getTargetBlock(null,10)
  76.     if(bl == null){
  77.         player.sendMessage("\u00A74Block not selected!")
  78.         return true;
  79.     }
  80.     bl = bl.getRelative(BlockFace.UP)
  81.     if(traps.contains(bl)){
  82.         player.sendMessage("\u00A76This block already have trap!")
  83.         return true;
  84.     }
  85.     traps.add(bl)
  86.     player.sendMessage("\u00A7aTrap successful created!")
  87.     return true;
  88. })
  89.  
  90. workspace.addCommand("removetrap",{ CommandSender commandSender, Command command, String s, String[] strings ->
  91.     if(!(commandSender instanceof Player)) return false;
  92.     Player player = commandSender
  93.     if(!player.hasPermission("trap.remove")){
  94.         player.sendMessage("\u00A74You have not permissions!")
  95.         return true;
  96.     }
  97.     Block bl = player.getTargetBlock(null,10)
  98.     if(bl == null){
  99.         player.sendMessage("\u00A74Block not selected!")
  100.         return true;
  101.     }
  102.     bl = bl.getRelative(BlockFace.UP)
  103.     if(traps.contains(bl)) {
  104.         player.sendMessage("\u00A7aTrap successful removed!")
  105.         traps.remove(bl);
  106.     }else {
  107.         player.sendMessage("\u00A76This block not trapped!")
  108.     }
  109.     return true
  110. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement