[Java Yardım] Block koyduktan sonra silme

KRHN

Yazılımcı Beyefendi
En iyi cevaplar
0
Merhaba arkadaşlar, şu anda üstünde durduğum proje oyuncu yürüyünce altında 3x3'lük bir platform belirmesi. Fakat bu platform adam yürürken sonsuza kadar kalıyor yani silimiyor. Ve platform sadece oyuncu bir bloğun altındayken çıkıyor fakat silinmediği için orada öyle kalıyor adam ne kadar yürürse yürüsün. Adam yürüdükten sonra şunun olmasını istiyorum; 1-Arkasındaki platform silinecek 2-Altına tekrar bir platform çıkacak.

Kodu hemen paylaşayım arkadaşlar açık bir plugin yapacağım için güncellediğimde paylaşacağım
Kod:​
Kod:
public class Main extends JavaPlugin implements Listener{


    public void onEnable(){
        getLogger().info("Lanet Plugini Aktif!");
        Bukkit.getServer().getPluginManager().registerEvents(this,this);
    }

    public void onDisable(){
        getLogger().info("Lanet Plugini Kapatildi!");
    }



    int i = 1;
    Block c1,c2,c3,c4,c5,c6,c7,c8,c9;

    @EventHandler
    public void onPlayerMove(PlayerMoveEvent event){
   
        Location loc = event.getPlayer().getLocation();
       
        loc.setY(loc.getY() - 1);
        Block b1 = loc.getBlock();
   
   
   
        loc.setX(loc.getX() + 1);
        Block b2 = loc.getBlock();
   
        loc.setX(loc.getX() - 2);
        Block b3 = loc.getBlock();
   
   
        loc = event.getPlayer().getLocation();
   
        loc.setY(loc.getY() - 1);
   
        loc.setZ(loc.getZ() - 1);
        Block b4 = loc.getBlock();
        loc.setZ(loc.getZ() + 2);
        Block b5 = loc.getBlock();
   
   
   
        loc = event.getPlayer().getLocation();
   
        loc.setY(loc.getY() - 1);
        loc.setZ(loc.getZ() + 1);
        loc.setX(loc.getX() + 1);
        Block b6 = loc.getBlock();
   
        loc.setX(loc.getX() - 2);
        Block b7 = loc.getBlock();
   
        loc.setZ(loc.getZ() - 2);
        Block b8 = loc.getBlock();
   
        loc.setX(loc.getX() + 2);
        Block b9 = loc.getBlock();
       
   
        if(b1.getType() != Material.AIR && b1.getType() != Material.LONG_GRASS && b1.getType() != Material.DOUBLE_PLANT)
        {
   
   
        if(i == 1){
       
       
            c1 = b1;
            c2 = b2;
            c3 = b3;
            c4 = b4;
            c5 = b5;
            c6 = b6;
            c7 = b7;
            c8 = b8;
            c9 = b9;
       
            i = 2;
            }
   
            if(i==2){
                b1.setType(c1.getType());
                b2.setType(c2.getType());
                b3.setType(c3.getType());
                b4.setType(c4.getType());
                b5.setType(c5.getType());
               
                b6.setType(c6.getType());
                b7.setType(c7.getType());
                b8.setType(c8.getType());
                b9.setType(c9.getType());
                i = 1;
            }
               
        b1.setType(Material.GLOWSTONE);
        b2.setType(Material.REDSTONE_BLOCK);
        b3.setType(Material.REDSTONE_BLOCK);
        b4.setType(Material.REDSTONE_BLOCK);
        b5.setType(Material.REDSTONE_BLOCK);
   
        b6.setType(Material.NETHERRACK);
        b7.setType(Material.NETHERRACK);
        b8.setType(Material.NETHERRACK);
        b9.setType(Material.NETHERRACK);
        }
    }



}
Kod:


Şimdiden yardım edenlere teşekkürler.
Yardımcı Olursanız Sevinirim: @IRFN @>>TheLegend<<@ByNovem
[DOUBLEPOST=1403811901,1403811866][/DOUBLEPOST]Bu arada şu c1 falan onları silmeyi düzeltme amaçlı yaptım fakat çalışmadı.​
[/LEFT]
 
Son düzenleme:

IRFN

Sonoyuncu.Network
En iyi cevaplar
0
Sanırım @ByNovem 'in lanet pluginini yapmaya çalışıyorsun. O skript ile yapmıştı, ondan yardım istersen mantığını çözmen açısından daha iyi olacaktır.
 

Glyphl

play.aleriaclub.com | Team.Aleria
En iyi cevaplar
0
Tam anlamadım godPowers teki jesus tarzımı ?
 

KRHN

Yazılımcı Beyefendi
En iyi cevaplar
0
Tam anlamadım godPowers teki jesus tarzımı ?
Aynen öyle suda ve lavda yürümeyi sağlayacak bir şey yapmayı deniyorum belki suyu kaldırırım ama lavda kesin yürüyecek VIP'lere özellik vereceğim sunucuda o yüzden yapmayı deniyorum.

Sanırım @ByNovem 'in lanet pluginini yapmaya çalışıyorsun. O skript ile yapmıştı, ondan yardım istersen mantığını çözmen açısından daha iyi olacaktır.
Evet dediğiniz plugini yapmaya çalışıyorum VIP'lere özellik olarak vereceğim lavda suda yürümeyi çalışacak biçimde.
 
Son düzenleme:

Glyphl

play.aleriaclub.com | Team.Aleria
En iyi cevaplar
0
Keşke skriptten anlasam yardımcı olurdum
 

IRFN

Sonoyuncu.Network
En iyi cevaplar
0
Al bak aşağıdaki linkte GodPowers plugininin Jesus kodları var. Senin istediğin şey ile aynı görevi görüyor. Onu inceleyerek istediğin şeyi yapabilirsin.
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.


Ve aradığın kısım da şurası:
PHP:
    public void destroyJesusRaft(Player player) {
            for (int i = 0; i < raft.length; i++) {
                Block block = player.getWorld().getBlockAt(((int) raftX[i]), ((int) raftY[i]), ((int) raftZ[i]));
                if (block.getType() == Material.ICE) {
                    block.setType(Material.WATER);
                } else if (block.getType() == Material.OBSIDIAN) {
                    block.setType(Material.LAVA);
                }
                if (raft[i].made) {
                    raft[i].made = false;
                }
            }
        }
 

KRHN

Yazılımcı Beyefendi
En iyi cevaplar
0
Al bak aşağıdaki linkte GodPowers plugininin Jesus kodları var. Senin istediğin şey ile aynı görevi görüyor. Onu inceleyerek istediğin şeyi yapabilirsin.
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.


Ve aradığın kısım da şurası:
PHP:
    public void destroyJesusRaft(Player player) {
            for (int i = 0; i < raft.length; i++) {
                Block block = player.getWorld().getBlockAt(((int) raftX[i]), ((int) raftY[i]), ((int) raftZ[i]));
                if (block.getType() == Material.ICE) {
                    block.setType(Material.WATER);
                } else if (block.getType() == Material.OBSIDIAN) {
                    block.setType(Material.LAVA);
                }
                if (raft[i].made) {
                    raft[i].made = false;
                }
            }
        }
Teşekkürler artık pluginim çalışıyor :)
 

KRHN

Yazılımcı Beyefendi
En iyi cevaplar
0
Yeri değil fakat yardımcı olabilirseniz sevinirim, tüm oyunculara bir değer vermek istiyorum herkes false olacak fakat benim kod ile oyuncunun o değerini true yapmak istiyorum. Ve eğer True ise lanetlenecek son cümleyi yapabilirim fakat nasıl oyuncuya özgü bir değer yaparım bir bilgim yok. Şimdiden teşekkürler.
 

KRHN

Yazılımcı Beyefendi
En iyi cevaplar
0
Hashmap kullanabilirsiniz, örnek kullanım;

Kod:
public Map<String, Integer> Deger = new HashMap<>();

    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent event) {
        Deger.put(event.getPlayer().getName(), 0);
    }

public boolean onCommand (CommandSender sender, Command command, String commandLabel, String[] args){
if(commandLabel.equalsIgnoreCase("deneme")){
   player.sendMessage(Deger.get(player.getName()) + "");
}
Daha sonradan öğrendim :D Yine de teşekkürler.
 

KRHN

Yazılımcı Beyefendi
En iyi cevaplar
0
Sendemi Hasmap kullanıyorsun ?
hiçbir eklentimde gerekli olduğunu düşünmediğim için kullanmadım fakat güzel bir şey lakin bazı durumlarda bir kaç crasha sebebiyet veriyor. Hash Map reload atılınca giderken configdeki veriler gitmiyor bende config tabanlı çalışıyorum :)
 
Üst