feat: add multi-world hub system with lobby portals and hub-return addon
Lobby addon detects players in portal zones at X: -15/0/15 and transfers them to Jamie/Lyla/Mya survival worlds. Hub-return addon gives players a recovery compass and chat commands (!hub, !lobby) to return to the lobby. Includes docker-compose.yml for 4 Bedrock servers (lobby + 3 child worlds), spark pet behavior/resource packs, and updated .gitignore. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
992
addon/spark_pet_BP/entities/spark_dragon.json
Normal file
992
addon/spark_pet_BP/entities/spark_dragon.json
Normal file
@@ -0,0 +1,992 @@
|
||||
{
|
||||
"format_version": "1.21.0",
|
||||
"minecraft:entity": {
|
||||
"description": {
|
||||
"identifier": "silverlabs:spark_dragon",
|
||||
"is_spawnable": true,
|
||||
"is_summonable": true,
|
||||
"is_experimental": false,
|
||||
"properties": {
|
||||
"silverlabs:growth_stage": {
|
||||
"type": "int",
|
||||
"default": 0,
|
||||
"range": [0, 2],
|
||||
"client_sync": true
|
||||
},
|
||||
"silverlabs:beacon_active": {
|
||||
"type": "bool",
|
||||
"default": false,
|
||||
"client_sync": true
|
||||
},
|
||||
"silverlabs:mood": {
|
||||
"type": "int",
|
||||
"default": 1,
|
||||
"range": [0, 2],
|
||||
"client_sync": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"component_groups": {
|
||||
"silverlabs:wild": {
|
||||
"minecraft:behavior.tempt": {
|
||||
"priority": 3,
|
||||
"speed_multiplier": 0.8,
|
||||
"items": ["fish", "salmon"],
|
||||
"can_tempt_vertically": true
|
||||
},
|
||||
"minecraft:behavior.avoid_mob_type": {
|
||||
"priority": 4,
|
||||
"max_dist": 8,
|
||||
"walk_speed_multiplier": 1.0,
|
||||
"entity_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "monster"
|
||||
},
|
||||
"max_dist": 8,
|
||||
"walk_speed_multiplier": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:tamed": {
|
||||
"minecraft:is_tamed": {},
|
||||
"minecraft:behavior.follow_owner": {
|
||||
"priority": 4,
|
||||
"speed_multiplier": 0.8,
|
||||
"start_distance": 8,
|
||||
"stop_distance": 3
|
||||
},
|
||||
"minecraft:behavior.tempt": {
|
||||
"priority": 3,
|
||||
"speed_multiplier": 0.8,
|
||||
"items": ["fish", "salmon"],
|
||||
"can_tempt_vertically": true
|
||||
},
|
||||
"minecraft:sittable": {},
|
||||
"minecraft:persistent": {},
|
||||
"minecraft:behavior.nearest_attackable_target": {
|
||||
"priority": 3,
|
||||
"entity_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "dragon_toy"
|
||||
},
|
||||
"max_dist": 32
|
||||
}
|
||||
],
|
||||
"must_see": false,
|
||||
"reselect_targets": true
|
||||
},
|
||||
"minecraft:entity_sensor": {
|
||||
"sensor_range": 500,
|
||||
"relative_range": false,
|
||||
"minimum_count": 1,
|
||||
"event_filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "whistle_signal"
|
||||
},
|
||||
"event": "silverlabs:whistle_called"
|
||||
},
|
||||
"minecraft:behavior.melee_attack": {
|
||||
"priority": 2,
|
||||
"speed_multiplier": 1.0,
|
||||
"reach_multiplier": 1.0,
|
||||
"track_target": true
|
||||
},
|
||||
"minecraft:attack": {
|
||||
"damage": 1
|
||||
},
|
||||
"minecraft:on_target_escape": {
|
||||
"event": "silverlabs:ball_caught",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:tamed_following": {
|
||||
"minecraft:is_tamed": {},
|
||||
"minecraft:behavior.follow_owner": {
|
||||
"priority": 2,
|
||||
"speed_multiplier": 0.8,
|
||||
"start_distance": 8,
|
||||
"stop_distance": 3
|
||||
},
|
||||
"minecraft:sittable": {},
|
||||
"minecraft:persistent": {},
|
||||
"minecraft:teleport": {
|
||||
"dark_teleport_chance": 0.0,
|
||||
"light_teleport_chance": 0.1,
|
||||
"max_random_teleport_time": 10,
|
||||
"min_random_teleport_time": 5,
|
||||
"random_teleport_cube_size": [10, 5, 10],
|
||||
"target_distance": 64,
|
||||
"target_teleport_chance": 0.3
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:returning_fetch": {
|
||||
"minecraft:behavior.follow_owner": {
|
||||
"priority": 1,
|
||||
"speed_multiplier": 1.0,
|
||||
"start_distance": 15,
|
||||
"stop_distance": 2
|
||||
},
|
||||
"minecraft:behavior.drop_item_for": {
|
||||
"priority": 0,
|
||||
"seconds_before_pickup": 0,
|
||||
"cooldown": 60,
|
||||
"drop_item_chance": 1.0,
|
||||
"offering_distance": 5.0,
|
||||
"speed_multiplier": 1.0,
|
||||
"search_range": 20,
|
||||
"search_height": 4,
|
||||
"target_range": [5, 5, 5],
|
||||
"time_of_day_range": [0.0, 1.0],
|
||||
"loot_table": "loot_tables/gameplay/toy_return.json",
|
||||
"entity_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "player"
|
||||
},
|
||||
"max_dist": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:timer": {
|
||||
"time": 5,
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:fetch_complete",
|
||||
"target": "self"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:has_home": {
|
||||
"minecraft:home": {
|
||||
"restriction_radius": 32
|
||||
},
|
||||
"minecraft:scheduler": {
|
||||
"min_delay_secs": 0,
|
||||
"max_delay_secs": 0,
|
||||
"scheduled_events": [
|
||||
{
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "hourly_clock_time", "operator": ">=", "value": 0 },
|
||||
{ "test": "hourly_clock_time", "operator": "<", "value": 12000 }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:start_exploring"
|
||||
},
|
||||
{
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "hourly_clock_time", "operator": ">=", "value": 12000 },
|
||||
{ "test": "hourly_clock_time", "operator": "<", "value": 13000 }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:go_home"
|
||||
},
|
||||
{
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "hourly_clock_time", "operator": ">=", "value": 13000 },
|
||||
{ "test": "hourly_clock_time", "operator": "<", "value": 23000 }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:start_sleeping"
|
||||
},
|
||||
{
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "hourly_clock_time", "operator": ">=", "value": 23000 }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:start_exploring"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:exploring": {
|
||||
"minecraft:behavior.random_stroll": {
|
||||
"priority": 6,
|
||||
"speed_multiplier": 0.5,
|
||||
"xz_dist": 12,
|
||||
"y_dist": 2
|
||||
},
|
||||
"minecraft:behavior.random_look_around": {
|
||||
"priority": 8
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:going_home": {
|
||||
"minecraft:behavior.go_home": {
|
||||
"priority": 2,
|
||||
"speed_multiplier": 0.8,
|
||||
"interval": 1,
|
||||
"goal_radius": 2,
|
||||
"on_home": [
|
||||
{
|
||||
"event": "silverlabs:start_sleeping",
|
||||
"target": "self"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:sleeping": {
|
||||
"minecraft:is_sitting": {},
|
||||
"minecraft:behavior.look_at_player": {
|
||||
"priority": 8,
|
||||
"look_distance": 4.0
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:sitting": {
|
||||
"minecraft:is_sitting": {}
|
||||
},
|
||||
|
||||
"silverlabs:beacon_on": {
|
||||
"minecraft:timer": {
|
||||
"time": 12,
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:beacon_off",
|
||||
"target": "self"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:tamed_called": {
|
||||
"minecraft:is_tamed": {},
|
||||
"minecraft:behavior.follow_owner": {
|
||||
"priority": 1,
|
||||
"speed_multiplier": 1.0,
|
||||
"start_distance": 200,
|
||||
"stop_distance": 3
|
||||
},
|
||||
"minecraft:sittable": {},
|
||||
"minecraft:persistent": {},
|
||||
"minecraft:teleport": {
|
||||
"dark_teleport_chance": 0.0,
|
||||
"light_teleport_chance": 1.0,
|
||||
"max_random_teleport_time": 3,
|
||||
"min_random_teleport_time": 1,
|
||||
"random_teleport_cube_size": [20, 10, 20],
|
||||
"target_distance": 24,
|
||||
"target_teleport_chance": 1.0
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:tamed_loot": {
|
||||
"minecraft:loot": {
|
||||
"table": "loot_tables/gameplay/dragon_death.json"
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:guide_drop": {
|
||||
"minecraft:behavior.drop_item_for": {
|
||||
"priority": 1,
|
||||
"seconds_before_pickup": 0,
|
||||
"cooldown": 99999,
|
||||
"drop_item_chance": 1.0,
|
||||
"offering_distance": 5.0,
|
||||
"speed_multiplier": 1.0,
|
||||
"search_range": 10,
|
||||
"search_height": 4,
|
||||
"target_range": [5, 5, 5],
|
||||
"time_of_day_range": [0.0, 1.0],
|
||||
"loot_table": "loot_tables/gameplay/dragon_guide.json",
|
||||
"entity_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "player"
|
||||
},
|
||||
"max_dist": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:timer": {
|
||||
"time": 10,
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:guide_dropped",
|
||||
"target": "self"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:mood_happy": {
|
||||
"minecraft:timer": {
|
||||
"time": [480, 720],
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:mood_decay_to_content",
|
||||
"target": "self"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:mood_content": {
|
||||
"minecraft:timer": {
|
||||
"time": [360, 600],
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:mood_decay_to_needy",
|
||||
"target": "self"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:mood_needy": {
|
||||
"minecraft:behavior.look_at_player": {
|
||||
"priority": 3,
|
||||
"look_distance": 10.0,
|
||||
"probability": 0.1
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:stage_baby": {
|
||||
"minecraft:is_baby": {},
|
||||
"minecraft:ageable": {
|
||||
"duration": 1200,
|
||||
"feed_items": ["fish", "salmon"],
|
||||
"grow_up": {
|
||||
"event": "silverlabs:grow_to_juvenile",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
"minecraft:scale": {
|
||||
"value": 0.4
|
||||
},
|
||||
"minecraft:collision_box": {
|
||||
"width": 0.35,
|
||||
"height": 0.3
|
||||
},
|
||||
"minecraft:movement": {
|
||||
"value": 0.15
|
||||
},
|
||||
"minecraft:health": {
|
||||
"value": 10,
|
||||
"max": 10
|
||||
},
|
||||
"minecraft:behavior.drop_item_for": {
|
||||
"priority": 5,
|
||||
"seconds_before_pickup": 0,
|
||||
"cooldown": 600,
|
||||
"drop_item_chance": 0.6,
|
||||
"offering_distance": 5.0,
|
||||
"minimum_teleport_distance": 2.0,
|
||||
"speed_multiplier": 1.0,
|
||||
"search_range": 10,
|
||||
"search_height": 2,
|
||||
"target_range": [5, 5, 5],
|
||||
"teleport_offset": [0, 1, 0],
|
||||
"time_of_day_range": [0.0, 0.5],
|
||||
"loot_table": "loot_tables/gameplay/gift_baby.json",
|
||||
"entity_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "player"
|
||||
},
|
||||
"max_dist": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:behavior.play": {
|
||||
"priority": 5,
|
||||
"speed_multiplier": 0.7,
|
||||
"friend_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "spark_dragon"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:stage_juvenile": {
|
||||
"minecraft:scale": {
|
||||
"value": 0.7
|
||||
},
|
||||
"minecraft:collision_box": {
|
||||
"width": 0.5,
|
||||
"height": 0.4
|
||||
},
|
||||
"minecraft:movement": {
|
||||
"value": 0.2
|
||||
},
|
||||
"minecraft:health": {
|
||||
"value": 20,
|
||||
"max": 20
|
||||
},
|
||||
"minecraft:jump.static": {
|
||||
"jump_power": 0.5
|
||||
},
|
||||
"minecraft:timer": {
|
||||
"time": 1200,
|
||||
"looping": false,
|
||||
"time_down_event": {
|
||||
"event": "silverlabs:grow_to_adult",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
"minecraft:behavior.drop_item_for": {
|
||||
"priority": 5,
|
||||
"seconds_before_pickup": 0,
|
||||
"cooldown": 480,
|
||||
"drop_item_chance": 0.7,
|
||||
"offering_distance": 5.0,
|
||||
"minimum_teleport_distance": 2.0,
|
||||
"speed_multiplier": 1.0,
|
||||
"search_range": 12,
|
||||
"search_height": 2,
|
||||
"target_range": [5, 5, 5],
|
||||
"teleport_offset": [0, 1, 0],
|
||||
"time_of_day_range": [0.0, 0.5],
|
||||
"loot_table": "loot_tables/gameplay/gift_juvenile.json",
|
||||
"entity_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "player"
|
||||
},
|
||||
"max_dist": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:behavior.play": {
|
||||
"priority": 5,
|
||||
"speed_multiplier": 0.8,
|
||||
"friend_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "spark_dragon"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:behavior.raid_garden": {
|
||||
"priority": 6,
|
||||
"speed_multiplier": 1.0,
|
||||
"search_range": 12,
|
||||
"search_height": 2,
|
||||
"goal_radius": 1.0,
|
||||
"max_to_eat": 2,
|
||||
"initial_eat_delay": 20
|
||||
}
|
||||
},
|
||||
|
||||
"silverlabs:stage_adult": {
|
||||
"minecraft:scale": {
|
||||
"value": 1.0
|
||||
},
|
||||
"minecraft:collision_box": {
|
||||
"width": 0.6,
|
||||
"height": 0.5
|
||||
},
|
||||
"minecraft:movement": {
|
||||
"value": 0.25
|
||||
},
|
||||
"minecraft:health": {
|
||||
"value": 30,
|
||||
"max": 30
|
||||
},
|
||||
"minecraft:can_fly": {},
|
||||
"minecraft:navigation.fly": {
|
||||
"can_path_over_water": true,
|
||||
"can_path_from_air": true
|
||||
},
|
||||
"minecraft:movement.fly": {},
|
||||
"minecraft:flying_speed": {
|
||||
"value": 0.04
|
||||
},
|
||||
"minecraft:behavior.drop_item_for": {
|
||||
"priority": 5,
|
||||
"seconds_before_pickup": 0,
|
||||
"cooldown": 300,
|
||||
"drop_item_chance": 0.8,
|
||||
"offering_distance": 5.0,
|
||||
"minimum_teleport_distance": 2.0,
|
||||
"speed_multiplier": 1.0,
|
||||
"search_range": 16,
|
||||
"search_height": 4,
|
||||
"target_range": [5, 5, 5],
|
||||
"teleport_offset": [0, 1, 0],
|
||||
"time_of_day_range": [0.0, 0.5],
|
||||
"loot_table": "loot_tables/gameplay/gift_adult.json",
|
||||
"entity_types": [
|
||||
{
|
||||
"filters": {
|
||||
"test": "is_family",
|
||||
"subject": "other",
|
||||
"value": "player"
|
||||
},
|
||||
"max_dist": 16
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"components": {
|
||||
"minecraft:type_family": {
|
||||
"family": ["spark_dragon", "pet", "mob"]
|
||||
},
|
||||
"minecraft:physics": {},
|
||||
"minecraft:pushable": {
|
||||
"is_pushable": true,
|
||||
"is_pushable_by_piston": true
|
||||
},
|
||||
"minecraft:can_climb": {},
|
||||
"minecraft:navigation.walk": {
|
||||
"can_path_over_water": true,
|
||||
"avoid_water": true,
|
||||
"avoid_damage_blocks": true
|
||||
},
|
||||
"minecraft:movement.basic": {
|
||||
"max_turn": 20.0
|
||||
},
|
||||
"minecraft:jump.static": {},
|
||||
"minecraft:tameable": {
|
||||
"probability": 0.33,
|
||||
"tame_items": ["fish", "salmon"],
|
||||
"tame_event": {
|
||||
"event": "silverlabs:on_tamed",
|
||||
"target": "self"
|
||||
}
|
||||
},
|
||||
"minecraft:healable": {
|
||||
"items": [
|
||||
{ "item": "fish", "heal_amount": 4 },
|
||||
{ "item": "salmon", "heal_amount": 6 }
|
||||
]
|
||||
},
|
||||
"minecraft:leashable": {
|
||||
"soft_distance": 4.0,
|
||||
"hard_distance": 6.0,
|
||||
"max_distance": 10.0
|
||||
},
|
||||
"minecraft:nameable": {},
|
||||
"minecraft:breathable": {
|
||||
"total_supply": 15,
|
||||
"suffocate_time": 0,
|
||||
"breathes_air": true,
|
||||
"breathes_water": false
|
||||
},
|
||||
"minecraft:damage_sensor": {
|
||||
"triggers": [
|
||||
{
|
||||
"cause": "fall",
|
||||
"deals_damage": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:behavior.float": {
|
||||
"priority": 0
|
||||
},
|
||||
"minecraft:behavior.look_at_player": {
|
||||
"priority": 7,
|
||||
"look_distance": 8.0,
|
||||
"probability": 0.02
|
||||
},
|
||||
"minecraft:behavior.random_look_around": {
|
||||
"priority": 9
|
||||
},
|
||||
"minecraft:behavior.random_stroll": {
|
||||
"priority": 8,
|
||||
"speed_multiplier": 0.4,
|
||||
"xz_dist": 7,
|
||||
"y_dist": 2
|
||||
},
|
||||
"minecraft:interact": {
|
||||
"interactions": [
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "fish" },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:mood_boost",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "salmon" },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:mood_boost",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "potion" },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:mood_boost",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": true,
|
||||
"interact_text": "Give Water"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "amethyst_shard" },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:request_guide",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": true,
|
||||
"interact_text": "Request Guide",
|
||||
"play_sounds": "random.orb"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "not", "value": "name_tag" },
|
||||
{ "test": "is_sneaking", "subject": "other", "value": false },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" },
|
||||
{ "test": "has_component", "value": "minecraft:is_sitting" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:on_stand",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "Get Up",
|
||||
"play_sounds": "mob.wolf.bark"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "not", "value": "name_tag" },
|
||||
{ "test": "is_sneaking", "subject": "other", "value": false },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" },
|
||||
{ "test": "has_component", "operator": "!=", "value": "minecraft:is_sitting" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:command_follow",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "Follow Me",
|
||||
"play_sounds": "mob.wolf.bark"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone" },
|
||||
{ "test": "is_sneaking", "subject": "other", "value": true },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" },
|
||||
{ "test": "has_component", "operator": "!=", "value": "minecraft:is_sitting" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:set_home",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "Set Home",
|
||||
"play_sounds": "random.levelup"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "value": "bone" },
|
||||
{ "test": "is_sneaking", "subject": "other", "value": true },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" },
|
||||
{ "test": "has_component", "value": "minecraft:is_sitting" },
|
||||
{ "test": "has_component", "value": "minecraft:home" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:command_go_home",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "Go Home",
|
||||
"play_sounds": "note.pling"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "not", "value": "name_tag" },
|
||||
{ "test": "is_sneaking", "subject": "other", "value": true },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" },
|
||||
{ "test": "has_component", "operator": "!=", "value": "minecraft:is_sitting" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:on_sit",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "Stay"
|
||||
},
|
||||
{
|
||||
"on_interact": {
|
||||
"filters": {
|
||||
"all_of": [
|
||||
{ "test": "is_family", "subject": "other", "value": "player" },
|
||||
{ "test": "has_equipment", "subject": "other", "domain": "hand", "operator": "not", "value": "name_tag" },
|
||||
{ "test": "is_sneaking", "subject": "other", "value": true },
|
||||
{ "test": "has_component", "value": "minecraft:is_tamed" },
|
||||
{ "test": "has_component", "value": "minecraft:is_sitting" }
|
||||
]
|
||||
},
|
||||
"event": "silverlabs:on_stand",
|
||||
"target": "self"
|
||||
},
|
||||
"use_item": false,
|
||||
"interact_text": "Stand"
|
||||
}
|
||||
]
|
||||
},
|
||||
"minecraft:spawn_entity": {}
|
||||
},
|
||||
|
||||
"events": {
|
||||
"minecraft:entity_spawned": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:wild", "silverlabs:stage_baby"]
|
||||
}
|
||||
},
|
||||
"silverlabs:on_tamed": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:wild"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:tamed", "silverlabs:tamed_loot", "silverlabs:guide_drop", "silverlabs:mood_happy"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:mood": 2
|
||||
}
|
||||
},
|
||||
"silverlabs:request_guide": {
|
||||
"add": { "component_groups": ["silverlabs:guide_drop"] }
|
||||
},
|
||||
"silverlabs:guide_dropped": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:guide_drop"]
|
||||
}
|
||||
},
|
||||
"silverlabs:mood_boost": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:mood_happy", "silverlabs:mood_content", "silverlabs:mood_needy"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:mood_happy"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:mood": 2
|
||||
}
|
||||
},
|
||||
"silverlabs:mood_decay_to_content": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:mood_happy"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:mood_content"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:mood": 1
|
||||
}
|
||||
},
|
||||
"silverlabs:mood_decay_to_needy": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:mood_content"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:mood_needy"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:mood": 0
|
||||
}
|
||||
},
|
||||
"silverlabs:grow_to_juvenile": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:stage_baby", "silverlabs:mood_happy", "silverlabs:mood_content", "silverlabs:mood_needy"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:stage_juvenile"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:growth_stage": 1,
|
||||
"silverlabs:mood": 1
|
||||
}
|
||||
},
|
||||
"silverlabs:grow_to_adult": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:stage_juvenile"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:stage_adult", "silverlabs:mood_content"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:growth_stage": 2,
|
||||
"silverlabs:mood": 1
|
||||
}
|
||||
},
|
||||
"silverlabs:ball_caught": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:returning_fetch"]
|
||||
}
|
||||
},
|
||||
"silverlabs:fetch_complete": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:returning_fetch", "silverlabs:mood_happy", "silverlabs:mood_content", "silverlabs:mood_needy"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:tamed_following", "silverlabs:mood_happy"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:mood": 2
|
||||
}
|
||||
},
|
||||
"silverlabs:command_follow": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:tamed_following", "silverlabs:beacon_on"]
|
||||
},
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:exploring", "silverlabs:sleeping", "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch", "silverlabs:tamed_called"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:beacon_active": true
|
||||
}
|
||||
},
|
||||
"silverlabs:whistle_called": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:tamed_called", "silverlabs:beacon_on"]
|
||||
},
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:exploring", "silverlabs:sleeping", "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch", "silverlabs:tamed_following"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:beacon_active": true
|
||||
}
|
||||
},
|
||||
"silverlabs:activate_beacon": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:beacon_on"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:beacon_active": true
|
||||
}
|
||||
},
|
||||
"silverlabs:beacon_off": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:beacon_on", "silverlabs:tamed_called"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:tamed_following"]
|
||||
},
|
||||
"set_property": {
|
||||
"silverlabs:beacon_active": false
|
||||
}
|
||||
},
|
||||
"silverlabs:command_go_home": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:going_home"]
|
||||
},
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:exploring", "silverlabs:tamed_following", "silverlabs:sitting", "silverlabs:returning_fetch"]
|
||||
}
|
||||
},
|
||||
"silverlabs:set_home": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:has_home", "silverlabs:exploring"]
|
||||
},
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:tamed_following", "silverlabs:sleeping", "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch"]
|
||||
}
|
||||
},
|
||||
"silverlabs:start_exploring": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:exploring"]
|
||||
},
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:sleeping", "silverlabs:going_home", "silverlabs:sitting", "silverlabs:returning_fetch"]
|
||||
}
|
||||
},
|
||||
"silverlabs:go_home": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:going_home"]
|
||||
},
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:exploring", "silverlabs:sleeping", "silverlabs:returning_fetch"]
|
||||
}
|
||||
},
|
||||
"silverlabs:start_sleeping": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:sleeping"]
|
||||
},
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:exploring", "silverlabs:going_home", "silverlabs:returning_fetch"]
|
||||
}
|
||||
},
|
||||
"silverlabs:on_sit": {
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:sitting"]
|
||||
},
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:exploring", "silverlabs:going_home", "silverlabs:tamed_following", "silverlabs:returning_fetch"]
|
||||
}
|
||||
},
|
||||
"silverlabs:on_stand": {
|
||||
"remove": {
|
||||
"component_groups": ["silverlabs:sitting", "silverlabs:sleeping", "silverlabs:returning_fetch"]
|
||||
},
|
||||
"add": {
|
||||
"component_groups": ["silverlabs:tamed_following"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user