options:
prefix: &b&lGens &8>>
gens: coal block or raw copper block or copper block or raw iron block or iron block or raw gold block or gold block or lapis block or redstone block or diamond block or emerald block or obsidian or netherrack or nether gold ore or nether bricks or magma block or netherite block or basalt or blackstone or crying obsidian or end stone or sea lanter or prismarine or beacon
noprefix: &c
function registerGens(index: integer, id: itemtype, name: string, upgrade: number = 0, next: itemtype, drop: itemtype, sell: number, dropname: string):
set {-gens::%{_index}%} to {_id}
set {-gens::%{_index}%::name} to {_name}
set {-gens::%{_index}%::upgrade} to {_upgrade}
set {-gens::%{_index}%::next} to {_next}
set {-gens::%{_index}%::drop} to {_drop}
set {-gens::%{_index}%::sell} to {_sell}
set {-gens::%{_index}%::dropname} to {_dropname}
# format:
# loadgen( gen block item, gen drops item, level, upgrade price, sell price of drops)
#
# gens are upgraded based on level: 1,2,3,4 etc.
#
# the gen block item cannot be named as
# the name will be the name of the drop item
# eg. loadgen(diamond block, diamond named "crystal", 1, 100, 1)
# will be named "crystal gen" and is level 1 which will be auto given
# to new players and diamond named "crystal" sells for 1
# and gen costs 100 to upgrade to next
loadgen(block of coal, coal named "&8&lCoal", 1, 100, 1,)
loadgen(block of raw copper, raw copper ingot named "&6&lRaw copper", 2, 700, 5)
loadgen(block of copper, copper ingot named "&6&lCopper", 3, 1800, 8)
loadgen(block of raw iron, raw iron named "&f&lRaw Iron", 4, 7000, 12)
loadgen(block of iron, iron ingot named "&f&lIron", 5, 14000, 20)
loadgen(block of raw gold, raw gold ingot named "&e&lRaw gold", 6, 20000, 25)
loadgen(gold block, gold ingot named "&e&lGold", 7, 50000, 30)
loadgen(block of lapis lazuli, lapis lazuli named "&9&lLapis", 8, 100000, 35)
loadgen(block of redstone, redstone named "&c&lRedstone", 9, 200000, 40)
loadgen(block of diamond, diamond named "&b&lDiamond", 10, 400000, 50)
loadgen(block of emerald, emerald named "&a&lEmerald", 11, 700000, 53)
loadgen(obsidian, obsidian named "&7&lObsidian", 12, 1000000, 60)
loadgen(netherrack, nether wart named "&c&lNether Wart", 13, 5000000, 64)
loadgen(nether gold ore, gold nugget named "&6&lNether gold", 14, 14000000, 76)
loadgen(nether bricks, nether brick named "&c&lNether ingot", 15, 30000000, 83)
loadgen(magma block, magma cream named "&6&lMagma fragment", 16, 80000000, 91)
loadgen(netherite block, netherite ingot named "&8&lNetherite", 17, 160000000, 103)
loadgen(basalt, flint named "&8&lbasalt fragment", 18, 200000000, 113)
loadgen(blackstone, blackstone button named "&8&lBlackstone", 19, 350000000, 124)
loadgen(crying obsidian, ghast tear named "&f&lTear of Obsidian", 20, 500000000, 137)
loadgen(end stone, end rod named "&dEnd rod", 21, 800000000, 144)
loadgen(sea lantern, heart of the sea named "&3Heart of the sea", 21, 1000000000, 190)
loadgen(prismarine, prismarine shard named "&3Prismarine", 22, 4000000000, 800)
loadgen(beacon, nether star named "&f&lNether star", 23, 6000000000, 1200)
on place of coal block or raw copper block or copper block or raw iron block or iron block or raw gold block or gold block or lapis block or redstone block or diamond block or emerald block or obsidian or netherrack or nether gold ore or nether bricks or magma block or netherite block or basalt or blackstone or crying obsidian or end stone or sea lanter or prismarine or beacon:
cancel event
every {@spawntime} seconds:
loop all players:
genData(loop-player)
function genData(p: player):
loop {gendata::gensloc::%uuid of {_p}%::*}:
chunk at loop-value is loaded
add 1 to {_counter}
if {_counter}+0 > 100:
wait 3 ticks
delete {_counter}
dropItems(loop-value-1, {_p})
function dropItems(loc: location, p: player):
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
set {_block} to block at {_loc}
{_type} = {_block}
set {_drop} to {-gens::%loop-index-1%::drop}
set {_name} to {-gens::%loop-index-1%::dropname}
set {_price} to {-gens::%loop-index-1%::sell}
set name of {_drop} to "%{_name}%"
set lore of {_drop} to "", "&8• &fSell me for &2$&a%format({_price})%", ""
set {_drops} to (1 * (1+{pets::boost::%uuid of {_p}%}))
drop {_drops} of {_drop} 1 meter above {_loc} without velocity
function giveGens(p: player, block: itemtype, amount: integer):
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
set {_upgrade} to {-gens::%loop-index%::upgrade}
set {_name} to {-gens::%loop-index%::name}
set {_sell} to {-gens::%loop-index%::sell}
{_type} = {_block}
set {_gen} to {_type} named "%{_name}% &8[&fTier %loop-index parsed as a number%&8]" with lore "&8Generator", "", "&8• &fUpgrade: &2$&a%format({_upgrade})%", "&8• &fDrop Sell: &2$&a%format({_sell})%", "" with all flags hidden
give {_p} {_amount} of {_gen}
function upgradeGens(p: player, block: itemtype, loc: location):
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
{_type} = {_block}
set {_upgrade} to {-gens::%loop-index%::upgrade}
{_upgrade} != 0
set {_next} to {-gens::%loop-index%::next}
if {_p}'s balance < ({_upgrade}):
send action bar "{@prefix} &fYou need &2$&a%format({_upgrade})%!" to {_p}
stop
remove ({_upgrade}) from {_p}'s balance
set block at {_loc} to {_next}
set {_block} to "%{_block}%"
set {_index} to loop-index parsed as an number
send action bar "{@prefix} &fUpgraded Generator!" to {_p}
stop
function placeGens(p: player, block: itemtype):
set {slots::%uuid of {_p}%} to 0 if {slots::%uuid of {_p}%} is not set
set {maxslots::%uuid of {_p}%} to 25 if {maxslots::%uuid of {_p}%} is not set
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
{_type} = {_block}
{slots::%uuid of {_p}%} < {maxslots::%uuid of {_p}%}
add 1 to {slots::%uuid of {_p}%}
send action bar "{@prefix} &fPlaced Generator &7(&f%{slots::%uuid of {_p}%}%&7/&f%{maxslots::%uuid of {_p}%}%&7)" to {_p}
send title "&aPlaced Gen &7(&f%{slots::%uuid of {_p}%}%&7/&f%{maxslots::%uuid of {_p}%}%&7)" with subtitle "&aShift Right-Click to upgrade, Shift Left-Click to delete" to {_p}
function genCheck(p: player):
loop {gendata::loc::%uuid of {_p}%::*}:
if {gendata::loc::%uuid of {_p}%::%loop-value%} = "air":
remove 1 from {slots::%uuid of {_p}%}
if {slots::%uuid of {_p}%} is less than 0:
set {slots::%uuid of {_p}%} to 0
if {slots::%uuid of {_p}%} is not set:
set {slots::%uuid of {_p}%} to 0
#every 30 seconds:
#loop all players:
#genCheck(loop-player)
on join:
while player is online:
genCheck(player)
wait 1 seconds
on place of {@gens}:
if {_waited} is less than a minute:
message "&cWait, you have a cooldown of{_waited}%"
stop
if name of player's tool contains "GEN":
event-world is "{@genworld}"
set {_tool} to player's tool
if ({slots::%uuid of player%}) >= {maxslots::%uuid of player%} ? 25:
cancel event
stop
placeGens(player, event-block)
set {_block2} to type of event-block
add location of event-block to {gendata::gensloc::%uuid of player%::*}
dropItems(location of event-block, player)
wait 2 ticks
block at location of event-block != {_block2}
loop {-gens::*}:
set {_event} to {-gens::%loop-index%}
{_event} = {_block2}
remove 1 from {slots::%uuid of player%}
on right click on {@gens}:
player is sneaking
{gendata::gensloc::%uuid of player%::*} contains location of event-block
set {_block} to type of event-block
set {_loc} to location of event-block
if {_block} is lit redstone ore:
set {_block} to redstone ore
if uncolored name of player's tool contains "Upgrade Wand 3x3":
set {_loc} to location of event-block
add 1 to x-coord of {_loc}
add 1 to z-coord of {_loc}
set {_pos1} to {_loc}
remove 2 from x-coord of {_loc}
remove 2 from z-coord of {_loc}
loop all blocks within {_pos1} and {_loc}:
loop-block != air
set {_loc} to location of loop-block
set {_block} to type of loop-block
if {_block} is lit redstone ore:
set {_block} to redstone ore
upgradeGens(player, {_block}, {_loc})
else if uncolored name of player's tool contains "Upgrade Wand 5x5":
set {_loc} to location of event-block
add 2 to x-coord of {_loc}
add 2 to z-coord of {_loc}
set {_pos1} to {_loc}
remove 4 from x-coord of {_loc}
remove 4 from z-coord of {_loc}
loop all blocks within {_pos1} and {_loc}:
loop-block != air
set {_loc} to location of loop-block
set {_block} to type of loop-block
if {_block} is lit redstone ore:
set {_block} to redstone ore
upgradeGens(player, {_block}, {_loc})
else if uncolored name of player's tool contains "Upgrade Wand 10x10":
set {_loc} to location of event-block
add 5 to x-coord of {_loc}
add 5 to z-coord of {_loc}
set {_pos1} to {_loc}
remove 10 from x-coord of {_loc}
remove 10 from z-coord of {_loc}
loop all blocks within {_pos1} and {_loc}:
loop-block != air
set {_loc} to location of loop-block
set {_block} to type of loop-block
if {_block} is lit redstone ore:
set {_block} to redstone ore
upgradeGens(player, {_block}, {_loc})
else:
upgradeGens(player, {_block}, {_loc})
on left click on {@gens}:
set {gendata::cooldown::%uuid of player%} to now
set {_block} to "%type of event-block%"
replace all " " in {_block} with "_"
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
{_type} = type of event-block
replace all "_" in {_block} with " "
if {_block} is "lit redstone ore":
replace all "lit " in {_block} with ""
execute console command "gens give %player% %{_block}% 1"
remove location of event-block from {gendata::gensloc::%uuid of player%::*}
remove 1 from {slots::%uuid of player%}
set event-block to air
send action bar "{@prefix} &fRemoved Generator &7(&f%{slots::%uuid of player%}%&7/&f%{maxslots::%uuid of player%}%&7)" to player
function genList(p: player, page: number = 1):
create a gui with virtual chest inventory with 6 rows named "Gen List (&b%{_page}%&8)":
make gui slot (all integers between 0 and 53) with black stained glass pane named "&7" with all flags hidden
make gui slot (10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34,37,38,39,40,41,42,43) with stone button named "&7" with all flags hidden
make gui slot 49 with barrier named "&c&lClick to exit" with all flags hidden:
close inventory of {_p}
set {_slot} to 10
set {_minIndex} to 1+(({_page}-1)*28)
loop {-gens::*}:
add 1 to {_index}
{_index} >= {_minIndex}
set {_item} to {-gens::%loop-index%}
set {_upgrade} to {-gens::%loop-index%::upgrade}
set {_name} to {-gens::%loop-index%::name}
set {_sell} to {-gens::%loop-index%::sell}
make gui slot {_slot} with {_item} named "%{_name}% &8[&fTier %loop-index parsed as a number%&8]" with lore "&8Generator", "", "&8• &fSell: &2$&a%format({_sell})%", "&8• &fUpgrade: &2$&a%format({_upgrade})%", "" with all flags hidden
add 1 to {_slot}
if mod({_slot}+1, 9) = 0:
add 2 to {_slot}
if {_slot} >= 46:
exit loop
set {_amount} to (amount of {-gens::*})+1
set {_amount} to {_amount}/28
set {_amount} to ceil({_amount})
if {_amount} is greater than 1:
make gui slot 50 to arrow named "&aNext Page" with lore "", "&7• &fClick to go to the next page" and "" with all flags hidden:
genList({_p}, ({_page} - 1))
play sound "ui.toast.out" to {_p}
if {_page} = 1:
make gui slot 48 to red dye named "&cNo Pages" with lore "", "&7• &fThere are no more pages" and "" with all flags hidden
make gui slot 50 to arrow named "&aNext Page" with lore "", "&7• &fClick to go to the next page" and "" with all flags hidden:
genList({_p}, ({_page} + 1))
play sound "ui.toast.out" to {_p}
if {_page} is {_amount}:
make gui slot 50 to red dye named "&cNo Pages" with lore "", "&7• &fThere are no more pages" and "" with all flags hidden
make gui slot 48 to arrow named "&fGo Back" with lore "", "&7• &fClick to go to the next page" and "" with all flags hidden:
genList({_p}, ({_page} - 1))
play sound "ui.toast.out" to {_p}
open last gui to {_p}
command /genlist:
trigger:
genList(player)
command /gens [<text>] [<player>] [<itemtype>] [<integer>]:
permission: op
trigger:
if arg-1 is "give":
giveGens(arg-2, arg-3, arg-4)
if arg-1 is "reset":
loop {-gens::*}:
delete {-gens::%loop-index%::%uuid of arg-2%::*}
set {slots::%uuid of arg-2%} to 0
set {maxslots::%uuid of arg-2%} to 25
if arg-1 is "addslots":
add arg-4 to {maxslots::%uuid of arg-2%}
send "{@prefix} &fAdded %arg-4% to %arg-2%'s Gen Slots" to player
if arg-1 is "givewand3":
give arg-2 arg-4 of stick named "&b&lUpgrade Wand &7&o3x3" with lore "&8Tool", "", " &e&l| &fUpgrade gens in a 3x3 Area!"
if arg-1 is "givewand5":
give arg-2 arg-4 of stick named "&b&lUpgrade Wand &7&o5x5" with lore "&8Tool", "", " &e&l| &fUpgrade gens in a 5x5 Area!"
if arg-1 is "givewand10":
give arg-2 arg-4 of stick named "&b&lUpgrade Wand &7&o10x10" with lore "&8Tool", "", " &e&l| &fUpgrade gens in a 10x10 Area!"
on break of {@gens}:
if {gendata::gensloc::%uuid of player%::*} contains location of event-block:
cancel event
on break of {@gens}:
if {gendata::gensloc::%uuid of player%::*} != location of event-block:
cancel event
on place of {@gens}:
if off hand item of player does not contain air:
cancel event
stop
on craft of {@gens}:
cancel event
on block interact:
if {gendata::gensloc::%uuid of player%::*} contains location of event-block:
cancel event
prefix: &b&lGens &8>>
gens: coal block or raw copper block or copper block or raw iron block or iron block or raw gold block or gold block or lapis block or redstone block or diamond block or emerald block or obsidian or netherrack or nether gold ore or nether bricks or magma block or netherite block or basalt or blackstone or crying obsidian or end stone or sea lanter or prismarine or beacon
noprefix: &c
function registerGens(index: integer, id: itemtype, name: string, upgrade: number = 0, next: itemtype, drop: itemtype, sell: number, dropname: string):
set {-gens::%{_index}%} to {_id}
set {-gens::%{_index}%::name} to {_name}
set {-gens::%{_index}%::upgrade} to {_upgrade}
set {-gens::%{_index}%::next} to {_next}
set {-gens::%{_index}%::drop} to {_drop}
set {-gens::%{_index}%::sell} to {_sell}
set {-gens::%{_index}%::dropname} to {_dropname}
# format:
# loadgen( gen block item, gen drops item, level, upgrade price, sell price of drops)
#
# gens are upgraded based on level: 1,2,3,4 etc.
#
# the gen block item cannot be named as
# the name will be the name of the drop item
# eg. loadgen(diamond block, diamond named "crystal", 1, 100, 1)
# will be named "crystal gen" and is level 1 which will be auto given
# to new players and diamond named "crystal" sells for 1
# and gen costs 100 to upgrade to next
loadgen(block of coal, coal named "&8&lCoal", 1, 100, 1,)
loadgen(block of raw copper, raw copper ingot named "&6&lRaw copper", 2, 700, 5)
loadgen(block of copper, copper ingot named "&6&lCopper", 3, 1800, 8)
loadgen(block of raw iron, raw iron named "&f&lRaw Iron", 4, 7000, 12)
loadgen(block of iron, iron ingot named "&f&lIron", 5, 14000, 20)
loadgen(block of raw gold, raw gold ingot named "&e&lRaw gold", 6, 20000, 25)
loadgen(gold block, gold ingot named "&e&lGold", 7, 50000, 30)
loadgen(block of lapis lazuli, lapis lazuli named "&9&lLapis", 8, 100000, 35)
loadgen(block of redstone, redstone named "&c&lRedstone", 9, 200000, 40)
loadgen(block of diamond, diamond named "&b&lDiamond", 10, 400000, 50)
loadgen(block of emerald, emerald named "&a&lEmerald", 11, 700000, 53)
loadgen(obsidian, obsidian named "&7&lObsidian", 12, 1000000, 60)
loadgen(netherrack, nether wart named "&c&lNether Wart", 13, 5000000, 64)
loadgen(nether gold ore, gold nugget named "&6&lNether gold", 14, 14000000, 76)
loadgen(nether bricks, nether brick named "&c&lNether ingot", 15, 30000000, 83)
loadgen(magma block, magma cream named "&6&lMagma fragment", 16, 80000000, 91)
loadgen(netherite block, netherite ingot named "&8&lNetherite", 17, 160000000, 103)
loadgen(basalt, flint named "&8&lbasalt fragment", 18, 200000000, 113)
loadgen(blackstone, blackstone button named "&8&lBlackstone", 19, 350000000, 124)
loadgen(crying obsidian, ghast tear named "&f&lTear of Obsidian", 20, 500000000, 137)
loadgen(end stone, end rod named "&dEnd rod", 21, 800000000, 144)
loadgen(sea lantern, heart of the sea named "&3Heart of the sea", 21, 1000000000, 190)
loadgen(prismarine, prismarine shard named "&3Prismarine", 22, 4000000000, 800)
loadgen(beacon, nether star named "&f&lNether star", 23, 6000000000, 1200)
on place of coal block or raw copper block or copper block or raw iron block or iron block or raw gold block or gold block or lapis block or redstone block or diamond block or emerald block or obsidian or netherrack or nether gold ore or nether bricks or magma block or netherite block or basalt or blackstone or crying obsidian or end stone or sea lanter or prismarine or beacon:
cancel event
every {@spawntime} seconds:
loop all players:
genData(loop-player)
function genData(p: player):
loop {gendata::gensloc::%uuid of {_p}%::*}:
chunk at loop-value is loaded
add 1 to {_counter}
if {_counter}+0 > 100:
wait 3 ticks
delete {_counter}
dropItems(loop-value-1, {_p})
function dropItems(loc: location, p: player):
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
set {_block} to block at {_loc}
{_type} = {_block}
set {_drop} to {-gens::%loop-index-1%::drop}
set {_name} to {-gens::%loop-index-1%::dropname}
set {_price} to {-gens::%loop-index-1%::sell}
set name of {_drop} to "%{_name}%"
set lore of {_drop} to "", "&8• &fSell me for &2$&a%format({_price})%", ""
set {_drops} to (1 * (1+{pets::boost::%uuid of {_p}%}))
drop {_drops} of {_drop} 1 meter above {_loc} without velocity
function giveGens(p: player, block: itemtype, amount: integer):
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
set {_upgrade} to {-gens::%loop-index%::upgrade}
set {_name} to {-gens::%loop-index%::name}
set {_sell} to {-gens::%loop-index%::sell}
{_type} = {_block}
set {_gen} to {_type} named "%{_name}% &8[&fTier %loop-index parsed as a number%&8]" with lore "&8Generator", "", "&8• &fUpgrade: &2$&a%format({_upgrade})%", "&8• &fDrop Sell: &2$&a%format({_sell})%", "" with all flags hidden
give {_p} {_amount} of {_gen}
function upgradeGens(p: player, block: itemtype, loc: location):
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
{_type} = {_block}
set {_upgrade} to {-gens::%loop-index%::upgrade}
{_upgrade} != 0
set {_next} to {-gens::%loop-index%::next}
if {_p}'s balance < ({_upgrade}):
send action bar "{@prefix} &fYou need &2$&a%format({_upgrade})%!" to {_p}
stop
remove ({_upgrade}) from {_p}'s balance
set block at {_loc} to {_next}
set {_block} to "%{_block}%"
set {_index} to loop-index parsed as an number
send action bar "{@prefix} &fUpgraded Generator!" to {_p}
stop
function placeGens(p: player, block: itemtype):
set {slots::%uuid of {_p}%} to 0 if {slots::%uuid of {_p}%} is not set
set {maxslots::%uuid of {_p}%} to 25 if {maxslots::%uuid of {_p}%} is not set
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
{_type} = {_block}
{slots::%uuid of {_p}%} < {maxslots::%uuid of {_p}%}
add 1 to {slots::%uuid of {_p}%}
send action bar "{@prefix} &fPlaced Generator &7(&f%{slots::%uuid of {_p}%}%&7/&f%{maxslots::%uuid of {_p}%}%&7)" to {_p}
send title "&aPlaced Gen &7(&f%{slots::%uuid of {_p}%}%&7/&f%{maxslots::%uuid of {_p}%}%&7)" with subtitle "&aShift Right-Click to upgrade, Shift Left-Click to delete" to {_p}
function genCheck(p: player):
loop {gendata::loc::%uuid of {_p}%::*}:
if {gendata::loc::%uuid of {_p}%::%loop-value%} = "air":
remove 1 from {slots::%uuid of {_p}%}
if {slots::%uuid of {_p}%} is less than 0:
set {slots::%uuid of {_p}%} to 0
if {slots::%uuid of {_p}%} is not set:
set {slots::%uuid of {_p}%} to 0
#every 30 seconds:
#loop all players:
#genCheck(loop-player)
on join:
while player is online:
genCheck(player)
wait 1 seconds
on place of {@gens}:
if {_waited} is less than a minute:
message "&cWait, you have a cooldown of{_waited}%"
stop
if name of player's tool contains "GEN":
event-world is "{@genworld}"
set {_tool} to player's tool
if ({slots::%uuid of player%}) >= {maxslots::%uuid of player%} ? 25:
cancel event
stop
placeGens(player, event-block)
set {_block2} to type of event-block
add location of event-block to {gendata::gensloc::%uuid of player%::*}
dropItems(location of event-block, player)
wait 2 ticks
block at location of event-block != {_block2}
loop {-gens::*}:
set {_event} to {-gens::%loop-index%}
{_event} = {_block2}
remove 1 from {slots::%uuid of player%}
on right click on {@gens}:
player is sneaking
{gendata::gensloc::%uuid of player%::*} contains location of event-block
set {_block} to type of event-block
set {_loc} to location of event-block
if {_block} is lit redstone ore:
set {_block} to redstone ore
if uncolored name of player's tool contains "Upgrade Wand 3x3":
set {_loc} to location of event-block
add 1 to x-coord of {_loc}
add 1 to z-coord of {_loc}
set {_pos1} to {_loc}
remove 2 from x-coord of {_loc}
remove 2 from z-coord of {_loc}
loop all blocks within {_pos1} and {_loc}:
loop-block != air
set {_loc} to location of loop-block
set {_block} to type of loop-block
if {_block} is lit redstone ore:
set {_block} to redstone ore
upgradeGens(player, {_block}, {_loc})
else if uncolored name of player's tool contains "Upgrade Wand 5x5":
set {_loc} to location of event-block
add 2 to x-coord of {_loc}
add 2 to z-coord of {_loc}
set {_pos1} to {_loc}
remove 4 from x-coord of {_loc}
remove 4 from z-coord of {_loc}
loop all blocks within {_pos1} and {_loc}:
loop-block != air
set {_loc} to location of loop-block
set {_block} to type of loop-block
if {_block} is lit redstone ore:
set {_block} to redstone ore
upgradeGens(player, {_block}, {_loc})
else if uncolored name of player's tool contains "Upgrade Wand 10x10":
set {_loc} to location of event-block
add 5 to x-coord of {_loc}
add 5 to z-coord of {_loc}
set {_pos1} to {_loc}
remove 10 from x-coord of {_loc}
remove 10 from z-coord of {_loc}
loop all blocks within {_pos1} and {_loc}:
loop-block != air
set {_loc} to location of loop-block
set {_block} to type of loop-block
if {_block} is lit redstone ore:
set {_block} to redstone ore
upgradeGens(player, {_block}, {_loc})
else:
upgradeGens(player, {_block}, {_loc})
on left click on {@gens}:
set {gendata::cooldown::%uuid of player%} to now
set {_block} to "%type of event-block%"
replace all " " in {_block} with "_"
loop {-gens::*}:
set {_type} to {-gens::%loop-index%}
{_type} = type of event-block
replace all "_" in {_block} with " "
if {_block} is "lit redstone ore":
replace all "lit " in {_block} with ""
execute console command "gens give %player% %{_block}% 1"
remove location of event-block from {gendata::gensloc::%uuid of player%::*}
remove 1 from {slots::%uuid of player%}
set event-block to air
send action bar "{@prefix} &fRemoved Generator &7(&f%{slots::%uuid of player%}%&7/&f%{maxslots::%uuid of player%}%&7)" to player
function genList(p: player, page: number = 1):
create a gui with virtual chest inventory with 6 rows named "Gen List (&b%{_page}%&8)":
make gui slot (all integers between 0 and 53) with black stained glass pane named "&7" with all flags hidden
make gui slot (10,11,12,13,14,15,16,19,20,21,22,23,24,25,28,29,30,31,32,33,34,37,38,39,40,41,42,43) with stone button named "&7" with all flags hidden
make gui slot 49 with barrier named "&c&lClick to exit" with all flags hidden:
close inventory of {_p}
set {_slot} to 10
set {_minIndex} to 1+(({_page}-1)*28)
loop {-gens::*}:
add 1 to {_index}
{_index} >= {_minIndex}
set {_item} to {-gens::%loop-index%}
set {_upgrade} to {-gens::%loop-index%::upgrade}
set {_name} to {-gens::%loop-index%::name}
set {_sell} to {-gens::%loop-index%::sell}
make gui slot {_slot} with {_item} named "%{_name}% &8[&fTier %loop-index parsed as a number%&8]" with lore "&8Generator", "", "&8• &fSell: &2$&a%format({_sell})%", "&8• &fUpgrade: &2$&a%format({_upgrade})%", "" with all flags hidden
add 1 to {_slot}
if mod({_slot}+1, 9) = 0:
add 2 to {_slot}
if {_slot} >= 46:
exit loop
set {_amount} to (amount of {-gens::*})+1
set {_amount} to {_amount}/28
set {_amount} to ceil({_amount})
if {_amount} is greater than 1:
make gui slot 50 to arrow named "&aNext Page" with lore "", "&7• &fClick to go to the next page" and "" with all flags hidden:
genList({_p}, ({_page} - 1))
play sound "ui.toast.out" to {_p}
if {_page} = 1:
make gui slot 48 to red dye named "&cNo Pages" with lore "", "&7• &fThere are no more pages" and "" with all flags hidden
make gui slot 50 to arrow named "&aNext Page" with lore "", "&7• &fClick to go to the next page" and "" with all flags hidden:
genList({_p}, ({_page} + 1))
play sound "ui.toast.out" to {_p}
if {_page} is {_amount}:
make gui slot 50 to red dye named "&cNo Pages" with lore "", "&7• &fThere are no more pages" and "" with all flags hidden
make gui slot 48 to arrow named "&fGo Back" with lore "", "&7• &fClick to go to the next page" and "" with all flags hidden:
genList({_p}, ({_page} - 1))
play sound "ui.toast.out" to {_p}
open last gui to {_p}
command /genlist:
trigger:
genList(player)
command /gens [<text>] [<player>] [<itemtype>] [<integer>]:
permission: op
trigger:
if arg-1 is "give":
giveGens(arg-2, arg-3, arg-4)
if arg-1 is "reset":
loop {-gens::*}:
delete {-gens::%loop-index%::%uuid of arg-2%::*}
set {slots::%uuid of arg-2%} to 0
set {maxslots::%uuid of arg-2%} to 25
if arg-1 is "addslots":
add arg-4 to {maxslots::%uuid of arg-2%}
send "{@prefix} &fAdded %arg-4% to %arg-2%'s Gen Slots" to player
if arg-1 is "givewand3":
give arg-2 arg-4 of stick named "&b&lUpgrade Wand &7&o3x3" with lore "&8Tool", "", " &e&l| &fUpgrade gens in a 3x3 Area!"
if arg-1 is "givewand5":
give arg-2 arg-4 of stick named "&b&lUpgrade Wand &7&o5x5" with lore "&8Tool", "", " &e&l| &fUpgrade gens in a 5x5 Area!"
if arg-1 is "givewand10":
give arg-2 arg-4 of stick named "&b&lUpgrade Wand &7&o10x10" with lore "&8Tool", "", " &e&l| &fUpgrade gens in a 10x10 Area!"
on break of {@gens}:
if {gendata::gensloc::%uuid of player%::*} contains location of event-block:
cancel event
on break of {@gens}:
if {gendata::gensloc::%uuid of player%::*} != location of event-block:
cancel event
on place of {@gens}:
if off hand item of player does not contain air:
cancel event
stop
on craft of {@gens}:
cancel event
on block interact:
if {gendata::gensloc::%uuid of player%::*} contains location of event-block:
cancel event