import: java.util.List java.util.Arrays java.util.ArrayList org.bukkit.event.server.TabCompleteEvent function createZakon(owner: player, tag: text, name: text): set {Zakon.settings.name::%{_tag}%} to {_name} set {Zakon.settings.tag::%{_tag}%} to {_tag} set {Zakon.settings.lvl::%{_tag}%} to 1 set {Zakon.settings.exp::%{_tag}%} to 0 set {Zakon.settings.next::%{_tag}%} to 150000 set {Zakon.settings.skarbiec::%{_tag}%} to 0 set {Zakon.settings.maxmembers::%{_tag}%} to 5 set {Zakon.settings.skillpoints::%{_tag}%} to 0 setOwnerZakon({_owner}, {_tag}) addPlayerZakon({_owner}, {_tag}) function setOwnerZakon(p: player, tag: text): set {Zakon.settings.owner::%{_tag}%} to {_p} function addPlayerZakon(p: player, tag: text): add {_p} to {Zakon.members.%{_tag}%::*} set {Zakon.player::%{_p}%} to {_tag} function deleteZakon(tag: text): clear {Zakon.settings.name::%{_tag}%} clear {Zakon.settings.tag::%{_tag}%} clear {Zakon.settings.lvl::%{_tag}%} clear {Zakon.settings.exp::%{_tag}%} clear {Zakon.settings.next::%{_tag}%} clear {Zakon.settings.skarbiec::%{_tag}%} clear {Zakon.settings.maxmembers::%{_tag}%} clear {Zakon.settings.owner::%{_tag}%} clear {Zakon.settings.zastepcy.%{_tag}%::*} clear {Zakon.settings.skillpoints::%{_tag}%} loop {Zakon.members.%{_tag}%::*}: kickPlayerZakon(loop-value) send "&6&lWarning! &eTwój zakon został rozwiązany!" to loop-value loop {Top.zlvl::*}: if loop-value is {_tag}: clear {Top.zlvl::%loop-index%} function kickPlayerZakon(p: offlineplayer): set {_tag} to {Zakon.player::%{_p}%} remove {_p} from {Zakon.members.%{_tag}%::*} clear {Zakon.player::%{_p}%} loop {Zakon.settings.zastepcy.%{_tag}%::*}: if loop-value is {_p}: remove {_p} from {Zakon.settings.zastepcy.%{_tag}%::*} exit loop if world of {_p} is "Zakony": teleport {_p} to {Server.spawn} function messageToMembers(tag: text, text: text): loop {Zakon.members.%{_tag}%::*}: send "%{_text}%" to loop-value # poziomy function addExpZakon(tag: text, exp: number): add {_exp} to {Zakon.settings.exp::%{_tag}%} checkLvlUpZakon({_tag}) function checkLvlUpZakon(tag: text): set {_exp} to {Zakon.settings.exp::%{_tag}%} set {_next} to {Zakon.settings.next::%{_tag}%} set {_lvl} to {Zakon.settings.lvl::%{_tag}%} set {_name} to {Zakon.settings.name::%{_tag}%} set {_members} to {Zakon.settings.maxmembers::%{_tag}%} set {_bool} to false while {_exp}>={_next}: set {_bool} to true remove {_next} from {_exp} set {_next} to round({_next}*2.5) add 1 to {_lvl} set {_members} to {_members}*2 add 1 to {Zakon.settings.skillpoints::%{_tag}%} if {_bool}: set {Zakon.settings.exp::%{_tag}%} to {_exp} set {Zakon.settings.next::%{_tag}%} to {_next} set {Zakon.settings.lvl::%{_tag}%} to {_lvl} set {Zakon.settings.maxmembers::%{_tag}%} to {_members} broadcast "&d&lLVL UP! &fZakon &a%{_name}% &8[&o%{_tag}%&8] &fawansowal na poziom &c%{_lvl}%&f!" # permisje function checkZakonPermissions(p: player, ifowner: boolean) :: boolean: set {_tag} to {Zakon.player::%{_p}%} if {_ifowner}: if {Zakon.settings.owner::%{_tag}%} is {_p}: return true else: return false else: if {Zakon.settings.owner::%{_tag}%} is {_p}: return true else: loop {Zakon.settings.zastepcy.%{_tag}%::*}: if loop-value is {_p}: return true return false function isZakonZastepca(p: player) :: boolean: set {_tag} to {Zakon.player::%{_p}%} loop {Zakon.settings.zastepcy.%{_tag}%::*}: if loop-value is {_p}: return true return false # siedziba function checkSiedzibaWymagania(tag: text) :: boolean: if {Zakon.settings.lvl::%{_tag}%} < 3: return false if {Zakon.settings.skarbiec::%{_tag}%} < 5000000: return false if size of {Zakon.members.%{_tag}%::*} < 5: return false return true function createSiedzibaZakon(owner: player, tag: text): if {Zakon.global::loc1} is not set: set {Zakon.global::loc1} to 0 set {Zakon.global::loc2} to 0 set {Zakon.global::cam} to 0 else: if {Zakon.global.cam} < 5: add 300 to {Zakon.global::loc1} else: set {Zakon.global::loc1} to 0 add 300 to {Zakon.global::loc1} teleport {_owner} to location at (0, 153, 0) in world "Zakony" send {_owner} title "&6&lProszę czekać..." with subtitle "&eTworzenie siedziby zakonu" for 2 seconds wait 2 seconds teleport {_owner} to location at ({Zakon.global::loc1}, 50, {Zakon.global::loc2}) in world "Zakony" loadSchematicZakon({_owner}) set {Zakon.settings.siedziba.center::%{_tag}%} to location of {_owner} set {Zakon.settings.siedziba::%{_tag}%} to location of {_owner} set block at {Zakon.settings.siedziba.center::%{_tag}%} to enchanting table resetZakonUpgrades({_tag}) function loadSchematicZakon(p: player): loop blocks in radius 5 around {_p}: if y-coordinate of loop-block > y-coordinate of {_p}: set loop-block to air set block under location of {_p} to glowstone function inZakonRegion(p: player, loc: location) :: boolean: if world of {_p} is "Zakony": set {_tag} to {Zakon.player::%{_p}%} if distance between {_loc} and {Zakon.settings.siedziba.center::%{_tag}%} is more than 100: send "&4&lError! &cJestes za daleko od srodka siedziby!" to {_p} return false if {_loc} is {Zakon.settings.siedziba.center::%{_tag}%}: send "&4&lError! &cNie możesz zniczyć centrum siedziby!" to {_p} return false return true else: return false function isSpecialZakonBlock(p: player, location: location) :: boolean: set {_loc} to {_location} set {_loc} to "%{_loc}%" set {_loc::*} to {_loc} split at ", " set {_x} to {_loc::1} set {_y} to {_loc::2} set {_z} to {_loc::3} replace all "x: " in {_x} with "" replace all "y: " in {_y} with "" replace all "z: " in {_z} with "" set {_x} to {_x} parsed as number set {_y} to {_y} parsed as number set {_z} to {_z} parsed as number remove 0.5 from {_x} remove 0.5 from {_y} remove 0.5 from {_z} set {_loc} to location at ({_x}, {_y}, {_z}) in world "Zakony" if block at location at ({_loc}) is glowstone: set {_loc} to location above {_loc} set {_location} to location above {_location} set {_tag} to {Zakon.player::%{_p}%} if {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} is true: set {_block} to block at {_loc} #broadcast "%{_block}%" if {_block} is anvil: drop {Server.items::kowal} at {_loc} if {_block} is crafting table: drop {Server.items::konstruktor} at {_loc} if {_block} is furnace: drop {Server.items::kuźniaklucznika} at {_loc} if {_block} is jukebox: drop {Server.items::magicznypisarz} at {_loc} if {_block} is brewing stand: drop {Server.items::alchemik} at {_loc} clear {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} set block at {_loc} to air set block at location under {_loc} to stone return true if "%{_loc}%" is "%{Zakon.settings.siedziba.center::%{_tag}%}%": return true return false function placeSpecialZakonBlock(p: player, location: location): # :: boolean: set {_tag} to {Zakon.player::%{_p}%} if block under {_location} is anvil or crafting table or furnace or jukebox or brewing stand or enchanting table or end portal frame: #set {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} to true stop if {_p}'s tool is anvil: #remove {Server.items::kowal} from {_p} set block at location under {_location} to glowstone #set block at {_location} to anvil set {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} to true if {_p}'s tool is crafting table: #remove {Server.items::konstruktor} from {_p} set block at location under {_location} to glowstone #set block at {_location} to crafting table set {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} to true if {_p}'s tool is furnace: #remove {Server.items::kuźniaklucznika} from {_p} set block at location under {_location} to glowstone #set block at {_location} to furnace set {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} to true if {_p}'s tool is jukebox: #remove {Server.items::magicznypisarz} from {_p} set block at location under {_location} to glowstone #set block at {_location} to jukebox set {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} to true if {_p}'s tool is brewing stand: #remove {Server.items::alchemik} from {_p} set block at location under {_location} to glowstone #set block at {_location} to brewing stand set {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} to true if {_p}'s tool is end portal frame: #remove {Server.items::skrytka} from {_p} set block at location under {_location} to glowstone #set block at {_location} to end portal frame set {Zakon.settings.specialblocks.%{_tag}%::%{_location}%} to true # return true # ulepszanie function openZakonUpgradeMenu(p: player, tag: text): open chest with 3 rows named "&lZakon %{_tag}% | Upgrade Menu" to {_p} set {_} to 0 loop 27 times: set slot {_} of {_p}'s current inventory to black glass pane named " " add 1 to {_} set slot 10 of {_p}'s current inventory to gold ingot named "&c&lBonusy Pieniędzy" with lore "&7Kliknij aby otworzyć menu", "&7z sklepem dającym bonusy", "&7zdobywanych pieniędzy dla", "&7członków zakonu" set slot 11 of {_p}'s current inventory to bottle o' enchanting named "&c&lBonusy Doświadczenia" with lore "&7Kliknij aby otworzyć menu", "&7z sklepem dającym bonusy", "&7zdobywanego doświadczenia dla", "&7zakonu oraz jego członków" set slot 13 of {_p}'s current inventory to empty map named "&c&lMapy Specjalne" with lore "&7Kliknij aby otworzyć menu", "&7z mapami specjalnymi", "&r", "&a&lWymagania:", "&8» &7Min. 5 poziom zakonu", "&8» &7Min. 10 członków w zakonie" set slot 14 of {_p}'s current inventory to chest named "&c&lMagazyn" with lore "&7Kliknij aby otworzyć magazyn.", "&7Możesz w nim schować przedmioty", "&7które będą mogli brać", "&7również członkowie zakonu" set slot 16 of {_p}'s current inventory to crafting table named "&c&lCraftingi Specjalne" with lore "&7Kliknij aby otworzyć menu", "&7z sklepem w którym", "&7możesz zakupić", "&7specjalne craftingi dla", "&7członków zakonu" on right click on enchanting table: if world of player is "Zakony": cancel event set {_tag} to {Zakon.player::%player%} openZakonUpgradeMenu(player, {_tag}) on inventory click: if inventory name of player's current inventory contains "Upgrade Menu": cancel event set {_tag} to {Zakon.player::%player%} if clicked item is chest named "&c&lMagazyn" with lore "&7Kliknij aby otworzyć magazyn.", "&7Możesz w nim schować przedmioty", "&7które będą mogli brać", "&7również członkowie zakonu": openZakonStorage(player, {_tag}) if clicked item is bottle o' enchanting named "&c&lBonusy Doświadczenia" with lore "&7Kliknij aby otworzyć menu", "&7z sklepem dającym bonusy", "&7zdobywanego doświadczenia dla", "&7zakonu oraz jego członków": if checkZakonPermissions(player, false): openZakonExpUpgrade(player, {_tag}) else: send "&4&lError! &cTylko właściciel i zastępcy mogą z tego korzystać!" if clicked item is gold ingot named "&c&lBonusy Pieniędzy" with lore "&7Kliknij aby otworzyć menu", "&7z sklepem dającym bonusy", "&7zdobywanych pieniędzy dla", "&7członków zakonu": if checkZakonPermissions(player, false): openZakonMoneyUpgrade(player, {_tag}) else: send "&4&lError! &cTylko właściciel i zastępcy mogą z tego korzystać!" if clicked item is crafting table named "&c&lCraftingi Specjalne" with lore "&7Kliknij aby otworzyć menu", "&7z sklepem w którym", "&7możesz zakupić", "&7specjalne craftingi dla", "&7członków zakonu": if checkZakonPermissions(player, false): openZakonCraftMenu(player, {_tag}) else: send "&4&lError! &cTylko właściciel i zastępcy mogą z tego korzystać!" #craftingi function ZakonAddItemLevel(item: item, lvl: number) :: item: set {_i} to {_item} set {_lore::*} to lore of {_i} set {_size} to size of {_lore::*} set line ({_size}+1) of lore of {_i} to "&7Wymagany poziom zakonu&8: &e%{_lvl}%" return {_i} function ZakonAddItemPrize(item: item, prize: number) :: item: set {_i} to {_item} set {_lore::*} to lore of {_i} set {_size} to size of {_lore::*} set line ({_size}+2) of lore of {_i} to "&7Cena&8: &e$%{_prize}%" return {_i} function ZakonRemoveLines(i: item) :: item: set {_lore} to new ArrayList() set {_i.lore::*} to lore of {_i} loop {_i.lore::*}: if loop-value is "&r" or "" or " ": exit loop {_lore}.add(loop-value) set {_meta} to {_i}.getItemMeta() {_meta}.setLore({_lore}) {_i}.setItemMeta({_meta}) return {_i} function ZakonGetItemPrize(i: item) :: number: set {_lore::*} to lore of {_i} loop {_lore::*}: if uncolored loop-value contains "Cena:": set {_prize} to uncolored loop-value exit loop replace all "Cena: $" in {_prize} with "" set {_prize} to {_prize} parsed as number return {_prize} function ZakonGetItemLvl(i: item) :: number: set {_lore::*} to lore of {_i} loop {_lore::*}: if uncolored loop-value contains "Wymagany poziom zakonu:": set {_lvl} to uncolored loop-value exit loop replace all "Wymagany poziom zakonu: " in {_lvl} with "" set {_lvl} to {_lvl} parsed as number return {_lvl} function openZakonCraftMenu(p: player, tag: text): close {_p}'s inventory wait 1 tick open chest with 1 rows named "&lZakon %{_tag}% | Special Craftings" to {_p} set slot 1 of {_p}'s current inventory to ZakonAddItemPrize({Server.items::konstruktor}, 250000) set slot 2 of {_p}'s current inventory to ZakonAddItemLevel(ZakonAddItemPrize({Server.items::magicznypisarz}, 5000000), 4) set slot 3 of {_p}'s current inventory to ZakonAddItemLevel(ZakonAddItemPrize({Server.items::kuźniaklucznika}, 5000000), 5) set slot 5 of {_p}'s current inventory to ZakonAddItemLevel(ZakonAddItemPrize({Server.items::skrytka}, 8000000), 6) set slot 6 of {_p}'s current inventory to ZakonAddItemLevel(ZakonAddItemPrize({Server.items::kowal}, 15000000), 7) set slot 7 of {_p}'s current inventory to ZakonAddItemLevel(ZakonAddItemPrize({Server.items::alchemik}, 10000000), 8) on inventory click: if inventory name of player's current inventory is "&lZakon %{Zakon.player::%player%}% | Special Craftings": cancel event if clicked item is not air: set {_tag} to {Zakon.player::%player%} if {Zakon.settings.skarbiec::%{_tag}%} < ZakonGetItemPrize(clicked item): send "&4&lError! &cTwój zakon nie stać na ten blok!" stop if {Zakon.settings.lvl::%{_tag}%} < ZakonGetItemLvl(clicked item): send "&4&lError! &cTwój zakon ma za mały poziom!" stop remove ZakonGetItemPrize(clicked item) from {Zakon.settings.skarbiec::%{_tag}%} add ZakonRemoveLines(clicked item) to player messageToMembers({_tag}, "&d&lZAKON &fGracz &a%player% &fzakupił &6%name of clicked item%&f!") #reset function resetZakonUpgrades(tag: text): clear {Zakon.storage.%{_tag}%::*} clear {Zakon.upgrades.specialmaps.%{_tag}%::*} set {Zakon.upgrades.playermoney::%{_tag}%} to 0 set {Zakon.upgrades.playerexp::%{_tag}%} to 0 set {Zakon.upgrades.zakonexp::%{_tag}%} to 0 #magazyn function openZakonStorage(p: player, tag: text): close {_p}'s inventory wait 1 tick open chest with 3 rows named "&lZakon %{_tag}% | Storage" to {_p} set {_} to 0 loop 27 times: set slot {_} of {_p}'s current inventory to {Zakon.storage.%{_tag}%::%{_}%} add 1 to {_} on inventory close: if inventory name of player's current inventory is "&lZakon %{Zakon.player::%player%}% | Storage": set {_} to 0 loop 27 times: set {Zakon.storage.%{Zakon.player::%player%}%::%{_}%} to slot {_} of player's current inventory add 1 to {_} #upgrade money function checkZakonUpgradedMoney(p: player, tag: text): set {_lvl} to {Zakon.upgrades.playermoney::%{_tag}%} set {_mnoznik} to ({_lvl}+1)*0.1 set {_prize} to ({_lvl}+1)*40000 if {_lvl} is 0: set slot 11 of {_p}'s current inventory to sunflower named "&6&lMożliwe Ulepszenie" with lore "&7Cena&8: &6$%{_prize}%","&r","&7Zwiększa pieniądze zdobywane","&7poprzez zabijanie mobów","&7do &e%{_mnoznik}%0%%&7 dla", "&7wszystkich członków zakonu" else: set {_} to 11 loop {_lvl} times: set slot {_} of {_p}'s current inventory to glowing emerald named "&2&lZakupiono Ulepszenie" with lore "&7To ulepszenie zostało zakupione" add 1 to {_} if {_lvl} < 6: set slot {_} of {_p}'s current inventory to sunflower named "&6&lMożliwe Ulepszenie" with lore "&7Cena&8: &6$%{_prize}%","&r","&7Zwiększa pieniądze zdobywane","&7poprzez zabijanie mobów","&7do &e%{_mnoznik}%0%%&7 dla", "&7wszystkich członków zakonu" function openZakonMoneyUpgrade(p: player, tag: text): close {_p}'s inventory wait 1 tick open chest with 3 rows named "&lZakon %{_tag}% | Money Upgrade" to {_p} set {_} to 0 loop 27 times: set slot {_} of {_p}'s current inventory to black glass pane named " " add 1 to {_} set slot 9 of {_p}'s current inventory to gold ingot named "&fBonusy Członków &a»" with lore "&7Aktualny bonus&8: &e%{Zakon.upgrades.playermoney::%{_tag}%}%0%%" set {_} to 11 loop 2 times: loop 6 times: set slot {_} of {_p}'s current inventory to barrier named "&4&lBrak Ulepszenia" with lore "&7Aby zdobyć to ulepszenie musisz","&7zdobyć pierw poprzednie" add 1 to {_} set {_} to 29 checkZakonUpgradedMoney({_p}, {_tag}) on inventory click: if inventory name of player's current inventory is "&lZakon %{Zakon.player::%player%}% | Money Upgrade": cancel event if clicked item is sunflower: set {_tag} to {Zakon.player::%player%} set {_lore::*} to lore of clicked item set {_prize} to {_lore::1} set {_prize} to uncolored {_prize} replace all "Cena: $" in {_prize} with "" set {_prize} to {_prize} parsed as number if {Zakon.settings.skarbiec::%{_tag}%} < {_prize}: send "&4&lError! &cW skarbcu twojego zakonu nie ma tyle pieniędzy!" stop remove {_prize} from {Zakon.settings.skarbiec::%{_tag}%} add 1 to {Zakon.upgrades.playermoney::%{_tag}%} wait 1 tick messageToMembers({_tag}, "&d&lZAKON &fGracz &a%player% &fulepszył pieniądze zdobywane z mobów przez członków zakonu na &c%{Zakon.upgrades.playermoney::%{_tag}%}% poziom&f!") close player's inventory #upgrade experience function checkZakonUpgradedExp(p: player, tag: text, type: text): set {_lvl} to {Zakon.upgrades.%{_type}%::%{_tag}%} set {_mnoznik} to ({_lvl}+1)*0.1 set {_prize} to ({_lvl}+1)*35000 if {_lvl} is 0: if {_type} is "playerexp": set slot 11 of {_p}'s current inventory to sunflower named "&6&lMożliwe Ulepszenie" with lore "&7Cena&8: &6$%{_prize}%","&r","&7Zwiększa doświadczenie zdobywane","&7poprzez zabijanie mobów","&7do &e%{_mnoznik}%0%%&7 dla", "&7wszystkich członków zakonu" if {_type} is "zakonexp": set slot 29 of {_p}'s current inventory to sunflower named "&6&lMożliwe Ulepszenie" with lore "&7Cena&8: &6$%{_prize}%","&r","&7Zwiększa doświadczenie zdobywane","&7dla zakonu przez członków","&7do &e%{_mnoznik}%0%%&7" else: if {_type} is "playerexp": set {_} to 11 if {_type} is "zakonexp": set {_} to 29 loop {_lvl} times: set slot {_} of {_p}'s current inventory to glowing emerald named "&2&lZakupiono Ulepszenie" with lore "&7To ulepszenie zostało zakupione" add 1 to {_} if {_lvl} < 6: if {_type} is "playerexp": set slot {_} of {_p}'s current inventory to sunflower named "&6&lMożliwe Ulepszenie" with lore "&7Cena&8: &6$%{_prize}%","&r","&7Zwiększa doświadczenie zdobywane","&7poprzez zabijanie mobów","&7do &e%{_mnoznik}%0%%&7 dla", "&7wszystkich członków zakonu" if {_type} is "zakonexp": set slot {_} of {_p}'s current inventory to sunflower named "&6&lMożliwe Ulepszenie" with lore "&7Cena&8: &6$%{_prize}%","&r","&7Zwiększa doświadczenie zdobywane","&7dla zakonu przez członków","&7do &e%{_mnoznik}%0%%&7" function openZakonExpUpgrade(p: player, tag: text): close {_p}'s inventory wait 1 tick open chest with 5 rows named "&lZakon %{_tag}% | Exp Upgrade" to {_p} set {_} to 0 loop 45 times: set slot {_} of {_p}'s current inventory to black glass pane named " " add 1 to {_} set slot 9 of {_p}'s current inventory to bottle o' enchanting named "&fBonusy Członków &a»" with lore "&7Aktualny bonus&8: &e%{Zakon.upgrades.playerexp::%{_tag}%}%0%%" set slot 27 of {_p}'s current inventory to iron chestplate without any NBT named "&fBonusy Zakonu &a»" with lore "&7Aktualny bonus&8: &e%{Zakon.upgrades.zakonexp::%{_tag}%}%0%%" set {_} to 11 loop 2 times: loop 6 times: set slot {_} of {_p}'s current inventory to barrier named "&4&lBrak Ulepszenia" with lore "&7Aby zdobyć to ulepszenie musisz","&7zdobyć pierw poprzednie" add 1 to {_} set {_} to 29 checkZakonUpgradedExp({_p}, {_tag}, "playerexp") checkZakonUpgradedExp({_p}, {_tag}, "zakonexp") on inventory click: if inventory name of player's current inventory is "&lZakon %{Zakon.player::%player%}% | Exp Upgrade": cancel event if clicked item is sunflower: set {_tag} to {Zakon.player::%player%} set {_lore::*} to lore of clicked item set {_prize} to {_lore::1} set {_prize} to uncolored {_prize} replace all "Cena: $" in {_prize} with "" set {_prize} to {_prize} parsed as number if {Zakon.settings.skarbiec::%{_tag}%} < {_prize}: send "&4&lError! &cW skarbcu twojego zakonu nie ma tyle pieniędzy!" stop remove {_prize} from {Zakon.settings.skarbiec::%{_tag}%} if clicked slot > 18: add 1 to {Zakon.upgrades.zakonexp::%{_tag}%} wait 1 tick messageToMembers({_tag}, "&d&lZAKON &fGracz &a%player% &fulepszył doświadczenie zbierane dla zakonu na &c%{Zakon.upgrades.zakonexp::%{_tag}%}% poziom&f!") close player's inventory else if clicked slot < 18: add 1 to {Zakon.upgrades.playerexp::%{_tag}%} wait 1 tick messageToMembers({_tag}, "&d&lZAKON &fGracz &a%player% &fulepszył doświadczenie zdobywane z mobów przez członków zakonu na &c%{Zakon.upgrades.playerexp::%{_tag}%}% poziom&f!") close player's inventory else: send "&4&lError! &cWystąpił błąd podczas wykonywania czynności!" add {_prize} to {Zakon.settings.skarbiec::%{_tag}%} # bloki specjalne #konstruktor function ZakonOpenKonstruktor(p: player): set {_tag} to {Zakon.player::%{_p}%} open chest with 3 rows named "&lZakon %{_tag}% | Konstruktor" to {_p} set slot 0 of {_p}'s current inventory to ZakonAddItemPrize({Server.items::wiertło}, 55000) set slot 2 of {_p}'s current inventory to ZakonAddItemPrize(redstone block with lore "&7&oBlok budowlany", 80000) set slot 3 of {_p}'s current inventory to ZakonAddItemPrize(oak fence gate with lore "&7&oBlok budowlany", 80000) set slot 4 of {_p}'s current inventory to ZakonAddItemPrize(spruce fence gate with lore "&7&oBlok budowlany", 80000) set slot 5 of {_p}'s current inventory to ZakonAddItemPrize(birch fence gate with lore "&7&oBlok budowlany", 80000) set slot 6 of {_p}'s current inventory to ZakonAddItemPrize(jungle fence gate with lore "&7&oBlok budowlany", 80000) set slot 7 of {_p}'s current inventory to ZakonAddItemPrize(acacia fence gate with lore "&7&oBlok budowlany", 80000) set slot 8 of {_p}'s current inventory to ZakonAddItemPrize(dark oak fence gate with lore "&7&oBlok budowlany", 80000) set slot 11 of {_p}'s current inventory to ZakonAddItemPrize(chest with lore "&7&oBlok budowlany", 15000) set slot 12 of {_p}'s current inventory to ZakonAddItemPrize(iron trapdoor with lore "&7&oBlok budowlany", 40000) set slot 13 of {_p}'s current inventory to ZakonAddItemPrize(lever with lore "&7&oBlok budowlany", 5000) on right click on crafting table: if world of player is "Zakony": cancel event ZakonOpenKonstruktor(player) on inventory click: if inventory name of player's current inventory is "&lZakon %{Zakon.player::%player%}% | Konstruktor": cancel event if clicked item is air: stop if {Player.money::%player%} < ZakonGetItemPrize(clicked item): send "&4&lError! &cNie masz tyle pieniędzy!" stop add ZakonRemoveLines(clicked item) to player remove ZakonGetItemPrize(clicked item) from {Player.money::%player%} send "&2&lSuccess! &aPomyślnie kupiłeś przedmiot!" #kowal function ZakonUpgradeItem(p: player, toUp: item, ifUp: item, chance: number, mon: number): set {_tag} to {Zakon.player::%{_p}%} if {Player.money::%{_p}%} >= {_mon}: remove {_mon} from {Player.money::%{_p}%} set {_up} to false set {_amount} to {_ifUp}.getAmount() if {_amount} > 1: remove 1 from {_amount} {_ifUp}.setAmount({_amount}) add {_ifUp} to {_p}'s inventory {_toUp}.setAmount(1) chance of {_chance}%: set {_up} to true if {_up}: add {_toUp} to {_p}'s inventory send "&e&lKowal Zakonu %{_tag}%: &fTwoj przedmiot zostal pomyslnie ulepszony." to {_p} play "BLOCK_ANVIL_USE" to {_p} set {_!::*} to name of {_toUp} split at "[" set {_newLvl} to {_!::2} replace all "+" in {_newLvl} with "" replace all "]" in {_newLvl} with "" set {_newLvl} to {_newLvl} parsed as number if {_newLvl} >= 7: broadcast "&e&lKowal zakonu %{_tag}%: &fUlepszylem przedmiot gracza &a%{_p}% &fna poziom &c%{_newLvl}%&f!" else: send "&e&lKowal Zakonu %{_tag}%: &fNiestety. Przedmiot ktory dales mi do ulepszenia zostal spalony." to {_p} play "BLOCK_ANVIL_LAND" to {_p} else: add {_ifUp} to {_p}'s inventory send "&4&lError! &cNie masz pieniedzy na to ulepszenie!" to {_p} function ZakonOpenUpgradeMenu(p: player): open chest with 5 rows named "&lZakon %{Zakon.player::%{_p}%}% | Ulepsz przedmiot" to {_p} set slot 0 of {_p}'s current inventory to black glass pane named "&r" loop 44 times: set slot loop-number of {_p}'s current inventory to black glass pane named "&r" set slot 40 of {_p}'s current inventory to gray dye named "&8&mKliknij aby ulepszyc" with lore "&7Szansa na ulepszenie&8: &60%%", "&7Cena ulepszenia&8: &6$0" set slot 19 of {_p}'s current inventory to white glass pane named "&r" set slot 21 of {_p}'s current inventory to white glass pane named "&r" set slot 29 of {_p}'s current inventory to white glass pane named "&r" set slot 11 of {_p}'s current inventory to white glass pane named "&r" set slot 20 of {_p}'s current inventory to air set slot 22 of {_p}'s current inventory to arrow named "&8&m----->" #("MHF_ArrowRight" parsed as offlineplayer)'s skull named "&8&m----->" set slot 23 of {_p}'s current inventory to white glass pane named "&r" set slot 25 of {_p}'s current inventory to white glass pane named "&r" set slot 33 of {_p}'s current inventory to white glass pane named "&r" set slot 15 of {_p}'s current inventory to white glass pane named "&r" set slot 24 of {_p}'s current inventory to barrier named "&cWłóż przedmiot do ulepszenia" with lore "&cpo lewej stronie w puste miejsce!" on inventory click: if inventory name of player's current inventory is "&lZakon %{Zakon.player::%player%}% | Ulepsz przedmiot": if clicked item is not armour or sword or pickaxe or axe or shovel or hoe or bow or air or stick or bone or arrow: cancel event if clicked item is not air: if clicked item is light green dye: if name of clicked item is "&aKliknij aby ulepszyc": set {_chance} to uncolored line 1 of lore of clicked item set {_prize} to uncolored line 2 of lore of clicked item replace all "Cena ulepszenia: $" in {_prize} with "" replace all "Szansa na ulepszenie: " in {_chance} with "" replace all "%%" in {_chance} with "" set {_prize} to {_prize} parsed as number set {_chance} to {_chance} parsed as number set {_forUpgrade} to slot 20 of player's current inventory set {_ifUpgraded} to slot 24 of player's current inventory close player's inventory ZakonUpgradeItem(player, {_ifUpgraded}, {_forUpgrade}, {_chance}, {_prize}) else: if clicked slot is 24: if slot 20 of player's current inventory is not air: cancel event if clicked slot is 22: cancel event wait 1 tick if slot 20 of player's current inventory is not air: set {_i} to slot 20 of player's current inventory set {_!::*} to lore of {_i} set {_prize} to line (size of {_!::*}) of lore of {_i} set {_prize} to uncolored {_prize} replace all "Wartosc przedmiotu: $" in {_prize} with "" set {_prize} to {_prize} parsed as number if {_prize} > 0: set {_i2} to {_i} if {_i} is armour: set {_lvl} to level of protection of {_i} enchant {_i2} with "protection %{_lvl} + 3%" parsed as enchantment type else:# if {_i} is sword or pickaxe or axe or shovel or hoe: set {_lvl} to level of sharpness of {_i} enchant {_i2} with "sharpness %{_lvl} + 3%" parsed as enchantment type if {_lvl} > 0: set {_x::*} to name of {_i} split at "[" set {_newLvlX} to {_x::2} replace all "+" in {_newLvlX} with "" replace all "]" in {_newLvlX} with "" set {_newLvlX} to {_newLvlX} parsed as number set {_lvl} to {_newLvlX} else: set {_lvl} to 0 set {_newPrize} to "1.%{_lvl}+1%" parsed as number set {_newPrize} to round({_prize}*{_newPrize}) set {_n} to name of {_i2} set {_name::*} to {_n} split at " " set {_newName} to "" loop {_name::*}: if loop-value contains "[": set {_newName} to "%{_newName}%&e[+%{_lvl}+1%]" else: set {_newName} to "%{_newName}%%loop-value% " if {_newName} contains "[": set name of {_i2} to "%{_newName}%" else: set name of {_i2} to "%{_newName}%&e[+%{_lvl}+1%]" set line (size of {_!::*}) of lore of {_i2} to "&7Wartosc przedmiotu&8: &e$%{_newPrize}%" set slot 24 of player's current inventory to {_i2} set {_toUpgrade} to 100-({_lvl}+1)*({_lvl}+1) if {_toUpgrade} <= 0: set {_toUpgrade} to 1 set {_upgradePrize} to round({_newPrize}*1.1) set slot 40 of player's current inventory to light green dye named "&aKliknij aby ulepszyc" with lore "&7Szansa na ulepszenie&8: &6%{_toUpgrade}%%%", "&7Cena ulepszenia&8: &6$%{_upgradePrize}%" else: set slot 24 of player's current inventory to barrier named "&cWłóż przedmiot do ulepszenia" with lore "&cpo lewej stronie w puste miejsce!" set slot 40 of player's current inventory to gray dye named "&8&mKliknij aby ulepszyc" with lore "&7Szansa na ulepszenie&8: &60%%", "&7Cena ulepszenia&8: &6$0" on right click on anvil: cancel event if world of player is "Zakony": ZakonOpenUpgradeMenu(player) # komendy command /uwu: trigger: resetZakonUpgrades("%{Player.zakon::%player%}%") broadcast "%{Zakon.upgrades.playerexp::%{Zakon.player::%Player%}%}%" broadcast "%{Zakon.upgrades.zakonexp::%{Zakon.player::%Player%}%}%" command /zakony [] []: usage: /zakony help aliases: /zakon, /z trigger: if arg-1 is "help": send "&8●----------------------●" send "&r" send "&e/zakon zaloz " send "&e/zakon zapros " send "&e/zakon dolacz" send "&e/zakon wyrzuc " send "&e/zakon opusc" send "&e/zakon awans " send "&e/zakon degrad " send "&e/zakon lider " send "&e/zakon info " send "&e/zakon siedziba" send "&e/zakon skarbiec" send "&r" send "&4&lUwaga! &fZałożenie zakonu kosztuje &c$75kk &7&o(75 mln)&f!" send "&r" send "&8●----------------------●" if arg-1 is "zaloz": if {Zakon.player::%player%} is set: send "&4&lError! &cMasz juz zakon!" stop trigger if {Player.money::%player%} < 75000000: send "&4&lError! &cAby zalozyc zakon potrzeba &e$75kk &8&o(75 mln)&c!" stop if arg-2 is not set: send "&4&lError! &cNie podales tagu!" stop trigger if arg-3 is not set: send "&4&lError! &cNie podales nazwy!" stop trigger set {_tag} to arg-2 set {_name} to arg-3 if length of {_tag} is less than 3: send "&4&lError! &cTag nie moze byc krotszy niz 3 znakow!" stop trigger if length of {_tag} is more than 5: send "&4&lError! &cTag nie moze byc dluzszy niz 5 znakow!" stop trigger if length of {_name} is less than 7: send "&4&lError! &cNazwa nie moze byc krotsza niz 7 znakow!" stop trigger if length of {_name} is more than 18: send "&4&lError! &cNazwa nie moze byc dluzsza niz 18 znakow!" stop trigger createZakon(player, {_tag}, {_name}) remove 75000000 from {Player.money::%player%} broadcast "&d&lZAKONY &fGracz &a%player% &futworzył zakon &c%{_name}% &8[&o%{_tag}%&8]&f!" else if arg-1 is "zapros": if {Zakon.player::%player%} is not set: send "&4&lError! &cNie masz zakonu!" stop trigger if arg-2 is not set: send "&4&lError! &cPodaj nick gracza!" stop trigger if arg-2 is "%player%": send "&4&lError! &cNie mozesz zaprosic samego siebie!" stop trigger set {_p} to arg-2 parsed as offlineplayer if {_p} is offline: send "&4&lError! &cTen gracz nie jest online!" stop trigger if {Zakon.player::%{_p}%} is set: send "&4&lError! &cTen gracz ma juz zakon!" stop trigger if checkZakonPermissions(player, false): set {_members} to size of {Zakon.members.%{Zakon.player::%player%}%::*} if {_members} >= {Zakon.settings.maxmembers::%{Zakon.player::%player%}%}: send "&4&lError! &cTwoj zakon osiągnął maksymalną ilość członków!" stop trigger set {Zakon.invite::%{_p}%} to {Zakon.player::%player%} set {_tag} to {Zakon.invite::%{_p}%} send "&6&lWarning! &eZostales zaproszony do zakonu &c%{Zakon.settings.name::%{_tag}%}%&e! Aby dolaczyc uzyj komendy &6/zakon dolacz&e!" to {_p} send "&2&lSuccess! &aZaprosiles gracza &c%{_p}% &ado zakonu." to player else: send "&4&lError! &cTylko wlasciciel i zastepcy zakonu moga zapraszac nowych czlonkow!" else if arg-1 is "dolacz": if {Zakon.player::%player%} is set: send "&4&lError! &cMasz juz zakon!" stop trigger if {Zakon.invite::%player%} is not set: send "&4&lError! &cNie masz zaproszenia do zadnego zakonu!" stop trigger set {_tag} to {Zakon.invite::%player%} set {_members} to size of {Zakon.members.%{_tag}%::*} if {_members} >= {Zakon.settings.maxmembers::%{_tag}%}: send "&4&lError! &cTen zakon osiągnął maksymalną ilość członków!" stop trigger addPlayerZakon(player, {_tag}) clear {Zakon.invite::%player%} broadcast "&d&lZAKONY &fGracz &a%player%&f dołączył do zakonu &c%{Zakon.settings.name::%{_tag}%}% &8[&o%{_tag}%&8]&f!" else if arg-1 is "wyrzuc": if {Zakon.player::%player%} is not set: send "&4&lError! &cNie masz zakonu!" stop trigger if arg-2 is not set: send "&4&lError! &cPodaj nick gracza!" stop trigger if arg-2 is "%player%": send "&4&lError! &cNie mozesz wyrzucic samego siebie!" stop trigger if {Zakon.player::%arg-2%} is not set: send "&4&lError! &cTen gracz nie ma zakonu!" stop trigger set {_p} to arg-2 parsed as offlineplayer if {Zakon.player::%player%} is {Zakon.player::%{_p}%}: if checkZakonPermissions(player, false): kickPlayerZakon({_p}) set {_tag} to {Zakon.player::%player%} broadcast "&d&lZAKONY &fGracz &a%{_p}% &fzostal wyrzocny z zakonu &c%{Zakon.settings.name::%{_tag}%}% &8[&o%{_tag}%&8]&f!" else: send "&4&lError! &cTylko wlasciciel i zastepcy zakonu moga wyrzucać innych czlonkow!" else: send "&4&lError! &cTen gracz nie jest w twoim zakonie!" else if arg-1 is "opusc": if {Zakon.player::%player%} is not set: send "&4&lError! &cNie masz zakonu!" stop trigger if checkZakonPermissions(player, true): send "&4&lError! &cNie mozesz opuscic swojego zakonu!" stop trigger set {_tag} to {Zakon.player::%player%} broadcast "&d&lZAKONY &fGracz &a%player% &fopuscil zakon &c%{Zakon.settings.name::%{_tag}%}% &8[&o%{_tag}%&8]&f!" kickPlayerZakon(player) else if arg-1 is "awans": if {Zakon.player::%player%} is not set: send "&4&lError! &cNie masz zakonu!" stop trigger if arg-2 is not set: send "&4&lError! &cPodaj nick gracza!" stop trigger if arg-2 is "%player%": send "&4&lError! &cNie mozesz awansowac samego siebie!" stop trigger if {Zakon.player::%arg-2%} is not set: send "&4&lError! &cTen gracz nie ma zakonu!" stop trigger set {_p} to arg-2 parsed as offlineplayer if {Zakon.player::%player%} is {Zakon.player::%{_p}%}: if checkZakonPermissions(player, true): if isZakonZastepca({_p}): send "&4&lError! &cTen gracz jest juz zastępcą!" stop trigger set {_tag} to {Zakon.player::%player%} add {_p} to {Zakon.settings.zastepcy.%{_tag}%::*} send "&6&lWarning! &eZostales awansowany na zastępce zakonu!" to {_p} send "&2&lSuccess! &aPomyslnie awansowales gracza &e%{_p}% &ana zastepce zakonu!" else: send "&4&lError! &cNie jestes właścicielem tego zakonu!" else: send "&4&lError! &cTen gracz nie jest w twoim zakonie!" else if arg-1 is "degrad": if {Zakon.player::%player%} is not set: send "&4&lError! &cNie masz zakonu!" stop trigger if arg-2 is not set: send "&4&lError! &cPodaj nick gracza!" stop trigger if arg-2 is "%player%": send "&4&lError! &cNie mozesz degradowac samego siebie!" stop trigger if {Zakon.player::%arg-2%} is not set: send "&4&lError! &cTen gracz nie ma zakonu!" stop trigger set {_p} to arg-2 parsed as offlineplayer if {Zakon.player::%player%} is {Zakon.player::%{_p}%}: if checkZakonPermissions(player, true): if isZakonZastepca({_p}): set {_tag} to {Zakon.player::%player%} remove {_p} from {Zakon.settings.zastepcy.%{_tag}%::*} send "&6&lWarning! &eZostales zdegradowany z rangi zastępcy zakonu!" to {_p} send "&2&lSuccess! &aPomyslnie zdegradowales gracza &e%{_p}%&a!" else: send "&4&lError! &cTen gracz nie jest zastępcą twojego zakonu!" else: send "&4&lError! &cNie jestes właścicielem tego zakonu!" else: send "&4&lError! &cTen gracz nie jest w twoim zakonie!" else if arg-1 is "lider": if {Zakon.player::%player%} is not set: send "&4&lError! &cNie masz zakonu!" stop trigger if arg-2 is not set: send "&4&lError! &cPodaj nick gracza!" stop trigger if arg-2 is "%player%": send "&4&lError! &cNie mozesz dac lidera sobie!" stop trigger if {Zakon.player::%arg-2%} is not set: send "&4&lError! &cTen gracz nie ma zakonu!" stop trigger set {_p} to arg-2 parsed as offlineplayer if {Zakon.player::%player%} is {Zakon.player::%{_p}%}: if checkZakonPermissions(player, true): set {_tag} to {Zakon.player::%player%} set {Zakon.settings.owner::%{_tag}%} to {_p} send "&6&lWarning! &eZostałeś nowym liderem zakonu!" to {_p} send "&2&lSuccess! &aOddałeś funkcje lidera zakonu!" to player else: send "&4&lError! &cNie jestes właścicielem tego zakonu!" else: send "&4&lError! &cTen gracz nie jest w twoim zakonie!" else if arg-1 is "info": if arg-2 is not set: send "&4&lError! &cPodaj tag zakonu!" stop trigger set {_tag} to arg-2 if {Zakon.settings.name::%{_tag}%} is not set: send "&4&lError! &cTaki zakon nie istnieje!" stop trigger send "&8●----------------------●" send "&r" send "&7Nazwa&8: &a%{Zakon.settings.name::%{_tag}%}%" send "&7Tag&8: &a%{_tag}%" send "&7Poziom&8: &a%{Zakon.settings.lvl::%{_tag}%}%" send "&7Progress&8: &a%{Zakon.settings.exp::%{_tag}%}%&8/&c%{Zakon.settings.next::%{_tag}%}% &e[%{Zakon.settings.exp::%{_tag}%}/({Zakon.settings.next::%{_tag}%}*0.01)%%%]" send "&7Właściciel&8: &a%{Zakon.settings.owner::%{_tag}%}%" set {_zast::*} to {Zakon.settings.zastepcy.%{_tag}%::*} set {_zast} to "" if {_zast::*} is not set: set {_zast} to "Brak" else: set {_zast} to "%{_zast::*}%" send "&7Zastępcy&8: &a%{_zast}%" send "&7Członkowie&8: &a%size of {Zakon.members.%{_tag}%::*}%&8/&c%{Zakon.settings.maxmembers::%{_tag}%}%" send "&8(%{Zakon.members.%{_tag}%::*}%)" send "&r" send "&8●----------------------●" else if arg-1 is "siedziba": if {Zakon.player::%player%} is not set: send "&4&lError! &cNie masz zakonu!" stop trigger set {_tag} to {Zakon.player::%player%} if {Zakon.settings.siedziba::%{_tag}%} is not set: send "&4&lError! &cTwoj zakon nie ma siedziby!" if checkZakonPermissions(player, true): if arg-2 is set: if arg-2 is "zakup": if checkSiedzibaWymagania({_tag}): remove 5000000 from {Zakon.settings.skarbiec::%{_tag}%} createSiedzibaZakon(player, {_tag}) broadcast "&d&lZAKONY &fZakon &a%{Zakon.settings.name::%{_tag}%}% &8[%{_tag}%] &fzakupił siedzibe!" else: send "&4&lError! &cTwoj zakon nie spełnia wymagań!" stop trigger send "&6&lWarning! &eAby zakupic siedzibe uzyj komendy &6/zakon siedziba zakup&e!" send "&eWymagania do zakupienia siedziby:" send " &8- &e3 poziom zakonu" send " &8- &e$5kk w skarbcu zakonu &8&o(5 mln)" send " &8- &emin. 5 członków w zakonie" else: teleport player to {Zakon.settings.siedziba::%{_tag}%} else if arg-1 is "skarbiec": if {Zakon.player::%player%} is not set: send "&4&lError! &cNie masz zakonu!" stop trigger set {_tag} to {Zakon.player::%player%} if arg-2 is set: if arg-2 is "wpłać": if arg-3 is not set: send "&4&lError! &cPodaj ilość jaka chcesz wpłacić!" stop set {_ile} to arg-3 parsed as number if {_ile} is not set: send "&4&lError! &cWartość musi być liczbą!" stop if {_ile} < 100: send "&4&lError! &cNie możesz wpłacić mniej niż &e$100&c!" stop if {Player.money::%player%} < {_ile}: send "&4&lError! &cNie masz tyle pieniędzy!" stop add {_ile} to {Zakon.settings.skarbiec::%{_tag}%} remove {_ile} from {Player.money::%player%} send "&2&lSuccess! &aWpłaciłeś &c$%{_ile}% &ado skarbca zakonu!" stop send "&8●----------------------●" send "&r" send "&7W skarbcu twojego zakonu znajduje się&8: &6$%{Zakon.settings.skarbiec::%{_tag}%}%" send "&r" send "&c&lUwaga! &fAby wpłacić pięniadze do skarbca użyj komendy &a/zakon skarbiec wpłać &f!" send "&r" send "&8●----------------------●" on TabCompleteEvent: if tabbed command is "/zakon" or "/zakony": if tab arg-2 isn't set: set completions to "help", "zaloz", "zapros", "dolacz", "wyrzuc", "opusc", "skarbiec", "siedziba", "info", "lider", "awans" and "degrad" at tab arg-1 else: if tab arg-3 isn't set: if tab arg-1 is "info": set completions to {Zakon.settings.tag::*} at tab arg-2