Listedeki bir veriyi çekme

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
Merhaba arkadaşlar,

Şimdi ben bir minigame tasarlamayı düşünüyorum, kırılan bloklar bir listeye kaydedilecek ve oyun bittiğinde bu bloklar yerine koyulacak, fakat ve lakin listedeki 2. veya 3. veriyi nasıl çekebilirim?
Örneğin;
PHP:
ArrayList<Integer,Integer,Integer> list = new ArrayList<Integer,Integer,Integer>();
Burdaki 2. veya 3. Integer i nasıl çekebilirim?

@Schaffer79
 


Admicos

Nether Yerlisi
Mesajlar
2,362
En iyi cevaplar
1
Beğeniler
1,580
Puanları
4,890
Ruh hali
Bir blok class'ı oluşturup ona x, y, z değerlerini (yada ne koyacaksan) koyup constructor ile ayarla. Sonra onun listesini yap ona bi şekilde eklersin.
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
Dalgamı geçiyorsun? :D Ben örnek olarak ArrayList verdim başka bir liste olmazmı?
 

Nobody01

YASAKLANDI
Mesajlar
92
En iyi cevaplar
0
Beğeniler
171
Puanları
0
Dalgamı geçiyorsun? :D Ben örnek olarak ArrayList verdim başka bir liste olmazmı?
Şimdi anladım, Admicos'un dediği gibi Constructor ile yapabilirsin veya direk ArrayList<Block> objesi oluşturup bloklarını kaydedebilirsin. Constructor pek mantıklı bir seçim olmaz zira Block zaten içinde lokasyonunu ve materyalını barındırır.
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
Hocam şimdi config li yapıp sunucuyu yormak istemiyorum, @Admicos senin dediğin şekilde olur ama listeyi nasıl oluşturcam? Constructor falan sorun değil.

Peki ama şimdi ben geri koymak için şu kodu kullanıcam;

getServer().getWorld()[0].getBlockAt(x,y,z).setTypeId(31);
veya buna benzer birşeydi dediğim gibi telefondayım hatırlamıyorum, burdaki x,y ve z ye ne yazıcam?
 

şifrenisöyle

Kızıltaş Madencisi
Mesajlar
438
En iyi cevaplar
0
Beğeniler
263
Puanları
0
Hocam şimdi config li yapıp sunucuyu yormak istemiyorum, @Admicos senin dediğin şekilde olur ama listeyi nasıl oluşturcam? Constructor falan sorun değil.

Peki ama şimdi ben geri koymak için şu kodu kullanıcam;

getServer().getWorld()[0].getBlockAt(x,y,z).setTypeId(31);
veya buna benzer birşeydi dediğim gibi telefondayım hatırlamıyorum, burdaki x,y ve z ye ne yazıcam?
for döngüsüne alırsın arraylist<block> u her 1 index i for larsın sonrasında her for için atama yaparsın int x = block.get(x) y ve z için yaparsın sonra:
getServer().getWorld()[0].getBlockAt(x,y,z).setTypeId(31);

buna koyarsın getworld 0 kısmına block un dünyasını yaparsın diye düşünüyorum acemi java bilgimle :)
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
for döngüsüne alırsın arraylist<block> u her 1 index i for larsın sonrasında her for için atama yaparsın int x = block.get(x) y ve z için yaparsın sonra:
getServer().getWorld()[0].getBlockAt(x,y,z).setTypeId(31);

buna koyarsın getworld 0 kısmına block un dünyasını yaparsın diye düşünüyorum acemi java bilgimle :)
Fikir için teşekkür ederim mantıklı aslında :)
For döngüsünü şöyle yap demek istedin sanırım
for(Block blok : liste)

Bu neden benim aklıma gelmedi :/ Hatırlattığın için teşekkür ederim :) :) galp <3
 

DonduranAtes

Zombi Katili
Mesajlar
232
En iyi cevaplar
0
Beğeniler
143
Puanları
340
str2loc ve loc2str kullanabilirsin;

Kod:
    private String split = "###";
    public Location str2loc (String str){
        String[] splstr = str.split(split);
     
        World world = Bukkit.getWorld(splstr[0]);
        double x = Double.parseDouble(splstr[1]);
        double y = Double.parseDouble(splstr[2]);
        double z = Double.parseDouble(splstr[3]);
     
        return new Location(world,x,y,z);
    }

    public String loc2str(Location loc){
        return loc.getWorld().getName() + split + loc.getX() + split + loc.getY() + split + loc.getZ();
    }

loc2str(loc) methodu sana locationun String halini verir onu istediğin değişkene kaydedebilirsin. str2loc(str) de, Stringin location halini verir.
 

Üst