Listedeki bir veriyi çekme

Dantero

Elmas Madencisi
En iyi cevaplar
0
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
En iyi cevaplar
1
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
En iyi cevaplar
0
Dalgamı geçiyorsun? :D Ben örnek olarak ArrayList verdim başka bir liste olmazmı?
 

Nobody01

YASAKLANDI
En iyi cevaplar
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
En iyi cevaplar
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?
 

şifrenisöyle

Kızıltaş Madencisi
En iyi cevaplar
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
En iyi cevaplar
0
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
En iyi cevaplar
0
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