Acil JAVA DEVELEPOR ARKADAŞLAR

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
Arkadaşlar bir plugin yazıcam fakat bir sorun var , pluginin amacı oyuncu suya girdiğinde bir komut yazıcak bu plugini yazıcam olmuyor nasıl yapmalıyım ?

Örnek;

PHP:
public class Main extends JavaPlugin implements Listener{
    @Override
    public void onEnable(){
        Bukkit.getServer().getPluginManager().registerEvents(this, this);
    }
    @Override
    public void onDisable(){
    }

    @EventHandler
    public void portal(PlayerPortalEvent pme){
        pme.getPortalTravelAgent().setCanCreatePortal(true);
    }
}


ben bunu nasıl oyuncu suya giriğinde komut yazma olayına çeviririm ?


@Krumb069 @IRFN @Speaw @VitesMahmut @Minecraftplayerr Bildikleriniz varsa sizde etiketleyinn...
 


WhyCoconut

Zombi Katili
Mesajlar
187
En iyi cevaplar
0
Beğeniler
100
Puanları
0
kişinin kendisi eliyle otomatik mi yazıcak yoksa suya girince bi komut mu çalışıcak?
 

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
kişinin kendisi eliyle otomatik mi yazıcak yoksa suya girince bi komut mu çalışıcak?
suya girince çalışcak :)

Skript ile yapılışı çok basit :) (ben yinede yazdım belki işine yarar):
Kod:
on move on water:
    execute console command "bla bla"
    send "şu an yüzüyorsun!"
    stop
birde player için geçerli olması lazım burda on move on water diyor player falan ekli olması gerekmiyormu ?

birde execute player command olması lazım :) (%3) Skript bilgim var doğrumu bilmiyorum yanlışsa düzeltirsen sevinirim :9
 

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali

Dpelqpleq

2 + 2 = 5
Mesajlar
1,037
En iyi cevaplar
0
Beğeniler
1,201
Puanları
0
Kod:
package ana;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class c1 extends JavaPlugin implements Listener{
  public void onEnable(){
    Bukkit.getPluginManager().registerEvents(this, this);
    getConfig().options().copyDefaults(true);
    saveConfig();}
  @EventHandler
  public static void onMove(PlayerMoveEvent e){
    Player p = e.getPlayer();
    Material m = p.getLocation().getBlock().getType();
    if ((m == Material.STATIONARY_WATER) || (m == Material.WATER)){
        for (String s : getConfig().getStringList("komutlar"))
              e.getPlayer().performCommand(s);}}}
Acelem var biraz for String bölümünde hata var. Sunucuda denemedim suya gelince configteki komutu işlemesi lazım.
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
player.performCommand("komut");
 

Dpelqpleq

2 + 2 = 5
Mesajlar
1,037
En iyi cevaplar
0
Beğeniler
1,201
Puanları
0
Kod:
package ana;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class c1 extends JavaPlugin implements Listener{
  public void onEnable(){
    Bukkit.getPluginManager().registerEvents(this, this);}
  @EventHandler
  public static void onMove(PlayerMoveEvent e){
    Player p = e.getPlayer();
    Material m = p.getLocation().getBlock().getType();
    if ((m == Material.STATIONARY_WATER) || (m == Material.WATER)){
              e.getPlayer().performCommand("deneme");}}}
Suya girince deneme komudunu girer, configlisini beceremedim.
player.performCommand("komut");
Orada hata yok getConfig() kısmında bir hata var.

Edit: Suya girince komutu pes pese giriyor, command cooldown varsa veya teleportla alakalı bir komut ekliceksen problem cıkarmaz.
 
Son düzenleme:

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
Kod:
package ana;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class c1 extends JavaPlugin implements Listener{
  public void onEnable(){
    Bukkit.getPluginManager().registerEvents(this, this);}
  @EventHandler
  public static void onMove(PlayerMoveEvent e){
    Player p = e.getPlayer();
    Material m = p.getLocation().getBlock().getType();
    if ((m == Material.STATIONARY_WATER) || (m == Material.WATER)){
              e.getPlayer().performCommand("deneme");}}}
Suya girince deneme komudunu girer, configlisini beceremedim.

Orada hata yok getConfig() kısmında bir hata var.

Edit: Suya girince komutu pes pese giriyor, command cooldown varsa veya teleportla alakalı bir komut ekliceksen problem cıkarmaz.
komutu değiştirdim fakat bilinmeyen komut diyor ?
 

Dpelqpleq

2 + 2 = 5
Mesajlar
1,037
En iyi cevaplar
0
Beğeniler
1,201
Puanları
0
Ben nasıl yapıldığını değilde nasıl öğrenileceğini göstermeyi daha doğru buluyorum yani hayır :(

Kod güzel de tavsiye etmiyorum PlayerMoveEvent'i bu işte, hem daha çok kez çağrılacaktır biliyorsunuz kafayı çevirmek bile bir hareket sayılıyor hem suyu hareket etmeyen bir oyuncunun kafasına dökünce ve su oyuncuya temas edince çalışmayacaktır yani Scheduler Programming ile yapılması çok daha iyi olacaktır fakat çalışır mı çalışır bu şekilde de genel olarak.
Kesinlikle haklısın her harekette cağırır oyuncu hareketine bağlı diyede su dökülünce calısmaz. Fakat sunucuyu cok yorarmı emin değilim, sonucta oyunun kodlamasındada hareket edince buraya gelirse bunu yap vb kodlamalar mevcut. craftbukkit'in/oyunun optimizasyonuna bağlı birsey o yüzden yorarmı birsey diyemiycem.
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
lagdan birazda olsa kurtulmak istiyorsan plugin aktifleştiğinde for döngüsünü kullanarak repeating task ile 10 tick de bir oyuncunun suda olup olmadığını kontrol edebilirsin.
 

Dpelqpleq

2 + 2 = 5
Mesajlar
1,037
En iyi cevaplar
0
Beğeniler
1,201
Puanları
0
komutu değiştirdim fakat bilinmeyen komut diyor ?
deneme komutunu sunucumda algıladı yani calıstı, normaldede komutu kullanınca aynı hatayı veriyorsa pluginde sorun vardır. Üstteki pluginden kaynaklıysa fazla bilmiyorum sorun nerede. Bakarım.
 

notaldo

If you want this, dream it!
Mesajlar
286
En iyi cevaplar
1
Beğeniler
105
Puanları
670
Ruh hali
deneme komutunu sunucumda algıladı yani calıstı, normaldede komutu kullanınca aynı hatayı veriyorsa pluginde sorun vardır. Üstteki pluginden kaynaklıysa fazla bilmiyorum sorun nerede. Bakarım.
evet sunucu algıladı fakat komutu yazdığımda bilinmeyen komut diyor ilginç ?
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
şunu dener misin o zaman
player.chat("/deneme");
şahsen ben bunu kullanıyorum :)
 

Üst