Bir oy nasıl ödüle dönüşür
Üç parça birlikte çalışır. Bir oyuncu bir sunucu listesinde oy verir. Liste, sunucundaki Votifier’a oyuncu adıyla ve listeyi tanımlayan bir servis adıyla birlikte bir oy mesajı gönderir. VotingPlugin bu mesajları dinler, ServiceSite değeri servis adıyla eşleşen oy sitesini bulur ve o sitenin ödüllerini çalıştırır.
Yani VotingPlugin oyları kendi başına almaz. Önce çalışan bir Votifier’a, genelde NuVotifier’a ihtiyacın var. Henüz kurmadıysan NuVotifier kurulum rehberini takip et ve geri gel.
- Votifier oyu alır ve kontrol eder (v2 için token, v1 için RSA anahtarı).
- VotingPlugin servis adını eşleştirir ve ödülleri verir.
- BestMCServerList servis adı olarak
BestMCServerListgönderir.
1. adım: VotingPlugin’i kur
- NuVotifier’ın çalıştığından ve erişilebilir olduğundan emin ol. Votifier sayfandan gönderilen bir test oyu konsolda görünmeli.
- VotingPlugin JAR’ını Spigot veya Paper sunucunun
pluginsklasörüne koy ve bir kez yeniden başlat. - VotingPlugin dosyalarını oluşturur; aralarında oy siteleri için
plugins/VotingPlugin/VoteSites.ymlve genel ayarlar içinConfig.ymlvar.
Bir proxy ağında oylar genelde proxy’ye gelir, ödüller ise backend sunucularda çalışır. VoteSites.yml dosyasını her backend’de aynı tut.
2. adım: BestMCServerList’i VoteSites.yml’e ekle
Yer aldığın her liste VoteSites altında kendi girdisini alır. Anahtar dahili bir isimdir: kısa tut, boşluk ve nokta kullanma. Önemli satır ServiceSite.
VoteSites:
BestMCServerList:
Enabled: true
Name: 'BestMCServerList'
Priority: 5
ServiceSite: 'BestMCServerList'
VoteURL: 'https://bestmcserverlist.net/server/your-server/vote'
VoteDelay: 24h
WaitUntilVoteDelay: false
VoteDelayDaily: true
ForceOffline: false
DisplayItem:
Material: 'DIAMOND'
Amount: 1
Rewards:
Commands:
- 'eco give %player% 250'
- 'give %player% diamond 2'
Messages:
Player: '&aThanks for voting on BestMCServerList!'Enabled: truegerekli, varsayılan değer false.ServiceSite, listenin gönderdiği servis adıyla eşleşmeli. VotingPlugin büyük/küçük harfe bakmadan karşılaştırır, ama onun dışında metin birebir aynı olmalı. Bizde buBestMCServerList.VoteURL, oyuncuların/voteile aldığı linktir. Oy linkini sunucu sayfandan kopyala;your-serversenin kendi slug’ın yerine geçer.DisplayItemher site için zorunlu, çünkü VotingPlugin menülerinde gösterilir.- Komutlar konsoldan çalışır ve
%player%oy verenin adına dönüşür.eco givebir ekonomi eklentisi ister; sunucunda hangi komutlar varsa onları kullan.
Dosyayı kaydet ve /av reload çalıştır.
3. adım: Oy bekleme süresi ve günlük sıfırlama
BestMCServerList’te her Minecraft adı sunucu ve takvim günü başına bir kez oy verebilir; gün Europe/Berlin saat dilimine göre belirlenir. Yeni bir oy son oydan 24 saat sonra değil, Berlin saatiyle gece yarısından hemen sonra mümkün olur.
VoteDelay: 24h, oyuncuların gördüğü geri sayım olan/vote nextiçin kullanılır. Oyları engellemez.VoteDelayDaily: trueise bekleme süresini günde bir kez sıfırlar; bu, bizimki gibi günlük sıfırlanan listelere uyar.VoteDelayDailyHoursaati sunucu saatiyle (1–24) ayarlar. Sunucunun saati Berlin saatinde çalışmıyorsa ayarlarken farkı hesaba kat.WaitUntilVoteDelay: true, bekleme süresi dolmadan gelen oyları reddeder. Bunufalsebırak: isim ve gün başına bir oyu zaten biz sağlıyoruz, yanlış bir bekleme ayarı da oyunculara ödüllerini kaybettirir.
4. adım: Ödülleri test et
/av vote <player> BestMCServerListçalıştır. Bu, o sitenin ödüllerini bir oyuncu için çalıştırır ve ödül config’inin çalıştığını gösterir. Votifier’ı test etmez.- BestMCServerList’te Votifier sayfanı aç ve Test oyu gönder’e bas. Sıralamaya sayılmayan
TestVoteadı için bir oy göndeririz. Teslimat kaydı sunucunun oyu kabul edip etmediğini gösterir. - Konsolda
[VotingPlugin] Received a vote from service site 'BestMCServerList' by player 'TestVote'!gibi bir satır ara. - VotingPlugin’in şimdiye kadar aldığı servis adlarını listelemek için
/av servicesitesçalıştır.
Test oyu geliyor ama VotingPlugin bilinmeyen bir service site bildiriyorsa sorun ServiceSite satırındadır. Config.yml’de AutoCreateVoteSites: true (varsayılan) ile VotingPlugin kendi başına yeni bir girdi de oluşturabilir; yine de ona Enabled: true ve ödüllerini eklemen gerekir.
Bedrock oyuncuları ve offline oylar
Geyser ve Floodgate üzerinden giren Bedrock oyuncularının bir isim prefix’i vardır, varsayılan olarak bir nokta: .Steve. Bu tam isimle oy verirler ve biz onu Votifier’a değiştirmeden iletiriz. VotingPlugin’de Config.yml içinde aynı prefix’i ayarla. Bir ağda proxy’de ve her backend’de aynı değeri kullan:
BedrockPlayerPrefix: '.'.Steve ve Steve farklı oyunculardır. Bir ismi uydurmak için prefix’i asla kaldırma.
Oyuncuların oy verirken online olması gerekmez. Ödüllerin ONLINE, OFFLINE veya BOTH (varsayılan) olan bir RewardType değeri vardır. Offline oyları da test et, çünkü online bir oyuncu isteyen komutlar farklı davranır.
Oy partileri, kilometre taşları ve seriler
Temel ödüller çalıştığında SpecialRewards.yml oyuncuları oy vermeye devam ettiren hedefler ekler: tüm sunucu belli bir oy sayısına ulaşınca tetiklenen bir VoteParty, kişisel toplamlar için VoteMilestones ve art arda birkaç gün oy vermek için VoteStreaks. Ödülleri faydalı ama adil tut; ekonomini bozan ödüller oy vermeyi zorunluluk gibi hissettirir.
En çok oy verenlere bir rütbe rozeti mi istiyorsun? LuckPerms prefix rehberi, oyunculara bir komutla görsel prefix vermeyi gösteriyor; bu komutu ödül olarak çalıştırabilirsin.
Sık yapılan hatalar
| Sorun | Çözüm |
|---|---|
| Test oyu geliyor, kimse bir şey almıyor | Oy sitesi etkin değil ya da ServiceSite değeri BestMCServerList değil. /av servicesites ile kontrol et. |
| Konsolda hiçbir şey yok | Votifier oyu almıyor. Votifier sayfandaki teslimat kaydıyla portu, token’ı ve güvenlik duvarını kontrol et. |
| NuVotifier hiç listener olmadığını yazıyor | VotingPlugin kurulu değil ya da yüklenmedi. Açılış log’una bak. |
/av vote çalışıyor, gerçek oylar çalışmıyor | Yönetici komutu Votifier’ı atlar. Bunun yerine Test oyu gönder ile test et. |
| Bedrock oyuncuları hiçbir şey almıyor | BedrockPlayerPrefix, Floodgate prefix’inle uyuşmuyor. |