Advertisement
Guest User

Untitled

a guest
Jan 18th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. import:
  2. org.bukkit.event.player.PlayerInteractEvent
  3. org.bukkit.event.block.Action
  4. org.bukkit.block.data.BlockData
  5. org.bukkit.Bukkit
  6.  
  7. on PlayerInteractEvent:
  8. if event.getAction() = Action.PHYSICAL:
  9. if event.getClickedBlock() = farmland:
  10. cancel event
  11.  
  12.  
  13.  
  14. expression block data [from] string %string%:
  15. return type: BlockData
  16. get:
  17. set {_} to expr-1
  18. return Bukkit.getServer().createBlockData({_})
  19.  
  20. expression %block% as string:
  21. return type: string
  22. get:
  23. return expr-1.getBlockData().getAsString()
  24.  
  25. function setAge(b: block, age: integer):
  26. set {_data} to {_b} as string
  27. replace all "[" with "[ " in {_data}
  28. replace all "]" with " ]" in {_data}
  29. set {_p::*} to {_data} parsed as "%string%age=%integer%%string%"
  30. set {_newData} to "%{_p::1}%age=%{_age}%%{_p::3}%"
  31. replace all " " with "" in {_newData}
  32. {_b}.setBlockData(block data from string {_newData})
  33.  
  34. function getAge(b: block) :: integer:
  35. set {_data} to {_b} as string
  36. return -1 if {_data} doesn't contain "age="
  37. set {_p::*} to {_data} parsed as "%string%age=%integer%%string%"
  38. return {_p::2}
  39.  
  40. function getMaxAge(b: block) :: integer:
  41. set {_initAge} to getAge({_b})
  42. while {_oldAge} != getAge({_b}):
  43. set {_oldAge} to getAge({_b})
  44. set {_newGrowth} to getAge({_b})+1
  45. setAge({_b}, {_newGrowth})
  46. setAge({_b}, {_initAge})
  47. return {_oldAge}
  48.  
  49. on block break:
  50. if event-world is "food" or "world":
  51. event-block is carrot plant, potato plant, melon or wheat plant
  52. set {_a} to getAge(event-block)
  53. {_a} = getMaxAge(event-block)
  54. set {_pb} to (past event-block).getBlockData()
  55. wait a second
  56. event-block.setBlockData({_pb})
  57. setAge(event-block, 0)
  58. set {_oldAge} to -1
  59. while {_oldAge} != getAge(event-block):
  60. wait 15 ticks
  61. set {_oldAge} to getAge(event-block)
  62. set {_newGrowth} to getAge(event-block)+1
  63. setAge(event-block, {_newGrowth})
  64. show happy villager at event-block
  65.  
  66.  
  67. on break:
  68. if event-world is "world" or "food":
  69. if (metadata "break-cd" of player ? 2 seconds before now) was more than 1 second ago:
  70. set metadata "break-cd" of player to now
  71. else:
  72. send action bar "&cPlease wait a bit before Breaking.." to player
  73. cancel event
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement