YalnızHanX
Yeni Üye
1. Gerekli Ortamın Hazırlanması
- Java 17 veya üstü kurulu bir sistemde,
pom.xmlile Spigot API bağımlılığı eklenir. - Versiyon uyumu için
spigot-apisürümü 1.20.5 ile başlatılır. src/main/javaaltındacom.example.rtppaketini 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:| Anahtar | Açıklama | Varsayılan |
|---|---|---|
radius | Teleport mesafesi | 1000 |
cooldown | Gerekli bekleme süresi | 30 |
4. Komut Sınıfı
RtpCommand içinde:- Kullanıcı Kontrolü
Kod:if (!(sender instanceof Player)) return true; Player p = (Player) sender; - Cooldown Kontrolü
HashMap<Player, Long>ile son kullanım zamanını saklayın.cooldownsüresi geçmemişse uyarı mesajı gönderin.
- Rastgele Koordinat Hesaplama
Kod:int radius = getConfig().getInt("radius"); double x = ThreadLocalRandom.current().nextDouble(-radius, radius); double z = ThreadLocalRandom.current().nextDouble(-radius, radius); - Yerel Yüksekliği Alma
Kod:int y = p.getWorld().getHighestBlockYAt((int)x, (int)z) + 1; - 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.
/rtpkomutunu girerek teleport fonksiyonunu test edin.- Loglarda hata yoksa, cooldown ve radius değerleriyle değişiklikler yapın.
6. Yayınlama Önerisi
plugin.ymliçindecommandskısmını doldurun.- Paket adını
com.example.rtpolarak tutun. - Tüm dosyaları
target/rtp-plugin.jariç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?