give_random_rule.mcfunction 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # as player
  2. # 随机规则 0-100
  3. scoreboard players set $random_min mem 0
  4. scoreboard players set $random_max mem 13
  5. function lib:random
  6. execute if score $random mem matches 0..2 run loot replace block 0 0 1 container.0 loot mini:rgb/red
  7. execute if score $random mem matches 3..5 run loot replace block 0 0 1 container.0 loot mini:rgb/green
  8. execute if score $random mem matches 6..8 run loot replace block 0 0 1 container.0 loot mini:rgb/blue
  9. execute if score $random mem matches 9..12 run loot replace block 0 0 1 container.0 loot mini:rgb/effect
  10. execute if score $random mem matches 13 run loot replace block 0 0 1 container.0 loot mini:rgb/finish
  11. # 生成文本
  12. data modify storage ltw:mini rgb.rule set from block 0 0 1 Items[0].tag
  13. setblock 0 1 0 acacia_wall_sign destroy
  14. function mini:rgb/game/gen_rule_text_1
  15. data modify block 0 1 0 Text1 set value '[{"nbt":"Text1","block":"0 1 0","interpret":true},{"text":" -> ","color":"white"}]'
  16. function mini:rgb/game/gen_rule_text_2
  17. data modify block 0 0 1 Items[0].tag.EntityTag.CustomName set from block 0 1 0 Text1
  18. data modify block 0 1 0 Text1 set value '[{"text":"规则:","color":"white","italic":false},{"nbt":"Text1","block":"0 1 0","interpret":true}]'
  19. data modify block 0 0 1 Items[0].tag.display.Name set from block 0 1 0 Text1
  20. data modify block 0 0 1 Items[0].tag.display.Lore set value ['{"text":"右键放置以启用此规则","italic":false,"color":"gray"}']
  21. # 生成物品
  22. setblock 0 0 0 jukebox replace
  23. data modify block 0 0 0 RecordItem set from block 0 0 1 Items[0]
  24. data modify block 0 0 0 RecordItem.tag.game_item set value 1b
  25. data modify block 0 0 0 RecordItem.tag.rgb_newrule set value 1b
  26. data modify block 0 0 0 RecordItem.tag.EntityTag.Tags set value ["rgb_new_rule"]
  27. data modify block 0 0 0 RecordItem.tag.EntityTag.Small set value 1b
  28. data modify block 0 0 0 RecordItem.tag.EntityTag.ArmorItems set value [{id:"minecraft:stone",Count:1s},{}]
  29. data modify block 0 0 0 RecordItem.tag.EntityTag.ArmorItems[0].tag.conditions set from block 0 0 0 RecordItem.tag.conditions
  30. data modify block 0 0 0 RecordItem.tag.EntityTag.ArmorItems[0].tag.events set from block 0 0 0 RecordItem.tag.events
  31. tellraw @a {"nbt":"RecordItem","block": "0 0 0"}
  32. setblock 0 0 0 air destroy
  33. tag @s add rgb_temp
  34. execute as @e[nbt={"Item":{"tag":{"rgb_newrule":1b}}},limit=1] run function mini:rgb/game/tp_new_item
  35. tag @s remove rgb_temp
  36. playsound minecraft:entity.item.pickup player @s