🌊 Okyanus Gelişmiş Yönetim Paketleri: Süreli Mute & Ban Sistemleri (Saf Kod & Action Bar Destekli!)

  • Konuyu Başlatan Konuyu Başlatan yaso5434
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 10

yaso5434

Birisi mi Spawnlandı?
Katılım
4 Temmuz 2025
Mesajlar
5
Elmaslar
2
Puan
385
Yaş
27
Konum
türkiye
Minecraft
Dexin

Discord:

Dexin5.

Herkese selamlar değerli MC-TR üyeleri ve sunucu sahipleri!

Bugün, sıfırdan geliştirmekte olduğum Okyanus Network projem için tamamen saf kodla, sunucuyu yormayacak şekilde hazırladığım iki temel yönetim sistemini sizlerle paylaşıyorum. Piyasada chati spamlayan, renk kodları bozulan veya lag yapan eklentilerden sıkıldıysanız; bu iki skript tam aradığınız ilaç olacak!

🔥 Öne Çıkan Özellikler​

  • Sıfır Lag & Saf Kod: Tamamen optimize edilmiş değişken (variable) altyapısı sayesinde sunucu performansına en ufak bir yük bindirmez.
  • Akıllı Zaman Dönüştürücü: Komutlarda kullandığınız m (dakika), h (saat), d (gün) kısaltmalarını sistem arkada otomatik olarak algılar ve gerçek zaman dilimine pürüzsüzce çevirir.
  • Action Bar Kalan Süre Göstergesi (Mute): Susturulan oyuncu chate bir şey yazmaya çalıştığında chat kirlenmez. Ekranın ortasında anlık olarak kalan süresi ve susturulma sebebi akar!
  • Gelişmiş Giriş Reddi Ekranı (Ban): Banlanan oyuncu sunucuya girmeye çalıştığında dümdüz bir yazı görmez; yetkiliyi, sebebi ve kalan süreyi gösteren rengarenk ve elit bir arayüzle karşılaşır.

📜 1. Gelişmiş Süreli Mute Skripti​

Bu sistemle oyuncuları chati kirletmeden, ekranın ortasında kalan sürelerini gösterecek şekilde cezalandırabilirsiniz.

  • Yetki: okyanus.admin.mute
  • Komutlar:
    • /mute <oyuncu> <süre> <sebep> (Örn: /mute Kadir 15m Küfür)
    • /unmute <oyuncu> (Susturmayı anında kaldırır)
  • 💡 Küçük Bir Not: Projemiz Okyanus Network için sıfırdan sistemler geliştirmeye ve bunları "Devlog" tadında forumda paylaşmaya devam edeceğim. Sistemleri beğendiyseniz yorum yapmayı ve fikirlerinizi belirtmeyi unutmayın! Herhangi Bir Soru İçin Discord Üzerinden Dm Yollayabilirsiniz


    görsel_2026-06-15_191903275.webp

    1781540392048.webp

    1781540417133.webp

    1781540450050.webp



  • Kod:
    # Discordumuza Gelmeyi unutmayın:discord.gg/Okyanus
    # Destek İçin Discorda Gelin
    
    options:
        p: &bOkyanus &8»
        yetki: okyanus.admin.mute
    
    command /mute [<player>] [<text>] [<text>]:
        permission: {@yetki}
        permission message: {@p} &cBu komutu kullanmak için yetkiniz yok!
        trigger:
            if arg 1 is not set:
                send "{@p} &cKullanım: /mute <oyuncu> <süre (m/h/d)> <sebep>" to player
                stop
            if arg 2 is not set:
                send "{@p} &cLütfen bir süre belirtin! (Örn: 10m, 2h, 1d)" to player
                stop
            if arg 3 is not set:
                send "{@p} &cLütfen bir susturma sebebi girin!" to player
                stop
    
            # Süre formatını metinden zamana çevirme kontrolü
            set {_sure} to arg 2
            replace all "m" with " minutes" in {_sure}
            replace all "h" with " hours" in {_sure}
            replace all "d" with " days" in {_sure}
            set {_zaman} to {_sure} parsed as time span
            
            if {_zaman} is not set:
                send "{@p} &cGeçersiz süre formatı! Dakika için &em&c, saat için &eh&c, gün için &ed &ckullanın. (Örn: 15m)" to player
                stop
    
            # Oyuncunun verilerini kaydetme
            set {susturulma::%uuid of arg 1%} to true
            set {susturulma::sure::%uuid of arg 1%} to now
            set {susturulma::bitis::%uuid of arg 1%} to {_zaman}
            set {susturulma::sebep::%uuid of arg 1%} to arg 3
    
            broadcast "{@p} &e%arg 1% &7isimli oyuncu, &e%arg player% &7tarafından &b%arg 2% &7süreyle &c%arg 3% &7sebebiyle susturuldu!"
    
    # Oyuncu chate bir şey yazdığında çalışacak kontrol sistemi
    on chat:
        if {susturulma::%uuid of player%} is true:
            # Geçen süreyi hesaplama
            set {_gecen} to difference between {susturulma::sure::%uuid of player%} and now
            if {_gecen} is less than {susturulma::bitis::%uuid of player%}:
                cancel event
                # Kalan süreyi hesaplama
                set {_kalan} to difference between {_gecen} and {susturulma::bitis::%uuid of player%}
                
                # Action Bar üzerinden pürüzsüz uyarı mesajı
                send action bar "&c&lSUSTURULDUN! &7Kalan Süre: &e%{_kalan}% &7- Sebep: &c%{susturulma::sebep::%uuid of player%}%" to player
                send "{@p} &cSusturulduğunuz için konuşamazsınız! Kalan Süre: &e%{_kalan}%" to player
            else:
                # Süre dolduysa verileri temizleme
                delete {susturulma::%uuid of player%}
                delete {susturulma::sure::%uuid of player%}
                delete {susturulma::bitis::%uuid of player%}
                delete {susturulma::sebep::%uuid of player%}
                send "{@p} &aSusturma süreniz doldu, artık konuşabilirsiniz." to player
    
    # Mute kaldırma komutu
    command /unmute [<player>]:
        permission: {@yetki}
        permission message: {@p} &cBu komutu kullanmak için yetkiniz yok!
        trigger:
            if arg 1 is not set:
                send "{@p} &cKullanım: /unmute <oyuncu>" to player
                stop
            if {susturulma::%uuid of arg 1%} is not set:
                send "{@p} &cBu oyuncu zaten susturulmamış!" to player
                stop
                
            delete {susturulma::%uuid of arg 1%}
            delete {susturulma::sure::%uuid of arg 1%}
            delete {susturulma::bitis::%uuid of arg 1%}
            delete {susturulma::sebep::%uuid of arg 1%}
            broadcast "{@p} &e%arg 1% &7isimli oyuncunun susturulması &a%player% &7tarafından kaldırıldı!"
    
    command /ban [<offline player>] [<text>] [<text>]:
        permission: {@yetki}
        permission message: {@p} &cBu komutu kullanmak için yetkiniz yok!
        trigger:
            if arg 1 is not set:
                send "{@p} &cKullanım: /ban <oyuncu> <süre (m/h/d) veya limitsiz> <sebep>" to player
                stop
            if arg 2 is not set:
                send "{@p} &cLütfen bir süre belirtin! Süresiz için &elimitsiz &cyazın. (Örn: 7d, 12h, limitsiz)" to player
                stop
            if arg 3 is not set:
                send "{@p} &cLütfen bir ban sebebi girin!" to player
                stop
    
            # Süresiz ban kontrolü
            if arg 2 is "limitsiz" or "sure-siz" or "perma":
                set {banli::%uuid of arg 1%} to true
                set {banli::tur::%uuid of arg 1%} to "Süresiz"
                set {banli::sebep::%uuid of arg 1%} to arg 3
                set {banli::yetkili::%uuid of arg 1%} to player
                
                # Oyuncu aktifse sunucudan renkli mesajla at
                if arg 1 is online:
                    kick arg 1 due to colored "%nl%&b&lOKYANUS NETWORK%nl%&c&lSUNUCUDAN UZAKLAŞTIRILDINIZ!%nl%%nl%&7Uzaklaştıran Yetkili: &e%player%%nl%&7Uzaklaştırma Sebebi: &c%arg 3%%nl%&7Kalan Süre: &c&lSÜRESİZ!%nl%%nl%&fİtiraz etmek için Discord: &bdiscord.gg/okyanus"
                
                broadcast "{@p} &e%arg 1% &7isimli oyuncu, &e%player% &7tarafından &c&lSÜRESİZ &7olarak &c%arg 3% &7sebebiyle banlandı!"
                stop
    
            # Süreli ban formatını zamana çevirme
            set {_sure} to arg 2
            replace all "m" with " minutes" in {_sure}
            replace all "h" with " hours" in {_sure}
            replace all "d" with " days" in {_sure}
            set {_zaman} to {_sure} parsed as time span
            
            if {_zaman} is not set:
                send "{@p} &cGeçersiz süre formatı! Dakika için &em&c, saat için &eh&c, gün için &ed &ckullanın. Süresiz için &elimitsiz &cyazın." to player
                stop
    
            # Süreli ban verilerini kaydetme
            set {banli::%uuid of arg 1%} to true
            set {banli::tur::%uuid of arg 1%} to "Süreli"
            set {banli::baslangic::%uuid of arg 1%} to now
            set {banli::bitis::%uuid of arg 1%} to {_zaman}
            set {banli::sebep::%uuid of arg 1%} to arg 3
            set {banli::yetkili::%uuid of arg 1%} to player
    
            # Oyuncu aktifse sunucudan renkli mesajla at
            if arg 1 is online:
                kick arg 1 due to colored "%nl%&b&lOKYANUS NETWORK%nl%&c&lSUNUCUDAN UZAKLAŞTIRILDINIZ!%nl%%nl%&7Uzaklaştıran Yetkili: &e%player%%nl%&7Uzaklaştırma Sebebi: &c%arg 3%%nl%&7Kalan Süre: &e%arg 2%%nl%%nl%&fİtiraz etmek için Discord: &bdiscord.gg/okyanus"
    
            broadcast "{@p} &e%arg 1% &7isimli oyuncu, &e%player% &7tarafından &b%arg 2% &7süreyle &c%arg 3% &7sebebiyle banlandı!"
    
    # Oyuncu sunucuya girmeye çalıştığında çalışacak koruma sistemi
    on connect:
        if {banli::%uuid of player%} is true:
            
            # Eğer süresiz bansa direkt engelle
            if {banli::tur::%uuid of player%} is "Süresiz":
                kick player due to colored "%nl%&b&lOKYANUS NETWORK%nl%&c&lSUNUCUDAN UZAKLAŞTIRILDINIZ!%nl%%nl%&7Uzaklaştıran Yetkili: &e%{banli::yetkili::%uuid of player%}% %nl%&7Uzaklaştırma Sebebi: &c%{banli::sebep::%uuid of player%}% %nl%&7Kalan Süre: &c&lSÜRESİZ!%nl%%nl%&fİtiraz etmek için Discord: &bDiscord İsmi"
                stop
    
            # Süreli bansa zamanı kontrol et
            set {_gecen} to difference between {banli::baslangic::%uuid of player%} and now
            if {_gecen} is less than {banli::bitis::%uuid of player%}:
                # Kalan süreyi hesapla
                set {_kalan} to difference between {_gecen} and {banli::bitis::%uuid of player%}
                kick player due to colored "%nl%&b&lOKYANUS NETWORK%nl%&c&lSUNUCUDAN UZAKLAŞTIRILDINIZ!%nl%%nl%&7Uzaklaştıran Yetkili: &e%{banli::yetkili::%uuid of player%}% %nl%&7Uzaklaştırma Sebebi: &c%{banli::sebep::%uuid of player%}% %nl%&7Kalan Süre: &e%{_kalan}% %nl%%nl%&fİtiraz etmek için Discord: &bDiscord İsmi"
            else:
                # Süresi dolduysa banı otomatik kaldır ve verileri temizle
                delete {banli::%uuid of player%}
                delete {banli::tur::%uuid of player%}
                delete {banli::baslangic::%uuid of player%}
                delete {banli::bitis::%uuid of player%}
                delete {banli::sebep::%uuid of player%}
                delete {banli::yetkili::%uuid of player%}
    
    # Ban kaldırma komutu
    command /unban [<offline player>]:
        permission: {@yetki}
        permission message: {@p} &cBu komutu kullanmak için yetkiniz yok!
        trigger:
            if arg 1 is not set:
                send "{@p} &cKullanım: /unban <oyuncu>" to player
                stop
            if {banli::%uuid of arg 1%} is not set:
                send "{@p} &cBu oyuncu zaten banlanmamış!" to player
                stop
                
            delete {banli::%uuid of arg 1%}
            delete {banli::tur::%uuid of arg 1%}
            delete {banli::baslangic::%uuid of arg 1%}
            delete {banli::bitis::%uuid of arg 1%}
            delete {banli::sebep::%uuid of arg 1%}
            delete {banli::yetkili::%uuid of arg 1%}
            broadcast "{@p} &e%arg 1% &7isimli oyuncunun banı &a%player% &7tarafından kaldırıldı!"
 
Elinize Sağlık yine sade güzel kullanılabilir bir skript olmuş
 
Güzel yorumunuz ve geri bildiriminiz için teşekkür ederim. Okyanus Network geliştirme sürecinde paylaştığım bu skriptlerin işinize yaraması beni mutlu eder. Keyifli kullanımlar dilerim!
 

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst