Konspirant 0 Opublikowano 16 lutego 2020 Udostępnij Opublikowano 16 lutego 2020 Witam, Mam problem ponieważ uczę się pisania pluginów i jeden z pluginów nie działa choć powinien. Proszę o wyrozumiałość. package test.pack; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin implements Listener{ public void OnEnable() { getServer().getPluginManager().registerEvents(this, this); } @EventHandler(priority=EventPriority.NORMAL) public void Hit(EntityDamageByEntityEvent e) { Player p = (Player) e.getDamager(); p.sendMessage("You Hit "+e.getEntityType()); } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 kerpson 534 Opublikowano 16 lutego 2020 Udostępnij Opublikowano 16 lutego 2020 1. Nie posiadasz @Override nad metodą onEnable. 2. Nie wyślesz graczowi e.getEntityType() ponieważ nie jest on Stringiem. powinno być: e.getEntityType().toString();. 9 godzin temu, Konspirant napisał: nie działa choć powinien nie, nie powinien Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 yooniks 347 Opublikowano 17 lutego 2020 Udostępnij Opublikowano 17 lutego 2020 18 godzin temu, HotAngel2K17 napisał: 1. Nie posiadasz @Override nad metodą onEnable. 2. Nie wyślesz graczowi e.getEntityType() ponieważ nie jest on Stringiem. powinno być: e.getEntityType().toString();. nie, nie powinien Wyśle nawet jak nie jest stringem Nazwałeś metodę OnEnable zamiast onEnable Ixidi 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
0 Ixidi 717 Opublikowano 17 lutego 2020 Udostępnij Opublikowano 17 lutego 2020 Metoda wywoływana przy uruchomieniu to nie OnEnable tylko onEnable, wielkość liter ma znaczenie Twoja klasa Main dziedziczy po JavaPlugin, metoda onEnable jest nadpisywana, dlatego należy umieścić nad nią adnotacje @Override. A tak poza tym metoda getDamager() klasy EntityDamageByEntityEvent zwraca implementacje Entity. Oznacza to, że nie koniecznie jest to gracz (może to być np. zombie). Dlatego właśnie nie należy od razu rzutować do Player, należy najpierw to sprawdzić. Generalnie polecam poduczyć się podstaw OOP. Briks i Addiss9 2 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
Konspirant 0
Witam,
Mam problem ponieważ uczę się pisania pluginów i jeden z pluginów nie działa choć powinien. Proszę o wyrozumiałość.
Odnośnik do komentarza
Udostępnij na innych stronach
3 odpowiedzi na to pytanie
Rekomendowane odpowiedzi