RTP Eklentisi Geliştirme Senaryosu: Adım Adım Rehber

YalnızHanX

Yeni Üye
Katılım
Eyl 2026
Konular
1
Mesajlar
1
Tepki puanı
0
Görüntülenme
0

1. Gerekli Ortamın Hazırlanması​

  • Java 17 veya üstü kurulu bir sistemde, pom.xml ile Spigot API bağımlılığı eklenir.
  • Versiyon uyumu için spigot-api sürümü 1.20.5 ile başlatılır.
  • src/main/java altında com.example.rtp paketini oluşturun.

2. Ana Sınıfın Yazılması​

Kod:
public class RtpPlugin extends JavaPlugin {
    @Override
    public void onEnable() {
        getCommand("rtp").setExecutor(new RtpCommand());
        saveDefaultConfig();
    }
}

3. Konfigürasyon Dosyasının Oluşturulması​

config.yml içinde:

AnahtarAçıklamaVarsayılan
radiusTeleport mesafesi1000
cooldownGerekli bekleme süresi30

4. Komut Sınıfı​

RtpCommand içinde:

  1. Kullanıcı Kontrolü
    Kod:
    if (!(sender instanceof Player)) return true;
    Player p = (Player) sender;
  2. Cooldown Kontrolü
  • HashMap<Player, Long> ile son kullanım zamanını saklayın.
  • cooldown süresi geçmemişse uyarı mesajı gönderin.
  1. Rastgele Koordinat Hesaplama
    Kod:
    int radius = getConfig().getInt("radius");
    double x = ThreadLocalRandom.current().nextDouble(-radius, radius);
    double z = ThreadLocalRandom.current().nextDouble(-radius, radius);
  2. Yerel Yüksekliği Alma
    Kod:
    int y = p.getWorld().getHighestBlockYAt((int)x, (int)z) + 1;
  3. Teleport İşlemi
    Kod:
    Location loc = new Location(p.getWorld(), x, y, z);
    p.teleport(loc);

5. Test ve Düzeltme​

  • Sunucu yeniden başlatın.
  • /rtp komutunu girerek teleport fonksiyonunu test edin.
  • Loglarda hata yoksa, cooldown ve radius değerleriyle değişiklikler yapın.

6. Yayınlama Önerisi​

  • plugin.yml içinde commands kısmını doldurun.
  • Paket adını com.example.rtp olarak tutun.
  • Tüm dosyaları target/rtp-plugin.jar içinde paketleyin.

Soru: RTP eklentisine, oyuncuların sadece belirli blok tiplerinde (ör. güneşli alan veya su altı) teleport olabilmesi için nasıl filtre ekleyebilirsiniz?
 
Geri
En Üst