Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.bukkit.Bukkit
- import org.bukkit.Location
- import org.bukkit.Material
- import org.bukkit.block.Block
- import org.bukkit.block.BlockFace
- import org.bukkit.command.Command
- import org.bukkit.command.CommandSender
- import org.bukkit.entity.Player
- import org.bukkit.event.player.PlayerMoveEvent
- import org.yaml.snakeyaml.DumperOptions
- import org.yaml.snakeyaml.Yaml
- import java.util.logging.Level
- List<Block> traps = []
- Yaml yaml = new Yaml(new DumperOptions(defaultFlowStyle: DumperOptions.FlowStyle.BLOCK))
- File playerStatsFile = new File(workspace.directory,"traps.yml")
- playerStatsFile.createNewFile()
- playerStatsFile.withInputStream {
- try {
- List<HashMap<String,Object>> loadedList = yaml.load(it) as List<HashMap<String,Object>>;
- loadedList.each { HashMap<String,Object> el ->
- traps.add(new Location(Bukkit.getWorld(el.world as String),
- el.x as double,
- el.y as double,
- el.z as double)
- .block) ;
- };
- }catch (ignored){
- Bukkit.getLogger().log(Level.WARNING,"[Traps] Can't load traps file!",ignored)
- workspace.stop()
- }
- }
- workspace.addFinisher({
- List<HashMap<String,Object>> listToSave = []
- traps.each {
- listToSave.add([x:it.location.x,y:it.location.y,z:it.location.z,world:it.location.world.name])
- }
- playerStatsFile.withOutputStream {
- String dump = yaml.dump(listToSave)
- try {
- it.write(dump.getBytes("UTF8"))
- } catch (ignored) {
- Bukkit.getLogger().log(Level.WARNING,"[Traps] Can't save traps to file!",ignored)
- }
- }
- })
- List<Player> damagedPalyers = [];
- workspace.addEvent({PlayerMoveEvent event ->
- if(damagedPalyers.contains(event.player) && !(traps.contains(event.to.block))){
- damagedPalyers.remove(event.player)
- return
- }
- if(traps.contains(event.to.block) && !(damagedPalyers.contains(event.player))){
- Player plr = event.player
- plr.setFireTicks(20*7)
- damagedPalyers.add(plr)
- plr.sendMessage("\u00A74You been trapped!")
- }
- },PlayerMoveEvent)
- workspace.addCommand("addtrap",{ CommandSender commandSender, Command command, String s, String[] strings ->
- if(!(commandSender instanceof Player)) return false;
- Player player = commandSender
- if(!player.hasPermission("trap.add")){
- player.sendMessage("\u00A74You have not permissions!")
- return true;
- }
- Block bl = player.getTargetBlock(null,10)
- if(bl == null){
- player.sendMessage("\u00A74Block not selected!")
- return true;
- }
- bl = bl.getRelative(BlockFace.UP)
- if(traps.contains(bl)){
- player.sendMessage("\u00A76This block already have trap!")
- return true;
- }
- traps.add(bl)
- player.sendMessage("\u00A7aTrap successful created!")
- return true;
- })
- workspace.addCommand("removetrap",{ CommandSender commandSender, Command command, String s, String[] strings ->
- if(!(commandSender instanceof Player)) return false;
- Player player = commandSender
- if(!player.hasPermission("trap.remove")){
- player.sendMessage("\u00A74You have not permissions!")
- return true;
- }
- Block bl = player.getTargetBlock(null,10)
- if(bl == null){
- player.sendMessage("\u00A74Block not selected!")
- return true;
- }
- bl = bl.getRelative(BlockFace.UP)
- if(traps.contains(bl)) {
- player.sendMessage("\u00A7aTrap successful removed!")
- traps.remove(bl);
- }else {
- player.sendMessage("\u00A76This block not trapped!")
- }
- return true
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement