diff --git a/data/undeadm-core/functions/init.mcfunction b/data/undeadm-core/functions/init.mcfunction index 8702bad..f19030c 100644 --- a/data/undeadm-core/functions/init.mcfunction +++ b/data/undeadm-core/functions/init.mcfunction @@ -6,9 +6,15 @@ data modify storage undeadm-core:init status set value 1 # try to init other modules +# random lib calls +function undeadm-random:init + #weapons mod function undeadm-m1:init +#villager mod +function undeadm-m2:init + ### core module ## core system @@ -32,6 +38,7 @@ function undeadm-m1:init scoreboard objectives add me-core_drinkM minecraft.used:minecraft.milk_bucket scoreboard objectives add me-core_rc minecraft.used:minecraft.carrot_on_a_stick scoreboard objectives add me-core_shift minecraft.custom:minecraft.sneak_time + scoreboard objectives add me-core_talk minecraft.custom:minecraft.talked_to_villager ## custom entity trackers diff --git a/data/undeadm-core/functions/tick.mcfunction b/data/undeadm-core/functions/tick.mcfunction index 585bdd7..d7f16ba 100644 --- a/data/undeadm-core/functions/tick.mcfunction +++ b/data/undeadm-core/functions/tick.mcfunction @@ -5,11 +5,14 @@ execute unless data storage undeadm-core:init {status:1} run function undeadm-co ## call other modules & optimization tick distribution -# call weapon hsec every half a sec and for tick every tick +# combat module calls execute if score $current me-core_tickC matches 1 run function undeadm-m1:hsec execute if score $current me-core_tickC matches 11 run function undeadm-m1:hsec function undeadm-m1:tick +# villager module calls +function undeadm-m2:tick + # manage assigners execute if score $current me-core_tickC matches 10 run function undeadm-core:assigners diff --git a/data/undeadm-m2/functions/generate_villager.mcfunction b/data/undeadm-m2/functions/generate_villager.mcfunction new file mode 100644 index 0000000..5cc32b8 --- /dev/null +++ b/data/undeadm-m2/functions/generate_villager.mcfunction @@ -0,0 +1,22 @@ +# generatecustom name +function undeadm-m2:villager_data/names + +# assign city +execute at @s run function undeadm-m2:villager_data/get_city + +# generating favourite mineral +function random:rand10 +scoreboard players operation @s Vfav_mineral = $value rnd_random +# 1 coal +# 2 diamond +# 3 iron +# 4 copper +# 5 gold +# 6 netherite +# 7 amethyst +# 8 emerald +# 9 quartz +# 10 ruby + +scoreboard players reset $value rnd_random +tag @s add generated diff --git a/data/undeadm-m2/functions/generate_wandering_trader.mcfunction b/data/undeadm-m2/functions/generate_wandering_trader.mcfunction new file mode 100644 index 0000000..84d5f70 --- /dev/null +++ b/data/undeadm-m2/functions/generate_wandering_trader.mcfunction @@ -0,0 +1,6 @@ +# generate custom name +function undeadm-m2:wandering_trader_data/names + +# generating favourite mineral +scoreboard players reset $value rnd_random +tag @s add generated diff --git a/data/undeadm-m2/functions/init.mcfunction b/data/undeadm-m2/functions/init.mcfunction new file mode 100644 index 0000000..cc5ce63 --- /dev/null +++ b/data/undeadm-m2/functions/init.mcfunction @@ -0,0 +1,5 @@ +# verbs +scoreboard objectives add me-m2_talkCD dummy + +# keep time in check +scoreboard objectives add Vtime dummy diff --git a/data/undeadm-m2/functions/talk.mcfunction b/data/undeadm-m2/functions/talk.mcfunction new file mode 100644 index 0000000..dfd41fb --- /dev/null +++ b/data/undeadm-m2/functions/talk.mcfunction @@ -0,0 +1,15 @@ +scoreboard players set @s me-core_talk 0 + +# + +# select closest villager a block forward in the direction the player is lookin +## i might fight this later -- not now +execute positioned ^ ^ ^2.5 as @e[type=#undeadm-m2:talkable,limit=1,sort=nearest] unless score @s me-m2_talkCD matches 1.. run tag @s add talking +execute as @e[tag=talking] run scoreboard players set @s me-m2_talkCD 100 +#execute as @e[tag=talking] run tellraw @a [{"text":"<"},{"selector":"@s"},{"text":"> Hello there"}] + +# if havent talked in a while, salute! +execute as @e[tag=talking,type=minecraft:villager] run function undeadm-m2:villager_talk/salutation +execute as @e[tag=talking,type=minecraft:villager] run function undeadm-m2:villager_talk/interaction +execute as @e[tag=talking,type=minecraft:wandering_trader] run function undeadm-m2:wandering_trader_talk/salutation +execute as @e[tag=talking] run tag @s remove talking diff --git a/data/undeadm-m2/functions/tick.mcfunction b/data/undeadm-m2/functions/tick.mcfunction new file mode 100644 index 0000000..06ee2f3 --- /dev/null +++ b/data/undeadm-m2/functions/tick.mcfunction @@ -0,0 +1,21 @@ +#take over the game? +#recipe take @a * +#gamemode adventure @a + +#get day time +execute store result score $time Vtime run time query daytime +scoreboard players operation $hour Vtime = $time Vtime +scoreboard players operation $hour Vtime /= $Dhour Vtime +scoreboard players add $hour Vtime 7 +execute if score $hour Vtime matches 24.. run scoreboard players remove $hour Vtime 24 + +# try to generate new data if missing on new villager +execute as @e[type=minecraft:villager] unless entity @s[tag=generated] run function undeadm-m2:generate_villager +# try to generate ned data if missing on wandering trader +execute as @e[type=minecraft:wandering_trader] unless entity @s[tag=generated] run function undeadm-m2:generate_wandering_trader +# lower by tick villager's talk CD +execute as @e[type=#undeadm-m2:talkable,scores={me-m2_talkCD=1..}] run scoreboard players remove @s me-m2_talkCD 1 + + +# verb: talk +execute as @a if score @s me-core_talk matches 1.. at @s anchored eyes run function undeadm-m2:talk diff --git a/data/undeadm-m2/functions/villager_data/get_city.mcfunction b/data/undeadm-m2/functions/villager_data/get_city.mcfunction new file mode 100644 index 0000000..e7c82e8 --- /dev/null +++ b/data/undeadm-m2/functions/villager_data/get_city.mcfunction @@ -0,0 +1,7 @@ +summon minecraft:armor_stand ~ ~ ~ {Marker:1b,Invisible:0,NoGravity:1,Tags:["CityChecker"]} +execute store result entity @e[tag=CityChecker,limit=1] Pos[0] double 1 run data get entity @s Brain.memories."minecraft:meeting_point".value.pos[0] +execute store result entity @e[tag=CityChecker,limit=1] Pos[1] double 1 run data get entity @s Brain.memories."minecraft:meeting_point".value.pos[1] +execute store result entity @e[tag=CityChecker,limit=1] Pos[2] double 1 run data get entity @s Brain.memories."minecraft:meeting_point".value.pos[2] +execute as @e[tag=CityChecker] at @s if entity @s[tag=CityCenter,distance=..10] run kill @s +execute as @e[tag=CityChecker] at @s run summon minecraft:armor_stand ~ ~ ~ {Marker:1b,Invisible:0,NoGravity:1,Tags:["CityCenter"]} +execute as @e[tag=CityChecker] run kill @s diff --git a/data/undeadm-m2/functions/villager_data/names.mcfunction b/data/undeadm-m2/functions/villager_data/names.mcfunction new file mode 100644 index 0000000..af13604 --- /dev/null +++ b/data/undeadm-m2/functions/villager_data/names.mcfunction @@ -0,0 +1,106 @@ +# make name visible +data merge entity @s {CustomNameVisible:1} + +# names :D +function undeadm-random:rand100 +execute if score $value rnd_random matches 0 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.0"}'} +execute if score $value rnd_random matches 1 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.1"}'} +execute if score $value rnd_random matches 2 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.2"}'} +execute if score $value rnd_random matches 3 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.3"}'} +execute if score $value rnd_random matches 4 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.4"}'} +execute if score $value rnd_random matches 5 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.5"}'} +execute if score $value rnd_random matches 6 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.6"}'} +execute if score $value rnd_random matches 7 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.7"}'} +execute if score $value rnd_random matches 8 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.8"}'} +execute if score $value rnd_random matches 9 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.9"}'} +execute if score $value rnd_random matches 10 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.10"}'} +execute if score $value rnd_random matches 11 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.11"}'} +execute if score $value rnd_random matches 12 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.12"}'} +execute if score $value rnd_random matches 13 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.13"}'} +execute if score $value rnd_random matches 14 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.14"}'} +execute if score $value rnd_random matches 15 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.15"}'} +execute if score $value rnd_random matches 16 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.16"}'} +execute if score $value rnd_random matches 17 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.17"}'} +execute if score $value rnd_random matches 18 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.18"}'} +execute if score $value rnd_random matches 19 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.19"}'} +execute if score $value rnd_random matches 20 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.20"}'} +execute if score $value rnd_random matches 21 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.21"}'} +execute if score $value rnd_random matches 22 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.22"}'} +execute if score $value rnd_random matches 23 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.23"}'} +execute if score $value rnd_random matches 24 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.24"}'} +execute if score $value rnd_random matches 25 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.25"}'} +execute if score $value rnd_random matches 26 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.26"}'} +execute if score $value rnd_random matches 27 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.27"}'} +execute if score $value rnd_random matches 28 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.28"}'} +execute if score $value rnd_random matches 29 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.29"}'} +execute if score $value rnd_random matches 30 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.30"}'} +execute if score $value rnd_random matches 31 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.31"}'} +execute if score $value rnd_random matches 32 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.32"}'} +execute if score $value rnd_random matches 33 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.33"}'} +execute if score $value rnd_random matches 34 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.34"}'} +execute if score $value rnd_random matches 35 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.35"}'} +execute if score $value rnd_random matches 36 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.36"}'} +execute if score $value rnd_random matches 37 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.37"}'} +execute if score $value rnd_random matches 38 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.38"}'} +execute if score $value rnd_random matches 39 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.39"}'} +execute if score $value rnd_random matches 40 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.40"}'} +execute if score $value rnd_random matches 41 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.41"}'} +execute if score $value rnd_random matches 42 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.42"}'} +execute if score $value rnd_random matches 43 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.43"}'} +execute if score $value rnd_random matches 44 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.44"}'} +execute if score $value rnd_random matches 45 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.45"}'} +execute if score $value rnd_random matches 46 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.46"}'} +execute if score $value rnd_random matches 47 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.47"}'} +execute if score $value rnd_random matches 48 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.48"}'} +execute if score $value rnd_random matches 49 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.49"}'} +execute if score $value rnd_random matches 50 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.50"}'} +execute if score $value rnd_random matches 51 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.51"}'} +execute if score $value rnd_random matches 52 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.52"}'} +execute if score $value rnd_random matches 53 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.53"}'} +execute if score $value rnd_random matches 54 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.54"}'} +execute if score $value rnd_random matches 55 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.55"}'} +execute if score $value rnd_random matches 56 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.56"}'} +execute if score $value rnd_random matches 57 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.57"}'} +execute if score $value rnd_random matches 58 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.58"}'} +execute if score $value rnd_random matches 59 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.59"}'} +execute if score $value rnd_random matches 60 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.60"}'} +execute if score $value rnd_random matches 61 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.61"}'} +execute if score $value rnd_random matches 62 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.62"}'} +execute if score $value rnd_random matches 63 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.63"}'} +execute if score $value rnd_random matches 64 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.64"}'} +execute if score $value rnd_random matches 65 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.65"}'} +execute if score $value rnd_random matches 66 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.66"}'} +execute if score $value rnd_random matches 67 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.67"}'} +execute if score $value rnd_random matches 68 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.68"}'} +execute if score $value rnd_random matches 69 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.69"}'} +execute if score $value rnd_random matches 70 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.70"}'} +execute if score $value rnd_random matches 71 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.71"}'} +execute if score $value rnd_random matches 72 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.72"}'} +execute if score $value rnd_random matches 73 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.73"}'} +execute if score $value rnd_random matches 74 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.74"}'} +execute if score $value rnd_random matches 75 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.75"}'} +execute if score $value rnd_random matches 76 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.76"}'} +execute if score $value rnd_random matches 77 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.77"}'} +execute if score $value rnd_random matches 78 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.78"}'} +execute if score $value rnd_random matches 79 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.79"}'} +execute if score $value rnd_random matches 80 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.80"}'} +execute if score $value rnd_random matches 81 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.81"}'} +execute if score $value rnd_random matches 82 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.82"}'} +execute if score $value rnd_random matches 83 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.83"}'} +execute if score $value rnd_random matches 84 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.84"}'} +execute if score $value rnd_random matches 85 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.85"}'} +execute if score $value rnd_random matches 86 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.86"}'} +execute if score $value rnd_random matches 87 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.87"}'} +execute if score $value rnd_random matches 88 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.88"}'} +execute if score $value rnd_random matches 89 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.89"}'} +execute if score $value rnd_random matches 90 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.90"}'} +execute if score $value rnd_random matches 91 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.91"}'} +execute if score $value rnd_random matches 92 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.92"}'} +execute if score $value rnd_random matches 93 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.93"}'} +execute if score $value rnd_random matches 94 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.94"}'} +execute if score $value rnd_random matches 95 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.95"}'} +execute if score $value rnd_random matches 96 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.96"}'} +execute if score $value rnd_random matches 97 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.97"}'} +execute if score $value rnd_random matches 98 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.98"}'} +execute if score $value rnd_random matches 99 run data merge entity @s {CustomName:'{"translate":"entity.villager.name.99"}'} +scoreboard players reset $value rnd_random diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/interaction/armorer.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/armorer.mcfunction new file mode 100644 index 0000000..b7332fe --- /dev/null +++ b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/armorer.mcfunction @@ -0,0 +1,45 @@ +# PRE SNAPSHOT +function undeadm-m2:villager_talk/by_profession/interaction/armorer_trades +# 0 - buy coal +execute if score $value rnd_random matches 0 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.0"}] +# 1 - buy iron ingot +execute if score $value rnd_random matches 1 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.1"}] + +# 2 BUY DIAMOND +# BEFORE selling diamond armor +execute if score $value rnd_random matches 2 if entity @s[nbt={VillagerData:{level:3}}] run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.2a"}] +# AFTER selling some diamond armor +execute if score $value rnd_random matches 2 if entity @s[nbt={VillagerData:{level:4}}] run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.2b"}] +# AFTER selling all diamond armor +execute if score $value rnd_random matches 2 if entity @s[nbt={VillagerData:{level:5}}] run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.2c"}] + +# 3 - buy lava bucket +execute if score $value rnd_random matches 3 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.3"}] +# 4 - sell bell +execute if score $value rnd_random matches 4 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.4"}] +# 5 - sell shield +execute if score $value rnd_random matches 5 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.5"}] +# 6 - sell iron helmet +execute if score $value rnd_random matches 6 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.6"}] +# 7 - sell iron chestplate +execute if score $value rnd_random matches 7 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.7"}] +# 8 - sell iron leggings +execute if score $value rnd_random matches 8 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.8"}] +# 9 - sell iron boots +execute if score $value rnd_random matches 9 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.9"}] +# 10 - sell chainmail helmet +execute if score $value rnd_random matches 10 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.10"}] +# 11 - sell chainmail chestplate +execute if score $value rnd_random matches 11 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.11"}] +# 12 - sell chainmail leggings +execute if score $value rnd_random matches 12 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.12"}] +# 13 - sell chainmail boots +execute if score $value rnd_random matches 13 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.13"}] +# 14 - sell diamond helmet +execute if score $value rnd_random matches 14 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.14"}] +# 15 - sell diamond chestplate +execute if score $value rnd_random matches 15 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.15"}] +# 16 - sell diamond leggings +execute if score $value rnd_random matches 16 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> "},{"translate":"entity.villager.talk.armorer.16"}] +# 17 - sell diamond boots +execute if score $value rnd_random matches 17 run tellraw @a[distance=..16] [{"text":"<"},{"selector":"@s"},{"text":"> ."},{"translate":"entity.villager.talk.armorer.17"}] diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/interaction/armorer_trades.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/armorer_trades.mcfunction new file mode 100644 index 0000000..1619969 --- /dev/null +++ b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/armorer_trades.mcfunction @@ -0,0 +1,63 @@ +# ARMORER TRADES +scoreboard players set $value rnd_random 0 + +# PRE SNAPSHOT +# 0 - buy coal +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:coal"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["RandomTrade"]} + +# 1 - but iron ingot +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:iron_ingot"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["RandomTrade"]} + +# 2 - buy diamond +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:diamond"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:2,Tags:["RandomTrade"]} + +# 3 - buy lava bucket +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:lava_bucket"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:3,Tags:["RandomTrade"]} + +# 4 - sell bell +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:bell"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:4,Tags:["RandomTrade"]} + +# 5 - sell shield +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:shield"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:5,Tags:["RandomTrade"]} + +# 6 - sell iron helmet +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:iron_helmet"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:6,Tags:["RandomTrade"]} + +# 7 - sell iron chestplate +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:iron_chestplate"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:7,Tags:["RandomTrade"]} + +# 8 - sell iron leggings +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:iron_leggings"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:8,Tags:["RandomTrade"]} + +# 9 - sell iron boots +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:iron_boots"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:9,Tags:["RandomTrade"]} + +# 10 - sell chainmail helmet +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:chainmail_helmet"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:10,Tags:["RandomTrade"]} + +# 11 - sell chainmail chestplate +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:chainmail_chestplate"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:11,Tags:["RandomTrade"]} + +# 12 - sell chainmail leggings +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:chainmail_leggings"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:12,Tags:["RandomTrade"]} + +# 13 - sell chainmail boots +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:chainmail_boots"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:13,Tags:["RandomTrade"]} + +# 14 - sell diamond helmet +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:diamond_helmet"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:14,Tags:["RandomTrade"]} + +# 15 - sell diamond chestplate +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:diamond_chestplate"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:15,Tags:["RandomTrade"]} + +# 16 - sell diamond leggings +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:diamond_leggings"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:16,Tags:["RandomTrade"]} + +# 17 - sell diamond boots +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:diamond_boots"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:17,Tags:["RandomTrade"]} + +# pick random trade +execute store result score $value rnd_random as @e[tag=RandomTrade,limit=1,sort=random] run data get entity @s DisabledSlots + +# kill trades +kill @e[tag=RandomTrade] diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/interaction/butcher.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/butcher.mcfunction new file mode 100644 index 0000000..fb6994b --- /dev/null +++ b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/butcher.mcfunction @@ -0,0 +1,11 @@ +# 0 - buy raw chicken +# 1 - buy raw porkchop +# 2 - buy raw rabbit +# 3 - buy coal +# 4 - buy raw mutton +# 5 - buy raw beef +# 6 - buy dried kelp block +# 7 - buy sweet berries +# 8 - sell rabbit stew +# 9 - sell cooked porkchop +# 10 - sell cooked chicken diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/interaction/butcher_trades.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/butcher_trades.mcfunction new file mode 100644 index 0000000..960fe9c --- /dev/null +++ b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/butcher_trades.mcfunction @@ -0,0 +1,42 @@ +# ARMORER TRADES +scoreboard players set $value rnd_random 0 + +# PRE SNAPSHOT +# 0 - buy raw chicken +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:raw_chicken"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["RandomTrade"]} + +# 1 - buy raw porkchop +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:raw_porkchop"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["RandomTrade"]} + +# 2 - buy raw rabbit +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:raw_rabbit"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:2,Tags:["RandomTrade"]} + +# 3 - buy coal +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:coal"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:3,Tags:["RandomTrade"]} + +# 4 - buy raw mutton +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:raw_mutton"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:4,Tags:["RandomTrade"]} + +# 5 - buy raw beef +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:raw_beef"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:5,Tags:["RandomTrade"]} + +# 6 - buy dried kelp block +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:dried_kelp_block"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:6,Tags:["RandomTrade"]} + +# 7 - buy sweet berries +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:sweet_berries"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:7,Tags:["RandomTrade"]} + +# 8 - sell rabbit stew +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:rabbit_stew"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:8,Tags:["RandomTrade"]} + +# 9 - sell cooked porkchop +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:cooked_porkchop"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:9,Tags:["RandomTrade"]} + +# 10 - sell cooked chicken +execute if data entity @s Offers.Recipes[{sell:{id:"minecraft:cooked_chicken"}}] run summon armor_stand ~ ~ ~ {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:10,Tags:["RandomTrade"]} + +# pick random trade +execute store result score $value rnd_random as @e[tag=RandomTrade,limit=1,sort=random] run data get entity @s DisabledSlots + +# kill trades +kill @e[tag=RandomTrade] diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/interaction/cleric.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/cleric.mcfunction new file mode 100644 index 0000000..22f67c2 --- /dev/null +++ b/data/undeadm-m2/functions/villager_talk/by_profession/interaction/cleric.mcfunction @@ -0,0 +1 @@ +execute if data entity @s Offers.Recipes[{buy:{id:"minecraft:rotten_flesh"}}] run tellraw @a[distance=..16] [{"text":" <"},{"selector":"@s"},{"text":"> Can you slay a few zombies for me? I'll pay you."}] diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/butcher.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/butcher.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/cartographer.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/cartographer.mcfunction new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/cartographer.mcfunction @@ -0,0 +1 @@ + diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/cleric.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/cleric.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/farmer.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/farmer.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/fisherman.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/fisherman.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/fletcher.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/fletcher.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/leatherworker.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/leatherworker.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/librarian.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/librarian.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/mason.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/mason.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/nitwit.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/nitwit.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/none.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/none.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/shepherd.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/shepherd.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/toolsmith.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/toolsmith.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/by_profession/salutation/weaponsmith.mcfunction b/data/undeadm-m2/functions/villager_talk/by_profession/salutation/weaponsmith.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/undeadm-m2/functions/villager_talk/interaction.mcfunction b/data/undeadm-m2/functions/villager_talk/interaction.mcfunction new file mode 100644 index 0000000..63ded41 --- /dev/null +++ b/data/undeadm-m2/functions/villager_talk/interaction.mcfunction @@ -0,0 +1,15 @@ +execute as @s[nbt={VillagerData:{profession:"minecraft:armorer"}}] run function undeadm-m2:villager_talk/by_profession/interaction/armorer +execute as @s[nbt={VillagerData:{profession:"minecraft:butcher"}}] run function undeadm-m2:villager_talk/by_profession/interaction/butcher +execute as @s[nbt={VillagerData:{profession:"minecraft:cartographer"}}] run function undeadm-m2:villager_talk/by_profession/interaction/cartographer +execute as @s[nbt={VillagerData:{profession:"minecraft:cleric"}}] run function undeadm-m2:villager_talk/by_profession/interaction/cleric +execute as @s[nbt={VillagerData:{profession:"minecraft:farmer"}}] run function undeadm-m2:villager_talk/by_profession/interaction/farmer +execute as @s[nbt={VillagerData:{profession:"minecraft:fisherman"}}] run function undeadm-m2:villager_talk/by_profession/interaction/fisherman +execute as @s[nbt={VillagerData:{profession:"minecraft:fletcher"}}] run function undeadm-m2:villager_talk/by_profession/interaction/fletcher +execute as @s[nbt={VillagerData:{profession:"minecraft:leatherworker"}}] run function undeadm-m2:villager_talk/by_profession/interaction/leatherworker +execute as @s[nbt={VillagerData:{profession:"minecraft:librarian"}}] run function undeadm-m2:villager_talk/by_profession/interaction/librarian +execute as @s[nbt={VillagerData:{profession:"minecraft:none"}}] run function undeadm-m2:villager_talk/by_profession/interaction/none +execute as @s[nbt={VillagerData:{profession:"minecraft:nitwit"}}] run function undeadm-m2:villager_talk/by_profession/interaction/nitwit +execute as @s[nbt={VillagerData:{profession:"minecraft:mason"}}] run function undeadm-m2:villager_talk/by_profession/interaction/mason +execute as @s[nbt={VillagerData:{profession:"minecraft:shepherd"}}] run function undeadm-m2:villager_talk/by_profession/interaction/shepherd +execute as @s[nbt={VillagerData:{profession:"minecraft:toolsmith"}}] run function undeadm-m2:villager_talk/by_profession/interaction/toolsmith +execute as @s[nbt={VillagerData:{profession:"minecraft:weaponsmith"}}] run function undeadm-m2:villager_talk/by_profession/interaction/weaponsmith diff --git a/data/undeadm-m2/functions/villager_talk/salutation.mcfunction b/data/undeadm-m2/functions/villager_talk/salutation.mcfunction new file mode 100644 index 0000000..a4caad8 --- /dev/null +++ b/data/undeadm-m2/functions/villager_talk/salutation.mcfunction @@ -0,0 +1,15 @@ +execute as @s[nbt={VillagerData:{profession:"minecraft:armorer"}}] run function undeadm-m2:villager_talk/by_profession/salutation/armorer +execute as @s[nbt={VillagerData:{profession:"minecraft:butcher"}}] run function undeadm-m2:villager_talk/by_profession/salutation/butcher +execute as @s[nbt={VillagerData:{profession:"minecraft:cartographer"}}] run function undeadm-m2:villager_talk/by_profession/salutation/cartographer +execute as @s[nbt={VillagerData:{profession:"minecraft:cleric"}}] run function undeadm-m2:villager_talk/by_profession/salutation/cleric +execute as @s[nbt={VillagerData:{profession:"minecraft:farmer"}}] run function undeadm-m2:villager_talk/by_profession/salutation/farmer +execute as @s[nbt={VillagerData:{profession:"minecraft:fisherman"}}] run function undeadm-m2:villager_talk/by_profession/salutation/fisherman +execute as @s[nbt={VillagerData:{profession:"minecraft:fletcher"}}] run function undeadm-m2:villager_talk/by_profession/salutation/fletcher +execute as @s[nbt={VillagerData:{profession:"minecraft:leatherworker"}}] run function undeadm-m2:villager_talk/by_profession/salutation/leatherworker +execute as @s[nbt={VillagerData:{profession:"minecraft:librarian"}}] run function undeadm-m2:villager_talk/by_profession/salutation/librarian +execute as @s[nbt={VillagerData:{profession:"minecraft:none"}}] run function undeadm-m2:villager_talk/by_profession/salutation/none +execute as @s[nbt={VillagerData:{profession:"minecraft:nitwit"}}] run function undeadm-m2:villager_talk/by_profession/salutation/nitwit +execute as @s[nbt={VillagerData:{profession:"minecraft:mason"}}] run function undeadm-m2:villager_talk/by_profession/salutation/mason +execute as @s[nbt={VillagerData:{profession:"minecraft:shepherd"}}] run function undeadm-m2:villager_talk/by_profession/salutation/shepherd +execute as @s[nbt={VillagerData:{profession:"minecraft:toolsmith"}}] run function undeadm-m2:villager_talk/by_profession/salutation/toolsmith +execute as @s[nbt={VillagerData:{profession:"minecraft:weaponsmith"}}] run function undeadm-m2:villager_talk/by_profession/salutation/weaponsmith diff --git a/data/undeadm-m2/functions/wandering_trader_data/names.mcfunction b/data/undeadm-m2/functions/wandering_trader_data/names.mcfunction new file mode 100644 index 0000000..e74b96b --- /dev/null +++ b/data/undeadm-m2/functions/wandering_trader_data/names.mcfunction @@ -0,0 +1,16 @@ +# make name visible +data merge entity @s {CustomNameVisible:1} + +# names :D +function undeadm-random:rand10 +execute if score $value rnd_random matches 1 run data merge entity @s {CustomName:'{"text":"Maelys"}'} +execute if score $value rnd_random matches 2 run data merge entity @s {CustomName:'{"text":"Ariel"}'} +execute if score $value rnd_random matches 3 run data merge entity @s {CustomName:'{"text":"Veronica"}'} +execute if score $value rnd_random matches 4 run data merge entity @s {CustomName:'{"text":"Carl"}'} +execute if score $value rnd_random matches 5 run data merge entity @s {CustomName:'{"text":"Emp"}'} +execute if score $value rnd_random matches 6 run data merge entity @s {CustomName:'{"text":"Timoteus"}'} +execute if score $value rnd_random matches 7 run data merge entity @s {CustomName:'{"text":"Breeze"}'} +execute if score $value rnd_random matches 8 run data merge entity @s {CustomName:'{"text":"Kelsier"}'} +execute if score $value rnd_random matches 9 run data merge entity @s {CustomName:'{"text":"Eri"}'} +execute if score $value rnd_random matches 10 run data merge entity @s {CustomName:'{"text":"Alie"}'} +scoreboard players reset $value rnd_random diff --git a/data/undeadm-m2/functions/wandering_trader_talk/salutation.mcfunction b/data/undeadm-m2/functions/wandering_trader_talk/salutation.mcfunction new file mode 100644 index 0000000..efc938b --- /dev/null +++ b/data/undeadm-m2/functions/wandering_trader_talk/salutation.mcfunction @@ -0,0 +1 @@ +say hey, im trading stuff diff --git a/data/undeadm-m2/item_modifiers/example.json b/data/undeadm-m2/item_modifiers/example.json new file mode 100644 index 0000000..f9e8c0c --- /dev/null +++ b/data/undeadm-m2/item_modifiers/example.json @@ -0,0 +1,6 @@ +[ + { + "function": "minecraft:set_nbt", + "tag": "{uwu:1}" + } +] diff --git a/data/undeadm-m2/tags/entity_types/talkable.json b/data/undeadm-m2/tags/entity_types/talkable.json new file mode 100644 index 0000000..c5ae45a --- /dev/null +++ b/data/undeadm-m2/tags/entity_types/talkable.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:villager", + "minecraft:wandering_trader" + ] +} diff --git a/data/undeadm-random/functions/init.mcfunction b/data/undeadm-random/functions/init.mcfunction new file mode 100644 index 0000000..805dd48 --- /dev/null +++ b/data/undeadm-random/functions/init.mcfunction @@ -0,0 +1,2 @@ +scoreboard objectives add rnd_random dummy +scoreboard objectives add rnd_gen dummy diff --git a/data/undeadm-random/functions/rand10.mcfunction b/data/undeadm-random/functions/rand10.mcfunction new file mode 100644 index 0000000..17098b7 --- /dev/null +++ b/data/undeadm-random/functions/rand10.mcfunction @@ -0,0 +1,17 @@ +scoreboard players set $value rnd_random 0 + +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:2,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:3,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:4,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:5,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:6,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:7,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:8,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:9,Tags:["Random"]} +execute store result score $value rnd_gen as @e[tag=Random,limit=1,sort=random] run data get entity @s DisabledSlots +scoreboard players operation $value rnd_random += $value rnd_gen +kill @e[tag=Random] + +scoreboard players add $value rnd_random 1 diff --git a/data/undeadm-random/functions/rand100.mcfunction b/data/undeadm-random/functions/rand100.mcfunction new file mode 100644 index 0000000..4e9554e --- /dev/null +++ b/data/undeadm-random/functions/rand100.mcfunction @@ -0,0 +1,29 @@ +scoreboard players set $value rnd_random 0 + +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:2,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:3,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:4,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:5,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:6,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:7,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:8,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:9,Tags:["Random"]} +execute store result score $value rnd_gen as @e[tag=Random,limit=1,sort=random] run data get entity @s DisabledSlots +scoreboard players operation $value rnd_random += $value rnd_gen +kill @e[tag=Random] + +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:2,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:3,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:4,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:5,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:6,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:7,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:8,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:9,Tags:["Random"]} +execute store result score $value rnd_gen as @e[tag=Random,limit=1,sort=random] run data get entity @s DisabledSlots 10 +scoreboard players operation $value rnd_random += $value rnd_gen +kill @e[tag=Random] diff --git a/data/undeadm-random/functions/rand20.mcfunction b/data/undeadm-random/functions/rand20.mcfunction new file mode 100644 index 0000000..60714f0 --- /dev/null +++ b/data/undeadm-random/functions/rand20.mcfunction @@ -0,0 +1,24 @@ +scoreboard players set $value rnd_random 0 + +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:2,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:3,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:4,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:5,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:6,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:7,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:8,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:9,Tags:["Random"]} +execute store result score $value rnd_gen as @e[tag=Random,limit=1,sort=random] run data get entity @s DisabledSlots +scoreboard players operation $value rnd_random += $value rnd_gen +kill @e[tag=Random] + + +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["Random"]} +execute store result score $value rnd_gen as @e[tag=Random,limit=1,sort=random] run data get entity @s DisabledSlots 10 +scoreboard players operation $value rnd_random += $value rnd_gen +kill @e[tag=Random] + +scoreboard players add $value rnd_random 1 diff --git a/data/undeadm-random/functions/rand50.mcfunction b/data/undeadm-random/functions/rand50.mcfunction new file mode 100644 index 0000000..834c43d --- /dev/null +++ b/data/undeadm-random/functions/rand50.mcfunction @@ -0,0 +1,26 @@ +scoreboard players set $value rnd_random 0 + +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:2,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:3,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:4,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:5,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:6,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:7,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:8,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:9,Tags:["Random"]} +execute store result score $value rnd_gen as @e[tag=Random,limit=1,sort=random] run data get entity @s DisabledSlots +scoreboard players operation $value rnd_random += $value rnd_gen +kill @e[tag=Random] + +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:0,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:1,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:2,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:3,Tags:["Random"]} +summon armor_stand ~ ~ ~ {Invisible:1b,Invulnerable:1b,NoGravity:1b,DisabledSlots:4,Tags:["Random"]} +execute store result score $value rnd_gen as @e[tag=Random,limit=1,sort=random] run data get entity @s DisabledSlots 10 +scoreboard players operation $value rnd_random += $value rnd_gen +kill @e[tag=Random] + +scoreboard players add $value rnd_random 1 diff --git a/data/undeadm-random/functions/template.mcfunction b/data/undeadm-random/functions/template.mcfunction new file mode 100644 index 0000000..a745dac --- /dev/null +++ b/data/undeadm-random/functions/template.mcfunction @@ -0,0 +1,16 @@ +## LITERALLY A RANDOM NUMBER GENERATOR :D +# CALL FOR RANDOM +function undeadm-random:rand10 +# RANDOM SHENANIGANS +if score $value rnd_random matches 0 run say "Primero, caganero" +if score $value rnd_random matches 1 run say "Segundo, rey del mundo" +if score $value rnd_random matches 2 run say "Tercero, pistolero" +if score $value rnd_random matches 3 run say "Cuarto, lagarto" +if score $value rnd_random matches 4 run say "Quinto, laberinto" +if score $value rnd_random matches 5 run say "Sexto, baloncesto" +if score $value rnd_random matches 6 run say "Séptimo, sin rima" +if score $value rnd_random matches 7 run say "Octavo, lavabo" +if score $value rnd_random matches 8 run say "Noveno, moreno" +if score $value rnd_random matches 9 run say "Décimo, tampoco rima" +# LAST CLEAR +scoreboard players reset $value rnd_random