Rehber MineCraft Plugin Dersleri│Plugin kodlamaya nasıl başlanmalı? İlk kodlar!

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
S

Silinen üye 116132

Ziyaretçi
Merhaba, önceki konuda plugin yazmanız için gereken ilk adımları anlatmıştım. Bu konuda ise kodlamaya nasıl başlayacağımızı anlatacağım ve ilk kodları birlikte yazacağız.

İlk olarak, kullanacağımız IDE (JavaClassFile Editör, eğer ne demek olduğunu bilmiyorsanız önceki konuyu mutlaka okuyun!)'yi açıyoruz.
Konuya geçmeden önce bu konuda plugin açıldığında ve kapandığında neler yapılabileceğini anlatacağım. Kod bakımından pek fazla değil ama yeni başlayanlar için gayet gerekli olan Java Syntax'tan bahsedeceğim için okumanızda büyük fayda olduğunu düşünüyorum.
Geçen konuda oluşturmuş olduğumuz projeyi açıyoruz. Hatırlıyorsanız IntelliJ IDEA bizim için birkaç kodu kendisi hazırlamıştı. Şimdi bizim üstüne birkaç kod eklememiz ve ana şablonu oluşturmamız gerekiyor. Tabii, bunu yaparken
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
'ya da kullanacağımız Java Kütüphanelerine de (org.bukkit) hakim olmak gerekiyor fakat değilseniz üzülmeyin çünkü ben kısa olarak anlatmaya çalışacağım.

Öncelikle
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
'ni biliyor olmamız ve birkaç örnek üzerinde denemiş olmamız gerekiyor. Online olarak denemek için
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
tıklayarak Java Kodlarını çalıştıran bir siteye gidebilirsiniz. Java Syntax'ını biraz bildiğinizi düşünerek konuya ve kodlara girelim; tabii bunları okurken projeyi düzenleyeceğiniz IDE'yi de açtınız demi?

Şimdi IntelliJ IDEA ile oluşturduğum (önceki konuda detaylıca anlattım) projeyi açtım ve AnaDosya.class'da bizim için hazır olarak oluşan birkaç kod satırını sizlere de atıyorum.

Java:
package tr.testplugin;

import org.bukkit.plugin.java.JavaPlugin;

public final class TestPlugin extends JavaPlugin {

    public void onEnable() {
        // Plugin startup logic
    }

    public void onDisable() {
        // Plugin shutdown logic
    }
}
Kodları açıklayacak olursam, ilk satırda bu dosyanın "tr..testplugin" dizininde yer aldığını ve ismini belirttik. Diğer satırda bizim için gerekli olan "org.bukkit" kütüphanesinde bulunan "plugin.java.JavaPlugin" kütüphanesini indirmesini, kodlarımızda kullanacağımızı belirttik. Diğer satırımızda ise JavaPlugin'in bir ögesi olan CLASS oluşturup ismini TestPlugin olarak ayarladık. Java Syntax'a bağlı olarak public final class TestPlugin extends JavaPlugin { } olarak ayarlıyoruz. Yani sonuna } işareti koyuyoruz. Şimdi gereken tüm kodları bu {} işaretlerinin arasına yazacağız.
Evet, şimdi ise gelelim public void onEnable() { } ve public void onDisable() { } kısmına; burada plugin aktif olduğunda ve plugin deaktif olduğunda yapması gereken işlemleri tanımlıyoruz, tabii ki {} arasına yazmamız gerekiyor. Örnek olarak biz konsola bir şey yazdıralım:

Java:
public void onEnable() {
    getLogger().info("Pluginimiz aktif!");
}

public void onDisable() {
    getLogger().info("Pluginimiz deaktif!");
}
Not: Konsola yazılmasını istediğimiz mesajları STRING şeklinde yazmalıyız. Örnek olarak: "bu bir string", "bu string değil', bu string değil` . Şimdi getLogger() hakkında birkaç açıklama yapalım, bunu "import org.bukkit..." gibi import ederek yani projede tanımlayarak kullanabilirdik fakat, yerel ve tek seferlik kullanacağımız için buna ihtiyacımız yok. getLogger() çeşitlerine gelecek olursak, -mesela biz info kullandık- .info("string") ile bilgi metni yazdırabilirsiniz, .warn("string") ile uyarı verebilirsiniz, .severe("string") ile hata verebilirsiniz. Fakat eğer plugin çalışmasını engelleyecek bir şey yoksa .info() kullanmanızı, gereksiz yere warn() ve severe() kullanmamanızı öneririm. Çünkü bu server tarafından bir sorun olarak algılanmaktadır.

Hemen çalıştığında nasıl göründüğüne dair bir fotoğraf ekleyelim:

enable-pl.JPG

^Aktif olduğunda^
disable-pl.JPG

^Deaktif olduğunda^

Evet, bu onEnable() ve onDisable() olayları için her şeyi ayarlayabiliriz. Mesela, bir config dosyasına ihtiyacımız varsa ve plugin başlandığında yüklenmeli ise ya da bir değerin sabit olması gerekiyorsa fakat düzenlenmeye açıksa, plugin açıldığında bunları halledebiliriz. Ya da en basitinden AnaDosya.class'tan farklı dosyaları plugin açıldığında devreye sokabiliriz vs...

Şimdi ise bir string tanımlamayı ve pluginimiz aktif olduğunda konsola yazdırmayı deneyelim:

Java:
public void onEnable() {
    String AcilisMesaji = "Bu bir string tanımlaması!";
    getLogger().info(AcilisMesaji);
}

public void onDisable() {
    String KapanisMesaji = "Bu da ikinci string tanımlaması!";
    getLogger().info(KapanisMesaji);
}
Not: Java'da bazı dillerde olan tanımlama ifadeleri yerine String x=... Int y=... gibi Syntax kullanarak tanımlama yapabilirsiniz.

Bu örnekte ise konsola plugin başladığında Bu bir string tanımlaması! yazdırırken plugin deaktif edildiğinde ise Bu da ikinci string tanımlaması! yazdırdık.

Evet, bu konu da buraya kadar. Konuda gereksiz yerlerin olduğunu düşünmüyorum, hepsini okumanız (özellikle de Java'da yeniyseniz) sizin yararınıza olacaktır. İyi günler.




Yeni konuya buradan gidebilirsiniz!
 
Beni dikkati alıp tekrardan bir, "Rehber" konusu açmana sevindim ki sahiden bu konunda bana oldukça fazla yararı dokundu. Oyuna başladığım 2013 yılından beri bu anlamda kendimi geliştirmek istiyordum ama hiç fırsatım olmamıştı. Neyse ki bu tür yararlı ve öğretici konular açıyorsunuz.
 
Beni dikkati alıp tekrardan bir, "Rehber" konusu açmana sevindim ki sahiden bu konunda bana oldukça fazla yararı dokundu. Oyuna başladığım 2013 yılından beri bu anlamda kendimi geliştirmek istiyordum ama hiç fırsatım olmamıştı. Neyse ki bu tür yararlı ve öğretici konular açıyorsunuz.
Çok teşekkür ederim, umarım birsürü konu daha açma fırsatım olur.
 
Bu alanda emeği geçen biri olarak çabanı beğendim. Forumda bu tür içerikler görmeyi daha çok isterdim ama en azından senin çabalaman bile yeterli. Fakat konuları biraz daha detaylandırırsan daha güzel olabilir.
 
Bu alanda emeği geçen biri olarak çabanı beğendim. Forumda bu tür içerikler görmeyi daha çok isterdim ama en azından senin çabalaman bile yeterli. Fakat konuları biraz daha detaylandırırsan daha güzel olabilir.
Olabildiğince kısa ve anlaşılır tutmaya çalışıyorum, yorumun için teşekkürler, bence başlangıç için ideal ama tavsiyene dikkat edeceğim :)
 
Eventhandler'dan da bahsedebilirsin başarilar.
 
Eventhandler'dan da bahsedebilirsin başarilar.
Öneriniz için teşekkür ederim, bu konuda Java ve Syntax hakkında kısa bir bilgi vermek için bazı örnekler verdim. Gerekli desteği gördüğüme inandığım zaman devamını getireceğim =)
 
Skript yazmayıda anlatırmısın ?
 
Gine sade ve güzel bir anlatım olmuş peki kodlamalara bakabiliceğimiz bir site yokmudur. Bilmediğimiz kodların kodlarının anlamı ne işey yaradığı falan gibi
 
İlk defa bu forumda bu tarz dersleri veren kişi görüyorum. Başarılar bilmiyenlere güzel kaynak oluyorsun.
 
Gine sade ve güzel bir anlatım olmuş peki kodlamalara bakabiliceğimiz bir site yokmudur. Bilmediğimiz kodların kodlarının anlamı ne işey yaradığı falan gibi
Öncelikle teşekkür ederim, Java biliyor iseniz ne yaptığımızı az çok anlarsınız fakat bilmiyorsanız öncelikle javayı öğrenmenizde büyük bir önem var. Eğer javayı biliyorsanız ve
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
adresinden bu konuda bilgi edinebilirsiniz. Aynı içerikler spigotmc'de de mevcuttur fakat bukkit sunucularda da çalışmasını istediğiniz pluginleri dev.bukkit.org dan daha rahat yapabilirsiniz. Ayrıca arama motorunuzu kullanarak bu konuda bireysel hazırlanmış ingilizce olarak birsürü kaynak bulabilirsiniz, kolay gelsin.

İlk defa bu forumda bu tarz dersleri veren kişi görüyorum. Başarılar bilmiyenlere güzel kaynak oluyorsun.
İlk değilim, umarım son da olmam, teşekkürler
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst