İçeriğe geç

Ürün komutları ve güvenlik

Ürün komutlarının oyuna nasıl teslim edildiği, yer tutucular, izin listesi ve hiçbir zaman çalışmayan komutlar.

Bir ürün teslim edildiğinde site, ürünün komutlarını oyuncunun adıyla doldurur ve sunucunun kuyruğuna ekler. BorCube Connect bu komutları alır, kendi izin listesine bakar ve sunucu konsolunda çalıştırır. Bu makale komut yazmayı ve eklentinin seni nasıl koruduğunu anlatır.

Teslimat adım adım#

  1. Oyuncu ürünü alır ya da sandığından teslim alır. Ayrıntılar: Sandık ve teslimat.
  2. Site, ürünün her komutunu oyuncunun adıyla doldurur ve seçtiğin sunucunun kuyruğuna koyar.
  3. Eklenti komutu alır, izin listesine bakar ve konsolda çalıştırır.
  4. Eklenti sonucu bildirir; panelde komutun durumu değişir.

Komut durumları: bekliyor, gönderildi, teslim edildi, başarısız, iptal.

Teslimat "en az bir kez" çalışır. Eklentinin onayı yolda kaybolursa site aynı komutu yeniden gönderir; eklenti çalıştırdığı komutları executed.txt dosyasında tuttuğu için aynı komutu ikinci kez çalıştırmaz. Eklenti bir komutu alıp 5 dakika içinde sonuç bildirmezse komut kuyruğa geri döner. 5 denemeden sonra başarısız olur.

Ürüne komut eklemek#

  1. Yönetim paneli → Mağaza → Ürünler sayfasında ürünü aç.
  2. Komutlar kartında Komut düğmesine bas.
  3. Satırı doldur:
    • Sunucu: Komutun gideceği oyun sunucusu.
    • Ne zaman: Teslimde ya da Bitişte / iadede.
    • Komut: Başında / olmadan, konsolda yazacağın gibi.
    • Oyuncu çevrimiçi: İşaretlersen komut, oyuncu o sunucuya girene kadar bekler.
  4. Kaydet'e bas.

Bir üründe en fazla 30 komut olabilir. Bitişte / iadede komutları yalnızca kalıcı ve süreli ürünlerde vardır: süreli ürünün süresi dolunca ya da ürün iade edilince çalışır.

Yer tutucular#

Yer tutucuYerine gelenNerede kullanılır
{username}Oyuncunun Minecraft adıBütün ürünler
{order_id}Sipariş numarasıSatın alınarak gelen ürünler
{days}Ürünün süresi (gün)Yalnızca süreli ürünler
{var:anahtar}Oyuncunun seçtiği ürün seçeneğinin değeriTekrar alınabilir ürünlerde, zorunlu seçeneklerle, yalnızca teslim komutlarında

Örnekler:

Metin
lp user {username} parent add vip
lp user {username} parent addtemp vip {days}d
give {username} diamond 16

Kurallar:

  • Bilinmeyen bir yer tutucu (örneğin {user}) kayıtta reddedilir. {"text":"Merhaba"} gibi JSON ve NBT yazımlarına dokunulmaz.
  • Komut bir yer tutucuyla başlayamaz; komutun adını oyuncu seçemez.
  • Komut en fazla 500 karakter olabilir ve satır sonu içeremez.
  • Oyuncudan gelen seçenek değerleri yalnızca harf, rakam, _, . ve - içerebilir; boşluk içeremez, - ya da . ile başlayamaz.

Oyuncu çevrimiçi olmalı mı#

  • Kutu boş: Komut eklenti onu alır almaz çalışır, oyuncu oyunda olmasa bile. Rütbe vermek gibi oyuncu çevrimdışıyken de çalışan komutlar için uygundur.
  • Kutu işaretli: Komut, oyuncu o sunucuya girene kadar kuyrukta bekler. Oyuncu girince eklenti siteyi hemen yoklar. Eşya vermek gibi oyuncunun oyunda olması gereken komutlarda bunu kullan.

Oyuncu tam o sırada çıkarsa komut kaybolmaz, kuyruğa geri döner. Eklenti bir proxy'deyse (BungeeCord, Velocity) "çevrimiçi" proxy'ye bağlı olmak demektir.

İzin listesi: allowed-commands#

Eklenti varsayılan olarak her şeyi reddeder. Yalnızca oyun sunucundaki config.yml dosyasında allowed-commands listesinde olan komutlar çalışır.

  • Tek kelimelik madde o komutun tamamına izin verir: give.
  • Boşluklu madde bir kalıptır; * tam olarak bir kelime demektir. lp user * parent add * rütbe verir, ama lp user Ahmet permission set ... çalışmaz.
  • Komut adının önündeki minecraft: gibi ad alanları yok sayılır; minecraft:give ile give aynı komut sayılır.

Hazır liste give, LuckPerms rütbe kalıpları (parent add, parent remove, parent addtemp), eco, money, kasa ve anahtar komutları, say, broadcast, tellraw, title, effect, xp, kit, pet, tag ve points gibi yaygın mağaza komutlarını içerir.

Listede olmayan bir komut gelirse çalışmaz ve panelde şu nedenle başarısız görünür: Komut izin listesinde değil: <komut> (config.yml → allowed-commands). Komutu listeye ekle, /borcube reload yaz ve paneldeki Yeniden dene düğmesine bas.

Hiçbir zaman çalışmayan komutlar#

Engelleme iki katmandadır:

KatmanKomutlarDeğiştirilebilir mi
Siteop, deop, stop, restart, reload, rl, end, shutdown, greload, sudo, esudoHayır
Eklenti (blocked-commands)Yukarıdakilerin hepsi, ayrıca whitelist, ban-ip, pardon-ip, plugman, lpbEvet, ama önerilmez
  • Site bu komutları içeren ürünü kaydetmez ve panelden de göndermez.
  • Eklentinin engel listesi izin listesinden önce gelir; allow-all-commands açıkken bile çalışır.
  • İki katman da execute ... run <komut> içindeki komuta ve minecraft:op gibi ad alanlı yazımlara bakar.

Panel ele geçirilirse ne olur#

Eklenti, site ya da bir yönetici hesabı ele geçirilse bile sunucunu korumak için tasarlanmıştır:

  • İzin listesi ve engel listesi oyun sunucundaki config.yml dosyasındadır. Site bu dosyayı değiştiremez.
  • Listede olmayan ya da engelli bir komut sunucuda çalışmaz.
  • Satır sonu gibi kontrol karakteri içeren komutlar eklentide de reddedilir.
  • Eklenti token'ı yalnızca HTTPS ile gönderir (localhost ve yerel test için açılan allow-http hariç). Yönlendirmeleri izlemez, bu yüzden token başka bir adrese gitmez.
  • Site token'ın kendisini değil, yalnızca özetini saklar. Token sızarsa sunucu sayfasında Yeni token oluştur ya da Token'ı iptal et ile eskisini hemen geçersiz kıl.
  • Pazar kullanıyorsan eşya verisi sunucuna özel bazaar.key ile mühürlenir; eklenti mührü tutmayan veriyi açmaz.

Teslimatı takip etmek#

  • Sunucu sayfasındaki Komut geçmişi o sunucuya giden son komutları duruma göre süzer. Hata varsa nedeni komutun altında kırmızıyla yazar.
  • Yönetim paneli → Kayıtlar → Komut kayıtları bütün sunucuların komutlarını oyuncu, sunucu ve duruma göre süzer.
  • Başarısız bir komutu Yeniden dene ile tekrar gönderebilir, bekleyen ya da başarısız komutu İptal ile durdurabilirsin. Bu düğmeleri "Siparişleri ve ödemeleri yönetme (iade, ödeme onayı, komutu yeniden deneme, sandığa ürün gönderme)" yetkisi olan yetkililer görür.

Bir yanlış ya da eksik mi gördün? Discord’dan haber ver, hemen düzeltelim.