Geliştirici API'si
API, integrations.developer-api altında varsayılan olarak etkindir. Bukkit'in ServicesManager bileşenine kaydedilir, sabit bir bağımlılık gereksinimi yoktur ve ReferralTrack devre dışı bırakıldığında temiz biçimde kaldırılır. Yapılandırmayı yeniden yüklemek onu hemen kaydeder veya kaydını siler.
RegisteredServiceProvider<ReferralTrackApi> registration =
Bukkit.getServicesManager().getRegistration(ReferralTrackApi.class);
ReferralTrackApi api = registration == null ? null : registration.getProvider();ReferralTrack'i kullanan eklentide softdepend veya depend olarak ekleyin. ReferralTrack API sınıflarını shade etmeyin veya yeniden konumlandırmayın. Sorgulardan önce api.isReady() değerini denetleyin. findReferral, countValidatedInvites ve topReferrers salt okunurdur ve CompletableFuture döndürür; geri çağrıları Bukkit ana/varlık iş parçacığında çalışmaz. DTO kayıtları değiştirilemezdir ve dahili veritabanı satır kimliklerini veya değiştirilebilir yapılandırma nesnelerini göstermez.
Olaylar #
ReferralPreClaimEvent eşzamanlı ve iptal edilebilirdir. ReferralTrack'in kendi komut, izin, bekleme süresi, yok sayma ve talep penceresi korumalarından sonra, ancak herhangi bir eşzamansız sorgu veya veritabanı yazımından önce tetiklenir. İptal, talebi engeller ve yerelleştirilmiş genel bir entegrasyon engeli mesajı gösterir. Gönderilen dizeler salt okunurdur; böylece dinleyiciler ReferralTrack doğrulamasını atlayamaz.
ReferralClaimResultEvent eşzamansızdır ve iptal edilemez. Tamamlanan her yönetici sonucunu bildirir; ret/hata sonuçları, kaynak/kampanya kimliği, davet eden UUID'si ve bekleyen durum dahil. Dinleyicisi Bukkit oyuncu/dünya/envanter API'lerine doğrudan erişmemelidir; bu tür işleri kullanan eklentinin Paper/Folia uyumlu zamanlayıcısı üzerinden zamanlayın. Bu bildirimden para vermeyin: ReferralTrack'in kalıcı ödül defteri gerçeğin kaynağı olmaya devam eder.
Her iki olayın da bağımsız yapılandırma anahtarları vardır. Geliştirici API'sini kapatmak her ikisini de kapatır.