Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Eklentilere genel bakış

Bu sayfa, Open Play’de eklenti (plugin) kavramını açıklar: oyuna özgü komutları, sorguları ve gerçek zamanlı modülleri çekirdeğe oyun adı eklemeden sunan paketler. Çekirdek modüllerin (karakter, ekonomi, mağaza…) ötesinde bir oyunun mantığına nasıl bağlandığınızı ve neyin bugün desteklenmediğini burada görürsünüz.

Eklenti nedir

Bir eklenti, Open Play sunucusunun içinde çalışan ve şu üç yüzeyi tanımlayan bir pakettir:

YüzeyNe verirNasıl çağrılır
Komut (command)Durumu değiştiren, kalıcı ve tekrar-güvenli işlem (ör. ödül al, teslimatı tamamla)HTTP POST ya da realtime Command çerçevesi: eklentileri çağırma
Sorgu (query)Salt-okunur okuma (ör. aktif teslimat, katalog)HTTP GET ya da POST
Realtime modülüAnlık girdi ve durum yayını (hareket, oda, sahne)/v1/realtime/ws: realtime protokolü

Her eklenti bir şema belgesi (artifact) yayınlar: hangi komut, sorgu ve modülün hangi girdi ve çıktı şemasıyla var olduğunu, hangi kimlikle çağrılabildiğini ve yeniden deneme kuralını tarif eder. SDK’ların tipli bağlamaları bu belgeden üretilir: bağlamalar.

Komutlar tek bir veritabanı işleminde (transaction) kesinleşir: komutun etkisi, sonucu, olayı ve tekrar kaydı birlikte yazılır ya da hiç yazılmaz. Gerçek zamanlı geçici durum ise yalnız hız için tutulur ve ödeme, XP, eşya ya da ödül gibi kalıcı sonuçların otoritesi değildir.

Bugünkü durum: yalnız güvenilir, derlenmiş eklentiler

Uyarı

Üçüncü taraf eklenti yükleme henüz yok. Eklentiler, Open Play sunucusunun kendisine derlenmiş (Rust) kodlardır ve güvenilir kod sayılır. Bir oyun geliştiricisi olarak kendi eklentinizi paneldan ya da API’den yükleyemezsiniz; yalıtılmış (sandbox) çalıştırma, kaynak ölçümü ve imzalı dağıtım gelecekteki bir tasarımdır ve bugün çalışmaz.

Kendi oyun mantığınızı bugün şu yollarla bağlarsınız:

  • Kurallar (panelde Kurallar ekranı): karakter olaylarına bağlı otomasyonlar. Bkz. oyun kuralları.
  • Webhook’lar: Open Play olaylarını kendi sunucunuza bildirir. Bkz. webhook rehberi.
  • Kendi sunucunuz + sunucu anahtarı: kendi mantığınızı kendi sunucunuzda çalıştırıp çekirdek REST uçlarını çağırın. Bkz. uç nokta referansı.

Depoda gelen eklentiler:

EklentiSürümNe içinYüzey
package-ride1.44.0Teslimat oyunu: sürüş, görevler, yarış bahisleri, sahne36 komut, 33 sorgu, 3 realtime modülü
arena1.0.0Minimal örnek: tek hareket modülü0 komut, 0 sorgu, 1 realtime modülü

Bunlar sunucuyla birlikte gelir; sizin ortamınızda hangilerinin etkin olduğunu panelde Eklentiler ekranından görürsünüz (Eklentiler).

Ortam başına durum

Bir eklenti, her ortam (environment) için ayrı ayrı bir durumda bulunur:

DurumKomutlarSorgular
Etkin (Enabled)kabul edilirkabul edilir
Salt okunur (ReadOnly)reddedilirkabul edilir
Boşaltılıyor (Draining)yeni komut reddedilir, süren işler biterkabul edilir
Kapalı (Disabled)reddedilirreddedilir

Reddedilen çağrı 403 ve forbidden alır (hatalar). Aynı sonuç, ortama verilen eklenti sürümü sunucudaki sürümle uyuşmadığında da görülür: sunucu yeni bir eklenti sürümüyle güncellendiyse ortamın eklenti yetkisi (grant) de o sürüme geçirilmelidir. Beklenmedik 403 forbidden alıyorsanız önce panelde eklentinin durumuna ve sürümüne bakın.

Ek olarak ürün modülü plugins kapalıysa tüm /v1/plugins/... ve realtime uçları 404 ve module_disabled döner (Oyun ayarları: modüller).

Kimlikle erişim

Her işlemin şema belgesinde bir access değeri vardır:

accessKim çağırır
playerOyuncu oturumu (çerez ya da Bearer oturum jetonu)
serverYalnız sunucu anahtarı; oyuncu istemcisinde görünmez
publicKimlik gerektirmeyen, yalnız GET sorgusu (yalnız x-crx-env gerekir)

Belirtilmemiş ya da bilinmeyen değer güvenli tarafa (player) düşer. İstemciye gömülen (client) API anahtarıyla eklenti çağrılamaz: 401 alır. Ayrıntı: eklentileri çağırma.

Sıradaki adım