Date: 2020/07/06 07:38:47 UTC-07:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
enchantHandler:
type: world
events:
on player prepares anvil craft item:
- if <player.has_flag[anvil_stuff]>:
- determine <player.flag[anvil_stuff]>
- if <context.repair_cost> >= 40 && <player.gamemode> == SURIVIVAL:
- stop
- narrate <context.repair_cost>
- define item1 <context.inventory.slot[1]>
- define item2 <context.inventory.slot[2]>
- if <[item1].material.name> != air && <[item2].material.name> != air:
- define max_levels <map[ice_aspect/3|lifesteal/2|wither/3|godly_blow/2|molten/4]>
- define sword_enchants <list[ice_aspect|lifesteal|wither|godly_blow]>
- define nbt <map[]>
- if ( <context.item.enchantments.contains[luck_of_the_sea]> && <context.item.material.name> != fishing_rod && <context.item.material.name> != enchanted_book ) || ( <context.item.enchantments.contains[power]> && <context.item.material.name> != bow && <context.item.material.name> != enchanted_book ):
- if <[item1].enchantments.contains[luck_of_the_sea]>:
- foreach <[item2].enchantments>:
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<context.item.enchantments.level[<[value]>]>]>
- else if <[item2].enchantments.contains[luck_of_the_sea]>:
- foreach <[item1].enchantments>:
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<context.item.enchantments.level[<[value]>]>]>
- else:
- define enchantments <list[]>
- else if <[item1].enchantments.size> > 0 && <context.item.material.name> == air && <[item1].material.name> != enchanted_book && <[item2].material.name> == enchanted_book:
- foreach <[item1].enchantments>:
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<[item1].enchantments.level[<[value]>]>]>
- else:
- foreach <context.item.enchantments>:
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<context.item.enchantments.level[<[value]>]>]>
- if <[item1].material.name> == enchanted_book && <[item2].material.name> == enchanted_book:
- if <[item1].nbt_keys.size> > 0 && <[item2].nbt_keys.size> > 0:
- if <[item1].nbt.to_map.keys.shared_contents[<[item2].nbt.to_map.keys>].size> > 0:
- define dupe <[item1].nbt.to_map.keys.shared_contents[<[item2].nbt.to_map.keys>]>
- foreach <[dupe]>:
- inject maxCheck
- else if <[item1].nbt_keys.size> > 0:
- define nbt <[nbt].include[<[item1].nbt>]>
- else if <[item2].nbt_keys.size> > 0:
- define nbt <[nbt].include[<[item2].nbt>]>
- flag player anvil_stuff:<context.item.with[nbt=<[nbt].to_list>;lore=<[enchantments].alphabetical>;hides=ITEM_DATA]> d:2t
- determine <context.item.with[nbt=<[nbt].to_list>;lore=<[enchantments].alphabetical>;hides=ITEM_DATA]>
- if <[item1].material.name.ends_with[_sword]> && <[item2].material.name> == enchanted_book:
- if <[item2].nbt_keys.size> != 0 && <[item1].nbt_keys.size> > 0:
- if <[item1].nbt.to_map.keys.shared_contents[<[item2].nbt.to_map.keys>].size> > 0:
- define dupe <[item1].nbt.to_map.keys.shared_contents[<[item2].nbt.to_map.keys>]>
- foreach <[dupe]>:
- inject maxCheck
- define nbt <[nbt].include[<[item1].nbt.to_map.exclude[<[dupe]>].include[<[item2].nbt.to_map.exclude[<[dupe]>]>]>]>
- foreach <[item1].nbt.to_map.exclude[<[dupe]>].include[<[item2].nbt.to_map.exclude[<[dupe]>]>].keys>:
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<[nbt].get[<[value]>]>]>
- else:
- foreach <[item1].nbt.to_map.keys.include[<[item2].nbt.to_map.keys>]>:
- define nbt <[nbt].include[<[value]>/<[item1].nbt[<[value]>]||<[item2].nbt[<[value]>]>>]>
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<[nbt].get[<[value]>]>]>
- else if <[item2].nbt_keys.size> != 0:
- foreach <[item2].nbt.to_map.keys>:
- if <[item1].nbt.to_map.keys.contains[<[value]>]||false>:
- inject maxCheck
- else:
- define nbt <[nbt].include[<[value]>/<[item2].nbt[<[value]>]>]>
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<[nbt].get[<[value]>]>]>
- else if <[item1].nbt_keys.size> > 0:
- foreach <[item1].nbt.to_map.keys>:
- define nbt <[nbt].include[<[value]>/<[item1].nbt[<[value]>]>]>
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<[nbt].get[<[value]>]>]>
- if <[item1].material.name.ends_with[_sword]> && <[item2].material.name.ends_with[_sword]>:
- if <[item1].nbt_keys.size> > 0 && <[item2].nbt_keys.size> > 0:
- if <[item1].nbt.to_map.keys.shared_contents[<[item2].nbt.to_map.keys>].size> > 0:
- define dupe <[item1].nbt.to_map.keys.shared_contents[<[item2].nbt.to_map.keys>]>
- foreach <[dupe]>:
- inject maxCheck
- define nbt <[nbt].include[<[item1].nbt.to_map.exclude[<[dupe]>].include[<[item2].nbt.to_map.exclude[<[dupe]>]>]>]>
- foreach <[item1].nbt.to_map.exclude[<[dupe]>].include[<[item2].nbt.to_map.exclude[<[dupe]>]>].keys>:
- define enchantments:|:<&7><[value].replace_text[_].with[<&sp>].to_titlecase><&sp><proc[romanNumeral].context[<[nbt].get[<[value]>]>]>
- else if <[item1].nbt_keys.size> > 0:
- define nbt <[nbt].include[<[item1].nbt>]>
- else if <[item2].nbt_keys.size> > 0:
- define nbt <[nbt].include[<[item2].nbt>]>
- if <context.item.material.name> == air && <[item2].nbt_keys.size> > 0:
- if <context.inventory.slot[1].material.name> == fishing_rod:
- flag player anvil_stuff:<item[<context.inventory.slot[1].material.name>].with[nbt=<[item2].nbt>;hides=ENCHANTS;lore=<[enchantments].alphabetical>;enchantments=power,1]> d:2t
- determine <item[<context.inventory.slot[1].material.name>].with[nbt=<[item2].nbt>;hides=ENCHANTS;lore=<[enchantments].alphabetical>;enchantments=power,1]>
- else:
- flag player anvil_stuff:<item[<context.inventory.slot[1].material.name>].with[nbt=<[item2].nbt>;hides=ENCHANTS;lore=<[enchantments].alphabetical>;enchantments=luck,1]> d:2t
- determine <item[<context.inventory.slot[1].material.name>].with[nbt=<[item2].nbt>;hides=ENCHANTS;lore=<[enchantments].alphabetical>;enchantments=luck,1]>
- else if <context.item.material.name> != air:
- if <definition[nbt].exists>:
- if <context.item.material.name> != fishing_rod && <context.item.enchantments.contains[luck_of_the_sea]>:
- if <context.item.enchantments.exclude[luck_of_the_sea].size> == 0:
- flag player anvil_stuff:<context.item.with[hides=ENCHANTS;nbt=<[nbt].to_list>;lore=<[enchantments].alphabetical>]> d:2t
- determine <context.item.with[hides=ENCHANTS;nbt=<[nbt].to_list>;lore=<[enchantments].alphabetical.remove[<[enchantments].find_partial[Luck<&sp>Of<&sp>The<&sp>Sea]>]>]>
- flag player anvil_stuff:<context.item.with[nbt=<[nbt].to_list>;hides=ENCHANTS;lore=<[enchantments].alphabetical>;remove_enchantments=luck_of_the_sea]> d:2t
- determine <context.item.with[nbt=<[nbt].to_list>;hides=ENCHANTS;lore=<[enchantments].alphabetical>;remove_enchantments=luck_of_the_sea]>
- else if <context.item.material.name> != bow && <context.item.enchantments.contains[power]>:
- flag player anvil_stuff:<context.item.with[nbt=<[nbt].to_list>;hides=ENCHANTS;lore=<[enchantments].alphabetical>;remove_enchantments=power]> d:2t
- determine <context.item.with[nbt=<[nbt].to_list>;hides=ENCHANTS;lore=<[enchantments].alphabetical>;remove_enchantments=power]>
- else:
- flag player anvil_stuff:<context.item.with[nbt=<[nbt].to_list>;hides=ENCHANTS;lore=<[enchantments].alphabetical>]> d:2t
- determine <context.item.with[nbt=<[nbt].to_list>;hides=ENCHANTS;lore=<[enchantments].alphabetical>]>
- else:
- flag player anvil_stuff:<context.item.with[hides=ENCHANTS;lore=<[enchantments].alphabetical>]> d:2t
- determine <context.item.with[hides=ENCHANTS;lore=<[enchantments].alphabetical>]>