2017-11-28 12 views
2

私は卵を投げるたびに雷を鳴らす方法を理解しようとしています。私のコードはコンソールには何のエラーも与えていません。メッセージはまだポップアップしますが、稲妻は表示されません。ここでライトニングストライクイベントハンドリング

package me.sanfrinsisco; 

import org.bukkit.entity.EntityType; 
import org.bukkit.entity.Player; 
import org.bukkit.event.EventHandler; 
import org.bukkit.event.Listener; 
import org.bukkit.event.player.PlayerEggThrowEvent; 
import net.md_5.bungee.api.ChatColor; 

public class PlayerListener implements Listener { 

    public PlayerListener(EventHandling plugin) { 
     plugin.getServer().getPluginManager().registerEvents(this, plugin); 
    } 

    @EventHandler 
    public void onPickup(PlayerEggThrowEvent e) { 
     Player player = e.getPlayer(); 

     player.sendMessage(ChatColor.DARK_BLUE + "You have summoned lightning"); 

     e.setHatchingType(EntityType.LIGHTNING); 
     e.setNumHatches((byte) 1); 
     e.setHatching(true); 
    } 
} 

私は私のコンソールで取得していますエラー

[19:37:58 ERROR]: Could not pass event PlayerEggThrowEvent to EventHandling v1.0 
org.bukkit.event.EventException: null 
     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:485) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.EntityEgg.a(EntityEgg.java:51) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.EntityProjectile.B_(EntityProjectile.java:167) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.World.entityJoinedWorld(World.java:1633) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.World.h(World.java:1603) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.World.tickEntities(World.java:1437) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.WorldServer.tickEntities(WorldServer.java:665) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:817) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:406) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:679) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:577) [spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at java.lang.Thread.run(Unknown Source) [?:?] 
Caused by: java.lang.IllegalArgumentException: Can't spawn that entity type from an egg! 
     at org.bukkit.event.player.PlayerEggThrowEvent.setHatchingType(PlayerEggThrowEvent.java:70) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     at me.sanfrinsisco.PlayerListener.onPickup(PlayerListener.java:22) ~[?:?] 
     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] 
     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?] 
     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] 
     at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] 
     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.12.2.jar:git-Spigot-3d850ec-f46ccd7] 
     ... 14 more 
> 
+0

'原因:java.lang.IllegalArgumentException:卵からそのエンティティタイプを生成できません! ' - 卵を直接孵化するように卵を設定できないようです – phflack

+0

卵自体から雷を鳴らす代わりに。その場所を整数で保存し、その特定の場所で雷を発生させます。私はどのように稲妻の産卵に行くのか、私はどこでも探しています。ここで私はあまりにもそれを変え何します。public void onPickup(PlayerEggThrowEvent電子、卵の卵){ \t \tプレーヤープレイヤー= e.getPlayer()\t 「\t @EventHandler。 \t \t \t \t e.setHatching(false); \t \t \t \t場所eggloc = egg.getLocation(); \t \t \t \t player.sendMessage(ChatColor.DARK_BLUE + "あなたは雷を召喚しました"); \t} } ' **何らかの理由で、コメントにコードを書式設定できません。** – MrSanfrinsisco

答えて

2

はよう巧みにあなたは稲妻を孵化する卵を設定することはできません、すでに記載されています。しかし、私たちは世界と場所を使用して同じ効果を得ることができます:

@EventHandler 
public void onProjectileHit(PlayerEggThrowEvent event) { 
    Egg egg = event.getEgg(); 
    egg.getWorld().strikeLightningEffect(egg.getLocation()); 
    event.setHatching(false); 
} 

あなたがstrikeLightningEffectを使用している場合は、strikeLightningを使用している場合、雷は、それが光何もしていません。

将来、スタックトレース/エラーを読むことを検討してください。これはあなたの敵ではなく、実際には反対です!

これはあなたの問題とは関係ありませんが、バンジーコードを使用していない限り、ChatColorのインポートをbungeecordではなくbukkitのものに変更することを検討してください。そうしないと、将来の問題が発生する可能性があります。