Sol Reklam

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

Durum
Mesaj gönderimine kapalı.
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 Java'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 Java Syntax (Java Sözdizimi)'ni biliyor olmamız ve birkaç örnek üzerinde denemiş olmamız gerekiyor. Online olarak denemek için buraya 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!
 
S

Silinen üye 79251

Ziyaretçi
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.
 
S

Silinen üye 116132

Ziyaretçi
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.
 

Kalerda

Vatan Sevdalısı
Katılım
13 Ağustos 2015
Mesajlar
641
Elmaslar
589
Puanlar
15.030
Yer
Türkiye
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.
 
S

Silinen üye 116132

Ziyaretçi
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 :)
 

CAN147

Ahanda Zümrüt!
Yasaklandı

Discord:

CAN147#1757

Katılım
16 Eylül 2018
Mesajlar
1.065
Elmaslar
701
Puanlar
12.735
Discord İzni
Eventhandler'dan da bahsedebilirsin başarilar.
 
S

Silinen üye 116132

Ziyaretçi
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 =)
 

YoutubeKafasi

Bir Kömür Göründü Kaptanım!
Katılım
30 Temmuz 2019
Mesajlar
150
Elmaslar
115
Puanlar
6.555
S

Silinen üye 116132

Ziyaretçi
Son düzenleyen: Moderatör:

Cristian

Somon Balığı Selam Vermeye Geldi

Discord:

Mert / Growe'N#9272

Katılım
31 Temmuz 2019
Mesajlar
11
Elmaslar
2
Puanlar
0
Yaş
24
Minecraft
MertKoylu
Skript yazmayıda anlatırmısın ?
 
S

Silinen üye 116132

Ziyaretçi

AbdullahKerim

Somon Balığı Selam Vermeye Geldi
Katılım
17 Ekim 2015
Mesajlar
21
Elmaslar
14
Puanlar
0
Yer
Eskişehir
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
 

Murat Keklik

Birisi mi Spawnlandı?
Katılım
31 Mart 2020
Mesajlar
2
Elmaslar
0
Puanlar
0
Yaş
24
İlk defa bu forumda bu tarz dersleri veren kişi görüyorum. Başarılar bilmiyenlere güzel kaynak oluyorsun.
 
S

Silinen üye 116132

Ziyaretçi
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 https://dev.bukkit.org 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
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı