Rehber >>TheLegend<< - Videolu Plugin Eğitimi - Kendi welcome plugininizi yapın, oyuncu oyuna girince otomatik mesaj gönderme

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

>>TheLegend<<

Легенды никогда не умирают
Katılım
2 Temmuz 2016
Mesajlar
305
Elmaslar
425
Puan
15.025
Yaş
28
Discord İzni
Minecraft
THELEGEND

Discord:

>>TheLegend<<#6052



Ana.class
Java:
package tr.thelegend.hosgeldin;

import java.io.File;
import java.util.logging.Logger;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;

public class Ana extends JavaPlugin {
    public static final Logger logcuamca =Logger.getLogger("Minecraft");
    public File d;
    public PluginManager pm=Bukkit.getServer().getPluginManager();
    public FileConfiguration c;
    public void onEnable() {
        c=getConfig();
        d=new File(getDataFolder(),"config.yml");
        saveDefaultConfig();
        pm.registerEvents(new Evnt(this), this);
    }
}
Evnt.class
Java:
package tr.thelegend.hosgeldin;

import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;

public class Evnt implements Listener {
    private Ana plugin;
    public Evnt(Ana plugin) {
        this.plugin=plugin;
    }
    @EventHandler
    public void oyuncuSunucuyaGirince(PlayerJoinEvent e) {
        Player o=e.getPlayer();
        String oi=o.getName();
        e.setJoinMessage(null);
        o.sendMessage(plugin.c.getString("mesaj").replace("%oyuncu%", oi));
        return;
    }
}
config.yml
YAML:
mesaj: '&3Merhabalar sevgili %oyuncu%&f!'
plugin.yml
YAML:
name: Hosgeldin
version: 1.0
author: thelegend
main: tr.thelegend.hosgeldin.Ana
Eğer yeni başlıyorsanız, videoda gördüğünüz gibi ana şablonu oluşturun ve kendi başınıza modifikasyon yaparak başlayın.
Örneğin, eğer oyuncu OP ise ona sunucuda kaç kişi olduğunu söylemeye çalışın "if (o.isOp) {", veya config.yml dosyasında belirtilmiş birden fazla satırlı mesaj göndermeye çalışın, sınırı yok, siz nasıl isterseniz öyle! Bitirdiğiniz zaman ilk plugininizi yayınlayın! Ve kanalıma abone olmay.... şaka şaka

Daha fazla yardım için diğer rehber konularıma göz atabilirsiniz veya direk benden yardım isteyebilirsiniz, müsait olduğum sürece daima herkese destek sağlıyorum.
Discord: >>TheLegend<<#6052

 
yardımcı oldu bana teşekkürler, kolay gelsin
 

Sizin gibi deneyimli birisinin böyle bir eğitim konusunu hazırlaması oldukça güzel ve hoş bir hareket olmuş. Konudan çok yararınızı gördüm <3
 
Yerinizde olsam bu kodları direkt kullanmadan önce ilk başta bir optimize ederdim.
Bu kodlar nasıl optimize edilebilir konusuna gelelim.
İlk başta en gereksizlerden biri olan Logger kaldırılabilir zaten logger spigot hem size veriyor hem de kullanmayacağınız şeyi tanımlama İn pek bir anlamı yok gereksiz yere ram de boşboş yer kaplaması nın bir faydası yok.
File ve File Configuration a sırf config.yml için hiç gereği yok neden derseniz zaten spigot config.yml dosyası sizin için hazırlıyor. Sizin yapmanız gereken tek şey saveDefaultConfig metodunu onEnable ekleyip getConfig ile erişimek öbür türlü gereksiz yere ram de yer kaplamak dışında bir karı yok.
Özellikle PluginManager i public tanımlamanızın bir anlamı yok sadece onEnable methoduna Bukkit.getPluginManager().registerEvents(new Evnt(this), this) tanımlamanız yeterli olacaktır.
Event methodunun en sonuna return koymanın hiç bir anlamı yok zaten event bittiği yerde neden return ile bitirmeye çalışırsın ki .
o.sendMessage kısmında eğer ki ChatColor.translateAlternateColorCodes('&', mesaj) tarzinda kullanmazsaniz oyununuz & karakterini takmayacağından dolayı mesajınız düz beyaz renginde olacaktır.
Lütfen kodlara daha özen gösterirsen seviniriz TheLegend. Sonuçta bilmeyen insanlara düzgün şeyler öğretmeliyiz.
 
Konunuz çok yararlı başarılar dilerim kendinde efsane plugin paketleri yapıyorsun :))
 
Adı gibi legend :enteresan::dusundurucu:
 
Yerinizde olsam bu kodları direkt kullanmadan önce ilk başta bir optimize ederdim.
Bu kodlar nasıl optimize edilebilir konusuna gelelim.
İlk başta en gereksizlerden biri olan Logger kaldırılabilir zaten logger spigot hem size veriyor hem de kullanmayacağınız şeyi tanımlama İn pek bir anlamı yok gereksiz yere ram de boşboş yer kaplaması nın bir faydası yok.
File ve File Configuration a sırf config.yml için hiç gereği yok neden derseniz zaten spigot config.yml dosyası sizin için hazırlıyor. Sizin yapmanız gereken tek şey saveDefaultConfig metodunu onEnable ekleyip getConfig ile erişimek öbür türlü gereksiz yere ram de yer kaplamak dışında bir karı yok.
Özellikle PluginManager i public tanımlamanızın bir anlamı yok sadece onEnable methoduna Bukkit.getPluginManager().registerEvents(new Evnt(this), this) tanımlamanız yeterli olacaktır.
Event methodunun en sonuna return koymanın hiç bir anlamı yok zaten event bittiği yerde neden return ile bitirmeye çalışırsın ki .
o.sendMessage kısmında eğer ki ChatColor.translateAlternateColorCodes('&', mesaj) tarzinda kullanmazsaniz oyununuz & karakterini takmayacağından dolayı mesajınız düz beyaz renginde olacaktır.
Lütfen kodlara daha özen gösterirsen seviniriz TheLegend. Sonuçta bilmeyen insanlara düzgün şeyler öğretmeliyiz.

Ek olarak, JavaPlugin extendleyen main classında Bukkit static değişkenini kullanmaya gerek yoktur, JavaPlugin#getServer() yeterli olacaktır.

yani, getServer().getPluginManager().registerEvents(...)

son olarak, isimlendirmeler asla tek harfli olmazlar. Class isimleri ise türkçe olmamalı ve kısaltma olmamalıdır. bkz: event -> evnt
 
hocam plugin değilde bir skript yapmaya çalışıyorum fakat oyuncular için bir değişkende bir veri tutuyorum. ama bunu döngüye sokamıyorum örneğin her bir blok kırdıklarında kırdıkları blok sayısı 1 artıyor ama en çok kıran on kişiyi bulamıyorum yardımcı olur musunuz
 
hocam plugin değilde bir skript yapmaya çalışıyorum fakat oyuncular için bir değişkende bir veri tutuyorum. ama bunu döngüye sokamıyorum örneğin her bir blok kırdıklarında kırdıkları blok sayısı 1 artıyor ama en çok kıran on kişiyi bulamıyorum yardımcı olur musunuz
Skriptle bir alakam yok maalesef havaya davet ediyorum sizi
 
sayende ufaktan başlamaya başladım :D bakalım nereye kadar
 
Merakı olanlar veya eklenti geliştirmeye giriş yapmak isteyenler için güzel olmuş :)
 
Merhaba, dostum.

Çok güzel bir paylaşım, anlatım, öğretim olmuş 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