add stationary ghast datapack
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"values": [
|
||||||
|
"stationary_happy_ghast:load"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"values": [
|
||||||
|
"stationary_happy_ghast:tick"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"display": {
|
||||||
|
"icon": {
|
||||||
|
"id": "minecraft:dried_ghast"
|
||||||
|
},
|
||||||
|
"title": "Stationary Happy Ghasts",
|
||||||
|
"description": [
|
||||||
|
"",
|
||||||
|
{
|
||||||
|
"text": "Makes happy ghasts not wander when dismounted. Also disables their ability to follow snowballs.\n",
|
||||||
|
"color": "gold"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "/trigger stationary_happy_ghast while near a happy ghast to toggle this behavior.\n",
|
||||||
|
"color": "yellow"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"show_toast": false,
|
||||||
|
"announce_to_chat": false
|
||||||
|
},
|
||||||
|
"parent": "minecraft:root",
|
||||||
|
"criteria": {
|
||||||
|
"tick": {
|
||||||
|
"trigger": "minecraft:tick"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"tick"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
scoreboard objectives add ghastflymode trigger
|
||||||
|
scoreboard objectives add ghast_parking_state dummy
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
scoreboard players set @s ghast_parking_state 1
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
execute as @s[nbt={still_timeout:10}] as @s[nbt={NoAI:1b}] run data modify entity @s NoAI set value 0b
|
||||||
|
|
||||||
|
execute unless entity @s[nbt={still_timeout:10}] unless entity @s[nbt={NoAI:1b}] run data modify entity @s NoAI set value 1b
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
execute as @a[scores={ghastflymode=1..}] at @s run function stationary_happy_ghast:trigger
|
||||||
|
scoreboard players enable @a ghastflymode
|
||||||
|
|
||||||
|
#parked
|
||||||
|
execute as @e[type=happy_ghast,scores={ghast_parking_state=1}] at @s run function stationary_happy_ghast:parkedghast
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
execute as @e[type=happy_ghast,distance=..10,sort=nearest,limit=1] if score @s ghast_parking_state matches 1 run tag @s add _was1
|
||||||
|
execute as @e[type=happy_ghast,distance=..10,sort=nearest,limit=1] unless score @s ghast_parking_state matches 1 run tag @s add _was0
|
||||||
|
|
||||||
|
execute as @e[type=happy_ghast,tag=_was1,limit=1,sort=nearest] run function stationary_happy_ghast:unpark
|
||||||
|
execute as @e[type=happy_ghast,tag=_was0,limit=1,sort=nearest] run function stationary_happy_ghast:park
|
||||||
|
|
||||||
|
execute if entity @e[type=happy_ghast,distance=..10,sort=nearest,limit=1,tag=_was1] run tellraw @a[scores={ghastflymode=1..}] {"text":"Your ghast is now wandering. It will move freely when you dismount.","color":"yellow"}
|
||||||
|
execute if entity @e[type=happy_ghast,distance=..10,sort=nearest,limit=1,tag=_was0] run tellraw @a[scores={ghastflymode=1..}] {"text":"Your ghast is now stationary. It will no longer wander when you dismount.","color":"yellow"}
|
||||||
|
|
||||||
|
tag @e[type=happy_ghast,tag=_was1] remove _was1
|
||||||
|
tag @e[type=happy_ghast,tag=_was0] remove _was0
|
||||||
|
|
||||||
|
execute unless entity @e[type=happy_ghast,distance=..10] run tellraw @s {"text":"You need to be close with your ghast to use this command.","color":"red"}
|
||||||
|
|
||||||
|
scoreboard players reset @s ghastflymode
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
scoreboard players reset @s ghast_parking_state
|
||||||
|
|
||||||
|
data modify entity @s NoAI set value 0b
|
||||||
9
src/stationary_happy_ghast/pack.mcmeta
Normal file
9
src/stationary_happy_ghast/pack.mcmeta
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"pack": {
|
||||||
|
"pack_format": 48,
|
||||||
|
"supported_formats": {"min_inclusive": 48, "max_inclusive": 88},
|
||||||
|
"min_format": 48,
|
||||||
|
"max_format": 88,
|
||||||
|
"description": [{"text":"Prevents your happy ghast from flying away from you!","color":"gold"}]
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user