Koply
Codexia
- Mesajlar
- 58
- En iyi cevaplar
- 0
- Beğeniler
- 54
- Puanları
- 350
- Ruh hali
Nefesinizi tüketecek kadar uzun bir başlıktan sonra göz atmanıza değecek olan bir kütüphanenin tanıtımına geçebiliriz.
Bu konu Codexia'nın sponsorluğu sayesinde varoluşa katılmıştır.
Bu kütüphane JDA ve Javacord kütüphaneleri ile tam uyumluluk gösterir. Doğru entegrasyonu kullanarak projenize bağlayabilirsiniz. Örnekler JDA baz alınarak gösterildi. Herhangi bir şeyde takılırsanız sponsorumuz olan Codexia Discord sunucusu içinden bizlere ulaşabilirsiniz.
Kullanım ve Komut Oluşturma
Asıl mevzu nasıl kullanabileceğimiz. Aşağıda kütüphaneyi kullanabilmek için yapmamız gereken en temel şey olan KCommando'yu hazırlama aşamasını görebilirsiniz.
Java:
public class Main extends JDAIntegration {
public Main(JDA jda) { super(jda); }
public void main(String[] args) throws Exception {
JDA jda = JDABuilder.createDefault("TOKEN").build();
jda.awaitReady();
KCommando kcommando = new KCommando(new Main(jda))
.setCooldown(5000L) // 5 seconds as 5000 ms
.setOwners("FIRST_OWNER_ID", "SECOND_OWNER_ID")
.setPackage("com.example.mybot.commands") // command classes package path
.setPrefix("!")
.setReadBotMessages(false) // default false
.setCaseSensivity(Locale.getDefault())
// Optional<Locale> -> varsayılan olarak büyük harf duyarlılığı devredışıdır
.build();
}
}
En ilkel yapıda botunuza KCommando'yu bu şekilde tanımlayabilirsiniz. Fakat kullanabilmek için sadece tanımlamak yetmiyor. Komut oluşturmamız da gerekiyor. Komut oluşturmayacaksak kütüphaneyi kullanmanın ne anlamı var?
Java:
@Commando(name = "Ping!"
aliases = "ping",
description = "Pong!", /* varsayılan "-" */
guildOnly = false, /* varsayılan false */
ownerOnly = false, /* varsayılan false */
privateOnly = false, /* varsayılan false */
sync = false /* varsayılan false */)
public class BasicCommand extends JDACommand {
public BasicCommand() {
// eğer handle methodu false dönderirse bu callback çalıştırılır
getInfo().setOnFalseCallback( (KRunnable<MessageReceivedEvent>) e -> e.getMessage().addReaction("⛔").queue() );
}
@Override
public boolean handle(MessageReceivedEvent e /* opsiyonel String[] args*/ ) {
e.getChannel().sendMessage( "Pong!" ).queue();
return true;
// eğer komut başarılı olmuşsa true döndermeniz gerekir
}
}
Bu kadarla bitti mi? Hayır! Bunlar sadece başlangıç...
- Yanlış komut kullanıldığında benzer komutları kişiye göstermek mi istiyorsunuz?
- Komutun asenkron çalışmasını istiyor veya istemiyor musunuz?
- Sunuculara özel prefixler mi eklemek istiyorsunuz?
- Bir kullanıcıyı blackliste eklemek mi istiyorsunuz?
- Bir sunucunun kanalı veya üyeyi blackliste eklemesini mi istiyorsunuz?
- Sunuculara, özel konuşmaya, bot sahibine özel olan bir komutun yanlış kullanımında geri bildirim mi vermek istiyorsunuz?
- Zaman aşımına uğrayan komutlara geri bildirim mi vermek istiyorsunuz?
- Yapacağınız bot ile KCommando arasında bazı pürüzler çıktı. Bu pürüzleri gidermek mi istiyorsunuz?
- Database sisteminizi KCommando ile daha uyumlu bir şekilde mi kullanmak istiyorsunuz?
Saydığım her şeyi KCommando ile 1 satırda bile yapabilirsiniz (ayrı ayrı ._.). Ayrıca bunların hepsini yaparken performanstan da yaklaşık olarak 0,5ms kadar feda ediyorsunuz. Mükemmel değil mi?
Yardım (help) komutunun nasıl yapılacağına dair örnekler Rae isimli botumun kaynak kodlarında mevcut. şşt Rae müzik komutlarını içeriyor. Aklınıza gelen fikirleri, bulduğunuz bugları ve diğer her türlü hataları bu sayfadan bildirebilirsiniz. Ayrıca kütüphaneye siz de eklemeler yapmak için PR atabilirsiniz.
Projenize bu kütüphaneyi maven ve gradle ile kolayca kurabilirsiniz. Eğer belirttiğim kütüphane araçlarını kullanmıyorsanız .jar dosyasını projenize ekleyerek yine kullanabilirsiniz fakat derlenmiş olan .jar dosyasını projenize eklediğinizde hatalar almanız muhtemel. Hataları almak istemiyorsanız .jar dosyasının yanında kütüphanenin ihtiyaç duyduğu diğer kütüphaneleri de projenize eklemeniz gerekir. Benim tavsiyem maven veya gradle kullanmanız yönünde.
Kütüphanenin daha detaylı örnekleri için KCommando Github sayfasını inceleyebilirsiniz!
Konunun başındaki fotoğraf bir fotoğraf oluşturma aracı ile yapıldı. Üstelik açık kaynak!