Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- options:
- TAG: &c&l►
- #Nie zmieniaj :)
- READY: "gotowy"
- WAITING: "oczekuje"
- ACCEPT: "zaakceptowal"
- SETTING: "ustawia"
- #Code of TradeSK
- function TRADE_getInventory(t: text = "") :: inventory:
- set {_x} to chest with 5 rows named "&9&lWYMIANA"
- set {_i} to 4
- loop 5 times:
- set slot {_i} of {_x} to 102 named "&l"
- add 9 to {_i}
- set slot 36 of {_x} to light green wool named "&8[&2✓&8] &2Akceptuj &8[&2✓&8]"
- set slot 37 of {_x} to red wool named "&8[&c✗&8] &4Odrzuc &8[&c✗&8]"
- set slot 41 of {_x} to yellow wool named "&8[&f►&8] &6Ustawia itemy &8[&f◄&8]"
- set slot 39 of {_x} to yellow wool named "&8[&f►&8] &6Ustawiasz itemy &8[&f◄&8]"
- return {_x}
- function TRADE_trade(p: player, p2: player):
- if distance between {_p} and {_p2} is larger than 5:
- send "{@TAG} &7Gracz jest za daleko." to {_p}
- stop
- if {trade::%{_p}%::status} is not set:
- if {trade::%{_p2}%::status} is not set:
- set {trade::%{_p}%::with} to {_p2}
- set {trade::%{_p}%::status} to {@READY}
- set {trade::%{_p2}%::with} to {_p}
- set {trade::%{_p2}%::status} to {@WAITING}
- send "{@TAG} &7Zaprosiles gracza %{_p2}% do wymiany." to {_p}
- send "{@TAG} &7Gracz %{_p}% zaprosil Cie do wymiany.%nl%{@TAG} &7Wpisz &6/handel %{_p}%&7, lub kliknij na niego PPM." to {_p2}
- stop
- if {trade::%{_p}%::status} is {@WAITING}:
- if {trade::%{_p}%::with} is {_p2}:
- set {trade::%{_p}%::status} to {@SETTING}
- set {trade::%{_p2}%::status} to {@SETTING}
- open TRADE_getInventory() to {_p}
- open TRADE_getInventory() to {_p2}
- function TRADE_saveItems(p: player):
- if name of {_p}'s current inventory is "&9&lWYMIANA":
- set {_slots::*} to 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29 and 30
- loop {_slots::*}:
- set {_slot} to "%loop-value%" parsed as integer
- if {_p}'s current inventory's slot {_slot} is not air:
- add {_p}'s current inventory's slot {_slot} to {deposit::%{_p}%::*}
- function TRADE_endTrade(p: player):
- set {_p::*} to {trade::%{_p}%::with} and {_p}
- set {_i} to 4
- set {_przedzialka::*} to 4, 13, 22, 31 and 40
- set {_items::*} to 160:14, 160:4 and 160:5
- loop {_items::*}:
- loop {_p::*}:
- loop {_przedzialka::*}:
- if name of loop-value-2's current inventory is "&9&lWYMIANA":
- set {_nr} to loop-index-1 parsed as integer
- set loop-value-2's current inventory's slot loop-value-3 to loop-value-1 named "&8[&2✓&8] &aWymiana zaakceptowana &8[&2✓&8]" with lore "||||&a&l Wymiana konczy sie za:||&c%4 - {_nr}%"
- wait 1 second
- set {_p2} to {trade::%{_p}%::with}
- TRADE_saveItems({_p})
- TRADE_saveItems({_p2})
- TRADE_setStatus({_p}, "Odrzuc")
- give {deposit::%{_p}%::*} to {_p2}
- give {deposit::%{_p2}%::*} to {_p}
- clear {deposit::%{_p}%::*}
- clear {deposit::%{_p2}%::*}
- function TRADE_setStatus(p: player, t: text):
- set {_p2} to {trade::%{_p}%::with}
- if {_t} is "Odrzuc":
- delete {trade::%{_p}%::*}
- delete {trade::%{_p2}%::*}
- delete {trade::%{_p2}%}
- delete {trade::%{_p}%}
- close {_p2}'s inventory
- if {_p} is online:
- close {_p}'s inventory
- if {trade::%{_p}%::status} is "Perm":
- stop
- if {_t} is {@ACCEPT}:
- set {trade::%{_p}%::status} to {@ACCEPT}
- if {trade::%{_p2}%::status} is {@SETTING}:
- set {_p}'s current inventory's slot 39 to green wool named "&8[&2✓&8] &aZaakceptowales &8[&2✓&8]"
- set {_p2}'s current inventory's slot 41 to green wool named "&8[&2✓&8] &aZaakceptowal &8[&2✓&8]"
- stop
- if {trade::%{_p2}%::status} is {@ACCEPT}:
- set {_p}'s current inventory's slot 39 to green wool named "&8[&2✓&8] &aZaakceptowales &8[&2✓&8]"
- set {_p2}'s current inventory's slot 41 to green wool named "&8[&2✓&8] &aZaakceptowal &8[&2✓&8]"
- set {trade::%{_p}%::status} to "Perm"
- set {trade::%{_p2}%::status} to "Perm"
- TRADE_endTrade({_p})
- stop
- if {_t} is {@SETTING}:
- set {trade::%{_p}%::status} to {@SETTING}
- set {trade::%{_p2}%::status} to {@SETTING}
- set {_p}'s current inventory's slot 39 to yellow wool named "&8[&f►&8] &6Ustawiasz itemy &8[&f◄&8]"
- set {_p2}'s current inventory's slot 39 to yellow wool named "&8[&f►&8] &6Ustawiasz itemy &8[&f◄&8]"
- set {_p}'s current inventory's slot 41 to yellow wool named "&8[&f►&8] &6Ustawia itemy &8[&f◄&8]"
- set {_p2}'s current inventory's slot 41 to yellow wool named "&8[&f►&8] &6Ustawia itemy &8[&f◄&8]"
- on script load:
- import "org.bukkit.event.inventory.InventoryClickEvent"
- import "org.bukkit.event.inventory.InventoryCloseEvent"
- import "org.bukkit.event.player.PlayerInteractEntityEvent"
- import "org.bukkit.event.inventory.InventoryDragEvent"
- on join:
- if size of {deposit::%player%::*} is larger than 0:
- wait 5 second
- send "&8[&c?&8] &7Aby odebrac swoje przedmioty z poprzedniej wymiany wpisz: &6/handel odbierz"
- on quit:
- if {trade::%player%::status} is set:
- set {_p2} to {trade::%player%::with}
- TRADE_saveItems(player)
- TRADE_saveItems({_p2})
- TRADE_setStatus(player, "Odrzuc")
- wait 3 tick
- give {deposit::%{_p2}%::*} to {_p2}
- clear {deposit::%{_p2}%::*}
- on "org.bukkit.event.inventory.InventoryCloseEvent":
- set {_p} to event.getPlayer()
- if {trade::%{_p}%::status} is {@ACCEPT} or {@SETTING}:
- wait 3 tick
- open event.getInventory() to event.getPlayer()
- stop
- clear {trade::%{_p2}%::*}
- clear {trade::%{_p}%::status}
- close {trade::%{_p}%::with}'s inventory
- clear {trade::%{_p}%::*}
- on "org.bukkit.event.player.PlayerInteractEntityEvent":
- set {_p} to event.getPlayer()
- set {_p2} to "%event.getRightClicked()%" parsed as player
- if {_p2} is player:
- TRADE_trade({_p}, {_p2})
- #Prawdopodobnie to kiedyś działało.
- on "org.bukkit.event.inventory.InventoryDragEvent":
- set {_top} to event.getWhoClicked().getOpenInventory().getTopInventory()
- if inventory name of {_top} is "&9&lWYMIANA":
- set {_x} to "%event.getRawSlots()%"
- replace all "[" and "]" with "" in {_x}
- set {_x::*} to split {_x} by ", "
- loop {_x::*}:
- if loop-value parsed as integer is smaller than 44:
- cancel event
- stop
- #Tak to wyżej xD
- on drop:
- set {_top} to player.getOpenInventory().getTopInventory()
- if name of {_top} is "&9&lWYMIANA":
- cancel event
- on "org.bukkit.event.inventory.InventoryClickEvent":
- set {_top} to event.getWhoClicked().getOpenInventory().getTopInventory()
- if name of {_top} is "&9&lWYMIANA":
- set {_rawSlot} to event.getRawSlot()
- if {_rawSlot} is smaller than 0:
- stop
- set {_p} to event.getWhoClicked()
- set {_clickType} to event.getClick()
- if "%{_clickType}%" is "number key" or "double click using mouse" or "drop key":
- cancel event
- stop
- if {_rawSlot} is smaller than 45:
- if {_rawSlot} is not 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29 or 30:
- cancel event
- if {_rawSlot} is 36:
- TRADE_setStatus({_p}, {@ACCEPT})
- if {_rawSlot} is 37:
- if {trade::%{_p}%::status} is not "perm":
- TRADE_setStatus({_p}, "Odrzuc")
- if {_rawSlot} is 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29 or 30:
- if {trade::%{_p}%::status} is "Perm":
- cancel event
- stop
- set {_p2} to {trade::%{_p}%::with}
- wait 1 tick
- set {_p2}'s current inventory's slot {_rawSlot} + 5 to event.getCurrentItem()
- TRADE_setStatus({_p}, {@SETTING})
- #Crevsers tego nie napisał!
- #Knugi też nie :kappa:
- #Samo się napisało.
- command /handel [<text>]:
- trigger:
- if arg 1 is not set:
- send "&8(◕^^◕)"
- send "&7/handel <nick> &8Doprowadza do wymiany z graczem."
- send "&7/handel odbierz &8Odbierasz itemy z depozytu."
- stop
- if arg 1 is "odbierz":
- if size of {deposit::%player%::*} is larger than 0:
- give {deposit::%player%::*} to player
- clear {deposit::%player%::*}
- send "{@TAG} &7Otrzymales swoje przedmioty."
- stop
- send "{@TAG} &7Nie masz zadnych przedmiotow w depozycie."
- stop
- set {_p} to "%arg%" parsed as offlineplayer
- if {_p} is online:
- TRADE_trade(player, {_p})
Advertisement
Add Comment
Please, Sign In to add comment