Giter Site home page Giter Site logo

npc-lib's People

Contributors

0utplay avatar cryptite avatar dasbabypixel avatar derklaro avatar dxssucuk avatar vytskalt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

npc-lib's Issues

Outer skin layer

Can i enable the outer layer of my npc? (PacketPlayOutEntityMetadata)

Attack dealing damage

How do I get the NPC's to take actual damage? Or atleast get the amount of damage it would've taken?

NoClassDefFoundError

[16:37:06] [Server thread/ERROR]: Could not pass event PlayerToggleSneakEvent to BuildFFA v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot.jar:git-Spigot-db6de12-18fbb24]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1220) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInEntityAction.a(SourceFile:43) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PacketPlayInEntityAction.a(SourceFile:9) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-db6de12-18fbb24]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_292]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_292]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot.jar:git-Spigot-db6de12-18fbb24]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot.jar:git-Spigot-db6de12-18fbb24]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.github.juliarn.npc.modifier.MetadataModifier$EntityMetadata
at com.github.juliarn.npc.NPCPool.lambda$handleSneak$11(NPCPool.java:296) ~[?:?]
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[?:1.8.0_292]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_292]
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) ~[?:1.8.0_292]
at java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) ~[?:1.8.0_292]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[?:1.8.0_292]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[?:1.8.0_292]
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[?:1.8.0_292]
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[?:1.8.0_292]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_292]
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485) ~[?:1.8.0_292]
at com.github.juliarn.npc.NPCPool.handleSneak(NPCPool.java:296) ~[?:?]
at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_292]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_292]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
... 15 more

Im getting this a couple seconds after loading the NPC/Plugin

[05:17:54] [Craft Scheduler Thread - 30 - SimpNPC/WARN]: [SimpNPC] Plugin SimpNPC v1.0 generated an exception while executing task 9414
java.lang.NullPointerException: Cannot invoke "io.netty.channel.Channel.pipeline()" because "channel" is null
at com.comphenix.protocol.injector.netty.ChannelInjector.findChannelHandler(ChannelInjector.java:932) ~[ProtocolLib (4).jar:?]
at com.comphenix.protocol.injector.netty.InjectionFactory.fromPlayer(InjectionFactory.java:93) ~[ProtocolLib (4).jar:?]
at com.comphenix.protocol.injector.netty.ProtocolInjector$4.sendServerPacket(ProtocolInjector.java:411) ~[ProtocolLib (4).jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.sendServerPacket(PacketFilterManager.java:733) ~[ProtocolLib (4).jar:?]
at com.comphenix.protocol.injector.PacketFilterManager.sendServerPacket(PacketFilterManager.java:687) ~[ProtocolLib (4).jar:?]
at com.github.juliarn.npc.modifier.NPCModifier.lambda$1(NPCModifier.java:90) ~[SimpNPC-1.0.jar:?]
at java.util.Arrays$ArrayList.forEach(Arrays.java:4204) ~[?:?]
at com.github.juliarn.npc.modifier.NPCModifier.send(NPCModifier.java:88) ~[SimpNPC-1.0.jar:?]
at com.github.juliarn.npc.modifier.NPCModifier.send(NPCModifier.java:104) ~[SimpNPC-1.0.jar:?]
at com.github.juliarn.npc.NPC.hide(NPC.java:192) ~[SimpNPC-1.0.jar:?]
at com.github.juliarn.npc.NPCPool.lambda$1(NPCPool.java:211) ~[SimpNPC-1.0.jar:?]
at org.bukkit.craftbukkit.v1_18_R1.scheduler.CraftTask.run(CraftTask.java:101) ~[simpmcpaper-1.18.1.jar:git-SimpMCPaper-"add22dc"]
at org.bukkit.craftbukkit.v1_18_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) ~[simpmcpaper-1.18.1.jar:git-SimpMCPaper-"add22dc"]
at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[simpmcpaper-1.18.1.jar:git-SimpMCPaper-"add22dc"]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]

Skin Layers not showing

Hey so i am using the lib on 1.18.2 (nice lib btw)
and i enable skin layers in the show event
any idea why?

private final NPCPool npcPool;` - Cannot resolve symbol.

Hi, i try to use ur library NPC-Lib
and private final NPCPool npcPool;` - Cannot resolve symbol.

How i add ur library? - I downloaded sourcecode and select Project Structure >> Libraries >> Add >> Java >> Select this .rar file

Can u help me plz

NPC Interact Event Error

[19:56:55 ERROR]: Village > [19:56:55 ERROR] [Minecraft]: [VillageCore] Unhandled exception occured in onPacketReceiving(PacketEvent) for VillageCore
[19:56:55 ERROR]: Village > java.lang.NoClassDefFoundError: Could not initialize class com.comphenix.protocol.wrappers.WrappedEnumEntityUseAction
[19:56:55 ERROR]: Village > at com.comphenix.protocol.events.AbstractStructure.getEnumEntityUseActions(AbstractStructure.java:614) ~[ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at com.github.juliarn.npc.NPCPool$1.onPacketReceiving(NPCPool.java:161) ~[VillageCore-1.0-SNAPSHOT-shaded.jar:?]
[19:56:55 ERROR]: Village > at com.comphenix.protocol.injector.SortedPacketListenerList.invokeReceivingListener(SortedPacketListenerList.java:114) [ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketRecieving(SortedPacketListenerList.java:67) [ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:537) [ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at com.comphenix.protocol.injector.PacketFilterManager.invokePacketRecieving(PacketFilterManager.java:509) [ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at com.comphenix.protocol.injector.netty.ProtocolInjector.packetReceived(ProtocolInjector.java:360) [ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at com.comphenix.protocol.injector.netty.ProtocolInjector.onPacketReceiving(ProtocolInjector.java:325) [ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at com.comphenix.protocol.injector.netty.ChannelInjector.decode(ChannelInjector.java:600) [ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:507) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:446) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at com.comphenix.protocol.injector.netty.ChannelInjector$2.channelRead(ChannelInjector.java:292) [ProtocolLib.jar:4.8.0]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:719) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:655) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:581) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-all-4.1.68.Final.jar%2331!/:4.1.68.Final]
[19:56:55 ERROR]: Village > at java.lang.Thread.run(Thread.java:833) [?:?]
[19:56:55 ERROR]: Village > [19:56:55 ERROR] [Minecraft]: Parameters:
[19:56:55 ERROR]: Village > net.minecraft.network.protocol.game.ServerboundInteractPacket@7daec04e[
[19:56:55 ERROR]: Village > f_134030_=612957245
[19:56:55 ERROR]: Village > f_134031_=net.minecraft.network.protocol.game.ServerboundInteractPacket$InteractionAction@25ca88ec
[19:56:55 ERROR]: Village > f_134034_=false
[19:56:55 ERROR]: Village > ]
[19:56:55 ERROR]: Village >

(Yes, we have ProtocolLib installed, and dependency added in both plugin.yml and pom.xml)

Error in console + other problem

my console gets spammed with this error

java.lang.NoClassDefFoundError: com/github/juliarn/npc/event/PlayerNPCHideEvent$Reason
at com.github.juliarn.npc.NPCPool.lambda$npcTick$1(NPCPool.java:215) ~[?:?]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:82) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3452-Spigot-ffceeae-808cb7c]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [spigot-1.18.2-R0.1-SNAPSHOT.jar:3452-Spigot-ffceeae-808cb7c]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.ClassNotFoundException: com.github.juliarn.npc.event.PlayerNPCHideEvent$Reason
... 6 more
[15:06:30] [Craft Scheduler Thread - 0/WARN]: [Magic] Plugin Magic v1.0 generated an exception while executing task 5
java.lang.NoClassDefFoundError: com/github/juliarn/npc/event/PlayerNPCHideEvent$Reason
at com.github.juliarn.npc.NPCPool.lambda$npcTick$1(NPCPool.java:215) ~[?:?]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftTask.run(CraftTask.java:82) ~[spigot-1.18.2-R0.1-SNAPSHOT.jar:3452-Spigot-ffceeae-808cb7c]
at org.bukkit.craftbukkit.v1_18_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) [spigot-1.18.2-R0.1-SNAPSHOT.jar:3452-Spigot-ffceeae-808cb7c]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.ClassNotFoundException: com.github.juliarn.npc.event.PlayerNPCHideEvent$Reason

Also the interact event does not work after rejoin

Change NPC name

Hi! Basically, I'm trying to change the name of a NPC, like this:

String villagerName = PluginUtils.getCustomData(container, EntityReplacer.NAME_KEY, String.class); npc.getProfile().setName(villagerName + " (Following)"); npc.visibility().queuePlayerListChange(VisibilityModifier.PlayerInfoAction.UPDATE_DISPLAY_NAME).send();

But nothing happens (no error in console), the name is the same as before, am I doing something wrong?

Also, I would like to change the texture of the NPC (setting its texture value and signature) without having to create a new NPC, how would I do that?

Thanks :)

NoSuchMethodException: java.util.Collections$SingletonList.<init>() ?????

Hi everyone, I'm having the following error when trying to change the equipment of an NPC

`[WARNING] .... java.lang.NoSuchMethodException: java.util.Collections$SingletonList.()

[WARNING] .... at java.base/java.lang.Class.newNoSuchMethodException(Unknown Source)

[WARNING] .... at java.base/java.lang.Class.getConstructor(Unknown Source)

[WARNING] .... at ProtocolLib.jar//com.comphenix.protocol.wrappers.BukkitConverters.getGenericList(BukkitConverters.java:277)

[WARNING] .... at ProtocolLib.jar//com.comphenix.protocol.wrappers.BukkitConverters.access$100(BukkitConverters.java:88)

[WARNING] .... at ProtocolLib.jar//com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:367)

[WARNING] .... at ProtocolLib.jar//com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:359)

[WARNING] .... at ProtocolLib.jar//com.comphenix.protocol.wrappers.Converters$1.getGeneric(Converters.java:48)

[WARNING] .... at ProtocolLib.jar//com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:372)

[WARNING] .... at ProtocolLib.jar//com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:345)

[WARNING] .... at Roulette-1.0-SNAPSHOT.jar//me.matsubara.roulette.util.npc.modifier.EquipmentModifier.queue(EquipmentModifier.java:93)

[WARNING] .... at Roulette-1.0-SNAPSHOT.jar//me.matsubara.roulette.game.Game$1.handleSpawn(Game.java:126)

[WARNING] .... at Roulette-1.0-SNAPSHOT.jar//me.matsubara.roulette.util.npc.NPC.lambda$show$1(NPC.java:99)

[WARNING] .... at Roulette-1.0-SNAPSHOT.jar//me.matsubara.roulette.util.npc.NPC$$Lambda$5393/0x00000000ed443a50.run(Unknown Source)

[WARNING] .... at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:101)

[WARNING] .... at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483)

[WARNING] .... at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1564)

[WARNING] .... at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:490)

[WARNING] .... at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1480)

[WARNING] .... at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1279)

[WARNING] .... at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319)

[WARNING] .... at net.minecraft.server.MinecraftServer$$Lambda$3659/0x00000000724037d8.run(Unknown Source)

[WARNING] .... at java.base/java.lang.Thread.run(Unknown Source)`

this is how I create the NPC

`this.npc = NPC.builder()
.profile(new Profile(
UUID.randomUUID(),
npcName,
Collections.singletonList(new Profile.Property(
"textures",
"ewogICJ0aW1lc3RhbXAiIDogMTU5NDA2NDIyNDkzOCwKICAicHJvZmlsZUlkIiA6ICJhMjk1ODZmYmU1ZDk0Nzk2OWZjOGQ4ZGE0NzlhNDNlZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJWaWVydGVsdG9hc3RpaWUiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDcyOGJkYWI5ZDkwMTI0YmQxMWY4NmU1OTM3MzJkMmRjNWQ3NzY3YTYzZGE4MGQ3M2ZkYmM0NDU2NTY2YzcwMSIKICAgIH0KICB9Cn0=",
"pMYGvxZzmEApm46xoRqwc8Ftd0LRzzjyMwCiuxhx5avmKVbZUDsDKoB/QPpwz8gof5kpR6m3aboy6LN17XU4JJ3IHp776dkBfNkPieVs+pyNhgXhMaqLmxGk1QlmdLI/pDSfTELoFpF/73LNdFOnGPwmuCSmn7Bt1OQtNWsoYtWHbpm5CkSo89ssRbZSYmn4VJVJPFfdHre3kJyRqIpSE6BIrCxMrJdyMeneK7KmF4ykZ6aZNle8x86X3gImc81EYbSm/8Ax+0vsvLYDRFKbUUg0tjaAHONaYqfrnyJTxxcCWeBI9yyeDNuGwi3cCdKTb73OVhC0HG5Vw0VEnX8Ti51dJASeAFQaLTOGAqaiwseX+wEbFbDlU4gzaFfe8AvVZcegksnZlY7wMzr/KkTetSjz/8eArfj4A8bgmtyEOUc1YxGqym35GsqZSQkqxXtgoX/0QRMNwEHEmurruSkR5Tn5WwbN6HoIT3QASokvvJO73D9Tn7sAuSitlU97lnB4fQTQj/3/ePbQ6zrkp5uGhUDyauY9aCCd5ySJ/7KpLd1lEBT+WrsriLezZ1xG37M82dOALuacLzQPJkz4+5hZbIj2e5D8ALp65AtFxJju2Zfk5gXmv2kmgeF8fAw11hHHok+gfo3eesbF1i0SvKaEGDcf+7Nxs3eU88aSmfoh77I="))))
.location(npcLoc)
.lookAtPlayer(false)
.imitatePlayer(false)
.spawnCustomizer(new SpawnCustomizer() {
@OverRide
public void handleSpawn(@NotNull NPC npc, @NotNull Player player) {
npc.rotation().queueRotate(npcLoc.getYaw(), npcLoc.getPitch()).send(player);

                    // Set item (ball) in main hand.
                    if (!state.isSpinning() && !state.isEnding()) {
                        npc.equipment().queue(EnumWrappers.ItemSlot.MAINHAND, XMaterial.SNOWBALL.parseItem()).send(player); <----- ERROR
                    }
                    // Show skin layers.
                    npc.metadata().queue(MetadataModifier.EntityMetadata.SKIN_LAYERS, true).send(player);
                }
            })
            .build(plugin.getNPCPool());`

System Info: Java 16 (Eclipse OpenJ9 VM openj9-0.26.0) Host: Linux 4.15.0-159-generic (amd64)
This server is running Paper version git-Paper-358 (MC: 1.17.1) (Implementing API version 1.17.1-R0.1-SNAPSHOT) (Git: 3f043f7)

I also tried in my plugin onEnable() method creating a singleton list with Collections#singletonList("TEST") and I have not problems, only happens when trying to change the equipment.

This also happens when using spigot btw.

PD: Sorry, I don't know how to put the code in blocks :/

1.19.3

While I haven't tested and this might work perfectly well on 1.19.3, it did bring some great changes. Minecraft no longer requires NPC players to show up in tab anymore. Could this plugin support that functionality?

java.lang.NoSuchMethodException On Player Join

Every Time a player logs on this Exception gets thrown.
[15:36:38 WARN]: java.lang.NoSuchMethodException: java.util.Collections$SingletonList.()
[15:36:38 WARN]: at java.base/java.lang.Class.getConstructor0(Class.java:3585)
[15:36:38 WARN]: at java.base/java.lang.Class.getConstructor(Class.java:2271)
[15:36:38 WARN]: at ProtocolLib.jar//com.comphenix.protocol.wrappers.BukkitConverters.getGenericList(BukkitConverters.java:277)
[15:36:38 WARN]: at ProtocolLib.jar//com.comphenix.protocol.wrappers.BukkitConverters.access$100(BukkitConverters.java:88)
[15:36:38 WARN]: at ProtocolLib.jar//com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:367)
[15:36:38 WARN]: at ProtocolLib.jar//com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:359)
[15:36:38 WARN]: at ProtocolLib.jar//com.comphenix.protocol.wrappers.Converters$1.getGeneric(Converters.java:48)
[15:36:38 WARN]: at ProtocolLib.jar//com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:372)
[15:36:38 WARN]: at ProtocolLib.jar//com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:345)
[15:36:38 WARN]: at wirtschaft-1.4-all.jar//com.github.juliarn.npc.modifier.EquipmentModifier.lambda$queue$0(EquipmentModifier.java:104)
[15:36:38 WARN]: at wirtschaft-1.4-all.jar//com.github.juliarn.npc.modifier.NPCModifier.queueInstantly(NPCModifier.java:72)
[15:36:38 WARN]: at wirtschaft-1.4-all.jar//com.github.juliarn.npc.modifier.EquipmentModifier.queue(EquipmentModifier.java:82)
[15:36:38 WARN]: at wirtschaft-1.4-all.jar//com.github.juliarn.npc.modifier.EquipmentModifier.queue(EquipmentModifier.java:122)
[15:36:38 WARN]: at wirtschaft-1.4-all.jar//net.weareproud.wirtschaft.npc.NPCManager.lambda$createSpawnNPC$0(NPCManager.java:55)
[15:36:38 WARN]: at wirtschaft-1.4-all.jar//com.github.juliarn.npc.NPC.lambda$show$1(NPC.java:123)
[15:36:38 WARN]: at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:101)
[15:36:38 WARN]: at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:483)
[15:36:38 WARN]: at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1591)
[15:36:38 WARN]: at net.minecraft.server.dedicated.DedicatedServer.b(DedicatedServer.java:528)
[15:36:38 WARN]: at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:1507)
[15:36:38 WARN]: at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1300)
[15:36:38 WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:322)
[15:36:38 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)

Exception in thread

[19:42:37 WARN]: Exception in thread "Craft Scheduler Thread - 40"
[Lobby-1][19:42:37 WARN]: org.apache.commons.lang.UnhandledException: Plugin Lobby v1.0.6 generated an exception while executing task 8
[Lobby-1] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56)
[Lobby-1] at org.github.paperspigot.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:23)
[Lobby-1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[Lobby-1] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[Lobby-1] at java.lang.Thread.run(Thread.java:748)
[Lobby-1]Caused by: java.lang.LinkageError: com/comphenix/protocol/wrappers/EnumWrappers$NativeGameMode
[Lobby-1] at com.github.juliarn.npc.modifier.VisibilityModifier.queuePlayerListChange(VisibilityModifier.java:55)
[Lobby-1] at com.github.juliarn.npc.NPC.hide(NPC.java:114)
[Lobby-1] at com.github.juliarn.npc.NPCPool.lambda$npcTick$1(NPCPool.java:171)
[Lobby-1] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[Lobby-1] at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[Lobby-1] ... 4 more

Help with creating an NPC

Hey, I need help creating an NPC. I implemented the API. I don't see an example on the
README.md page just that you should create an instance.

In addition, there is not even a list of available events. I would also like to see
examples of how to create an NPC, for example

Cannot spawn NPC

[18:45:01 WARN]: Exception in thread "Craft Scheduler Thread - 2" 
[18:45:01 WARN]: org.apache.commons.lang.UnhandledException: Plugin AspectEconomy v1.0.0-SNAPSHOT generated an exception while executing task 10
	at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.LinkageError: loader org.bukkit.plugin.java.PluginClassLoader @2dc96b52 attempted duplicate class definition for com.comphenix.protocol.events.PacketContainer. (com.comphenix.protocol.events.PacketContainer is in unnamed module of loader org.bukkit.plugin.java.PluginClassLoader @2dc96b52, parent loader 'app')
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
	at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:555)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:103)
	at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:193)
	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:99)
	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:88)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at com.github.juliarn.npc.modifier.VisibilityModifier.queuePlayerListChange(VisibilityModifier.java:53)
	at com.github.juliarn.npc.NPC.show(NPC.java:119)
	at com.github.juliarn.npc.NPCPool.lambda$npcTick$1(NPCPool.java:217)
	at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
	at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
	... 3 more

Every time I try to spawn a NPC, I get this error.

Missing Readme

The Readme is missing. Its not clear how to use the NPCLib correctly. Please fix.

Allow skins from URL

This was already requested in #46 however, this might currently be possible or at least, citizens seem to be able to achieve it.

Their Wiki

There, it works by using "/npc skin --url [image]" command, therefore I assume this should also be doable here. I would appreciate it. Can you please take a look at it?

Multiple lines

Does this library support multiple lines on npcs or do I have to do that myself?

Error when NPC is shown to a player

Getting this error:

java.lang.NoSuchMethodException: java.util.Collections$SingletonList.<init>()
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.getConstructor(Class.java:1825)
at com.comphenix.protocol.wrappers.BukkitConverters.getGenericList(BukkitConverters.java:277)
at com.comphenix.protocol.wrappers.BukkitConverters.access$100(BukkitConverters.java:88)
at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:367)
at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:359)
at com.comphenix.protocol.wrappers.Converters$1.getGeneric(Converters.java:48)
at com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:372)
at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:345)
at com.github.juliarn.npc.modifier.VisibilityModifier.queuePlayerListChange(VisibilityModifier.java:60)
at com.github.juliarn.npc.NPC.show(NPC.java:86)
at com.github.juliarn.npc.NPCPool.lambda$npcTick$1(NPCPool.java:173)
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:64)
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
at org.github.paperspigot.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:23)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

I'm on 1.8.8. The NPC is visible to the client.

NPCs always have Optifine cape when enabling skin layers

For some reason, no matter what minecraft user I use, once I enable skin layers, all of them get an optifine cape.

I first thought this is because of me using Optifine, but it even shows to players connected to the server via Geyser who do not use Optifine.

image

Why is that and how can this be fixed?

NPE & java.lang.IllegalArgumentException

those exceptions get thrown randomly on a newly loaded server:

java.lang.NullPointerException at net.minecraft.server.v1_16_R3.PacketDataSerializer.a(PacketDataSerializer.java:164) at net.minecraft.server.v1_16_R3.PacketPlayOutPlayerInfo.b(SourceFile:97) at net.minecraft.server.v1_16_R3.PacketEncoder.encode(PacketEncoder.java:42) at net.minecraft.server.v1_16_R3.PacketEncoder.encode(PacketEncoder.java:12) at jdk.internal.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.comphenix.protocol.injector.netty.ChannelInjector.encode(ChannelInjector.java:477) at com.comphenix.protocol.injector.netty.ChannelInjector.access$100(ChannelInjector.java:64) at com.comphenix.protocol.injector.netty.ChannelInjector$1.encode(ChannelInjector.java:247) at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107) at com.comphenix.protocol.injector.netty.ChannelInjector$1.write(ChannelInjector.java:253) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:730) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:816) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:723) at protocolsupport.utils.netty.MessageToMessageEncoder.write(MessageToMessageEncoder.java:57) at protocolsupport.utils.netty.MessageToMessageCodec.write(MessageToMessageCodec.java:61) at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:738) at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:801) at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:814) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:794) at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:831) at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1071) at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:300) at com.comphenix.protocol.injector.netty.ChannelProxy.writeAndFlush(ChannelProxy.java:327) at net.minecraft.server.v1_16_R3.NetworkManager.lambda$b$6(NetworkManager.java:300) at com.comphenix.protocol.injector.netty.ChannelInjector$3.lambda$onMessageScheduled$1(ChannelInjector.java:325) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:465) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) at java.base/java.lang.Thread.run(Thread.java:834)
and ::

java.lang.IllegalArgumentException: cannot send packets to a closed channel at org.apache.commons.lang.Validate.isTrue(Validate.java:136) ~[paper.jar:git-Paper-259] at com.comphenix.protocol.injector.netty.ChannelInjector.invokeSendPacket(ChannelInjector.java:687) ~[?:?] at com.comphenix.protocol.injector.netty.ChannelInjector.sendServerPacket(ChannelInjector.java:679) ~[?:?] at com.comphenix.protocol.injector.netty.ProtocolInjector$4.sendServerPacket(ProtocolInjector.java:399) ~[?:?] at com.comphenix.protocol.injector.PacketFilterManager.sendServerPacket(PacketFilterManager.java:733) ~[?:?] at com.comphenix.protocol.injector.PacketFilterManager.sendServerPacket(PacketFilterManager.java:687) ~[?:?] at com.github.juliarn.npc.modifier.NPCModifier.send(NPCModifier.java:73) ~[?:?] at com.github.juliarn.npc.NPC.show(NPC.java:51) ~[?:?] at com.github.juliarn.npc.NPCPool.lambda$npcTick$0(NPCPool.java:117) ~[?:?] at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftTask.run(CraftTask.java:99) ~[paper.jar:git-Paper-259] at org.bukkit.craftbukkit.v1_16_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:54) ~[paper.jar:git-Paper-259] at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) ~[paper.jar:git-Paper-259] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:834) [?:?]

Switch to PacketEvents

I suggest switching from ProtocolLib to PacketEvents 2.0.
It's faster, works with 1.7-1.18, much easier to use and can be shaded instead of requiring ProtocolLib installed on the server.

plugin disable support

my onDisable actually looks like this:

npcPool.npCs.forEach { npcPool.removeNPC(it.entityId) }

1.NPCs do not disappear
2. PlayerNPCHideEvent is called and throws an error because the plugin is already disabled

java.lang.NoClassDefFoundError: com/github/juliarn/npc/NPCPool

[12.09 12:47:15.822] INFO: [Skyfall-1] [12:47:15 ERROR]: Error occurred while enabling 4Bedwars v1.0 (Is it up to date?)
[12.09 12:47:15.822] INFO: [Skyfall-1] java.lang.NoClassDefFoundError: com/github/juliarn/npc/NPCPool
[12.09 12:47:15.822] INFO: [Skyfall-1] at de.binda.Bedwars.Npcs.ShopNpc.(ShopNpc.java:32) ~[4Bedwars.jar:?]
[12.09 12:47:15.822] INFO: [Skyfall-1] at de.binda.Bedwars.Bedwars.onEnable(Bedwars.java:74) ~[4Bedwars.jar:?]
[12.09 12:47:15.822] INFO: [Skyfall-1] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:264) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:370) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:500) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugin(CraftServer.java:535) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at org.bukkit.craftbukkit.v1_17_R1.CraftServer.enablePlugins(CraftServer.java:449) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at net.minecraft.server.MinecraftServer.loadWorld(MinecraftServer.java:725) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at net.minecraft.server.dedicated.DedicatedServer.init(DedicatedServer.java:306) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1212) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at java.lang.Thread.run(Thread.java:831) [?:?]
[12.09 12:47:15.822] INFO: [Skyfall-1] Caused by: java.lang.ClassNotFoundException: com.github.juliarn.npc.NPCPool
[12.09 12:47:15.822] INFO: [Skyfall-1] at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:146) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:103) ~[paper.jar:git-Paper-249]
[12.09 12:47:15.822] INFO: [Skyfall-1] at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?]
[12.09 12:47:15.822] INFO: [Skyfall-1] ... 12 more

Not working Library (importing)

Hi, i try to use ur library NPC-Lib
and private final NPCPool npcPool;` - Cannot resolve symbol.

How i add ur library? - I downloaded sourcecode and select Project Structure >> Libraries >> Add >> Java >> Select this .rar file

Can u help me plz

Error when the player join this server

Hey, after restarting the server and the player join this server comes following error.

IMPORTANT: The player must be in the near from npc. So that the npc show directly in the tab.

This only happens with a restart
My currently Protocollib version is: 4.7.0. https://ci.dmulloy2.net/job/ProtocolLib/533/
The currently server version is: git-PaperSpigot-445 (MC: 1.8.8)

java.lang.NoSuchMethodException: java.util.Collections$SingletonList.<init>()
[21:26:21 WARN]:       at java.lang.Class.getConstructor0(Class.java:3082)
[21:26:21 WARN]:       at java.lang.Class.getConstructor(Class.java:1825)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.BukkitConverters.getGenericList(BukkitConverters.java:277)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.BukkitConverters.access$100(BukkitConverters.java:88)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:367)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:359)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.Converters$1.getGeneric(Converters.java:48)
[21:26:21 WARN]:       at com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:372)
[21:26:21 WARN]:       at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:345)
[21:26:21 WARN]:       at com.github.juliarn.npc.modifier.VisibilityModifier.queuePlayerListChange(VisibilityModifier.java:60)
[21:26:21 WARN]:       at com.github.juliarn.npc.NPC.show(NPC.java:86)
[21:26:21 WARN]:       at com.github.juliarn.npc.NPCPool.lambda$npcTick$1(NPCPool.java:173)
[21:26:21 WARN]:       at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[21:26:21 WARN]:       at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[21:26:21 WARN]:       at org.github.paperspigot.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:23)
[21:26:21 WARN]:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[21:26:21 WARN]:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[21:26:21 WARN]:       at java.lang.Thread.run(Thread.java:748)
[21:26:21 WARN]: java.lang.NoSuchMethodException: java.util.Collections$SingletonList.<init>()
[21:26:21 WARN]:       at java.lang.Class.getConstructor0(Class.java:3082)
[21:26:21 WARN]:       at java.lang.Class.getConstructor(Class.java:1825)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.BukkitConverters.getGenericList(BukkitConverters.java:277)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.BukkitConverters.access$100(BukkitConverters.java:88)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:367)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:359)
[21:26:21 WARN]:       at com.comphenix.protocol.wrappers.Converters$1.getGeneric(Converters.java:48)
[21:26:21 WARN]:       at com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:372)
[21:26:21 WARN]:       at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:345)
[21:26:21 ERROR]: java.lang.NullPointerException
[21:26:21 WARN]:       at com.github.juliarn.npc.modifier.VisibilityModifier.queuePlayerListChange(VisibilityModifier.java:60)
[21:26:21 WARN]:       at com.github.juliarn.npc.NPC.show(NPC.java:86)
[21:26:21 WARN]:       at com.github.juliarn.npc.NPCPool.lambda$npcTick$1(NPCPool.java:173)
[21:26:21 WARN]:       at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[21:26:21 WARN]:       at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[21:26:21 WARN]:       at org.github.paperspigot.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:23)
[21:26:21 WARN]:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[21:26:21 WARN]:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[21:26:21 WARN]:       at java.lang.Thread.run(Thread.java:748

NPC-Options

Feature:

Every player see's his own skin as npc

NPCs not being spawned when quickly moving in and out of the range

(Moved from CloudNetService/CloudNet#307)

Description of the bug:

In Minecraft, players are not being spawned when they are not in the tablist. When a player moves in, directly out and again into the range where NPCs will be spawned, they will not be spawned because they are not added to the tablist.

Expected behavior:

Before addinf the players twice to the tablist and removing them too early, they should not be added twice and the timer for removal should be restarted.

Adding the NPC to a Team

Hey, a quick question, is there a way to get the EntityPlayer of an NPC, so you can add him to a Scoreboard Team?

Multiple lines

Hi, I had in mind to add the availability of having an NPC name with more lines.

So I initially forked the project and started working on it. After that I realized that maybe it was better to have it in a different repository so that I can use it myself as a library in my plugins.

So I made Hologram-Lib, a library that allows you to create holograms (even with items and animations) with packets using ProtocolLib.

If interested I can do a PR to implement my library to create the npcs.

1.16 support

In 1.16, the Entity Equipment Packet changed slightly. The packet does now contain a List of Pair<ItemSlot, ItemStack> instead of just an ItemSlot and an ItemStack.
ProtocolLib doesn't have a type for this yet, so propably have to wait for ProtocolLib to add this.

Hide-Method

Add a Method to hide a specific NPC from specific Players.

Skins spawn as default

When spawning a NPC sometimes it spawns as default steve skin, if you move out of spawn range and back in, the skin then shows. I've tried setting the tab list remove to a high number and it still happens. Is there a fix for this?

Nickname hide

Feature:
Add feature to create npc without nickname

Metadata Issue

I'm trying to enable skin layers, but it doesn't work.
I don't understand why, there is no console error.

I'm using 1.12.2.

This is my code for creating an NPC:

        NPC npc = NPC.builder()
                .profile(this.createProfile(name, skin))
                .location(location)
                .imitatePlayer(false)
                .lookAtPlayer(false)
                .build(this.npcPool);

        npc.metadata().queue(MetadataModifier.EntityMetadata.SKIN_LAYERS, true).send();

Is there something I'm doing wrong? Or is this just supposed to work.

Version: 2.6-RELEASE

NPC-Lib v2

When NPC-Lib v2 is going to be released?

NPC Interact Event

Hi, is there any solution to nullify several times event popup at one click?

Yaw not correct on spawn

When setting the yaw of an npc while creating it using NPC.builder().location(loc), the yaw is not correct.

Updating it via npc.rotation.queueRotation(yaw, pitch) works just fine.

Weird Warning

Hey, so just doing a plugin with this library, all worked great, NPC spawned with it's gameprofile properties, but I just got this weird warning (not ERR), that says something about show stuff? I'm using the development release

Error:
[03:40:42 WARN]: java.lang.NoSuchMethodException: java.util.Collections$SingletonList.<init>() [03:40:42 WARN]: at java.base/java.lang.Class.getConstructor0(Class.java:3517) [03:40:42 WARN]: at java.base/java.lang.Class.getConstructor(Class.java:2238) [03:40:42 WARN]: at com.comphenix.protocol.wrappers.BukkitConverters.getGenericList(BukkitConverters.java:277) [03:40:42 WARN]: at com.comphenix.protocol.wrappers.BukkitConverters.access$100(BukkitConverters.java:88) [03:40:42 WARN]: at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:367) [03:40:42 WARN]: at com.comphenix.protocol.wrappers.BukkitConverters$3.getGeneric(BukkitConverters.java:359) [03:40:42 WARN]: at com.comphenix.protocol.wrappers.Converters$1.getGeneric(Converters.java:48) [03:40:42 WARN]: at com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:372) [03:40:42 WARN]: at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:345) [03:40:42 WARN]: at com.dolphln.npc.modifier.VisibilityModifier.queuePlayerListChange(VisibilityModifier.java:59) [03:40:42 WARN]: at com.dolphln.npc.NPC.show(NPC.java:95) [03:40:42 WARN]: at com.dolphln.npc.NPCPool.lambda$npcTick$1(NPCPool.java:208) [03:40:42 WARN]: at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftTask.run(CraftTask.java:101) [03:40:42 WARN]: at org.bukkit.craftbukkit.v1_17_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:57) [03:40:42 WARN]: at com.destroystokyo.paper.ServerSchedulerReportingWrapper.run(ServerSchedulerReportingWrapper.java:22) [03:40:42 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) [03:40:42 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) [03:40:42 WARN]: at java.base/java.lang.Thread.run(Thread.java:831)

I'm gonna be honest, I didn't really see if it has something to do with my plugin, but I thought I better post it here.

Edit: Also using purpur 1.17.1> version [03:46:13 INFO]: Checking version, please wait... [03:46:14 INFO]: This server is running Purpur version git-Purpur-1287 (MC: 1.17.1) (Implementing API version 1.17.1-R0.1-SNAPSHOT) (Git: 01b35a2 on ver/1.17.1) [03:46:14 INFO]: You are running the latest version [03:46:14 INFO]: Previous version: git-Purpur-1206 (MC: 1.17)

Yaw and Pitch

Despite setting the NPC location to Yaw and Pitch, the NPC looks at Yaw 0 and Pitch 0

Player Crashing and NPE

Happens when I'm near a NPC that has their name set to that of an online player

My currently Protocollib version is: 4.8.0

16:09:53 WARN: at net.minecraft.server.v1_16_R3.PacketDataSerializer.a(PacketDataSerializer.java:390)
16:09:53 WARN: at net.minecraft.server.v1_16_R3.PacketDataSerializer.a(PacketDataSerializer.java:385)
16:09:53 WARN: at net.minecraft.server.v1_16_R3.PacketPlayOutPlayerInfo.b(SourceFile:104)
16:09:53 WARN: at net.minecraft.server.v1_16_R3.PacketEncoder.encode(PacketEncoder.java:46)
16:09:53 WARN: at net.minecraft.server.v1_16_R3.PacketEncoder.encode(PacketEncoder.java:15)
16:09:53 WARN: at jdk.internal.reflect.GeneratedMethodAccessor87.invoke(Unknown Source)
16:09:53 WARN: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
16:09:53 WARN: at java.base/java.lang.reflect.Method.invoke(Method.java:564)
16:09:53 WARN: at com.viaversion.viaversion.util.PipelineUtil.callEncode(PipelineUtil.java:93)
16:09:53 WARN: at com.viaversion.viaversion.bukkit.handlers.BukkitEncodeHandler.encode(BukkitEncodeHandler.java:71)
16:09:53 WARN: at jdk.internal.reflect.GeneratedMethodAccessor88.invoke(Unknown Source)
16:09:53 WARN: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
16:09:53 WARN: at java.base/java.lang.reflect.Method.invoke(Method.java:564)
16:09:53 WARN: at com.comphenix.protocol.injector.netty.ChannelInjector.encode(ChannelInjector.java:531)
16:09:53 WARN: at com.comphenix.protocol.injector.netty.ChannelInjector.access$100(ChannelInjector.java:72)
16:09:53 WARN: at com.comphenix.protocol.injector.netty.ChannelInjector$1.encode(ChannelInjector.java:271)
16:09:53 WARN: at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107)
16:09:53 WARN: at com.comphenix.protocol.injector.netty.ChannelInjector$1.write(ChannelInjector.java:277)
16:09:53 WARN: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717)
16:09:53 WARN: at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709)
16:09:53 WARN: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792)
16:09:53 WARN: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702)
16:09:53 WARN: at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:697)
16:09:53 WARN: at io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1010)
16:09:53 WARN: at io.netty.channel.AbstractChannel.write(AbstractChannel.java:284)
16:09:53 WARN: at com.comphenix.protocol.injector.netty.ChannelProxy.write(ChannelProxy.java:312)
16:09:53 WARN: at net.minecraft.server.v1_16_R3.NetworkManager.lambda$writePacket$11(NetworkManager.java:485)
16:09:53 WARN: at com.comphenix.protocol.injector.netty.ChannelInjector$3.lambda$onMessageScheduled$1(ChannelInjector.java:354)
16:09:53 WARN: at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
16:09:53 WARN: at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
16:09:53 WARN: at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:384)
16:09:53 WARN: at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
16:09:53 WARN: at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
16:09:53 WARN: at java.base/java.lang.Thread.run(Thread.java:832)
[16:09:53 INFO]: the60th lost connection: Internal Exception: io.netty.handler.codec.EncoderException: java.lang.NullPointerExcept

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.