Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import:
- org.bukkit.event.player.PlayerInteractEvent
- org.bukkit.event.block.Action
- org.bukkit.block.data.BlockData
- org.bukkit.Bukkit
- on PlayerInteractEvent:
- if event.getAction() = Action.PHYSICAL:
- if event.getClickedBlock() = farmland:
- cancel event
- expression block data [from] string %string%:
- return type: BlockData
- get:
- set {_} to expr-1
- return Bukkit.getServer().createBlockData({_})
- expression %block% as string:
- return type: string
- get:
- return expr-1.getBlockData().getAsString()
- function setAge(b: block, age: integer):
- set {_data} to {_b} as string
- replace all "[" with "[ " in {_data}
- replace all "]" with " ]" in {_data}
- set {_p::*} to {_data} parsed as "%string%age=%integer%%string%"
- set {_newData} to "%{_p::1}%age=%{_age}%%{_p::3}%"
- replace all " " with "" in {_newData}
- {_b}.setBlockData(block data from string {_newData})
- function getAge(b: block) :: integer:
- set {_data} to {_b} as string
- return -1 if {_data} doesn't contain "age="
- set {_p::*} to {_data} parsed as "%string%age=%integer%%string%"
- return {_p::2}
- function getMaxAge(b: block) :: integer:
- set {_initAge} to getAge({_b})
- while {_oldAge} != getAge({_b}):
- set {_oldAge} to getAge({_b})
- set {_newGrowth} to getAge({_b})+1
- setAge({_b}, {_newGrowth})
- setAge({_b}, {_initAge})
- return {_oldAge}
- on block break:
- if event-world is "food" or "world":
- event-block is carrot plant, potato plant, melon or wheat plant
- set {_a} to getAge(event-block)
- {_a} = getMaxAge(event-block)
- set {_pb} to (past event-block).getBlockData()
- wait a second
- event-block.setBlockData({_pb})
- setAge(event-block, 0)
- set {_oldAge} to -1
- while {_oldAge} != getAge(event-block):
- wait 15 ticks
- set {_oldAge} to getAge(event-block)
- set {_newGrowth} to getAge(event-block)+1
- setAge(event-block, {_newGrowth})
- show happy villager at event-block
- on break:
- if event-world is "world" or "food":
- if (metadata "break-cd" of player ? 2 seconds before now) was more than 1 second ago:
- set metadata "break-cd" of player to now
- else:
- send action bar "&cPlease wait a bit before Breaking.." to player
- cancel event
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement