Решено Как сделать при смерти не пропадание определённого эффекта

  • Автор темы Автор темы VolShe
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

VolShe

Активный участник
Пользователь
Баллы
66
Ник в Minecraft
VolShe
Мне нужно чтоб при смерти у игрока не пропадали определённые эффекты
Если можно - код для плагина
ну или возможно есть такой в гугле, я не нашёл.
 
Не понял что-то там, если не сложно - укажите сам код
Там есть код...
public HashMap<String, List<PotionEffect>> effects = new HashMap<String, List<PotionEffect>>();

onDeath:
for (PotionEffect e : player.getPotionEffects()) {
effects.get(player.getName()).add(e);
}

onRespawn:
for (PotionEffect e : effects.get(player.getName()) {
player.addPotionEffect(e);
}
 
Там есть код...
public HashMap<String, List<PotionEffect>> effects = new HashMap<String, List<PotionEffect>>();

onDeath:
for (PotionEffect e : player.getPotionEffects()) {
effects.get(player.getName()).add(e);
}

onRespawn:
for (PotionEffect e : effects.get(player.getName()) {
player.addPotionEffect(e);
}
Да я уже понял, щас проверяю
Там есть код...
public HashMap<String, List<PotionEffect>> effects = new HashMap<String, List<PotionEffect>>();

onDeath:
for (PotionEffect e : player.getPotionEffects()) {
effects.get(player.getName()).add(e);
}

onRespawn:
for (PotionEffect e : effects.get(player.getName()) {
player.addPotionEffect(e);
}
Выбивает ошибку:
[21:32:49 ERROR]: Could not pass event PlayerDeathEvent to FrostPrison v0.1
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:396) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.EntityPlayer.die(EntityPlayer.java:417) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.EntityLiving.damageEntity(EntityLiving.java:812) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.EntityHuman.damageEntity(EntityHuman.java:800) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.EntityPlayer.damageEntity(EntityPlayer.java:496) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at org.bukkit.craftbukkit.v1_8_R3.entity.CraftLivingEntity.damage(CraftLivingEntity.java:241) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at org.bukkit.craftbukkit.v1_8_R3.entity.CraftLivingEntity.damage(CraftLivingEntity.java:229) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at com.earth2me.essentials.commands.Commandsuicide.run(Commandsuicide.java:21) [Essentials.jar:?]
at com.earth2me.essentials.commands.EssentialsCommand.run(EssentialsCommand.java:180) [Essentials.jar:?]
at com.earth2me.essentials.Essentials.onCommandEssentials(Essentials.java:527) [Essentials.jar:?]
at com.earth2me.essentials.Essentials.onCommand(Essentials.java:402) [Essentials.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1162) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:997) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_121]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_121]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [Spigot.jar:git-Spigot-e4d4710-e1ebe52]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Caused by: java.lang.NullPointerException
at com.crissartz.prison.vipercraft.Levels.onDeath(Levels.java:441) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[Spigot.jar:git-Spigot-e4d4710-e1ebe52]
... 30 more

@EventHandler
public void onDeath(PlayerDeathEvent e) {

HashMap<String, List<PotionEffect>> effects = new HashMap<String, List<PotionEffect>>();
for (PotionEffect e1 : e.getEntity().getActivePotionEffects()) {
(effects.get(e.getEntity().getName())).add(e1);
}
for (PotionEffect e1 : effects.get(e.getEntity().getName())) {
e.getEntity().addPotionEffect(e1);
}
[SPOILER/]

441 Строка в плагине:
(effects.get(e.getEntity().getName())).add(e1);
UP
 
У тебя ошибка в essentials, а так же bukkit не находит событие playerdeathevent. Возможно, не импортировал. В коде не написано. На ошибки не смотрел.
 
У тебя ошибка в essentials, а так же bukkit не находит событие playerdeathevent. Возможно, не импортировал. В коде не написано. На ошибки не смотрел.
Essentials скачивал с bukkit, ядро Spigot официальное
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх Низ