plugin.yml Olmadan basit ve hızlı komut ekleme | Çok şey destekliyor

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

Anemys

Java & Skript
Emektar
MinePass
Premium
Katılım
5 Mayıs 2018
Mesajlar
944
Çözümler
1
Elmaslar
367
Puan
14.855
Konum
Antalya
Discord İzni
Minecraft
Unutursun

Discord:

_thread

SpigotMC forumunda yeni şeyler ararken plugin.yml olmadan komutları kaydedebileceğimi keşfettim ve basit bir command builder geliştirdim, belki daha da geliştirilebilir aklıma başka bi' şey gelmedi :D

Örneğin /gm komutu ekleme

(essentials tarzı basit komutlarla sınırlı kendi eklentilerinizi geliştirebilirsiniz)
/fly
/warp
/home
/gm

vs



tabcomp.webp

gmchange.webp

Kod:
public Commands(JavaPlugin plugin) {

        CommandManager manager = new CommandManager(plugin);

        manager.register("gamemode")
       
                .aliases("gm", "gamem", "mode")
                .commandType(CommandType.PLAYER) //komut tipi, panel ? oyuncu ? her ikisi ?
                .permission("gamemode.permission")
                .noPermissionMessage("§cYou do not have permission to this command!")
                .description("gamemode permission")
                .usage("/gamemode 0, 1, 2, 3")
                .arguments(1, 1, plugin.getMsg().getPrefix() + "§cUsage: /gamemode 0, 1, 2, 3") //girilebilecek min ve max argüman uzunluğunu ve hata mesajını ekliyoruz
               
                .tabCompleter((sender, args) -> {
                    if (args.length == 1) {
                        return Arrays.asList("0", "1", "2", "3");
                    } else if (args.length == 10) {
                        return Collections.singletonList("gamemode 10 huh?");
                    }
                    return new ArrayList<>();
                })
               
                .playerExecutor((sender, args) -> {
                    Player p = (Player) sender;
                    switch (Integer.parseInt(args[0])) {
                        case 0:
                            p.setGameMode(GameMode.SURVIVAL);
                            p.sendMessage("§eYour game mode has been changed to §asurvival!");
                            break;
                        case 1:
                            p.setGameMode(GameMode.CREATIVE);
                            p.sendMessage("§eYour game mode has been changed to §acreative!");
                            break;
                        case 2:
                            p.setGameMode(GameMode.ADVENTURE);
                            p.sendMessage("§eYour game mode has been changed to §aadventure!");
                            break;
                        case 3:
                            p.setGameMode(GameMode.SPECTATOR);
                            p.sendMessage("§eYour game mode has been changed to §aspectator!");
                            break;
                        default:
                            p.sendMessage("§cUsage: /gamemode 0, 1, 2, 3");
                    }
                })
               
                .register();
    }



REPO
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.

^^^^


~ KULLANIM ~
Yapmanız gereken projenizin src\main\java\ dosya yoluna (paketlerinizin başladığı yere);
indirdiğiniz me\anemys\commandapi dosyalarını atmak

(adını değiştirebilirsiniz, default olarak böyle kalmış)

daha sonra ana sınıfınıza
Java:
CommandManager manager = new CommandManager(plugin.getInstance());

kodunu ekleyip eklentinin diğer sınıflarına dağıtabilirsiniz.
Bu api sayesinde plugin.yml'de herhangi bi' komut, aliases, permission belirtmenize gerek kalmayacak, her şeyi tek başına yapacaktır.



Ne farkı var ?
Avantajlar: Daha az dosyaya dokunulur ve komutlarınız üzerinde daha fazla kontrole sahip olur ve yönetmesi kolaylaşır.
Dezavantajlar: Eklentiyi derlemeden kayıtlı komutları kimse göremez (plugin.yml'de görmezler yani) :shock:, bu da sizi bir büyücü yapar :cool:

Klasik yol:
1. Komutu plugin.yml'nize ekleyin
2. Komut sınıfınızı oluşturun
3. Yürütücüyü onEnable'ınıza ayarlayın
4. Tamamlandı

Alternatif yol:
1. Komut sınıfını oluşturun
2. Komutu onEnable'ınıza ekleyin
3. Tamamlandı

Kaynaklar:
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
 
ben bunu beyendım eline sağlık.
 
CommandAPI komutlar için en iyisi fakat biraz fazla geliştirdikleri için en doğru şekilde kullanmayı öğrenmek zaman alabilir. Bizim pörtlekte early contributormuş tanıyan kalmamıştır gerçi

Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
 
Son düzenleme:
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