Date: 2020/07/19 23:08:30 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
#======================================================#
# Script by Chano
# Zen Gens
# The Ultimate Solution for Item Generators
# July 19, 2020
#======================================================#
# Give Command
give_iron_gen:
type: command
name: irongen
usage: /irongen [player] [amount]
description: gives the player an iron generator.
permission: zenith.admin
script:
- if <context.args.size> < 2:
- narrate "<red>/irongen [player] [amount]"
- stop
- define target <server.match_player[<context.args.get[1]>]||null>
- if <[target]> == null:
- narrate "<red>Unknown player '<yellow><context.args.get[1]><red>'."
- stop
- define amount <context.args.get[2]>
- if !<[amount].is_decimal>:
- narrate "<red>Invalid amount input (not a number)."
- stop
- if <[amount]> <= 0:
- narrate "<red>Amount must be more than zero."
- stop
- give iron_gen player:<[target]> quantity:<[amount]>
# Generator Item
iron_gen:
type: item
material: player_head
display name: <&b><&l>Iron Generator
lore:
- <&a>Place down to begin generating Iron
mechanisms:
skull_skin: 332316cf-8bbc-4e80-8014-a2321a75eb1f|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjc4NGI3MTVjMGQyYjE1MGI1NTZmMTZhMjQ2NDBkYWZmMjk3YTRlYzFiZmQ4Nzc1MTk5MDY2MmFjMzZlYjIifX19
# When a Player places down the Generator
iron_gen_place:
type: world
events:
after player places iron_gen:
- narrate "<&a><&l>You have Placed an Iron Generator!"
- flag server iron_gens:->:<context.location>
- spawn "armor_stand[visible=false;custom_name_visible=true;marker=true;gravity=false;custom_name=<&b>Iron Generator]" <context.location.center.above[1]> save:irongenholo1
- spawn "armor_stand[visible=false;custom_name_visible=true;marker=true;gravity=false;custom_name=<&b>Time: <&e><server.flag[iron_gen_countdown]>]" <context.location.center.above[0.7]> save:irongenholo2
- flag server iron_gens_holos.<context.location>:|:<entry[irongenholo1].spawned_entity>|<entry[irongenholo2].spawned_entity>
# When a Player Breaks their Generator
iron_gen_break:
type: world
events:
after player breaks player_head:
- if <server.flag[iron_gens].contains[<context.location>]>:
- narrate "<&a><&l>You have Broken an Iron Generator!"
- flag server iron_gens:<-:<context.location>
- remove <server.flag[iron_gens_holos.<context.location>]>
- flag server iron_gens_holos.<context.location>:!
# Every x Seconds the Gen Does....
iron_gen_interval:
type: world
events:
on system time secondly every:60:
- foreach <server.flag[iron_gens]> as:irongenlocation:
- if <[irongenlocation].chunk.is_loaded>:
- drop iron_ingot <[irongenlocation]> quantity:1
- rename "<&b>Time: <&e><server.flag[iron_gen_countdown]>" iron_gens_holos.<[irongenlocation]>
on system time secondly:
- if <server.flag[iron_gen_countdown]> <= 0:
- flag server iron_gen_countdown:60
- flag server iron_gen_countdown:--