Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Bukkit PlayerJoinEvent w 1.2.5


Rekomendowane odpowiedzi

Opublikowano

Witam,

Mam problem ponieważ, zawsze do sprawdzania  czy gracz wszedł na serwer używałem "PlayerJoinEvent",

lecz gdy na wersji 1.2.5 próbowałem użyć tej funkcji, to zwyczajnie wyrzuca błąd w konsoli.

Próbowałem użyć PlayerJoinEvent oraz PlayerLoginEvent, obydwie funkcje zwracają błąd.

Kod:

@EventHandler
public void onJoin(PlayerJoinEvent event) {
    Player p = (Player) event;
    p.sendMessage("jakis tekst");
}


Lub:

@EventHandler
pubic void onLogin(PlayerLoginEvent event) {
    Player p = (Player) event;
    p.sendMessage("jakis tekst");
}

Przy obydwóch funkcjach, konsola zwraca taki błąd:

13:56:44 [SEVERE] Could not pass event PlayerLoginEvent to EndiTekkitManager
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:304)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62)
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:482)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:467)
        at net.minecraft.server.ServerConfigurationManager.attemptLogin(ServerCo
nfigurationManager.java:233)
        at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:111)
        at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:103)
        at net.minecraft.server.Packet1Login.handle(SourceFile:68)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:251)
        at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:51)
        at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:6
5)
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:569)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:457)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
Caused by: java.lang.ClassCastException: org.bukkit.event.player.PlayerLoginEven
t cannot be cast to org.bukkit.entity.Player
        at pl.theendi.endimanagertekkit.main.onLogin(main.java:23)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:302)
        ... 13 more

Błąd oczywiście pojawia się gdy gracz wchodzi na serwer.

 

Będę bardzo wdzięczny za pomoc.

Wstawił bym sobie sygnaturkę, ale nie pozwala mi na to forum, ponieważ gdy próbuję to zrobić, dostaję słynny komunikat od cloudflare "Getway timed out". :/

Opublikowano

@GotoFinal

Ja używam IDE Eclipse.

Mógłbyś mi to jaśniej objaśnić?
Bo musiałem zamienić string event na playera, bo inaczej funkcje odnoszące się do playera nie działają, to w jaki sposób ja mam to zrobić?

Patrząc na tą dokumentację widzę tu takie coś:
public PlayerLoginEvent(Player player,
String hostname,
InetAddress address,
InetAddress realAddress)

No i ja z tego kodu rozumiem tak: zapisz gracza jako gracz do zmiennej player, następnie zapisz hostname jako string, potem InetAddress, więc byłbym ci wdzięczny za objaśnienie mi co tak naprawdę mam zrobić z tym kodem, bo nie jestem w stanie tego zrozumieć.
 

Wstawił bym sobie sygnaturkę, ale nie pozwala mi na to forum, ponieważ gdy próbuję to zrobić, dostaję słynny komunikat od cloudflare "Getway timed out". :/

Opublikowano

@1361622928-U485574.pngBL4NT

Znam tego pana :)

Wstawił bym sobie sygnaturkę, ale nie pozwala mi na to forum, ponieważ gdy próbuję to zrobić, dostaję słynny komunikat od cloudflare "Getway timed out". :/

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...