give_random_rule.mcfunction 2.5 KB

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