import:
java.util.HashMap
java.util.ArrayList
java.util.UUID
java.lang.reflect.Field
java.util.regex.Pattern
net.md_5.bungee.api.chat.ComponentBuilder
net.md_5.bungee.api.chat.HoverEvent
net.md_5.bungee.api.chat.TextComponent
net.md_5.bungee.api.ChatColor
org.bukkit.Bukkit
org.bukkit.inventory.ItemStack
org.bukkit.Material
org.bukkit.inventory.meta.SkullMeta
org.bukkit.event.inventory.ClickType
com.mojang.authlib.GameProfile
com.mojang.authlib.properties.Property
org.bukkit.event.player.PlayerJoinEvent
org.bukkit.event.player.PlayerQuitEvent
on load:
set {_parties} to new HashMap()
set {_members} to new HashMap()
set {_partyRanks} to new HashMap()
set {_partyLores} to new HashMap()
set {_playerParties} to new HashMap()
set {_partyMinLevel} to new HashMap() # on java version, do FactoryManager.getFactory(FactoryManagerDistribution.PlayerFactory).getPlayerData(player.getUniqueId()).getGlobalLevel()
set {_partyNote} to new HashMap()
set {party::levelInput::*} to false
delete {party::bannedWords::*}
delete {party::bannedPatterns::*}
# regex banned word patterns - not very efficient but it works?
set {party::bannedPatterns::1} to "[o0öÖ][çcÇC]"
set {party::bannedPatterns::2} to "*"
set {party::bannedPatterns::3} to "[aA4@][qQkK]"
set {party::bannedPatterns::4} to "s[iı1]k"
set {party::bannedPatterns::5} to "y[a4@]rr?[a4@]k"
set {party::bannedPatterns::6} to "[o0öÖ]r[o0öÖ]sp[uüÜ]"
set {party::bannedPatterns::7} to "p[iı1][çc]"
set {party::bannedPatterns::8} to "[aA4@]m[iı1İ][nN][aA4@]"
set {party::bannedPatterns::9} to "g[oöÖ0]t"
set {party::bannedPatterns::10} to "s[iı1]kt[iı1]r"
set {party::bannedPatterns::11} to "s[iı1]k[iı1]k"
set {party::bannedPatterns::12} to "[iı1]bn[eE3]"
set {party::bannedPatterns::13} to "[aA4@]m"
# regex banned word patterns end
set {parties} to {_parties}
set {party::members} to {_members}
set {party::ranks} to {_partyRanks}
set {party::lores} to {_partyLores}
set {party::playerParties} to {_playerParties}
set {party::minLevel} to {_partyMinLevel}
set {party::note} to {_partyNote}
set {party::filter::*} to "ÜYE_AZALAN"
set {_partyInvites} to new HashMap()
set {party::invites} to {_partyInvites}
set {party::inviteTimeout} to 30
set {party::chat::*} to false
set {party::hidden::*} to false
set {_partyPolls} to new HashMap()
set {party::polls} to {_partyPolls}
set {party::poll::votes::*} to 0
set {party::muted::*} to false
function turkceEk(text: text) :: text:
set {_lc} to last character of {_text}
set {_lv} to ""
set {_karakterler::*} to {_text} split at ""
loop {_karakterler::*}:
if loop-value matches "[aeıioöuü]":
set {_lv} to loop-value
if {_lc} matches "[aıou]":
if {_lv} is "i" or "e":
return "nin"
else if {_lv} is "ı" or "a":
return "nın"
else if {_lv} is "o" or "u":
return "nun"
else if {_lv} is "ö" or "ü":
return "nün"
return "in"
function getPartyRankName(rank: number) :: text:
if {_rank} is 3:
return "Parti Kurucusu"
else if {_rank} is 2:
return "Parti Görevlisi"
return "Parti Üyesi"
function getPartyRankDisplay(rank: number) :: text:
set {_rankName} to getPartyRankName({_rank})
if {_rank} is 3:
return "&6✪✪✪"
else if {_rank} is 2:
return "&e✪✪"
return "&7✪"
function getPlayerParty(p: player) :: text:
set {_uuid} to {_p}'s uuid
return {party::playerParties}.get({_uuid})
function isInParty(p: player) :: boolean:
set {_uuid} to {_p}'s uuid
set {_result} to {party::playerParties}.containsKey({_uuid})
if {_result} is true:
return true
return false
function getPartyRank(p: player) :: number:
set {_uuid} to {_p}'s uuid
set {_partyOwner} to getPlayerParty({_p})
if {_partyOwner} is set:
return {party::ranks}.get({_partyOwner}).get({_uuid})
return 0
function formatList(list: strings) :: text:
set {_size} to size of {_list::*}
if {_size} is 0:
return ""
if {_size} is 1:
return {_list::1}
set {_result} to ""
loop {_size} times:
if loop-number is {_size}:
set {_result} to "%{_result}% ve %{_list::%loop-number%}%"
else if loop-number is 1:
set {_result} to {_list::1}
else:
set {_result} to "%{_result}%, %{_list::%loop-number%}%"
return {_result}
function findNextPartyOwner(members: object, ranks: object) :: text:
set {_highestRank} to 0
set {_uyeler::*} to ""
set {_index} to 1
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
set {_rank} to {_ranks}.get({_memberUUID})
if {_rank} > {_highestRank}:
set {_highestRank} to {_rank}
set {_uyeler::*} to ""
set {_uyeler::%{_index}%} to {_memberUUID}
else if {_rank} is {_highestRank}:
set {_uyeler::%{_index}%} to {_memberUUID}
add 1 to {_index}
if size of {_uyeler::*} is 0:
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
set {_uyeler::%{_index}%} to {_memberUUID}
add 1 to {_index}
if size of {_uyeler::*} > 0:
set {_randomIndex} to random integer between 1 and size of {_uyeler::*}
return {_uyeler::%{_randomIndex}%}
return ""
function createCustomSkull(texture: text) :: item:
set {_item} to new ItemStack(Material.PLAYER_HEAD, 1)
set {_meta} to {_item}.getItemMeta()
set {_profile} to new GameProfile(UUID.randomUUID(), null)
{_profile}.getProperties().put("textures", new Property("textures", {_texture}))
set {_field} to {_meta}.getClass().getDeclaredField("profile")
if {_field} is not set:
set {_field} to {_meta}.getClass().getDeclaredField("playerProfile")
{_field}.setAccessible(true)
{_field}.set({_meta}, {_profile})
{_item}.setItemMeta({_meta})
return {_item}
function createPartyItem(owner: text, members: object, ranks: object, lore: text, viewer: player) :: item:
set {_ownerPlayer} to {_owner} parsed as offline player
set {_partyNote} to {party::note}.get({_owner})
set {_minLevel} to {party::minLevel}.get({_owner})
set {_memberCount} to {_members}.size()
set {_item} to new ItemStack(Material.PLAYER_HEAD, 1)
set {_meta} to {_item}.getItemMeta()
{_meta}.setOwningPlayer({_ownerPlayer})
{_item}.setItemMeta({_meta})
set name of {_item} to "&6%{_ownerPlayer}%'%turkceEk({_ownerPlayer}'s name)% Partisi"
set {_loreList::*} to "&8Parti"
if {_partyNote} is set:
if {_partyNote} is not "":
add "%nl%&7Not: &f%{_partyNote}%" to {_loreList::*}
else:
add "%nl%&7Not: &fBelirtilmedi." to {_loreList::*}
else:
add "%nl%&7Not: &fBelirtilmedi." to {_loreList::*}
if {_minLevel} is set:
add "&7Minimum Seviye: &f%{_minLevel}%" to {_loreList::*}
else:
add "&7Minimum Seviye: &fBelirtilmedi." to {_loreList::*}
add "%nl%&7Üyeler:" to {_loreList::*}
loop 5 times:
if loop-number <= {_memberCount}:
set {_memberUUID} to {_members}.get(loop-number - 1)
set {_member} to {_memberUUID}.toString() parsed as offline player
set {_rank} to {party::ranks}.get({_owner}).get({_memberUUID})
if {_rank} is 3:
add "&8- &6%{_member}%" to {_loreList::*}
else if {_rank} is 2:
add "&8- &b%{_member}%" to {_loreList::*}
else:
add "&8- &7%{_member}%" to {_loreList::*}
else:
add "&8- Boş" to {_loreList::*}
if {_owner} is not {_viewer}'s uuid:
add "%nl%&eKatılmak için tıklayın!" to {_loreList::*}
set lore of {_item} to {_loreList::*}
return {_item}
function sortParties(parties: objects, filter: text) :: objects:
set {_sorted::*} to {_parties::*}
set {_size} to size of {_sorted::*}
loop {_size} times:
set {_i} to 1
loop ({_size} - 1) times:
set {_current} to {_sorted::%{_i}%}
set {_next} to {_sorted::%{_i}+1%}
set {_shouldSwap} to false
if {_filter} is "ÜYE_AZALAN":
set {_currentSize} to {party::members}.get({_current}).size()
set {_nextSize} to {party::members}.get({_next}).size()
if {_currentSize} < {_nextSize}:
set {_shouldSwap} to true
else if {_filter} is "ÜYE_ARTAN":
set {_currentSize} to {party::members}.get({_current}).size()
set {_nextSize} to {party::members}.get({_next}).size()
if {_currentSize} > {_nextSize}:
set {_shouldSwap} to true
else if {_filter} is "SEVİYE_AZALAN":
set {_currentLevel} to {party::minLevel}.get({_current}) ? 0
set {_nextLevel} to {party::minLevel}.get({_next}) ? 0
if {_currentLevel} < {_nextLevel}:
set {_shouldSwap} to true
else if {_filter} is "SEVİYE_ARTAN":
set {_currentLevel} to {party::minLevel}.get({_current}) ? 0
set {_nextLevel} to {party::minLevel}.get({_next}) ? 0
if {_currentLevel} > {_nextLevel}:
set {_shouldSwap} to true
if {_shouldSwap} is true:
set {_temp} to {_sorted::%{_i}%}
set {_sorted::%{_i}%} to {_sorted::%{_i}+1%}
set {_sorted::%{_i}+1%} to {_temp}
add 1 to {_i}
return {_sorted::*}
function getNextFilter(currentFilter: text) :: text:
if {_currentFilter} is "ÜYE_AZALAN":
return "ÜYE_ARTAN"
else if {_currentFilter} is "ÜYE_ARTAN":
return "SEVİYE_AZALAN"
else if {_currentFilter} is "SEVİYE_AZALAN":
return "SEVİYE_ARTAN"
else:
return "ÜYE_AZALAN"
function openPartyGUI(p: player, page: number = 1):
set {_partyKeys::*} to ...{parties}.keySet().toArray()
set {_totalParties} to size of {_partyKeys::*}
set {_totalPages} to ceil({_totalParties} / 21)
if {_totalPages} < 1:
set {_totalPages} to 1
create gui with virtual chest with 6 rows named "&8Parti Bulucu (%{_page}%/%{_totalPages}%)":
loop integers from 0 to 8:
make gui slot loop-value with gray stained glass pane named " "
loop integers from 36 to 44:
make gui slot loop-value with gray stained glass pane named " "
make gui slot 9 with dark gray stained glass pane named " "
make gui slot 18 with dark gray stained glass pane named " "
make gui slot 27 with dark gray stained glass pane named " "
make gui slot 17 with dark gray stained glass pane named " "
make gui slot 26 with dark gray stained glass pane named " "
make gui slot 35 with dark gray stained glass pane named " "
set {_slot} to 10
set {_foundParty} to false
set {_itemCount} to 0
set {_startIndex} to ({_page} - 1) * 21
if {_partyKeys::*} is not set:
make gui slot 22 with red wool named "&cHiç parti bulunmuyor!" with lore "&7Tıklayarak parti oluşturun!":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}):
send "&cZaten bir partide bulunuyorsun! &7/parti ayrıl &ckomutu ile mevcut partinden ayrılabilirsin."
stop
set {_partyName} to "%player%'%turkceEk(player's name)% Partisi"
{parties}.put({_uuid}, {_partyName})
set {_memberList} to new ArrayList()
{_memberList}.add({_uuid})
{party::members}.put({_uuid}, {_memberList})
set {_rankMap} to new HashMap()
{_rankMap}.put({_uuid}, 3)
{party::ranks}.put({_uuid}, {_rankMap})
{party::lores}.put({_uuid}, "")
{party::playerParties}.put({_uuid}, {_uuid})
send "&aBaşarıyla parti oluşturuldu: &f%{_partyName}%"
openPartyGUI(player)
else:
set {_sortedParties::*} to sortParties({_partyKeys::*}, {party::filter::%{_p}'s uuid%})
loop {_sortedParties::*}:
add 1 to {_itemCount}
if {_itemCount} <= {_startIndex}:
continue
set {_owner} to loop-value
if {party::hidden::%{_owner}%} is true:
continue
set {_members} to {party::members}.get({_owner})
if {_members} is not set:
continue
set {_hasOnline} to false
loop ...{_members}.toArray():
set {_memberUUID} to loop-value-1
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
set {_hasOnline} to true
exit 1 loop
if {_hasOnline} is true:
set {_foundParty} to true
set {_item} to createPartyItem({_owner}, {_members}, {party::ranks}.get({_owner}), {party::lores}.get({_owner}), {_p})
make gui slot {_slot} with {_item}:
if {_owner} is player's uuid:
send "&cBu senin partin!"
stop
if {party::playerParties}.containsKey(player's uuid):
send "&cZaten bir partide bulunuyorsun! &7/parti ayrıl &ckomutu ile mevcut partinden ayrılabilirsin."
stop
if {parties}.containsKey({_owner}) is false:
send "&cBu parti artık mevcut değil!"
stop
set {_ownerPlayer} to {_owner}.toString() parsed as offline player
if {_ownerPlayer} is online:
set {_minLevel} to {party::minLevel}.get({_owner})
if {_minLevel} is set:
send "&cBu partiye katılmak için &7%{_minLevel}% &cseviye olmalısın!"
stop
sendJoinRequest(player, {_ownerPlayer})
else:
send "&cParti sahibi çevrimiçi olmadığı için katılamazsın!"
close player's inventory
add 1 to {_slot}
if mod({_slot}, 9) is 8:
add 2 to {_slot}
if {_slot} >= 35:
exit loop
if {_foundParty} is false:
send "&cHiç parti bulunmuyor!" to {_p}
stop
if {_page} > 1:
set {_prevArrow} to createCustomSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzdhZWU5YTc1YmYwZGY3ODk3MTgzMDE1Y2NhMGIyYTdkNzU1YzYzMzg4ZmYwMTc1MmQ1ZjQ0MTlmYzY0NSJ9fX0=")
set name of {_prevArrow} to "&aÖnceki Sayfa"
make gui slot 48 with {_prevArrow}:
openPartyGUI(player, {_page} - 1)
make gui slot 49 with barrier named "&cKapat":
close player's inventory
set {_helpSkull} to createCustomSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjA0MWU0NjVkNWYwYWM4NDFiMWQyNmIwNDY3NGViNDJlMmE2NTkwYWFjZDQzMTc0NjE4NDliMjUyMjQ3NmJhYiJ9fX0=")
set name of {_helpSkull} to "&aYardım"
set lore of {_helpSkull} to "&7Parti komutlarını görüntüleyin.%nl%%nl%&eGörüntülemek için tıklayın!"
make gui slot 53 with {_helpSkull}:
sendPartyHelp(player, 1)
if {_page} < {_totalPages}:
set {_nextArrow} to createCustomSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjgyYWQxYjljYjRkZDIxMjU5YzBkNzVhYTMxNWZmMzg5YzNjZWY3NTJiZTM5NDkzMzgxNjRiYWM4NGE5NmUifX19")
set name of {_nextArrow} to "&aSonraki Sayfa"
make gui slot 50 with {_nextArrow}:
openPartyGUI(player, {_page} + 1)
set {_refreshSkull} to createCustomSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2UwNzIzNTVhZmE2MTQyYmFmNTY2MGM5MDY4N2M4YzUwZGM2M2U1Nzc4MWRkYmNhNWNlM2YzNTU0ZDFlMzc1ZSJ9fX0=")
set name of {_refreshSkull} to "&aYenile"
set lore of {_refreshSkull} to "&7Aktif olan partilerin listesini%nl%&7yenileyin.%nl%%nl%&eYenilemek için tıklayın!"
set {_filterSkull} to createCustomSkull("eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmE0NDk4NmViZmI4NzU3ZGExMzc1Zjc0OTYxMDM0NTRlNmZjMWM1ZWY3M2QwMTNmYWNlNzQ5OWIxMzE4NGY3In19fQ==")
set name of {_filterSkull} to "&aSırala"
set {_filterLore::*} to ""
if {party::filter::%{_p}'s uuid%} is "ÜYE_AZALAN":
add "&b➥ Üye Azalan" to {_filterLore::*}
else:
add "&7Üye Azalan" to {_filterLore::*}
if {party::filter::%{_p}'s uuid%} is "ÜYE_ARTAN":
add "&b➥ Üye Artan" to {_filterLore::*}
else:
add "&7Üye Artan" to {_filterLore::*}
if {party::filter::%{_p}'s uuid%} is "SEVİYE_AZALAN":
add "&b➥ Seviye Azalan" to {_filterLore::*}
else:
add "&7Seviye Azalan" to {_filterLore::*}
if {party::filter::%{_p}'s uuid%} is "SEVİYE_ARTAN":
add "&b➥ Seviye Artan" to {_filterLore::*}
else:
add "&7Seviye Artan" to {_filterLore::*}
add "" to {_filterLore::*}
add "&eSıradaki seçeneğe geçmek için tıklayın!" to {_filterLore::*}
add "&eSağ tıklayarak ayarları sıfırlayın" to {_filterLore::*}
set lore of {_filterSkull} to {_filterLore::*}
make gui slot 45 with {_filterSkull}:
if click type is right mouse button:
set {party::filter::%player's uuid%} to "ÜYE_AZALAN"
openPartyGUI(player, {_page})
else:
set {party::filter::%player's uuid%} to getNextFilter({party::filter::%player's uuid%})
openPartyGUI(player, {_page})
make gui slot 46 with {_refreshSkull}:
openPartyGUI(player, {_page})
open last gui to {_p}
command /parti [<text>] [<text>]:
aliases: /party, /p
trigger:
if arg-1 is not set:
openPartyGUI(player)
stop
if arg-1 is "oluştur" or "kur":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}):
send "&cZaten bir partide bulunuyorsun! &7/parti ayrıl &ckomutu ile mevcut partinden ayrılabilirsin."
stop
set {_partyName} to "%player%'%turkceEk(player's name)% Partisi"
{parties}.put({_uuid}, {_partyName})
set {_memberList} to new ArrayList()
{_memberList}.add({_uuid})
{party::members}.put({_uuid}, {_memberList})
set {_rankMap} to new HashMap()
{_rankMap}.put({_uuid}, 3)
{party::ranks}.put({_uuid}, {_rankMap})
{party::lores}.put({_uuid}, "")
{party::playerParties}.put({_uuid}, {_uuid})
send "&aBaşarıyla parti oluşturuldu: &f%{_partyName}%"
else if arg-1 is "at":
if arg-2 is not set:
send "&cAtmak istediğiniz oyuncuyu belirtmelisin!"
stop
set {_target} to arg-2 parsed as offline player
if {_target} is not set:
send "&cBelirttiğiniz oyuncu &7(%arg-2%) &cbulunamadı!"
stop
set {_uuid} to player's uuid
set {_targetUUID} to {_target}'s uuid
set {_partyOwner} to getPlayerParty(player)
if {_partyOwner} is not set:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_rank} to getPartyRank(player)
if {_rank} < 2:
send "&7Bu komutu kullanmak için en az &6Parti Görevlisi &7yetkisine sahip olmalısın!"
stop
set {_targetParty} to getPlayerParty({_target})
if {_targetParty} is not {_partyOwner}:
send "&cBu oyuncu senin partinde değil!"
stop
set {_targetRank} to getPartyRank({_target})
if {_targetRank} >= {_rank}:
send "&cKendinle aynı veya daha yüksek rütbedeki oyuncuları atamazsın!"
stop
set {_members} to {party::members}.get({_partyOwner})
{_members}.remove({_targetUUID})
set {_ranks} to {party::ranks}.get({_partyOwner})
{_ranks}.remove({_targetUUID})
{party::playerParties}.remove({_targetUUID})
send "&6[P] &f%{_target}% &7adlı oyuncu partiden atıldı!" to player
if {_target} is online:
send "&cPartiden atıldın!" to {_target}
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
if {_memberUUID} is not {_uuid}:
send "&f%{_target}% &7partiden atıldı!" to {_member}
else if arg-1 is "açıklama" or "bilgi":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
if arg-2 is not set:
set {_partyOwner} to getPlayerParty(player)
set {_lore} to {party::lores}.get({_partyOwner})
if {_lore} is set:
if {_lore} is not "":
send "&7Parti açıklaması: &f%{_lore}%"
else:
send "&cPartinin açıklaması bulunmuyor!"
stop
set {_rank} to getPartyRank(player)
if {_rank} < 2:
send "&7Bu komutu kullanmak için en az &6Parti Görevlisi &7yetkisine sahip olmalısın!"
stop
set {_partyOwner} to getPlayerParty(player)
{party::lores}.put({_partyOwner}, arg-2)
send "&aParti açıklaması güncellendi: &f%arg-2%"
play sound "entity.experience_orb.pickup" with volume 0.5 to player
else if arg-1 is "kapat" or "sil" or "men":
set {_uuid} to player's uuid
if {parties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_memberList} to {party::members}.get({_uuid})
loop ...{_memberList}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
{party::playerParties}.remove({_memberUUID})
if {_member} is online:
send "&cParti dağıtıldı!" to {_member}
{parties}.remove({_uuid})
{party::members}.remove({_uuid})
{party::ranks}.remove({_uuid})
{party::lores}.remove({_uuid})
send "&aParti başarıyla dağıtıldı!"
else if arg-1 is "liste":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide değilsin!"
stop
set {_partyOwner} to getPlayerParty(player)
set {_partyName} to {parties}.get({_partyOwner})
set {_members} to {party::members}.get({_partyOwner})
set {_ranks} to {party::ranks}.get({_partyOwner})
set {_lore} to {party::lores}.get({_partyOwner})
send ""
send "&6%{_partyName}%"
if {_lore} is set:
if {_lore} is not "":
send "&7Açıklama: &f%{_lore}%"
set {_memberList::*} to ""
set {_index} to 1
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
set {_rank} to {party::ranks}.get({_partyOwner}).get({_memberUUID})
set {_stars} to getPartyRankDisplay({_rank})
if {_member} is online:
set {_memberList::%{_index}%} to "&a%{_member}% %{_stars}%"
else:
set {_memberList::%{_index}%} to "&7%{_member}% %{_stars}%"
add 1 to {_index}
send "&7Üyeler: &f%formatList({_memberList::*})%"
send ""
else if arg-1 is "yardım":
if arg-2 is set:
set {_page} to arg-2 parsed as number
if {_page} is not set:
set {_page} to 1
else:
set {_page} to 1
sendPartyHelp(player, {_page})
else if arg-1 is "not":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
set {_rank} to getPartyRank(player)
if {_rank} < 2:
send "&7Bu komutu kullanmak için en az &6Parti Görevlisi &7yetkisine sahip olmalısın!"
stop
if arg-2 is not set:
send "&cLütfen bir not belirtin!"
stop
if length of arg-2 > 16:
send "&cNot en fazla &716 &ckarakter olabilir!"
stop
if containsSwearWord(arg-2) is "true":
send "&cUygunsuz kelimeler kullanılamaz!"
stop
{party::note}.put({_partyOwner}, arg-2)
send "&aParti notu güncellendi: &f%arg-2%"
play sound "entity.experience_orb.pickup" with volume 0.5 to player
else if arg-1 is "seviye":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
set {_rank} to getPartyRank(player)
if {_rank} < 2:
send "&7Bu komutu kullanmak için en az &6Parti Görevlisi &7yetkisine sahip olmalısın!"
stop
set {party::levelInput::%{_uuid}%} to true
send "&cSeviye belirtmelisiniz!" to player
else if arg-1 is "ayrıl":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
set {_members} to {party::members}.get({_partyOwner})
set {_ranks} to {party::ranks}.get({_partyOwner})
if {_uuid} is {_partyOwner}:
if {_members}.size() is 1:
{parties}.remove({_uuid})
{party::members}.remove({_uuid})
{party::ranks}.remove({_uuid})
{party::lores}.remove({_uuid})
{party::playerParties}.remove({_uuid})
send "&cParti dağıtıldı!"
stop
{_members}.remove({_uuid})
set {_newOwner} to findNextPartyOwner({_members}, {_ranks})
if {_newOwner} is "":
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
{party::playerParties}.remove({_memberUUID})
if {_member} is online:
send "&cParti dağıtıldı!" to {_member}
{parties}.remove({_uuid})
{party::members}.remove({_uuid})
{party::ranks}.remove({_uuid})
{party::lores}.remove({_uuid})
send "&cParti dağıtıldı!"
else:
set {_newOwnerPlayer} to {_newOwner}.toString() parsed as offline player
set {_partyName} to "%{_newOwnerPlayer}%'%turkceEk({_newOwnerPlayer}'s name)% Partisi"
{parties}.remove({_uuid})
{parties}.put({_newOwner}, {_partyName})
{party::members}.put({_newOwner}, {_members})
{_ranks}.put({_newOwner}, 3)
{party::ranks}.put({_newOwner}, {_ranks})
{party::lores}.put({_newOwner}, {party::lores}.get({_uuid}))
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
{party::playerParties}.put({_memberUUID}, {_newOwner})
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&cParti liderliği &f%{_newOwnerPlayer}% &7adlı oyuncuya devredildi!" to {_member}
{party::playerParties}.remove({_uuid})
send "&cPartiden ayrıldın!"
else:
{_members}.remove({_uuid})
{_ranks}.remove({_uuid})
{party::playerParties}.remove({_uuid})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &f%player% &7partiden ayrıldı!" to {_member}
send "&cPartiden ayrıldın!"
else if arg-1 is "davet":
if arg-2 is not set:
send "&cDavet etmek istediğiniz oyuncuyu belirtmelisin!"
stop
set {_target} to arg-2 parsed as player
if {_target} is not set:
send "&cDavet etmeye çalıştığınız oyuncu &7(%arg-2%) &cbulunamadı!"
stop
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_rank} to getPartyRank(player)
if {_rank} < 2:
send "&7Bu komutu kullanmak için en az &6Parti Görevlisi &7yetkisine sahip olmalısın!"
stop
sendJoinRequest(player, {_target})
else if arg-1 is "kabulet":
if arg-2 is not set:
send "&cKabul etmek istediğiniz oyuncuyu belirtmelisin!"
stop
acceptJoinRequest(player, arg-2)
else if arg-1 is "reddet":
if arg-2 is not set:
send "&cReddetmek istediğiniz oyuncuyu belirtmelisin!"
stop
rejectJoinRequest(player, arg-2)
else if arg-1 is "terfi":
if arg-2 is not set:
send "&cTerfi ettirmek istediğiniz oyuncuyu belirtmelisin!"
stop
set {_target} to arg-2 parsed as offline player
if {_target} is not set:
send "&cBelirttiğiniz oyuncu &7(%arg-2%) &cbulunamadı!"
stop
set {_uuid} to player's uuid
set {_targetUUID} to {_target}'s uuid
set {_partyOwner} to getPlayerParty(player)
if {_partyOwner} is not set:
send "&cHerhangi bir partide bulunmuyorsun!"
stop
if {_partyOwner} is not {_uuid}:
send "&cBu komutu sadece parti kurucusu kullanabilir!"
stop
set {_targetParty} to getPlayerParty({_target})
if {_targetParty} is not {_partyOwner}:
send "&cBu oyuncu senin partinde değil!"
stop
set {_ranks} to {party::ranks}.get({_partyOwner})
set {_currentRank} to {_ranks}.get({_targetUUID})
if {_currentRank} is 3:
send "&cParti kurucusunun rütbesini değiştiremezsin!"
stop
if {_currentRank} is 2:
send "&7Bu oyuncu zaten &6Parti Görevlisi&7!"
stop
{_ranks}.put({_targetUUID}, 2)
send "&f%{_target}% &7adlı oyuncu &6Parti Görevlisi &7olarak terfi ettirildi!" to player
if {_target} is online:
send "&6Parti Görevlisi &7olarak terfi ettirildin!" to {_target}
else if arg-1 is "düşür":
if arg-2 is not set:
send "&cRütbesini düşürmek istediğiniz oyuncuyu belirtmelisin!"
stop
set {_target} to arg-2 parsed as offline player
if {_target} is not set:
send "&cBelirttiğiniz oyuncu &7(%arg-2%) &cbulunamadı!"
stop
set {_uuid} to player's uuid
set {_targetUUID} to {_target}'s uuid
set {_partyOwner} to getPlayerParty(player)
if {_partyOwner} is not set:
send "&cHerhangi bir partide bulunmuyorsun!"
stop
if {_partyOwner} is not {_uuid}:
send "&cBu komutu sadece parti kurucusu kullanabilir!"
stop
set {_targetParty} to getPlayerParty({_target})
if {_targetParty} is not {_partyOwner}:
send "&cBu oyuncu senin partinde değil!"
stop
set {_ranks} to {party::ranks}.get({_partyOwner})
set {_currentRank} to {_ranks}.get({_targetUUID})
if {_currentRank} is 3:
send "&cParti kurucusunun rütbesini değiştiremezsin!"
stop
if {_currentRank} is 1:
send "&cBu oyuncu zaten &7Parti Üyesi&c!"
stop
{_ranks}.put({_targetUUID}, 1)
send "&f%{_target}% &7adlı oyuncunun rütbesi &7Parti Üyesi &7olarak değiştirildi!" to player
play sound "entity.experience_orb.pickup" with volume 0.5 to the player
if {_target} is online:
send "&7Rütben &8(&7Parti Üyesi&8)&7olarak değiştirildi!" to {_target}
else if arg-1 is "sohbet":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
if {party::chat::%{_uuid}%} is true:
set {party::chat::%{_uuid}%} to false
send "&cParti sohbeti &ckapatıldı&c!"
else:
set {party::chat::%{_uuid}%} to true
send "&aParti sohbeti &aaktif&a!"
else if arg-1 is "gizle":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
if {_partyOwner} is not {_uuid}:
send "&cBu komutu sadece parti kurucusu kullanabilir!"
stop
if {party::hidden::%{_uuid}%} is true:
set {party::hidden::%{_uuid}%} to false
send "&aParti artık &abulunabilir &adurumda!"
else:
set {party::hidden::%{_uuid}%} to true
send "&cParti artık &cgizli &cdurumda!"
else if arg-1 is "transfer":
if arg-2 is not set:
send "&cLiderliği devretmek istediğiniz oyuncuyu belirtmelisin!"
stop
set {_target} to arg-2 parsed as offline player
if {_target} is not set:
send "&cBelirttiğiniz oyuncu &7(%arg-2%) &cbulunamadı!"
stop
set {_uuid} to player's uuid
set {_targetUUID} to {_target}'s uuid
if {parties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
if {_uuid} is not getPlayerParty({_target}):
send "&cBu oyuncu senin partinde değil!"
stop
if {_target} is not online:
send "&cBu oyuncu çevrimiçi değil!"
stop
if {_uuid} is {_targetUUID}:
send "&cKendine liderlik devredemezsin!"
stop
set {_members} to {party::members}.get({_uuid})
set {_ranks} to {party::ranks}.get({_uuid})
set {_partyName} to "%{_target}%'%turkceEk({_target}'s name)% Partisi"
{parties}.remove({_uuid})
{parties}.put({_targetUUID}, {_partyName})
{party::members}.put({_targetUUID}, {_members})
{_ranks}.put({_targetUUID}, 3)
{_ranks}.put({_uuid}, 2)
{party::ranks}.put({_targetUUID}, {_ranks})
{party::lores}.put({_targetUUID}, {party::lores}.get({_uuid}))
{party::note}.put({_targetUUID}, {party::note}.get({_uuid}))
{party::minLevel}.put({_targetUUID}, {party::minLevel}.get({_uuid}))
if {party::hidden::%{_uuid}%} is true:
set {party::hidden::%{_targetUUID}%} to true
set {party::hidden::%{_uuid}%} to false
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
{party::playerParties}.put({_memberUUID}, {_targetUUID})
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &7Parti liderliği &f%{_target}% &7adlı oyuncuya devredildi!" to {_member}
else if arg-1 is "oy":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
set {_rank} to getPartyRank(player)
if {_rank} < 2:
send "&7Bu komutu kullanmak için en az &6Parti Görevlisi &7yetkisine sahip olmalısın!"
stop
if arg-2 is not set:
send "&7Kullanım: &f/parti oy <Soru/Cevap1/Cevap2/Cevap3/Cevap4>"
send "&7Örnek: &f/parti oy Hangi haritaya gidelim?/Orman/Mağara/Çöl"
stop
set {_args::*} to arg-2 split at "/"
set {_size} to size of {_args::*}
if {_size} < 3:
send "&cEn az bir soru ve iki cevap belirtmelisin!"
stop
if {_size} > 5:
send "&cEn fazla dört cevap belirtebilirsin!"
stop
if {party::polls}.containsKey({_partyOwner}):
send "&cZaten aktif bir oylama var!"
stop
set {_pollMap} to new HashMap()
{_pollMap}.put("question", {_args::1})
{_pollMap}.put("answers", new ArrayList())
{_pollMap}.put("votes", new HashMap())
{_pollMap}.put("voters", new ArrayList())
loop integers from 2 to {_size}:
{_pollMap}.get("answers").add({_args::%loop-value%})
{_pollMap}.get("votes").put(loop-value - 2, 0)
{party::polls}.put({_partyOwner}, {_pollMap})
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value-1
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "" to {_member}
send "&6[P] &7Yeni bir oylama başlatıldı!" to {_member}
send "&7Soru: &f%{_args::1}%" to {_member}
send "" to {_member}
loop integers from 2 to {_size}:
set {_optionNum} to (loop-value-2) - 2
set {_displayNum} to (loop-value-2) - 1
send formatted "<tooltip:&7Oylamak için tıkla!><command:/parti oyver %{_optionNum}%>&8[&e%{_displayNum}%&8] &f%{_args::%loop-value-2%}%" to {_member}
send "" to {_member}
else if arg-1 is "oyver":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
if {party::polls}.containsKey({_partyOwner}) is false:
send "&cAktif bir oylama bulunmuyor!"
stop
if arg-2 is not set:
send "&cBir seçenek belirtmelisin!"
stop
set {_vote} to arg-2 parsed as number
if {_vote} is not set:
send "&cGeçersiz seçenek!"
stop
set {_pollMap} to {party::polls}.get({_partyOwner})
if {_pollMap}.get("voters").contains({_uuid}):
send "&cZaten oy kullandın!"
stop
set {_answerSize} to {_pollMap}.get("answers").size()
if {_vote} < 0:
send "&cGeçersiz seçenek!"
stop
if {_vote} >= {_answerSize}:
send "&cGeçersiz seçenek!"
stop
{_pollMap}.get("voters").add({_uuid})
set {_currentVotes} to {_pollMap}.get("votes").get({_vote})
{_pollMap}.get("votes").put({_vote}, {_currentVotes} + 1)
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &f%player% &7oy kullandı! &8(&7%{_pollMap}.get("voters").size()%/%{_members}.size()%&8)" to {_member}
if {_pollMap}.get("voters").size() is {_members}.size():
set {_winner} to 0
set {_maxVotes} to 0
loop integers from 0 to ({_pollMap}.get("answers").size() - 1):
set {_votes} to {_pollMap}.get("votes").get(loop-value)
if {_votes} > {_maxVotes}:
set {_maxVotes} to {_votes}
set {_winner} to loop-value
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "" to {_member}
send "&6[P] &7Oylama sonuçlandı!" to {_member}
send "&7Kazanan: &f%{_pollMap}.get("answers").get({_winner})% &8(&7%{_maxVotes}% oy&8)" to {_member}
send "" to {_member}
{party::polls}.remove({_partyOwner})
else if arg-1 is "sustur":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
set {_rank} to getPartyRank(player)
if {_rank} < 2:
send "&7Bu komutu kullanmak için en az &6Parti Görevlisi &7yetkisine sahip olmalısın!"
stop
if {party::muted::%{_partyOwner}%} is true:
set {party::muted::%{_partyOwner}%} to false
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &7Parti sohbeti &aaktif edildi&7!" to {_member}
else:
set {party::muted::%{_partyOwner}%} to true
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &7Parti sohbeti &cdevre dışı bırakıldı&7!" to {_member}
else if arg-1 is "transfer":
if arg-2 is not set:
send "&cLiderliği devretmek istediğiniz oyuncuyu belirtmelisin!"
stop
set {_target} to arg-2 parsed as offline player
if {_target} is not set:
send "&cBelirttiğiniz oyuncu &7(%arg-2%) &cbulunamadı!"
stop
set {_uuid} to player's uuid
set {_targetUUID} to {_target}'s uuid
if {parties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
if {_uuid} is not getPlayerParty({_target}):
send "&cBu oyuncu senin partinde değil!"
stop
if {_target} is not online:
send "&cBu oyuncu çevrimiçi değil!"
stop
if {_uuid} is {_targetUUID}:
send "&cKendine liderlik devredemezsin!"
stop
set {_members} to {party::members}.get({_uuid})
set {_ranks} to {party::ranks}.get({_uuid})
set {_partyName} to "%{_target}%'%turkceEk({_target}'s name)% Partisi"
{parties}.remove({_uuid})
{parties}.put({_targetUUID}, {_partyName})
{party::members}.put({_targetUUID}, {_members})
{_ranks}.put({_targetUUID}, 3)
{_ranks}.put({_uuid}, 2)
{party::ranks}.put({_targetUUID}, {_ranks})
{party::lores}.put({_targetUUID}, {party::lores}.get({_uuid}))
{party::note}.put({_targetUUID}, {party::note}.get({_uuid}))
{party::minLevel}.put({_targetUUID}, {party::minLevel}.get({_uuid}))
if {party::hidden::%{_uuid}%} is true:
set {party::hidden::%{_targetUUID}%} to true
set {party::hidden::%{_uuid}%} to false
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
{party::playerParties}.put({_memberUUID}, {_targetUUID})
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &7Parti liderliği &f%{_target}% &7adlı oyuncuya devredildi!" to {_member}
else if arg-1 is "oy":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
set {_rank} to getPartyRank(player)
if {_rank} < 2:
send "&7Bu komutu kullanmak için en az &6Parti Görevlisi &7yetkisine sahip olmalısın!"
stop
if arg-2 is not set:
send "&7Kullanım: &f/parti oy <Soru/Cevap1/Cevap2/Cevap3/Cevap4>"
send "&7Örnek: &f/parti oy Hangi haritaya gidelim?/Orman/Mağara/Çöl"
stop
set {_args::*} to arg-2 split at "/"
set {_size} to size of {_args::*}
if {_size} < 3:
send "&cEn az bir soru ve iki cevap belirtmelisin!"
stop
if {_size} > 5:
send "&cEn fazla dört cevap belirtebilirsin!"
stop
if {party::polls}.containsKey({_partyOwner}):
send "&cZaten aktif bir oylama var!"
stop
set {_pollMap} to new HashMap()
{_pollMap}.put("question", {_args::1})
{_pollMap}.put("answers", new ArrayList())
{_pollMap}.put("votes", new HashMap())
{_pollMap}.put("voters", new ArrayList())
loop integers from 2 to {_size}:
{_pollMap}.get("answers").add({_args::%loop-value%})
{_pollMap}.get("votes").put(loop-value - 2, 0)
{party::polls}.put({_partyOwner}, {_pollMap})
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value-1
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "" to {_member}
send "&6[P] &7Yeni bir oylama başlatıldı!" to {_member}
send "&7Soru: &f%{_args::1}%" to {_member}
send "" to {_member}
loop integers from 2 to {_size}:
set {_optionNum} to (loop-value-2) - 2
set {_displayNum} to (loop-value-2) - 1
send formatted "<tooltip:&7Oylamak için tıkla!><command:/parti oyver %{_optionNum}%>&8[&e%{_displayNum}%&8] &f%{_args::%loop-value-2%}%" to {_member}
send "" to {_member}
else if arg-1 is "oyver":
set {_uuid} to player's uuid
if {party::playerParties}.containsKey({_uuid}) is false:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!"
stop
set {_partyOwner} to getPlayerParty(player)
if {party::polls}.containsKey({_partyOwner}) is false:
send "&cAktif bir oylama bulunmuyor!"
stop
if arg-2 is not set:
send "&cBir seçenek belirtmelisin!"
stop
set {_vote} to arg-2 parsed as number
if {_vote} is not set:
send "&cGeçersiz seçenek!"
stop
set {_pollMap} to {party::polls}.get({_partyOwner})
if {_pollMap}.get("voters").contains({_uuid}):
send "&cZaten oy kullandın!"
stop
set {_answerSize} to {_pollMap}.get("answers").size()
if {_vote} < 0:
send "&cGeçersiz seçenek!"
stop
if {_vote} >= {_answerSize}:
send "&cGeçersiz seçenek!"
stop
{_pollMap}.get("voters").add({_uuid})
set {_currentVotes} to {_pollMap}.get("votes").get({_vote})
{_pollMap}.get("votes").put({_vote}, {_currentVotes} + 1)
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &f%player% &7oy kullandı! &8(&7%{_pollMap}.get("voters").size()%/%{_members}.size()%&8)" to {_member}
if {_pollMap}.get("voters").size() is {_members}.size():
set {_winner} to 0
set {_maxVotes} to 0
loop integers from 0 to ({_pollMap}.get("answers").size() - 1):
set {_votes} to {_pollMap}.get("votes").get(loop-value)
if {_votes} > {_maxVotes}:
set {_maxVotes} to {_votes}
set {_winner} to loop-value
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "" to {_member}
send "&6[P] &7Oylama sonuçlandı!" to {_member}
send "&7Kazanan: &f%{_pollMap}.get("answers").get({_winner})% &8(&7%{_maxVotes}% oy&8)" to {_member}
send "" to {_member}
{party::polls}.remove({_partyOwner})
on chat:
set {_uuid} to player's uuid
if {party::levelInput::%{_uuid}%} is true:
cancel event
set {party::levelInput::%{_uuid}%} to false
if message parsed as number is not set:
send "&7Lütfen geçerli bir sayı girin! (Örn: 11)" to player
stop
set {_level} to message parsed as number
if {_level} > 50:
send "&cMaksimum seviye 50 olmalıdır!" to player
stop
set {_partyOwner} to getPlayerParty(player)
{party::minLevel}.put({_partyOwner}, {_level})
send "&7Parti seviyesi güncellendi: &f%{_level}%" to player
play sound "entity.experience_orb.pickup" with volume 0.5 to the player
stop
if {party::chat::%{_uuid}%} is true:
cancel event
sendPartyMessage(player, message)
stop
function containsSwearWord(text: text) :: text:
set {_lower} to lowercase {_text}
set {_lower} to " %{_lower}% "
replace all "0" with "o" in {_lower}
replace all "4" with "a" in {_lower}
replace all "@" with "a" in {_lower}
replace all "1" with "i" in {_lower}
replace all "$" with "s" in {_lower}
replace all "3" with "e" in {_lower}
loop {party::bannedPatterns::*}:
set {_pattern} to loop-value
set {_p} to Pattern.compile({_pattern}, Pattern.CASE_INSENSITIVE)
set {_m} to {_p}.matcher({_lower})
if {_m}.find():
return "true"
return "false"
function sendJoinRequest(requester: player, partyOwner: player):
set {_uuid} to {_requester}'s uuid
set {_ownerUUID} to {_partyOwner}'s uuid
if {party::invites}.containsKey({_ownerUUID}):
send "&cBu partiye zaten bir katılma isteği gönderilmiş!" to {_requester}
stop
if {party::playerParties}.containsKey({_uuid}):
send "&cZaten bir partide bulunuyorsun!" to {_requester}
stop
set {_inviteMap} to new HashMap()
{_inviteMap}.put("requester", {_uuid})
{_inviteMap}.put("time", unix timestamp of now)
{party::invites}.put({_ownerUUID}, {_inviteMap})
send "&6%{_requester}% &7partine katılmak istiyor!" to {_partyOwner}
send formatted "<tooltip:&7Katılma isteğini kabul et><command:/parti kabulet %{_requester}%>&a[KABUL ET]" to {_partyOwner}
send formatted "<tooltip:&7Katılma isteğini reddet><command:/parti reddet %{_requester}%>&c[REDDET]" to {_partyOwner}
send "&7Bu istek &6%{party::inviteTimeout}% saniye &7sonra iptal olacak." to {_partyOwner}
send "&7Katılma isteği &6%{_partyOwner}% &7adlı oyuncuya gönderildi!" to {_requester}
function acceptJoinRequest(owner: player, requester: text):
set {_ownerUUID} to {_owner}'s uuid
if {party::invites}.containsKey({_ownerUUID}) is false:
send "&cAktif bir katılma isteği bulunmuyor!" to {_owner}
stop
set {_inviteMap} to {party::invites}.get({_ownerUUID})
set {_requesterUUID} to {_inviteMap}.get("requester")
set {_inviteTime} to {_inviteMap}.get("time")
set {_currentTime} to unix timestamp of now
set {_timeDiff} to {_currentTime} - {_inviteTime}
if {_timeDiff} > ({party::inviteTimeout} * 1000):
{party::invites}.remove({_ownerUUID})
send "&cKatılma isteği zaman aşımına uğradı!" to {_owner}
stop
set {_requesterPlayer} to {_requesterUUID}.toString() parsed as offline player
if {_requesterPlayer} is not online:
{party::invites}.remove({_ownerUUID})
send "&cİstek gönderen oyuncu çevrimiçi değil!" to {_owner}
stop
set {_members} to {party::members}.get({_ownerUUID})
if {_members}.size() >= 5:
{party::invites}.remove({_ownerUUID})
send "&cParti maksimum üye sayısına ulaşmış!" to {_owner}
stop
{_members}.add({_requesterUUID})
set {_ranks} to {party::ranks}.get({_ownerUUID})
{_ranks}.put({_requesterUUID}, 1)
{party::playerParties}.put({_requesterUUID}, {_ownerUUID})
{party::invites}.remove({_ownerUUID})
send "&7Başarıyla &6%{_owner}%'%turkceEk({_owner}'s name)% &7partisine katıldın!" to {_requesterPlayer}
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
if {_memberUUID} is not {_requesterUUID}:
send "&6[P] &f%{_requesterPlayer}% &7partiye katıldı!" to {_member}
function rejectJoinRequest(owner: player, requester: text):
set {_ownerUUID} to {_owner}'s uuid
if {party::invites}.containsKey({_ownerUUID}) is false:
send "&cAktif bir parti katılma isteği bulunmuyor!" to {_owner}
stop
set {_inviteMap} to {party::invites}.get({_ownerUUID})
set {_requesterUUID} to {_inviteMap}.get("requester")
set {_requesterPlayer} to {_requesterUUID}.toString() parsed as offline player
{party::invites}.remove({_ownerUUID})
send "&6%{_requesterPlayer}% &7adlı oyuncunun katılma isteğini reddettiniz!" to {_owner}
if {_requesterPlayer} is online:
send "&6%{_owner}% &7katılma isteğini reddetti!" to {_requesterPlayer}
function sendPartyMessage(p: player, message: text):
set {_uuid} to {_p}'s uuid
set {_partyOwner} to getPlayerParty({_p})
if {_partyOwner} is not set:
send "&cHerhangi bir partide bulunmuyorsun! /parti komutu ile herkese açık partileri keşfedebilirsin!" to {_p}
stop
set {_rank} to getPartyRank({_p})
if {party::muted::%{_partyOwner}%} is true:
if {_rank} < 2:
send "&cParti sohbeti şu anda &cdevre dışı&c!" to {_p}
stop
set {_rankDisplay} to getPartyRankDisplay({_rank})
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] %{_rankDisplay}% &f%{_p}%: &7%{_message}%" to {_member}
on join:
set {_uuid} to player's uuid
set {_partyOwner} to getPlayerParty(player)
if {_partyOwner} is set:
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
if {_memberUUID} is not {_uuid}:
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &f%player% &7çevrimiçi oldu!" to {_member}
on quit:
set {_uuid} to player's uuid
set {_partyOwner} to getPlayerParty(player)
if {_partyOwner} is set:
set {_members} to {party::members}.get({_partyOwner})
loop ...{_members}.toArray():
set {_memberUUID} to loop-value
if {_memberUUID} is not {_uuid}:
set {_member} to {_memberUUID}.toString() parsed as offline player
if {_member} is online:
send "&6[P] &f%player% &7çevrimdışı oldu!" to {_member}
function sendPartyHelp(p: player, page: number = 1):
set {_commands::*} to "oluştur;Yeni bir parti oluşturur", "at <oyuncu>;Belirtilen oyuncuyu partiden atar", "ayrıl;Partiden ayrılırsın", "davet <oyuncu>;Belirtilen oyuncuyu partiye davet eder", "kabulet <oyuncu>;Parti davetini kabul eder", "reddet <oyuncu>;Parti davetini reddeder", "liste;Parti üyelerini listeler", "sohbet;Parti sohbetini açar/kapatır", "not <mesaj>;Parti notu belirler", "seviye <seviye>;Minimum seviye belirler", "açıklama <mesaj>;Parti açıklaması belirler", "terfi <oyuncu>;Belirtilen oyuncuyu terfi ettirir", "düşür <oyuncu>;Belirtilen oyuncunun rütbesini düşürür", "transfer <oyuncu>;Parti liderliğini devreder", "oy <soru/cevap1/cevap2>;Parti oylaması başlatır", "gizle;Partiyi gizler/gösterir", "sustur;Parti sohbetini susturur/açar"
set {_totalPages} to ceil(size of {_commands::*} / 7)
if {_page} > {_totalPages}:
set {_page} to 1
send "" to {_p}
send "&6&lParti Komutları &7(%{_page}%/%{_totalPages}%)" to {_p}
send "" to {_p}
send "&e/parti &8» &7Parti menüsünü açar" to {_p}
send "" to {_p}
set {_start} to ({_page} - 1) * 7
set {_end} to {_page} * 7 - 1
set {_currentIndex} to 0
loop {_commands::*}:
if {_currentIndex} >= {_start}:
if {_currentIndex} <= {_end}:
set {_split::*} to loop-value split at ";"
send "&e/parti %{_split::1}% &8» &7%{_split::2}%" to {_p}
add 1 to {_currentIndex}
send "" to {_p}
set {_message} to ""
if {_page} > 1:
set {_message} to "%{_message}%<cmd:/parti yardım %{_page}-1%>&8[&e«&8] &8&l| &7Sayfa &e%{_page}%&7/&e%{_totalPages}% &8&l| "
else:
set {_message} to "%{_message}%&8[&7«&8] &8&l| &7Sayfa &e%{_page}%&7/&e%{_totalPages}% &8&l| "
if {_page} < {_totalPages}:
set {_message} to "%{_message}%<cmd:/parti yardım %{_page}+1%>&8[&e»&8]"
else:
set {_message} to "%{_message}%&8[&7»&8]"
send formatted {_message} to {_p}
send "" to {_p}
acablade
Hiç :D Tüm Skriptleri eklenti olarak recodeledim zaten belki birisinin işine yarar diye pasladımbunu skriptle yazmak ne kadar mantikli tartisilir.
Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!