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

Listener (PlayerDeath) nie dziala :C


Entify

Rekomendowane odpowiedzi

Opublikowano

Tak jak w temacie, pewien listener mi nie dziala, po zabiciu gracza powinna pojawic sie wiadomosc na chacie itp..

Errory z konsoli:

[12:10:11 ERROR]: Could not pass event PlayerDeathEvent to ent_Core v1.1
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:302) ~[spigot.jar:git-PaperSpigot-43]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[spigot.jar:git-PaperSpigot-43]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:509) [spigot.jar:git-PaperSpigot-43]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:494) [spigot.jar:git-PaperSpigot-43]
        at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callPlayerDeat
hEvent(CraftEventFactory.java:397) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityPlayer.die(EntityPlayer.java:386)
[spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityLiving.damageEntity(EntityLiving.j
ava:745) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityHuman.damageEntity(EntityHuman.jav
a:766) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityPlayer.damageEntity(EntityPlayer.j
ava:465) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityHuman.attack(EntityHuman.java:951)
 [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java
:1205) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.PacketPlayInUseEntity.a(PacketPlayInUseE
ntity.java:37) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.PacketPlayInUseEntity.handle(PacketPlayI
nUseEntity.java:49) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:189
) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java
:81) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:7
89) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:3
07) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:6
38) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
:544) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
28) [spigot.jar:git-PaperSpigot-43]
Caused by: java.lang.NullPointerException
        at com.gmail.xscreamspl.listeners.PlayerDeathListener.onPlayerDeath(Play
erDeathListener.java:71) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
_131]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
_131]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_131]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_131]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:298) ~[spigot.jar:git-PaperSpigot-43]
        ... 19 more
[12:10:11 ERROR]: Could not pass event PlayerDeathEvent to ent_Core v1.1
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:302) ~[spigot.jar:git-PaperSpigot-43]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62) ~[spigot.jar:git-PaperSpigot-43]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:509) [spigot.jar:git-PaperSpigot-43]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:494) [spigot.jar:git-PaperSpigot-43]
        at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callPlayerDeat
hEvent(CraftEventFactory.java:397) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityPlayer.die(EntityPlayer.java:386)
[spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityLiving.damageEntity(EntityLiving.j
ava:745) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityHuman.damageEntity(EntityHuman.jav
a:766) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityPlayer.damageEntity(EntityPlayer.j
ava:465) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.EntityHuman.attack(EntityHuman.java:951)
 [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java
:1205) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.PacketPlayInUseEntity.a(PacketPlayInUseE
ntity.java:37) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.PacketPlayInUseEntity.handle(PacketPlayI
nUseEntity.java:49) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:189
) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java
:81) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:7
89) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:3
07) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:6
38) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java
:544) [spigot.jar:git-PaperSpigot-43]
        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:6
28) [spigot.jar:git-PaperSpigot-43]
Caused by: java.lang.NullPointerException
        at com.gmail.xscreamspl.listeners.PlayerDeathListener.onPlayerDeath(Play
erDeathListener.java:71) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
_131]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
_131]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
.8.0_131]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_131]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:298) ~[spigot.jar:git-PaperSpigot-43]
        ... 19 more
[12:10:11 INFO]: Entify_2 was slain by Entify_
>

 

 

Kod z eclipse:

package com.gmail.xscreamspl.listeners;

import java.net.InetSocketAddress;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.scheduler.BukkitRunnable;
import com.gmail.xscreamspl.Main;
import com.gmail.xscreamspl.data.base.Guild;
import com.gmail.xscreamspl.data.base.User;
import com.gmail.xscreamspl.lang.Lang;
import com.gmail.xscreamspl.managers.CombatManager;
import com.gmail.xscreamspl.managers.DeathBanManager;
import com.gmail.xscreamspl.managers.GuildManager;
import com.gmail.xscreamspl.managers.UserManager;
import com.gmail.xscreamspl.utils.ItemUtil;
import com.gmail.xscreamspl.utils.Util;

public class PlayerDeathListener
  implements Listener
{
  @EventHandler
  public void onPlayerDeath(PlayerDeathEvent e)
  {
    final Player p = e.getEntity();
    Player k = p.getKiller();
    User pUser = UserManager.getUser(p);
    User kUser = null;
    if (k == null)
    {
      UUID uuid = (UUID)EntityDamageByEntityListener.getLastDamager().remove(p.getUniqueId());
      if (uuid != null) {
        k = Bukkit.getPlayer(uuid);
      }
    }
    if (k != null)
    {
      kUser = UserManager.getUser(k);
      kUser.setFirstKill(p.getName());
      Guild pGuild = GuildManager.getGuild(p);
      Guild kGuild = GuildManager.getGuild(k);
      int winPoints = (int)(304.0D + (kUser.getPoints() - pUser.getPoints()) * -0.3D);
      if (winPoints <= -10)
      {
        winPoints = -10;
      }
      else if (k.getName().equalsIgnoreCase(p.getName()))
      {
        winPoints = 0;
      }
      else if (k.getAddress().toString().equalsIgnoreCase(p.getAddress().toString()))
      {
        winPoints = 0;
        Util.sendMsg(p, "&4Blad: &cTwoj adres IP jest taki sam jak " + k.getName() + " punkty nie zostaja naliczone!");
        Util.sendMsg(k, "&4Blad: &cTwoj adres IP jest taki sam jak " + p.getName() + " punkty nie zostaja naliczone!");
      }
      int losePoints = Math.abs(winPoints / 2);
      pUser.removePoints(losePoints);
      kUser.addPoints(winPoints);
      kUser.addKill(1);
      String msg = Lang.MSG_PLAYER_DEATHMESSAGE;
      msg = msg.replace("{DPLAYER}", p.getName());
      msg = msg.replace("{DTAG}", " &8[&c" + pGuild.getTag() + "&8]");
      msg = msg.replace("{KPLAYER}", k.getName());
      msg = msg.replace("{KTAG}", " &8[&c" + kGuild.getTag() + "&8]");
      msg = msg.replace("{-}", Integer.toString(losePoints));
      msg = msg.replace("{+}", winPoints >= 0 ? "+" + Integer.toString(winPoints) : Integer.toString(winPoints));
      e.setDeathMessage(Util.fixColor(msg));
    }
    else
    {
      e.setDeathMessage(null);
    }
    pUser.addDeath(1);
    CombatManager.removePlayer(p);
    p.getLocation().getWorld().dropItemNaturally(p.getLocation(), ItemUtil.getPlayerHead(pUser.getLastName()));
    new BukkitRunnable()
    {
      public void run()
      {
      }
    }.runTaskLater(Main.getPlugin(), 1L);
  }
}

 

 

 

JAVA <3

 

Opublikowano
      msg = msg.replace("{DTAG}", " &8[&c" + pGuild.getTag() + "&8]");

Sprawdzasz czy gracz w ogóle jest w gildii? Guild.getTag() zwraca null więc możliwe że nie jest w gildii a mimo to próbujesz ją znaleźć :P

 

Zanim zaczniesz korzystać z obiektu gildii,

Cytat

if((pGuild != null) {
}

 

sprawdzaj czy istnieje.

 

Opublikowano
13 minut temu, iMoobler napisał:

      msg = msg.replace("{DTAG}", " &8[&c" + pGuild.getTag() + "&8]");

Sprawdzasz czy gracz w ogóle jest w gildii, Guild.getTag() zwraca null więc możliwe że nie jest w gildii a mimo to próbujesz ją znaleźć :P

Dzieki wielkie :D
A bawilem sie tym az 1 dzien, myslalem ze to inna klasa cos psuje (playerrespawn)

 

 

JAVA <3

 

Opublikowano
59 minut temu, Entify napisał:

Dzieki wielkie :D
A bawilem sie tym az 1 dzien, myslalem ze to inna klasa cos psuje (playerrespawn)

Na twoim miejscu stworzyłbym zmienną tag, i jeśli gracz jest w gildii zmienna = pobierasz tag, a jeśli nie to zostaw ją pustą tak żeby nie tworzyć z osobna dla każdego typu gracza osobnej wiadomości.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...