Plugin yaparken hangi metodları bulabilirim? (Sendmessage gibi), ve birsürü soru (içeri buyrun)

BattukClashTR

Kömür Madencisi
Mesajlar
103
En iyi cevaplar
0
Beğeniler
25
Puanları
0
Selam arkadaşlar eclipse ile plugin yapıyorumda sizden şunların cevabini bekliyorum lütfen ;

1-kütüphanedeki bir veriyi değiştirebilirmiyiz?
(Örnek;en-us.lang klasöründeki "game.menu= 'Game Menu '" verisini ufak bir kodla game.menu= 'Oyuna Hoşgeldin' şeklinde değiştirmek tarzı)

2-kütüphanedeki değişkenleri değiştirdik diyelim, yaptığım dosyayı degismis.jar yapıp versions klasörüne atsam oyunu açtığımda değiştirdiğim içeriği değişmiş şekilde bulabilirmiyim?

3-Eclipse ile gui kullanarak ekrana buton koysam sonra, minecraft dosyasına atsam minecraftı açtıgımda o buton minecraft ekranında görünürmü?, olabilirse lütfen yardım edin nasil yapılcağı konusunda.

4-hadi bir .jar hazırladık diyelim, jar içine tek oyunculu için kodlar yazdık diyelim, bu hazırladığım .jar ı versions klasörününde nereye koyucam? (Mesela 1.7.2 içinemi atcam yoksa ayrı klasörmü gerekir)

5-Plugin yazıcam ama method lazım, örnek olarak sendMessage methodunu gördüm, ama bana başka method lazım, methodlar belirlimidir yoksa birsürü method varmıdır?
mesela essentials.jar açıp inceliyorum, orada kodlar var SetMoney (),GetHealth () vs...
ben o kodları görüp şöyle kod deniyorum;
GetHealth (5);//kabul etmior
GetHealth ("5");//kabul etmior
hata:return type for the method is missing.
..
sanırım
GetHealt (){
} şeklinde istiyor ama onuda ben bilmiyorum, bana bunun gibi bir örnek kod yazarsanız sevinirim,
6-Bana bu eclipse java ders kitapçıgı (pdf filan) önerirsebiz sevinirim. İNTERNETIM az oldugundan video seyredemiyorum. Ayrıca minecraft plugin kodlama kitabı filan vulursanız sevinirim (ingilizce olabilir) ben baya aradim. Bu alanda tek minecraftturk sitesini buldum çalışmalar yapan. Destek çıkarsanız sevinirim.


7-eclipse java kütüphanesine 1.7.2.jar eklesem, ve içinde baya bir kodlama yapıp 1.7.2 yi butonları filan değiştirsem çalışırmı yoksa bu .jar sadece sendmessage gibi mesaj yolla,komut yazarsa cevp veremi işe yarıyor?

Yani: bir .jar yapıp içine 1.7.2.jar ı kütüphanesine ekleyip, kod olarakta 1.7.2nin clientindeki yazıları değişrirsem ve oyunun dosyalarına atsam oyunu açtığımda clientdeki yazarı degismis görürmüyüm?

Sorulara cevap verirseniz sevinirim.
Bu ilk konumdur.
 


MegaCrafter

Obsidyen Madencisi
Mesajlar
1,419
En iyi cevaplar
0
Beğeniler
1,542
Puanları
3,070
Bukkit ile ilgili bir şey yazarken minecraft'ın temelini değiştiremezsin. Bu sadece mod yazarken olur. Oyuna buton vs. ekleyemezsin.

Essentials içinde kullanılan metodlar tanımlanmış şeylerdir. Yani essentials'i craftbukkit gibi projene eklemedikçe içindeki hiçbir metodu kullanamazsın. sendMessage gibi metodlar bukkit içerisinde tanımlanmıştır. Bukkit içerisinde de oyunu değiştirecek birçok şey yapılabilir.

Eğer client yazmak istiyorsan o apayrı bir konudur. "versions" klasörü içine sadece client atarsan düzgün çalışır.

Normalde kütüphanedeki bir veri değiştirilemez. Değiştirmek için onu baştan yazman gerekir. Ama dediğin şey sanırım orada biraz daha farklı.

Minecratturk içinde bu çalışmaların yapıldığı pek doğru değil. Forumda çok az kişi böyle işlerle ilgileniyor ve o kişilerden en iyi bilenler de forumda yeterince aktif değiller.

"return type is missing" demek, metodun neyi döndüreceğini bilmemesi demektir. Yani başına "void", "String", "int" tarzı bir şey yazman gerekiyor ki neyi döndüreceğini bilsin. "void" dersen bir şey döndürmen gerekmez.
 

BattukClashTR

Kömür Madencisi
Mesajlar
103
En iyi cevaplar
0
Beğeniler
25
Puanları
0
Bukkit ile ilgili bir şey yazarken minecraft'ın temelini değiştiremezsin. Bu sadece mod yazarken olur. Oyuna buton vs. ekleyemezsin.

Essentials içinde kullanılan metodlar tanımlanmış şeylerdir. Yani essentials'i craftbukkit gibi projene eklemedikçe içindeki hiçbir metodu kullanamazsın. sendMessage gibi metodlar bukkit içerisinde tanımlanmıştır. Bukkit içerisinde de oyunu değiştirecek birçok şey yapılabilir.

Eğer client yazmak istiyorsan o apayrı bir konudur. "versions" klasörü içine sadece client atarsan düzgün çalışır.

Normalde kütüphanedeki bir veri değiştirilemez. Değiştirmek için onu baştan yazman gerekir. Ama dediğin şey sanırım orada biraz daha farklı.

Minecratturk içinde bu çalışmaların yapıldığı pek doğru değil. Forumda çok az kişi böyle işlerle ilgileniyor ve o kişilerden en iyi bilenler de forumda yeterince aktif değiller.

"return type is missing" demek, metodun neyi döndüreceğini bilmemesi demektir. Yani başına "void", "String", "int" tarzı bir şey yazman gerekiyor ki neyi döndüreceğini bilsin. "void" dersen bir şey döndürmen gerekmez.
Peki rica etsem bana oyuncuya mesaj yolla,adamı yak,adamı görünmez yap, adamı oyundan at vs. Kodları nasıl kullanacagimi yazarmisin? Sen demişsinya metodun neyi döndürcegi bilmesi gerek diye, ben şimdi GetHealt (5) kodunu nasıl yazabilirim? Şöylemi olmalı: int GetHealth(5); cevabini bekliyorum..
 

MegaCrafter

Obsidyen Madencisi
Mesajlar
1,419
En iyi cevaplar
0
Beğeniler
1,542
Puanları
3,070
Peki rica etsem bana oyuncuya mesaj yolla,adamı yak,adamı görünmez yap, adamı oyundan at vs. Kodları nasıl kullanacagimi yazarmisin? Sen demişsinya metodun neyi döndürcegi bilmesi gerek diye, ben şimdi GetHealt (5) kodunu nasıl yazabilirim? Şöylemi olmalı: int GetHealth(5); cevabini bekliyorum..
Kod:
// Oyuncuya mesaj yolla
Player p = // Player tanımı
p.sendMessage("mesaj");
Kod:
// Adamı yak
Player p = // Player tanımı
p.setFireTicks("Yanacağı tick sayısı - 20 tick = 1 saniye ")
Kod:
// Adamı görünmez yap
Player p = // Player tanımı
for (Player oyuncu : Bukkit.getServer().getOnlinePlayers()) {
    oyuncu.hidePlayer(p);
}
Kod:
// Adamı oyundan at
Player p = // Player tanımı
p.kickPlayer("Sebep");
Direk "p." diye yaz ve Ctrl+Space tuşlarına bas. Eclipse sana kullanabileceğin bütün metodları gösterir. Eğer bir komutun ne işe yaradığını bilmiyorsan internete yaz.

Diğer kısımda da haklısın. "int GetHealth(5) {}" şeklinde olacak ama "{" işaretlerinin içini kod ile doldurmalısın. :)
 

BattukClashTR

Kömür Madencisi
Mesajlar
103
En iyi cevaplar
0
Beğeniler
25
Puanları
0
Kod:
// Oyuncuya mesaj yolla
Player p = // Player tanımı
p.sendMessage("mesaj");
Kod:
// Adamı yak
Player p = // Player tanımı
p.setFireTicks("Yanacağı tick sayısı - 20 tick = 1 saniye ")
Kod:
// Adamı görünmez yap
Player p = // Player tanımı
for (Player oyuncu : Bukkit.getServer().getOnlinePlayers()) {
    oyuncu.hidePlayer(p);
}
Kod:
// Adamı oyundan at
Player p = // Player tanımı
p.kickPlayer("Sebep");
Direk "p." diye yaz ve Ctrl+Space tuşlarına bas. Eclipse sana kullanabileceğin bütün metodları gösterir. Eğer bir komutun ne işe yaradığını bilmiyorsan internete yaz.

Diğer kısımda da haklısın. "int GetHealth(5) {}" şeklinde olacak ama "{" işaretlerinin içini kod ile doldurmalısın. :)
Senden rica etsem son bir isteğim var. Bu kodları nerden buluyorsun bana söylermisin?, bende essentials.jar kütüphaneye ekleyip incelesem orda bu kodlardan bulabilirmiyim?, ve her şey için teşekkürler
 

MegaCrafter

Obsidyen Madencisi
Mesajlar
1,419
En iyi cevaplar
0
Beğeniler
1,542
Puanları
3,070
Senden rica etsem son bir isteğim var. Bu kodları nerden buluyorsun bana söylermisin?, bende essentials.jar kütüphaneye ekleyip incelesem orda bu kodlardan bulabilirmiyim?, ve her şey için teşekkürler
Yani ben 1 yıldır java ile uğraşıyorum. Kodladıkça öğreniyorsun bütün kodları. Bakabilirsin tabii ki. Ama jre ve jdk'ye ihtiyacın var. Kodları decompile etmeye ve çalıştırmaya yarıyor bunlar. Kısaca kodlara bakabilmek için lazım :D
 

BattukClashTR

Kömür Madencisi
Mesajlar
103
En iyi cevaplar
0
Beğeniler
25
Puanları
0
B
Yani ben 1 yıldır java ile uğraşıyorum. Kodladıkça öğreniyorsun bütün kodları. Bakabilirsin tabii ki. Ama jre ve jdk'ye ihtiyacın var. Kodları decompile etmeye ve çalıştırmaya yarıyor bunlar. Kısaca kodlara bakabilmek için lazım :D
Bu arada kardeşim;
yukarida verdigin kodları deniyordum ki,
Player p=
p.SetFireTicks ("100");
yazdım. Yazınca 2.satırın altını çizdi ve
dediki:" the method setFireTicks (int) in the type Entity is not applicable for the arguements (String) "

Sonra 2.satırdaki kesme işaretinip kaldırıp
şöyle yazdım; p.SetFireTicks (100) bu seferde
" type mismatch: cannot convert from void to Player" dedi.
Bu arada ben bu kodları sadece public clas test {} içinde deniyorum.
yani kod ekranim şöyle;
#####
package com.test.plugin
import org.bukkit.entity.Player;
public class test {
Player p=
p.setFireTicks ("100");
}
#####
Umarım çok soru sorduğumdan rahatsız degilsindir, burda tek yardımcı olan sensin
 

MegaCrafter

Obsidyen Madencisi
Mesajlar
1,419
En iyi cevaplar
0
Beğeniler
1,542
Puanları
3,070
B

Bu arada kardeşim;
yukarida verdigin kodları deniyordum ki,
Player p=
p.SetFireTicks ("100");
yazdım. Yazınca 2.satırın altını çizdi ve
dediki:" the method setFireTicks (int) in the type Entity is not applicable for the arguements (String) "

Sonra 2.satırdaki kesme işaretinip kaldırıp
şöyle yazdım; p.SetFireTicks (100) bu seferde
" type mismatch: cannot convert from void to Player" dedi.
Bu arada ben bu kodları sadece public clas test {} içinde deniyorum.
yani kod ekranim şöyle;
#####
package com.test.plugin
import org.bukkit.entity.Player;
public class test {
Player p=
p.setFireTicks ("100");
}
#####
Umarım çok soru sorduğumdan rahatsız degilsindir, burda tek yardımcı olan sensin
Hayır öyle değil. "Player p =" dedikten sonra bir tanım yapman lazım. Yani komut gönderen olabilir, bir event gerçekleştiren olabilir falan. onCommand kullanmayı öğrenince onunla yapmayı dene. İkinci yaptığın tırnak işaretlerini kaldırmak da doğru.
 

Üst