Marseux
Birisi mi Spawnlandı?
- Katılım
- 20 Eylül 2022
- Mesajlar
- 8
- Elmaslar
- 7
- Puan
- 3.760
- Konum
- Turkiye
- Minecraft
- Mars3ux
Discord:
marseux
Gelişmiş Oyuncu Şikayet Sistemi
Oyuncuların istedikleri şekilde diğer oyuncuları yetkililere şikayet edebilmelerini sağlayan basit bir skript.
Kullanım ve Komutlar:
/şikayet (oyuncu ismi) (sebep) - İstediğiniz oyuncuyu şikayet etmenizi sağlar.
/şikayetler - Yöneticiler için gönderilen şikayetleri görüntülemeyi sağlar.
/şikayetler kaldır (sayı) - Şikayet numarasını girerek şikayeti silmenizi sağlar.
/şikayetler temizle - Tüm gönderilen şikayetleri siler.
Gerekli Eklentiler:
Skript 2.13.2+
Kullanım ve Komutlar:
/şikayet (oyuncu ismi) (sebep) - İstediğiniz oyuncuyu şikayet etmenizi sağlar.
/şikayetler - Yöneticiler için gönderilen şikayetleri görüntülemeyi sağlar.
/şikayetler kaldır (sayı) - Şikayet numarasını girerek şikayeti silmenizi sağlar.
/şikayetler temizle - Tüm gönderilen şikayetleri siler.
Gerekli Eklentiler:
Skript 2.13.2+
Kod:
# made by Mars3ux #
# Soru ve öneriler için: #
# discord: marseux #
options:
title: &8Şikayetler Menüsü
c: <##CACACA>
p: &7[<##FF2525>&lşiᴋᴀʏᴇᴛ&7] &r
function sikayet_menu(p: player, sayfa: number = 1):
set {_inv} to chest inventory with 6 rows named "{@title} - Sayfa %{_sayfa}%"
wait 1 tick
set slot (numbers between 0 and 9, 17, 18, 26, 27, 35, 36, numbers between 44 and 53) of {_inv} to gray stained glass pane without tooltips
set {_midslot::*} to 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42 and 43
set {_itemPP} to size of {_midslot::*}
if size of {sikayet::*} = 0:
set slot 22 of {_inv} to barrier named "&cŞikayet yok" with lore "&7Henüz hiç şikayet gönderilmedi."
open {_inv} to {_p}
stop
set {_totalitem} to size of {sikayet::*}
set {_tumsayfalar} to ceil({_totalitem} / {_itemPP})
if {_sayfa} < 1:
set {_sayfa} to 1
if {_sayfa} > {_tumsayfalar}:
set {_sayfa} to {_tumsayfalar}
set {_startind} to ({_sayfa} - 1) * {_itemPP} + 1
set {_endind} to min({_startind} + {_itemPP} - 1, {_totalitem})
set {_slotind} to 0
set {_curind} to 0
loop {sikayet::*}:
set {_curind} to {_curind} + 1
if {_curind} < {_startind}:
continue
if {_curind} > {_endind}:
stop loop
set {_slotind} to {_slotind} + 1
if {_slotind} > size of {_midslot::*}:
stop loop
set {_reportContent} to loop-value
set {_index} to {_curind}
set {_sikayetTargetPlayer} to {sikayet::%{_index}%::target}
set {_sebep} to {_reportContent}
set {_sikayetci} to {sikayet::%{_index}%::player}
set {_tarih} to {sikayet::%{_index}%::tarih}
set {_strlen} to length of {_sebep}
set {_maxlen} to 70
if {_strlen} <= {_maxlen}:
set {_lore::*} to "&7Sebep: %{_sebep}%"
else:
set {_l1} to substring of {_sebep} from 1 to 70
set {_l2start} to 70 + 1
set {_l2end} to min({_l2start} + 70 - 1, {_strlen})
set {_l2} to substring of {_sebep} from {_l2start} to {_l2end}
set {_l3start} to {_l2end} + 1
if {_l3start} <= {_strlen}:
set {_l3end} to min({_l3start} + 70 - 1, {_strlen})
set {_l3} to substring of {_sebep} from {_l3start} to {_l3end}
set {_l4start} to {_l3end} + 1
if {_l3end} - {_l3start} + 1 > 70:
set {_l3_1} to substring of {_l3} from 1 to 70
set {_l3_2start} to 70 + 1
set {_l3_2end} to length of {_l3}
if {_l3_2start} <= {_l3_2end}:
set {_l3_2} to substring of {_l3} from {_l3_2start} to {_l3_2end}
else:
set {_l3_2} to ""
set {_lore::*} to "&7Sebep: %{_l1}%", "&7%{_l2}%", "&7%{_l3_1}%" and "&7%{_l3_2}%"
else if {_l4start} <= {_strlen}:
set {_l4end} to {_strlen}
set {_l4} to substring of {_sebep} from {_l4start} to {_l4end}
set {_lore::*} to "&7Sebep: %{_l1}%", "&7%{_l2}%", "&7%{_l3}%" and "&7%{_l4}%"
else:
set {_lore::*} to "&7Sebep: %{_l1}%", "&7%{_l2}%" and "&7%{_l3}%"
else:
set {_lore::*} to "&7Sebep: %{_l1}%" and "&7%{_l2}%"
set {_item} to book named "&cŞikayet #%{_index}%" with lore {_lore::*}
add "&7" to {_item}'s lore
add "&7Şikayet Edilen: &c%{_sikayetTargetPlayer}%" to {_item}'s lore
if {_sikayetci} is set:
add "&7Şikayetçi: &f%{_sikayetci}%" to {_item}'s lore
if {_tarih} is set:
add "&7Zaman: &f%{_tarih}%" to {_item}'s lore
set {_targetSlot} to {_midslot::%{_slotind}%}
set slot {_targetSlot} of {_inv} to {_item}
set {_index} to {_index} + 1
if {_sayfa} > 1:
set slot 45 of {_inv} to arrow named "&eÖnceki Sayfa" with lore "&7Sayfa %{_sayfa}% / %{_tumsayfalar}%"
else:
set slot 45 of {_inv} to barrier named "&cÖnceki Sayfa Yok"
if {_sayfa} < {_tumsayfalar}:
set slot 53 of {_inv} to arrow named "&eSonraki Sayfa" with lore "&7Sayfa %{_sayfa}% / %{_tumsayfalar}%"
else:
set slot 53 of {_inv} to barrier named "&cSonraki Sayfa Yok"
set slot 49 of {_inv} to paper named "&eSayfa %{_sayfa}% / %{_tumsayfalar}%" with lore "&7Toplam &e%{_totalitem}% &7şikayet"
open {_inv} to {_p}
stop
on inventory click:
if name of player's current inventory contains "{@title}":
cancel event
if event-slot is 45:
set {_aktifSayfa} to {menu_sayfa::%player%}
if {_aktifSayfa} is not set:
set {_aktifSayfa} to 1
if {_aktifSayfa} > 1:
set {_aktifSayfa} to {_aktifSayfa} - 1
set {menu_sayfa::%player%} to {_aktifSayfa}
sikayet_menu(player, {_aktifSayfa})
else if event-slot is 53:
set {_aktifSayfa} to {menu_sayfa::%player%}
if {_aktifSayfa} is not set:
set {_aktifSayfa} to 1
set {_totalitem} to size of {sikayet::*}
set {_itemPP} to 28
set {_tumsayfalar} to ceil({_totalitem} / {_itemPP})
if {_aktifSayfa} < {_tumsayfalar}:
set {_aktifSayfa} to {_aktifSayfa} + 1
set {menu_sayfa::%player%} to {_aktifSayfa}
sikayet_menu(player, {_aktifSayfa})
stop
command /şikayet <offline player> <text>:
usage: {@p}{@c}Kullanım: /şikayet <oyuncuismi> <sebep>
permission: sikayet.sk
permission message: "{@p}{@c}Bunun için gerekli yetkiye sahip değilsin!"
trigger:
if arg-1 is not set:
send "{@p}{@c}Kullanım: /şikayet <oyuncuismi> <sebep>" to player
stop
if arg-2 is not set:
send "{@p}{@c}Kullanım: /şikayet <oyuncuismi> <sebep>" to player
stop
if arg-2 is player:
send "{@p}{@c}Kendini şikayet edemezsin." to player
stop
set {_target} to arg-1
set {_sebep} to arg-2
set {_player} to player
if metadata tag "sikayetsure" of player is not set:
if {sikayet_onay::%{_player}%} is true:
if {sikayet_bekleme::%{_player}%} is "%{_target}%|%{_sebep}%":
set {_index} to size of {sikayet::*} + 1
add "%{_sebep}%" to {sikayet::*}
set {sikayet::%{_index}%} to "%{_sebep}%"
set {sikayet::%{_index}%::player} to "%{_player}%"
set {sikayet::%{_index}%::tarih} to now
set {sikayet::%{_index}%::target} to "%{_target}%"
send "{@p}{@c}Şikayetiniz gönderildi: &c%{_target}% &7- &e%{_sebep}%"
send "{@p}{@c}15 dakika boyunca tekrar şikayet gönderemezsiniz."
set metadata tag "sikayetsure" of player to now
delete {sikayet_onay::%{_player}%}
delete {sikayet_bekleme::%{_player}%}
loop all players:
if loop-player has permission "sikayet.admin":
send "{@p}{@c}[%{_player}% -> %{_target}%]: %{_sebep}%" to loop-player
stop
if {sikayet_bekleme::%{_player}%} is not "%{_target}%|%{_sebep}%":
delete {sikayet_onay::%{_player}%}
delete {sikayet_bekleme::%{_player}%}
else if {sikayet_onay::%{_player}%} is not set:
set {sikayet_onay::%{_player}%} to true
set {sikayet_bekleme::%{_player}%} to "%{_target}%|%{_sebep}%"
send "{@p}{@c}Şikayetiniz: &c%{_target}% &7- &e%{_sebep}%"
send "{@p}{@c}Bu şikayeti göndermek istediğinize emin misiniz?"
send "{@p}{@c}Onaylamak için aynı komutu tekrar yazın: &e/şikayet %{_target}% %{_sebep}%"
send "{@p}{@c}&cUyarı: &fŞikayeti gönderirseniz 15 dakika boyunca yeni şikayet gönderemezsiniz!"
stop
else if difference between metadata tag "sikayetsure" of player and now < 15 minutes:
set {_sure} to difference between metadata tag "sikayetsure" of player and now
set {_sure2} to 15 minutes
remove {_sure} from {_sure2}
set {_sure2} to "%{_sure2}%"
replace all "seconds" or "second" in {_sure2} with "&fsaniye"
replace all "minutes" or "minute" in {_sure2} with "&fdakika&e"
replace all "and" in {_sure2} with ""
replace all " " in {_sure2} with " "
send "{@p}{@c}Bir sonraki şikayetinizi bildirmek için &e%{_sure2}%&f beklemelisiniz!"
stop
command /şikayetler [<text>] [<number>]:
permission: sikayet.admin
permission message: "{@p}{@c}Bunun için gerekli yetkiye sahip değilsin!"
trigger:
if arg-1 is not set:
set {menu_sayfa::%player%} to 1
sikayet_menu(player, 1)
stop
if arg-1 is "temizle":
set {_sikayetsayi} to size of {sikayet::*}
if {_sikayetsayi} < 1:
set {_sikayetsayi} to 1
loop {_sikayetsayi} times:
if {sikayet::%loop-number%} is set:
delete {sikayet::%loop-number%}
if {sikayet::%loop-number%::player} is set:
delete {sikayet::%loop-number%::player}
if {sikayet::%loop-number%::tarih} is set:
delete {sikayet::%loop-number%::tarih}
if {sikayet::%loop-number%::target} is set:
delete {sikayet::%loop-number%::target}
delete {sikayet::*}
send "{@p}{@c}Tüm şikayetler temizlendi!"
stop
if arg-1 is "kaldır":
if arg-2 is not set:
send "{@p}{@c}Geçersiz şikayet numarası!"
send "{@p}{@c}Kullanım: /şikayetler kaldır <numara>"
stop
set {_max} to 0
loop {sikayet::*}:
add 1 to {_max}
if {_max} = 0:
send "{@p}{@c}Hiç şikayet yok!"
stop
if arg-2 < 1:
send "{@p}{@c}Geçersiz şikayet numarası! (Mevcut: 1-%{_max}%)"
stop
if arg-2 > {_max}:
send "{@p}{@c}Geçersiz şikayet numarası! (Mevcut: 1-%{_max}%)"
stop
if {sikayet::%arg-2%} is not set:
send "{@p}{@c}Geçersiz şikayet numarası!"
stop
set {_delInd} to arg-2
remove {sikayet::%{_delInd}%} from {sikayet::*}
delete {sikayet::%{_delInd}%}
if {sikayet::%{_delInd}%::player} is set:
delete {sikayet::%{_delInd}%::player}
if {sikayet::%{_delInd}%::tarih} is set:
delete {sikayet::%{_delInd}%::tarih}
if {sikayet::%{_delInd}%::target} is set:
delete {sikayet::%{_delInd}%::target}
set {_newIndex} to 1
loop {_max} times:
set {_oldInd} to loop-number
if {_oldInd} is not {_delInd}:
if {sikayet::%{_oldInd}%} is set:
set {_kayitliSikayet::%{_newIndex}%::sebep} to {sikayet::%{_oldInd}%}
if {sikayet::%{_oldInd}%::player} is set:
set {_kayitliSikayet::%{_newIndex}%::player} to {sikayet::%{_oldInd}%::player}
if {sikayet::%{_oldInd}%::tarih} is set:
set {_kayitliSikayet::%{_newIndex}%::tarih} to {sikayet::%{_oldInd}%::tarih}
if {sikayet::%{_oldInd}%::target} is set:
set {_kayitliSikayet::%{_newIndex}%::target} to {sikayet::%{_oldInd}%::target}
set {_newIndex} to {_newIndex} + 1
loop {_max} times:
if {sikayet::%loop-number%} is set:
delete {sikayet::%loop-number%}
if {sikayet::%loop-number%::player} is set:
delete {sikayet::%loop-number%::player}
if {sikayet::%loop-number%::tarih} is set:
delete {sikayet::%loop-number%::tarih}
if {sikayet::%loop-number%::target} is set:
delete {sikayet::%loop-number%::target}
delete {sikayet::*}
set {_newIndex} to 1
loop {_max} - 1 times:
if {_kayitliSikayet::%{_newIndex}%::sebep} is set:
set {sikayet::%{_newIndex}%} to {_kayitliSikayet::%{_newIndex}%::sebep}
add {_kayitliSikayet::%{_newIndex}%::sebep} to {sikayet::*}
if {_kayitliSikayet::%{_newIndex}%::player} is set:
set {sikayet::%{_newIndex}%::player} to {_kayitliSikayet::%{_newIndex}%::player}
if {_kayitliSikayet::%{_newIndex}%::tarih} is set:
set {sikayet::%{_newIndex}%::tarih} to {_kayitliSikayet::%{_newIndex}%::tarih}
if {_kayitliSikayet::%{_newIndex}%::target} is set:
set {sikayet::%{_newIndex}%::target} to {_kayitliSikayet::%{_newIndex}%::target}
set {_newIndex} to {_newIndex} + 1
if {sikayet::%{_max}%} is set:
delete {sikayet::%{_max}%}
if {sikayet::%{_max}%::player} is set:
delete {sikayet::%{_max}%::player}
if {sikayet::%{_max}%::tarih} is set:
delete {sikayet::%{_max}%::tarih}
if {sikayet::%{_max}%::target} is set:
delete {sikayet::%{_max}%::target}
send "{@p}{@c}Şikayet #%arg-2% kaldırıldı!"
stop
send "{@p}{@c}Bilinmeyen komut. Kullanım: /şikayetler <temizle|kaldır <numara>>"
Değerli ziyaretçimiz, içeriği görebilmek için
şimdi giriş yapın veya kayıt olun.
Ekli dosyalar
Moderatör tarafından düzenlendi:



