Skocz do zawartości
  • 0

Pomoc w kodzie pluginu.


Konspirant
 Udostępnij

Pytanie

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

3 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

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

  • 0
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

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

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.

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...