refs #13 completed settings feature #1
44
README.md
44
README.md
@@ -1,6 +1,42 @@
|
|||||||
# denizen-scripts
|
# denizen-scripts
|
||||||
DenizenScript scripts (and data) folders of SakuraFalls.
|
<img src="https://sakurafalls.net/data/assets/logo/logo-bg-new-rsc2.png" width="300">
|
||||||
|
<img src="https://forum.denizenscript.com/data/assets/logo/logo.png" width="160">
|
||||||
|
|
||||||
# How to use
|
|
||||||
You should just be able to drag & drop this into your
|
# About
|
||||||
DenizenScript folder on your server. Enjoy!
|
|
||||||
|
This repository contains the *Denizen* `scripts` and `data` folders of SakuraFalls.
|
||||||
|
|
||||||
|
It contains the actual code used on the server at this time. You are free to explore and to
|
||||||
|
use the scripts that our server uses! We believe that gatekeeping roleplaying servers furhter
|
||||||
|
only leads to less variety and creativity. We hope that the code here, although just given as
|
||||||
|
is without further instructions, will lead to a new generation of awesome roleplaying servers.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
All files are licensed under **GNU GPL 3.0**.
|
||||||
|
You may use them on your server, but only under the license presented above.
|
||||||
|
A summary can be found here: https://www.tldrlegal.com/license/gnu-general-public-license-v3-gpl-3
|
||||||
|
|
||||||
|
## How to use
|
||||||
|
You should just be able to drag & drop this into your `plugins/Denizen` folder on your server.
|
||||||
|
Server software: **PaperMC 1.21.10-117**
|
||||||
|
*Denizen* version: **1.3.1-SNAPSHOT (build 7235-DEV)**.
|
||||||
|
|
||||||
|
Enjoy!
|
||||||
|
|
||||||
|
## Extra dependencies
|
||||||
|
|
||||||
|
The scripts here may depend on the following plugins, some of which may need to be purchased:
|
||||||
|
1. **Depenizen** (build 882)
|
||||||
|
https://ci.citizensnpcs.co/job/Depenizen/
|
||||||
|
2. **LiteBans** (latest)
|
||||||
|
https://www.spigotmc.org/resources/litebans.3715/
|
||||||
|
3. **LiteProfiles** (latest)
|
||||||
|
https://github.com/fishydarwin/LiteProfiles
|
||||||
|
4. **PlaceholderAPI** (latest)
|
||||||
|
https://www.spigotmc.org/resources/placeholderapi.6245/
|
||||||
|
5. **AreaShop** (2.9.1) *(md5sha256 variant)*
|
||||||
|
https://www.github.com/md5sha256/AreaShop
|
||||||
|
6. **ProtocolLib** (5.4.0)
|
||||||
|
https://www.spigotmc.org/resources/protocollib.1997/
|
||||||
|
|||||||
@@ -82,8 +82,7 @@ apartments_command_apartmentremoveaccess:
|
|||||||
- aptrm
|
- aptrm
|
||||||
permission: apartments.command.apartmentremoveaccess
|
permission: apartments.command.apartmentremoveaccess
|
||||||
tab completions:
|
tab completions:
|
||||||
# TODO: use the procedural tab-complete to handle this correctly!
|
1: <proc[apartments_all_with_access].context[<player>].parse[name]>
|
||||||
1: <server.online_players.parse[name]>
|
|
||||||
script:
|
script:
|
||||||
- if <context.source_type> != player:
|
- if <context.source_type> != player:
|
||||||
- narrate "<&c>Please run this command as a player."
|
- narrate "<&c>Please run this command as a player."
|
||||||
|
|||||||
@@ -109,3 +109,17 @@ apartments_end_edit:
|
|||||||
- inventory set origin:<[item]> slot:<[slot]> player:<[player]>
|
- inventory set origin:<[item]> slot:<[slot]> player:<[player]>
|
||||||
- adjust <[player]> gamemode:survival
|
- adjust <[player]> gamemode:survival
|
||||||
- flag <[player]> apartments_edit:!
|
- flag <[player]> apartments_edit:!
|
||||||
|
|
||||||
|
apartments_all_with_access:
|
||||||
|
debug: false
|
||||||
|
type: procedure
|
||||||
|
definitions: player
|
||||||
|
script:
|
||||||
|
- define location <player.location>
|
||||||
|
- define apartment <proc[apartments_at].context[<[location]>]>
|
||||||
|
- if <[apartment]> == null:
|
||||||
|
- determine <list[]>
|
||||||
|
- define owner <proc[apartments_owner].context[<[apartment]>]>
|
||||||
|
- if <[owner]> != <[player]>:
|
||||||
|
- determine <list[]>
|
||||||
|
- determine <[owner].flag[apartments_access].get[<[apartment]>].if_null[<list[]>].keys>
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ carry_command_carry:
|
|||||||
- narrate format:formats_prefix "Sent a carry request to <&e><proc[character_get_name].context[<[target]>]>"
|
- narrate format:formats_prefix "Sent a carry request to <&e><proc[character_get_name].context[<[target]>]>"
|
||||||
#
|
#
|
||||||
- narrate format:formats_prefix targets:<[target]> "<&e><proc[character_get_name].context[<player>]> <&7> would like to carry you."
|
- narrate format:formats_prefix targets:<[target]> "<&e><proc[character_get_name].context[<player>]> <&7> would like to carry you."
|
||||||
- narrate targets:<[target]> "<element[<&a><&l>[ACCEPT]].on_click[<entry[carry].command>]>"
|
- narrate targets:<[target]> <element[<&a><&l>[ACCEPT]].on_click[<entry[carry].command>]>
|
||||||
|
|
||||||
carry_command_uncarry:
|
carry_command_uncarry:
|
||||||
debug: false
|
debug: false
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ furniture_menu:
|
|||||||
item: <[item]>
|
item: <[item]>
|
||||||
- define contents <[contents].with[<[loop_index]>].as[<[item_entry]>]>
|
- define contents <[contents].with[<[loop_index]>].as[<[item_entry]>]>
|
||||||
- if <[page]> > 0:
|
- if <[page]> > 0:
|
||||||
- define contents_extra:
|
- definemap contents_extra:
|
||||||
49:
|
49:
|
||||||
item: <item[ender_pearl[display=<&a><<><<>]]>
|
item: <item[ender_pearl[display=<&a><<><<>]]>
|
||||||
script: furniture_menu
|
script: furniture_menu
|
||||||
@@ -71,7 +71,7 @@ furniture_menu:
|
|||||||
page: <[page].sub[1]>
|
page: <[page].sub[1]>
|
||||||
- define contents <[contents].include[<[contents_extra]>]>
|
- define contents <[contents].include[<[contents_extra]>]>
|
||||||
- if <[page].add[1].mul[27]> < <[contents].size>:
|
- if <[page].add[1].mul[27]> < <[contents].size>:
|
||||||
- define contents_extra:
|
- definemap contents_extra:
|
||||||
51:
|
51:
|
||||||
item: <item[ender_eye[display=<&a><>><>>]]>
|
item: <item[ender_eye[display=<&a><>><>>]]>
|
||||||
script: furniture_menu
|
script: furniture_menu
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ guns_world_gun:
|
|||||||
- playeffect effect:redstone at:<player.location.above[1].points_between[<[location]>].distance[0.1]> special_data:0.5|white visibility:16 quantity:6 offset:0,0,0
|
- playeffect effect:redstone at:<player.location.above[1].points_between[<[location]>].distance[0.1]> special_data:0.5|white visibility:16 quantity:6 offset:0,0,0
|
||||||
- stop
|
- stop
|
||||||
- playeffect effect:redstone at:<player.location.above[1].points_between[<[target].location.above[1]>].distance[0.1]> special_data:0.5|white visibility:16 quantity:6 offset:0,0,0
|
- playeffect effect:redstone at:<player.location.above[1].points_between[<[target].location.above[1]>].distance[0.1]> special_data:0.5|white visibility:16 quantity:6 offset:0,0,0
|
||||||
- if <[target].entity_type> != player:
|
- if <[target].type> != player:
|
||||||
- stop
|
- stop
|
||||||
- if <[target].has_flag[guns_frozen]>:
|
- if <[target].has_flag[guns_frozen]>:
|
||||||
- stop
|
- stop
|
||||||
@@ -51,7 +51,7 @@ guns_world_taser:
|
|||||||
- define target <player.precise_target[7]||null>
|
- define target <player.precise_target[7]||null>
|
||||||
- if <[target]> == null:
|
- if <[target]> == null:
|
||||||
- stop
|
- stop
|
||||||
- if <[target].entity_type> != player:
|
- if <[target].type> != player:
|
||||||
- stop
|
- stop
|
||||||
- if <[target].has_flag[guns_frozen]>:
|
- if <[target].has_flag[guns_frozen]>:
|
||||||
- stop
|
- stop
|
||||||
|
|||||||
@@ -61,15 +61,15 @@ textbox_write:
|
|||||||
- playsound sound:textbox.text <[player]> custom pitch:<util.random.decimal[0.98].to[1]>
|
- playsound sound:textbox.text <[player]> custom pitch:<util.random.decimal[0.98].to[1]>
|
||||||
- wait 1t
|
- wait 1t
|
||||||
- if <[line].substring[<[value].add[1]>,<[value].add[1]>].trim.length.if_null[1]> == 0:
|
- if <[line].substring[<[value].add[1]>,<[value].add[1]>].trim.length.if_null[1]> == 0:
|
||||||
- if <[line].substring[<[value]>,<[value]>]> == ".":
|
- if <[line].substring[<[value]>,<[value]>]> == .:
|
||||||
- wait 2t
|
- wait 2t
|
||||||
- if <[line].substring[<[value]>,<[value]>]> == "!":
|
- if <[line].substring[<[value]>,<[value]>]> == !:
|
||||||
- wait 2t
|
- wait 2t
|
||||||
- if <[line].substring[<[value]>,<[value]>]> == "?":
|
- if <[line].substring[<[value]>,<[value]>]> == ?:
|
||||||
- wait 2t
|
- wait 2t
|
||||||
- if <[line].substring[<[value]>,<[value]>]> == "-":
|
- if <[line].substring[<[value]>,<[value]>]> == -:
|
||||||
- wait 2t
|
- wait 2t
|
||||||
- if <[line].substring[<[value]>,<[value]>]> == ",":
|
- if <[line].substring[<[value]>,<[value]>]> == ,:
|
||||||
- wait 2t
|
- wait 2t
|
||||||
- wait <duration[1t]>
|
- wait <duration[1t]>
|
||||||
- if <[player].flag[textbox_state].if_null[null]> != writing:
|
- if <[player].flag[textbox_state].if_null[null]> != writing:
|
||||||
|
|||||||
@@ -26,13 +26,13 @@ compatibility_check_world:
|
|||||||
- wait 5s
|
- wait 5s
|
||||||
- if !<player.is_online>:
|
- if !<player.is_online>:
|
||||||
- stop
|
- stop
|
||||||
- narrate ""
|
- narrate <&f>
|
||||||
- narrate "<&c><&l>[<&4><&l>!<&c><&l>] <&c>You are using an outdated Minecraft version!"
|
- narrate "<&c><&l>[<&4><&l>!<&c><&l>] <&c>You are using an outdated Minecraft version!"
|
||||||
- narrate "<&6>Your version: <&f><[player_version]>"
|
- narrate "<&6>Your version: <&f><[player_version]>"
|
||||||
- narrate "<&6>Server version: <&f><[server_version]>"
|
- narrate "<&6>Server version: <&f><[server_version]>"
|
||||||
- narrate ""
|
- narrate <&f>
|
||||||
- narrate "<&f>You can still play, however we strongly encourage you to consider <&e>updating your game<&f>."
|
- narrate "<&f>You can still play, however we strongly encourage you to consider <&e>updating your game<&f>."
|
||||||
- narrate "<&f>We will not offer bug support if you are using an outdated version!"
|
- narrate "<&f>We will not offer bug support if you are using an outdated version!"
|
||||||
- narrate ""
|
- narrate <&f>
|
||||||
- narrate "<&7>(Your ViaVersion protocol: <player.viaversion_protocol>)"
|
- narrate "<&7>(Your ViaVersion protocol: <player.viaversion_protocol>)"
|
||||||
- narrate ""
|
- narrate <&f>
|
||||||
@@ -31,4 +31,4 @@ payto_command_payto:
|
|||||||
- clickable usages:1 until:1m save:pay:
|
- clickable usages:1 until:1m save:pay:
|
||||||
- execute as_player "pay <[target].name> <[amount]>"
|
- execute as_player "pay <[target].name> <[amount]>"
|
||||||
- narrate format:formats_prefix "<&7>Would you like to pay <&6><[amount].as_money><&7> to <&6><proc[character_get_name].context[<[target]>]>"
|
- narrate format:formats_prefix "<&7>Would you like to pay <&6><[amount].as_money><&7> to <&6><proc[character_get_name].context[<[target]>]>"
|
||||||
- narrate "<element[<&a><&l>[CLICK HERE]].on_click[<entry[pay].command>]>"
|
- narrate <element[<&a><&l>[CLICK HERE]].on_click[<entry[pay].command>]>
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ phones_commands_phonecall:
|
|||||||
- if !<[target].has_flag[phones_is_maybe_called]>:
|
- if !<[target].has_flag[phones_is_maybe_called]>:
|
||||||
- nbs file:data/phones/songs/<[target].flag[phones].get[ringtone].if_null[Bad Apple]> play targets:<[target]>
|
- nbs file:data/phones/songs/<[target].flag[phones].get[ringtone].if_null[Bad Apple]> play targets:<[target]>
|
||||||
- narrate targets:<[target]> "<&6>*** <&e>You're being called by <&e><[relative]><&7>."
|
- narrate targets:<[target]> "<&6>*** <&e>You're being called by <&e><[relative]><&7>."
|
||||||
- narrate targets:<[target]> "<&hover[<&a>Click to accept call from <[relative]>...]><element[<&a><&l>[ ACCEPT ]].on_click[<entry[accept].command>]><&end_hover>"
|
- narrate targets:<[target]> <&hover[<&a>Click to accept call from <[relative]>...]><element[<&a><&l>[ ACCEPT ]].on_click[<entry[accept].command>]><&end_hover>
|
||||||
# wait...
|
# wait...
|
||||||
- flag <player> phones_call:<[target]>
|
- flag <player> phones_call:<[target]>
|
||||||
- flag <player> phones_call_clickable:<entry[accept].id>
|
- flag <player> phones_call_clickable:<entry[accept].id>
|
||||||
|
|||||||
@@ -93,18 +93,18 @@ phones_gui_home:
|
|||||||
type: task
|
type: task
|
||||||
definitions: player
|
definitions: player
|
||||||
script:
|
script:
|
||||||
- define inventory "<inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&0>邒]]>"
|
- define inventory <inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&0>邒]]>
|
||||||
# settings
|
# settings
|
||||||
- define settings <item[name_tag]>
|
- define settings <item[name_tag]>
|
||||||
- adjust def:settings "display:<&6>Settings"
|
- adjust def:settings display:<&6>Settings
|
||||||
- inventory set destination:<[inventory]> slot:13 origin:<[settings]>
|
- inventory set destination:<[inventory]> slot:13 origin:<[settings]>
|
||||||
# contacts
|
# contacts
|
||||||
- define contacts <item[book]>
|
- define contacts <item[book]>
|
||||||
- adjust def:contacts "display:<&6>Contacts"
|
- adjust def:contacts display:<&6>Contacts
|
||||||
- inventory set destination:<[inventory]> slot:14 origin:<[contacts]>
|
- inventory set destination:<[inventory]> slot:14 origin:<[contacts]>
|
||||||
# texts
|
# texts
|
||||||
- define texts <item[writable_book]>
|
- define texts <item[writable_book]>
|
||||||
- adjust def:texts "display:<&6>Messages"
|
- adjust def:texts display:<&6>Messages
|
||||||
- define notifications_textmessages <[player].flag[phones_notifications].get[textmessages].values.size.if_null[null]>
|
- define notifications_textmessages <[player].flag[phones_notifications].get[textmessages].values.size.if_null[null]>
|
||||||
- if <[notifications_textmessages]> != null && <[notifications_textmessages]> != 0:
|
- if <[notifications_textmessages]> != null && <[notifications_textmessages]> != 0:
|
||||||
- if <[notifications_textmessages]> > 99:
|
- if <[notifications_textmessages]> > 99:
|
||||||
@@ -120,11 +120,10 @@ phones_gui_home:
|
|||||||
- define number <item[player_head]>
|
- define number <item[player_head]>
|
||||||
- adjust def:number "display:<&6>Your Number"
|
- adjust def:number "display:<&6>Your Number"
|
||||||
- adjust def:number lore:<list[<&e><proc[phones_nicer_format].context[<[player].flag[phones].get[number]>]>||<&7>You may also view your number|<&7>using /phonenumber.]>
|
- adjust def:number lore:<list[<&e><proc[phones_nicer_format].context[<[player].flag[phones].get[number]>]>||<&7>You may also view your number|<&7>using /phonenumber.]>
|
||||||
- flag <[number]> phones_target_skull_uuid:<[player].uuid>
|
|
||||||
- inventory set destination:<[inventory]> slot:41 origin:<[number]>
|
- inventory set destination:<[inventory]> slot:41 origin:<[number]>
|
||||||
|
- inventory adjust destination:<[inventory]> slot:41 skull_skin:<[player].uuid>|<proc[wardrobe_skin_texture_base64].context[<[player]>]>|<[player].name>
|
||||||
#
|
#
|
||||||
- inventory open player:<[player]> destination:<[inventory]>
|
- inventory open player:<[player]> destination:<[inventory]>
|
||||||
- run phones_target_skulls_update def.player:<[player]>
|
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
# --- contacts related
|
# --- contacts related
|
||||||
@@ -161,11 +160,11 @@ phones_contacts_print:
|
|||||||
- if <[page]> > 0:
|
- if <[page]> > 0:
|
||||||
- clickable usages:1 until:60s save:prev:
|
- clickable usages:1 until:60s save:prev:
|
||||||
- execute as_player "phonecontacts <[page]>"
|
- execute as_player "phonecontacts <[page]>"
|
||||||
- define prevpage "<element[<&a><<>--].on_click[<entry[prev].command>]>"
|
- define prevpage <element[<&a><<>--].on_click[<entry[prev].command>]>
|
||||||
- if <[contacts].size> > <[page].add[1].mul[6]>:
|
- if <[contacts].size> > <[page].add[1].mul[6]>:
|
||||||
- clickable usages:1 until:60s save:next:
|
- clickable usages:1 until:60s save:next:
|
||||||
- execute as_player "phonecontacts <[page].add[2]>"
|
- execute as_player "phonecontacts <[page].add[2]>"
|
||||||
- define nextpage "<element[<&a>--<>>].on_click[<entry[next].command>]>"
|
- define nextpage <element[<&a>--<>>].on_click[<entry[next].command>]>
|
||||||
- narrate targets:<[player]> "<&nl><[prevpage]> <&6>Page <[page].add[1]>/<[contacts].size.sub[1].div[6].round_down.add[1]> <[nextpage]>"
|
- narrate targets:<[player]> "<&nl><[prevpage]> <&6>Page <[page].add[1]>/<[contacts].size.sub[1].div[6].round_down.add[1]> <[nextpage]>"
|
||||||
|
|
||||||
# ---
|
# ---
|
||||||
@@ -177,7 +176,7 @@ phones_texts_store:
|
|||||||
type: task
|
type: task
|
||||||
definitions: player|target|contents
|
definitions: player|target|contents
|
||||||
script:
|
script:
|
||||||
- narrate targets:<[player]> format:formats_prefix "Sending..."
|
- narrate targets:<[player]> format:formats_prefix Sending...
|
||||||
#
|
#
|
||||||
- define playertexts phones_texts_<[player].uuid>_<[target].uuid>
|
- define playertexts phones_texts_<[player].uuid>_<[target].uuid>
|
||||||
- if <util.has_file[data/phones/texts/<[player].uuid>_<[target].uuid>.yml]>:
|
- if <util.has_file[data/phones/texts/<[player].uuid>_<[target].uuid>.yml]>:
|
||||||
@@ -218,7 +217,7 @@ phones_texts_print:
|
|||||||
type: task
|
type: task
|
||||||
definitions: player|target|page
|
definitions: player|target|page
|
||||||
script:
|
script:
|
||||||
- narrate targets:<[player]> format:formats_prefix "Loading..."
|
- narrate targets:<[player]> format:formats_prefix Loading...
|
||||||
#
|
#
|
||||||
- define playertexts phones_texts_<[player].uuid>_<[target].uuid>
|
- define playertexts phones_texts_<[player].uuid>_<[target].uuid>
|
||||||
- ~yaml id:<[playertexts]> load:data/phones/texts/<[player].uuid>_<[target].uuid>.yml
|
- ~yaml id:<[playertexts]> load:data/phones/texts/<[player].uuid>_<[target].uuid>.yml
|
||||||
@@ -243,11 +242,11 @@ phones_texts_print:
|
|||||||
- if <[page]> > 0:
|
- if <[page]> > 0:
|
||||||
- clickable usages:1 until:60s save:prev:
|
- clickable usages:1 until:60s save:prev:
|
||||||
- run phones_texts_print def.player:<[player]> def.target:<[target]> def.page:<[page].sub[1]>
|
- run phones_texts_print def.player:<[player]> def.target:<[target]> def.page:<[page].sub[1]>
|
||||||
- define prevpage "<element[<&a><<>--].on_click[<entry[prev].command>]>"
|
- define prevpage <element[<&a><<>--].on_click[<entry[prev].command>]>
|
||||||
- if <[messages_size]> > <[page].add[1].mul[5]>:
|
- if <[messages_size]> > <[page].add[1].mul[5]>:
|
||||||
- clickable usages:1 until:60s save:next:
|
- clickable usages:1 until:60s save:next:
|
||||||
- run phones_texts_print def.player:<[player]> def.target:<[target]> def.page:<[page].add[1]>
|
- run phones_texts_print def.player:<[player]> def.target:<[target]> def.page:<[page].add[1]>
|
||||||
- define nextpage "<element[<&a>--<>>].on_click[<entry[next].command>]>"
|
- define nextpage <element[<&a>--<>>].on_click[<entry[next].command>]>
|
||||||
- narrate targets:<[player]> "<&nl><[prevpage]> <&6>Page <[page].add[1]>/<[messages_size].sub[1].div[5].round_down.add[1]> <[nextpage]>"
|
- narrate targets:<[player]> "<&nl><[prevpage]> <&6>Page <[page].add[1]>/<[messages_size].sub[1].div[5].round_down.add[1]> <[nextpage]>"
|
||||||
# clear notifications?
|
# clear notifications?
|
||||||
- if <[player].flag[phones_notifications].get[textmessages].get[<[target]>].if_null[0]> > 0:
|
- if <[player].flag[phones_notifications].get[textmessages].get[<[target]>].if_null[0]> > 0:
|
||||||
@@ -262,24 +261,25 @@ phones_gui_texts:
|
|||||||
type: task
|
type: task
|
||||||
definitions: player|page
|
definitions: player|page
|
||||||
script:
|
script:
|
||||||
- define inventory "<inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&1>邒]]>"
|
- define inventory <inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&1>邒]]>
|
||||||
- define textslist <util.list_files[data/phones/texts].filter[starts_with[<player.uuid>]].parse[split[_].get[2].split[.].get[1]].parse_tag[<player[<[parse_value]>]>].get[<[page].mul[16].add[1]>].to[<[page].add[1].mul[16]>].if_null[<list[]>]>
|
- define textslist <util.list_files[data/phones/texts].filter[starts_with[<player.uuid>]].parse[split[_].get[2].split[.].get[1]].parse_tag[<player[<[parse_value]>]>].get[<[page].mul[16].add[1]>].to[<[page].add[1].mul[16]>].if_null[<list[]>]>
|
||||||
# show contacts/numbers
|
# show contacts/numbers
|
||||||
- foreach <[textslist]> as:target:
|
- foreach <[textslist]> as:target:
|
||||||
- define receiver <proc[phones_relative_name].context[<[player]>|<[target]>]>
|
- define receiver <proc[phones_relative_name].context[<[player]>|<[target]>]>
|
||||||
- define textsender <item[player_head]>
|
- define textsender <item[player_head]>
|
||||||
- adjust def:textsender display:<&e><[receiver]>
|
- adjust def:textsender display:<&e><[receiver]>
|
||||||
- adjust def:textsender "lore:<list[<&7>Click to view your conversation.]>"
|
- adjust def:textsender lore:<list[<&7>Click to view your conversation.]>
|
||||||
# notifications
|
# notifications
|
||||||
- define notifications_text <[player].flag[phones_notifications].get[textmessages].get[<[target]>].if_null[null]>
|
- define notifications_text <[player].flag[phones_notifications].get[textmessages].get[<[target]>].if_null[null]>
|
||||||
- if <[notifications_text]> != null:
|
- if <[notifications_text]> != null:
|
||||||
- if <[notifications_text]> > 99:
|
- if <[notifications_text]> > 99:
|
||||||
- define notifications_text 99+
|
- define notifications_text 99+
|
||||||
- adjust def:textsender "lore:<[textsender].lore.include[|<&7>You have <&6><[notifications_text]> <&7>unread messages.]>"
|
- adjust def:textsender lore:<[textsender].lore.include[|<&7>You have <&6><[notifications_text]> <&7>unread messages.]>
|
||||||
#
|
#
|
||||||
- flag <[textsender]> phones:<[target]>
|
- flag <[textsender]> phones:<[target]>
|
||||||
- flag <[textsender]> phones_target_skull_uuid:<[target].uuid>
|
- define slot <[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]>
|
||||||
- inventory set destination:<[inventory]> slot:<[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]> origin:<[textsender]>
|
- inventory set destination:<[inventory]> slot:<[slot]> origin:<[textsender]>
|
||||||
|
- inventory adjust destination:<[inventory]> slot:<[slot]> skull_skin:<[target].uuid>|<proc[wardrobe_skin_texture_base64].context[<[target]>]>|<[target].name>
|
||||||
# back
|
# back
|
||||||
- define back <item[oak_door]>
|
- define back <item[oak_door]>
|
||||||
- adjust def:back display:<&7>Back
|
- adjust def:back display:<&7>Back
|
||||||
@@ -295,21 +295,6 @@ phones_gui_texts:
|
|||||||
- inventory set destination:<[inventory]> slot:51 origin:<[nextpage]>
|
- inventory set destination:<[inventory]> slot:51 origin:<[nextpage]>
|
||||||
#
|
#
|
||||||
- inventory open player:<[player]> destination:<[inventory]>
|
- inventory open player:<[player]> destination:<[inventory]>
|
||||||
- run phones_target_skulls_update def.player:<[player]>
|
|
||||||
|
|
||||||
# each skull you want to change has to be flagged with phones_target_skull_uuid:<[target].uuid>
|
|
||||||
phones_target_skulls_update:
|
|
||||||
debug: false
|
|
||||||
type: task
|
|
||||||
definitions: player
|
|
||||||
script:
|
|
||||||
- define inventory <[player].open_inventory>
|
|
||||||
- foreach <[inventory].map_slots> key:slot as:item:
|
|
||||||
- if <[item].has_flag[phones_target_skull_uuid]>:
|
|
||||||
- if <[inventory].viewers.if_null[<list[]>].is_empty>:
|
|
||||||
- stop
|
|
||||||
- define uuid <[item].flag[phones_target_skull_uuid]>
|
|
||||||
- inventory adjust slot:<[slot]> skull_skin:<[uuid]>|<player[<[uuid]>].skin_blob.if_null[0000]>|<player[<[uuid]>].name> destination:<[inventory]>
|
|
||||||
|
|
||||||
####
|
####
|
||||||
## NOTIFICATIONS
|
## NOTIFICATIONS
|
||||||
@@ -363,9 +348,9 @@ phones_gui_music:
|
|||||||
# ringtone selection mode?
|
# ringtone selection mode?
|
||||||
- define ringtone <[ringtone].if_null[false]>
|
- define ringtone <[ringtone].if_null[false]>
|
||||||
# make inventory
|
# make inventory
|
||||||
- define inventory "<inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&2>邒]]>"
|
- define inventory <inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&2>邒]]>
|
||||||
- if <[ringtone]>:
|
- if <[ringtone]>:
|
||||||
- define inventory "<inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&4>邒]]>"
|
- define inventory <inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&4>邒]]>
|
||||||
- define songsize <util.list_files[data/phones/songs].size>
|
- define songsize <util.list_files[data/phones/songs].size>
|
||||||
- define songsonpage <tern[<[ringtone]>].pass[15].fail[14]>
|
- define songsonpage <tern[<[ringtone]>].pass[15].fail[14]>
|
||||||
- define songlist <util.list_files[data/phones/songs].parse[split[.].get[1]].filter[length.is_more_than[0]].get[<[page].mul[<[songsonpage]>].add[1]>].to[<[page].add[1].mul[<[songsonpage]>]>].if_null[<list[]>]>
|
- define songlist <util.list_files[data/phones/songs].parse[split[.].get[1]].filter[length.is_more_than[0]].get[<[page].mul[<[songsonpage]>].add[1]>].to[<[page].add[1].mul[<[songsonpage]>]>].if_null[<list[]>]>
|
||||||
@@ -373,7 +358,7 @@ phones_gui_music:
|
|||||||
- foreach <[songlist]> as:songname:
|
- foreach <[songlist]> as:songname:
|
||||||
- define song <item[jukebox]>
|
- define song <item[jukebox]>
|
||||||
- adjust def:song display:<&e><[songname]>
|
- adjust def:song display:<&e><[songname]>
|
||||||
- adjust def:song "lore:<list[<&7>Click to start playing.]>"
|
- adjust def:song lore:<list[<&7>Click to start playing.]>
|
||||||
- flag <[song]> phones:<[songname]>
|
- flag <[song]> phones:<[songname]>
|
||||||
- inventory set destination:<[inventory]> slot:<[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]> origin:<[song]>
|
- inventory set destination:<[inventory]> slot:<[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]> origin:<[song]>
|
||||||
# stop
|
# stop
|
||||||
@@ -405,7 +390,7 @@ phones_gui_settings:
|
|||||||
type: task
|
type: task
|
||||||
definitions: player
|
definitions: player
|
||||||
script:
|
script:
|
||||||
- define inventory "<inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&3>邒]]>"
|
- define inventory <inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&3>邒]]>
|
||||||
# ringtone
|
# ringtone
|
||||||
- define ringtone <item[note_block]>
|
- define ringtone <item[note_block]>
|
||||||
- adjust def:ringtone display:<&6>Ringtone
|
- adjust def:ringtone display:<&6>Ringtone
|
||||||
@@ -427,7 +412,7 @@ phones_gui_settings_blocked:
|
|||||||
type: task
|
type: task
|
||||||
definitions: player|page
|
definitions: player|page
|
||||||
script:
|
script:
|
||||||
- define inventory "<inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&5>邒]]>"
|
- define inventory <inventory[generic[size=54;title=<&f>邑邑邑邑鄀<&5>邒]]>
|
||||||
- define blockedlist <[player].flag[phones].get[blocked].get[<[page].mul[16].add[1]>].to[<[page].add[1].mul[16]>].if_null[<list[]>]>
|
- define blockedlist <[player].flag[phones].get[blocked].get[<[page].mul[16].add[1]>].to[<[page].add[1].mul[16]>].if_null[<list[]>]>
|
||||||
# show blocked numbers
|
# show blocked numbers
|
||||||
- foreach <[blockedlist]> as:target:
|
- foreach <[blockedlist]> as:target:
|
||||||
@@ -435,7 +420,7 @@ phones_gui_settings_blocked:
|
|||||||
- define blocked <item[player_head]>
|
- define blocked <item[player_head]>
|
||||||
- adjust def:blocked display:<&e><[blockednumber]>
|
- adjust def:blocked display:<&e><[blockednumber]>
|
||||||
- adjust def:blocked lore:<list[<&7>You may use /phoneunblock to unblock this number.]>
|
- adjust def:blocked lore:<list[<&7>You may use /phoneunblock to unblock this number.]>
|
||||||
- flag <[blocked]> phones_target_skull_uuid:<[target].uuid>
|
- adjust def:blocked skull_skin:<[target].uuid>|<proc[wardrobe_skin_texture_base64].context[<[target]>]>|<[target].name>
|
||||||
- inventory set destination:<[inventory]> slot:<[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]> origin:<[blocked]>
|
- inventory set destination:<[inventory]> slot:<[loop_index].sub[1].div[3].round_down.mul[9].add[4].add[<[loop_index].sub[1].mod[3]>]> origin:<[blocked]>
|
||||||
# back
|
# back
|
||||||
- define back <item[oak_door]>
|
- define back <item[oak_door]>
|
||||||
@@ -452,4 +437,3 @@ phones_gui_settings_blocked:
|
|||||||
- inventory set destination:<[inventory]> slot:51 origin:<[nextpage]>
|
- inventory set destination:<[inventory]> slot:51 origin:<[nextpage]>
|
||||||
#
|
#
|
||||||
- inventory open player:<[player]> destination:<[inventory]>
|
- inventory open player:<[player]> destination:<[inventory]>
|
||||||
- run phones_target_skulls_update def.player:<[player]>
|
|
||||||
|
|||||||
@@ -115,11 +115,11 @@ phones_world_gui:
|
|||||||
- run phones_gui_music def.player:<player> def.page:0 def.ringtone:false
|
- run phones_gui_music def.player:<player> def.page:0 def.ringtone:false
|
||||||
- else if <[title]> == <&1>邒:
|
- else if <[title]> == <&1>邒:
|
||||||
- if <context.item.material.name> == ender_pearl:
|
- if <context.item.material.name> == ender_pearl:
|
||||||
- define page <player.flag[phones_gui_page].sub_int[1]>
|
- define page <player.flag[phones_gui_page].sub[1]>
|
||||||
- flag <player> phones_gui_page:<[page]>
|
- flag <player> phones_gui_page:<[page]>
|
||||||
- run phones_gui_texts def.player:<player> def.page:<[page]>
|
- run phones_gui_texts def.player:<player> def.page:<[page]>
|
||||||
- else if <context.item.material.name> == ender_eye:
|
- else if <context.item.material.name> == ender_eye:
|
||||||
- define page <player.flag[phones_gui_page].add_int[1]>
|
- define page <player.flag[phones_gui_page].add[1]>
|
||||||
- flag <player> phones_gui_page:<[page]>
|
- flag <player> phones_gui_page:<[page]>
|
||||||
- run phones_gui_texts def.player:<player> def.page:<[page]>
|
- run phones_gui_texts def.player:<player> def.page:<[page]>
|
||||||
- else if <context.slot> == 50:
|
- else if <context.slot> == 50:
|
||||||
@@ -130,11 +130,11 @@ phones_world_gui:
|
|||||||
# Music
|
# Music
|
||||||
- else if <[title]> == <&2>邒:
|
- else if <[title]> == <&2>邒:
|
||||||
- if <context.item.material.name> == ender_pearl:
|
- if <context.item.material.name> == ender_pearl:
|
||||||
- define page <player.flag[phones_gui_page].sub_int[1]>
|
- define page <player.flag[phones_gui_page].sub[1]>
|
||||||
- flag <player> phones_gui_page:<[page]>
|
- flag <player> phones_gui_page:<[page]>
|
||||||
- run phones_gui_music def.player:<player> def.page:<[page]> def.ringtone:false
|
- run phones_gui_music def.player:<player> def.page:<[page]> def.ringtone:false
|
||||||
- else if <context.item.material.name> == ender_eye:
|
- else if <context.item.material.name> == ender_eye:
|
||||||
- define page <player.flag[phones_gui_page].add_int[1]>
|
- define page <player.flag[phones_gui_page].add[1]>
|
||||||
- flag <player> phones_gui_page:<[page]>
|
- flag <player> phones_gui_page:<[page]>
|
||||||
- run phones_gui_music def.player:<player> def.page:<[page]> def.ringtone:false
|
- run phones_gui_music def.player:<player> def.page:<[page]> def.ringtone:false
|
||||||
- else if <context.slot> == 50:
|
- else if <context.slot> == 50:
|
||||||
@@ -158,11 +158,11 @@ phones_world_gui:
|
|||||||
# Ringtone Select
|
# Ringtone Select
|
||||||
- else if <[title]> == <&4>邒:
|
- else if <[title]> == <&4>邒:
|
||||||
- if <context.item.material.name> == ender_pearl:
|
- if <context.item.material.name> == ender_pearl:
|
||||||
- define page <player.flag[phones_gui_page].sub_int[1]>
|
- define page <player.flag[phones_gui_page].sub[1]>
|
||||||
- flag <player> phones_gui_page:<[page]>
|
- flag <player> phones_gui_page:<[page]>
|
||||||
- run phones_gui_music def.player:<player> def.page:<[page]> def.ringtone:true
|
- run phones_gui_music def.player:<player> def.page:<[page]> def.ringtone:true
|
||||||
- else if <context.item.material.name> == ender_eye:
|
- else if <context.item.material.name> == ender_eye:
|
||||||
- define page <player.flag[phones_gui_page].add_int[1]>
|
- define page <player.flag[phones_gui_page].add[1]>
|
||||||
- flag <player> phones_gui_page:<[page]>
|
- flag <player> phones_gui_page:<[page]>
|
||||||
- run phones_gui_music def.player:<player> def.page:<[page]> def.ringtone:true
|
- run phones_gui_music def.player:<player> def.page:<[page]> def.ringtone:true
|
||||||
- else if <context.slot> == 50:
|
- else if <context.slot> == 50:
|
||||||
@@ -174,11 +174,11 @@ phones_world_gui:
|
|||||||
# Blocked
|
# Blocked
|
||||||
- else if <[title]> == <&5>邒:
|
- else if <[title]> == <&5>邒:
|
||||||
- if <context.item.material.name> == ender_pearl:
|
- if <context.item.material.name> == ender_pearl:
|
||||||
- define page <player.flag[phones_gui_page].sub_int[1]>
|
- define page <player.flag[phones_gui_page].sub[1]>
|
||||||
- flag <player> phones_gui_page:<[page]>
|
- flag <player> phones_gui_page:<[page]>
|
||||||
- run phones_gui_settings_blocked def.player:<player> def.page:<[page]>
|
- run phones_gui_settings_blocked def.player:<player> def.page:<[page]>
|
||||||
- else if <context.item.material.name> == ender_eye:
|
- else if <context.item.material.name> == ender_eye:
|
||||||
- define page <player.flag[phones_gui_page].add_int[1]>
|
- define page <player.flag[phones_gui_page].add[1]>
|
||||||
- flag <player> phones_gui_page:<[page]>
|
- flag <player> phones_gui_page:<[page]>
|
||||||
- run phones_gui_settings_blocked def.player:<player> def.page:<[page]>
|
- run phones_gui_settings_blocked def.player:<player> def.page:<[page]>
|
||||||
- else if <context.slot> == 50:
|
- else if <context.slot> == 50:
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ requestsearch_command_requestsearch:
|
|||||||
- patdown
|
- patdown
|
||||||
permission: invreq.patdown
|
permission: invreq.patdown
|
||||||
tab completions:
|
tab completions:
|
||||||
1: <empyy>
|
1: <empty>
|
||||||
script:
|
script:
|
||||||
- if <context.source_type> != player:
|
- if <context.source_type> != player:
|
||||||
- narrate "<&c>Please run this command as a player."
|
- narrate "<&c>Please run this command as a player."
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ sports_volleyball_world:
|
|||||||
- define ball <context.entity>
|
- define ball <context.entity>
|
||||||
- if !<[ball].has_flag[ball]>:
|
- if !<[ball].has_flag[ball]>:
|
||||||
- stop
|
- stop
|
||||||
- if <[ball].entity_type> == armor_stand:
|
- if <[ball].type> == armor_stand:
|
||||||
- define ball <proc[ball_get].context[<[ball].flag[ball]>]>
|
- define ball <proc[ball_get].context[<[ball].flag[ball]>]>
|
||||||
- if !<[ball].flag[ball].starts_with[sports_volleyball]>:
|
- if !<[ball].flag[ball].starts_with[sports_volleyball]>:
|
||||||
- stop
|
- stop
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ ch1_1_marie_assign:
|
|||||||
interact scripts:
|
interact scripts:
|
||||||
- ch1_1_marie_interact
|
- ch1_1_marie_interact
|
||||||
|
|
||||||
# TODO: this seems like the wrong place
|
|
||||||
ch1_1_define_phone:
|
ch1_1_define_phone:
|
||||||
debug: false
|
debug: false
|
||||||
type: task
|
type: task
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ dialogue_npc_kobayashi:
|
|||||||
- ~run textbox_choice def.player:<player> def.queue:<queue> def.choices:<[choices]> save:result
|
- ~run textbox_choice def.player:<player> def.queue:<queue> def.choices:<[choices]> save:result
|
||||||
- define choice <entry[result].created_queue.determination.get[1]>
|
- define choice <entry[result].created_queue.determination.get[1]>
|
||||||
- if <[choice]> == left:
|
- if <[choice]> == left:
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:What?$$nlWhy?"
|
- ~run textbox_write def.player:<player> def.queue:<queue> def.line3s:What?$$nlWhy?
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:Well, look, I can't tell you that, luv.$$nl It's against Hospital Policy."
|
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:Well, look, I can't tell you that, luv.$$nl It's against Hospital Policy."
|
||||||
- definemap choices:
|
- definemap choices:
|
||||||
left:
|
left:
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ intro_interact_posters_task:
|
|||||||
script:
|
script:
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:Book-related posters are on the wall."
|
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:Book-related posters are on the wall."
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:<&o><&dq>Screw that. I'm running away.<&dq>"
|
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:<&o><&dq>Screw that. I'm running away.<&dq>"
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:<&o><&dq>Where?<&dq>"
|
- ~run textbox_write def.player:<player> def.queue:<queue> def.line3s:<&o><&dq>Where?<&dq>
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:<&o><&dq>Dunno. Do you want to come?<&dq>"
|
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:<&o><&dq>Dunno. Do you want to come?<&dq>"
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:<&o><&dq>Yes,<&dq> I said without thinking."
|
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:<&o><&dq>Yes,<&dq> I said without thinking."
|
||||||
|
|
||||||
@@ -74,12 +74,12 @@ intro_interact_laptop_task_name_callback:
|
|||||||
- define __player <[player]>
|
- define __player <[player]>
|
||||||
- define name <[input].substring[1,24]>
|
- define name <[input].substring[1,24]>
|
||||||
- execute as_player player:<[player]> "rpname <[name]>"
|
- execute as_player player:<[player]> "rpname <[name]>"
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:<[name]>"
|
- ~run textbox_write def.player:<player> def.queue:<queue> def.line3s:<[name]>
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:How nice!"
|
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:How nice!"
|
||||||
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:Let's give them a description.$$nlDescribe their physical attributes."
|
- ~run textbox_write def.player:<player> def.queue:<queue> "def.line3s:Let's give them a description.$$nlDescribe their physical attributes."
|
||||||
- waituntil <player.has_flag[textbox_state].not> max:5s
|
- waituntil <player.has_flag[textbox_state].not> max:5s
|
||||||
- ~run textbox_flush def.player:<player>
|
- ~run textbox_flush def.player:<player>
|
||||||
- run anvil_input def.player:<player> "def.prompt:Description" def.callback:intro_interact_laptop_task_description_callback
|
- run anvil_input def.player:<player> def.prompt:Description def.callback:intro_interact_laptop_task_description_callback
|
||||||
|
|
||||||
intro_interact_laptop_task_description_callback:
|
intro_interact_laptop_task_description_callback:
|
||||||
debug: false
|
debug: false
|
||||||
@@ -116,7 +116,7 @@ intro_interact_laptop_task_role_menu:
|
|||||||
definitions:
|
definitions:
|
||||||
player: <[player]>
|
player: <[player]>
|
||||||
input: yes
|
input: yes
|
||||||
- run menu_open def.player:<[player]> "def.title:<&f>邑邑邑邑酐<&a><&sp><&b><&sp><&c><&sp>" def.size:9 def.contents:<[contents]>
|
- run menu_open def.player:<[player]> def.title:<&f>邑邑邑邑酐<&a><&sp><&b><&sp><&c><&sp> def.size:9 def.contents:<[contents]>
|
||||||
|
|
||||||
intro_interact_laptop_task_role_callback:
|
intro_interact_laptop_task_role_callback:
|
||||||
debug: false
|
debug: false
|
||||||
@@ -196,5 +196,4 @@ intro_interact_laptop_task_role_callback:
|
|||||||
- adjust <player> remove_effects
|
- adjust <player> remove_effects
|
||||||
- adjust <player> show_to_players
|
- adjust <player> show_to_players
|
||||||
- flag <player> intro:done
|
- flag <player> intro:done
|
||||||
- execute as_player player:<player> "spawn"
|
- execute as_player player:<player> spawn
|
||||||
|
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ storyboard_npc_internal_auto_memory_management:
|
|||||||
after player joins:
|
after player joins:
|
||||||
- define npcs <player.flag[storyboard_state].get[npcs].if_null[<map[]>]>
|
- define npcs <player.flag[storyboard_state].get[npcs].if_null[<map[]>]>
|
||||||
- foreach <[npcs]> key:name as:data:
|
- foreach <[npcs]> key:name as:data:
|
||||||
- if <[data].get[allocated]> == reallocate:
|
- if <[data].get[allocated].if_null[null]> == reallocate:
|
||||||
- define name <[data].get[name]>
|
- define name <[data].get[name]>
|
||||||
- define type <[data].get[type]>
|
- define type <[data].get[type]>
|
||||||
- define at <[data].get[at]>
|
- define at <[data].get[at]>
|
||||||
@@ -245,7 +245,7 @@ storyboard_npc_internal_auto_display_entities:
|
|||||||
debug: false
|
debug: false
|
||||||
type: world
|
type: world
|
||||||
events:
|
events:
|
||||||
on player joins bukkit_priority:high:
|
after player joins bukkit_priority:high:
|
||||||
- foreach <server.online_players.exclude[<player>]> as:target:
|
- foreach <server.online_players.exclude[<player>]> as:target:
|
||||||
- define registry registry_<[target].uuid>
|
- define registry registry_<[target].uuid>
|
||||||
- define npcs <server.npcs[<[registry]>].if_null[<list[]>]>
|
- define npcs <server.npcs[<[registry]>].if_null[<list[]>]>
|
||||||
|
|||||||
@@ -3,6 +3,3 @@ timebar_worlds:
|
|||||||
type: data
|
type: data
|
||||||
world: Atarashikibo
|
world: Atarashikibo
|
||||||
atarashikibo: Atarashikibo
|
atarashikibo: Atarashikibo
|
||||||
matsuhama: Matsuhama [ DEBUG ]
|
|
||||||
noshoko: Noshoko
|
|
||||||
pussyschool: Pussy
|
|
||||||
@@ -58,11 +58,32 @@ vehicles_world:
|
|||||||
- adjust <context.entity> passenger:<player>
|
- adjust <context.entity> passenger:<player>
|
||||||
# vehicle control
|
# vehicle control
|
||||||
on player steers armor_stand:
|
on player steers armor_stand:
|
||||||
|
- if <player.viaversion_protocol> >= 767:
|
||||||
|
# >=1.21 uses player input event instead
|
||||||
|
- stop
|
||||||
- if <context.entity.flag[vehicles].if_null[null]> != driver:
|
- if <context.entity.flag[vehicles].if_null[null]> != driver:
|
||||||
- stop
|
- stop
|
||||||
- define vehicle <context.entity.flag[vehicles_data]>
|
- define vehicle <context.entity.flag[vehicles_data]>
|
||||||
- flag <[vehicle]> vehicles_player_input:<map[].with[forward].as[<context.forward>].with[sideways].as[<context.sideways>]>
|
- flag <[vehicle]> vehicles_player_input:<map[].with[forward].as[<context.forward>].with[sideways].as[<context.sideways>]>
|
||||||
# place vehicle down
|
# place vehicle down
|
||||||
|
on player input:
|
||||||
|
- if <player.viaversion_protocol> < 767:
|
||||||
|
# <1.21 uses player steers event instead
|
||||||
|
- stop
|
||||||
|
- if <player.vehicle.flag[vehicles].if_null[null]> != driver:
|
||||||
|
- stop
|
||||||
|
- define forward_backward 0
|
||||||
|
- if <context.forward>:
|
||||||
|
- define forward_backward 1
|
||||||
|
- if <context.backward>:
|
||||||
|
- define forward_backward -1
|
||||||
|
- define left_right 0
|
||||||
|
- if <context.left>:
|
||||||
|
- define left_right 1
|
||||||
|
- if <context.right>:
|
||||||
|
- define left_right -1
|
||||||
|
- define vehicle <player.vehicle.flag[vehicles_data]>
|
||||||
|
- flag <[vehicle]> vehicles_player_input:<map[].with[forward].as[<[forward_backward]>].with[sideways].as[<[left_right]>]>
|
||||||
on player right clicks block:
|
on player right clicks block:
|
||||||
- if <player.item_in_hand.has_flag[vehicles]>:
|
- if <player.item_in_hand.has_flag[vehicles]>:
|
||||||
- determine cancelled passively
|
- determine cancelled passively
|
||||||
|
|||||||
@@ -28,6 +28,13 @@ wardrobe_skull_texture_update_single:
|
|||||||
|
|
||||||
##
|
##
|
||||||
|
|
||||||
|
wardrobe_skin_texture_base64:
|
||||||
|
debug: false
|
||||||
|
type: procedure
|
||||||
|
definitions: player
|
||||||
|
script:
|
||||||
|
- determine <[player].flag[wardrobe_current].split[;].get[1].if_null[<[player].flag[wardrobe_latest].split[;].get[1].if_null[null]>]>
|
||||||
|
|
||||||
wardrobe_max_skins:
|
wardrobe_max_skins:
|
||||||
debug: false
|
debug: false
|
||||||
type: procedure
|
type: procedure
|
||||||
|
|||||||
Reference in New Issue
Block a user