Spigot [API] HologramAPI 1.6.2

Simple API to create holograms | compatible with ProtocolSupport

  1. The holograms won't be saved permanently. This API only provides the methods to send the necessary packets to the players and saves them until you restart the server. You'll have to save the holograms yourself and re-spawn them when the server is started.
     
  2. I'm getting this when calling Hologram#spawn in PaperSpigot 1.7.10:
    Code (Text):
    java.lang.NoSuchMethodError: de.inventivegames.hologram.Hologram.spawn()V
    EDIT: Appears to be because of a bad API jar in the repository. Can you please fix?
     
    #82 HyperPlay, Dec 6, 2015
    Last edited: Dec 6, 2015
  3. I'll run another build, should hopefully fix it.
     
  4. The jar is still bad. The jar in the repository appears to have spawn() as void (spawn()V) while the one downloadable here has spawn() as boolean.
     
  5. There I was using 1.7.10 server protocol hack and a 1.8 client. I tried 1.8 server with ProtocolSupport and a 1.7.10 client. Neither work, the first shows witherskulls, ProtocolSupport doesn't show the hologram at all in 1.7.
     
  6. @inventivetalent I worked it out. It's the spawnPacketTouchVehicle in CraftHologram. It sends a wither skull if the server isn't running 1.8, it doesn't take protocol hacks into account. You need to make a separate spawnPacketTouchVehicle for 1.7 (WitherSkull) and 1.8 (ArmorStand). This only happens when using touch holograms.

    EDIT: In fact, you don't need a slime for interacting on 1.8. You can directly receive interacts with an ArmorStand with PacketPlayInUseEntity.
     
    #89 HyperPlay, Dec 12, 2015
    Last edited: Dec 12, 2015
  7. Excellent plugin , I'm using on my server : D Using protocol support , is giving several errors , including the creation. I managed to catch this error (when the player teleports )

    Code (Text):
    [08:28:56] [Server thread/INFO]: zKuriDev_ issued server command: /mv tp world_the_end
    [08:28:56] [Netty Server IO #1/WARN]: java.lang.NullPointerException
    [08:28:56] [Netty Server IO #1/WARN]:     at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(Unknown Source)
    [08:28:56] [Netty Server IO #1/WARN]:     at sun.reflect.UnsafeObjectFieldAccessorImpl.get(Unknown Source)
    [08:28:56] [Netty Server IO #1/WARN]:     at java.lang.reflect.Field.get(Unknown Source)
    [08:28:56] [Netty Server IO #1/WARN]:     at de.inventivegames.hologram.reflection.ClassBuilder.getWatchableObjectValue(ClassBuilder.java:243)
    [08:28:56] [Netty Server IO #1/WARN]:     at de.inventivegames.hologram.PacketListener.onSend(PacketListener.java:98)
    [08:28:56] [Netty Server IO #1/WARN]:     at de.inventivegames.packetlistener.handler.PacketHandler.notifyHandlers(PacketHandler.java:78)
    [08:28:56] [Netty Server IO #1/WARN]:     at de.inventivegames.packetlistener.PacketListenerAPI.onPacketSend(PacketListenerAPI.java:198)
    [08:28:56] [Netty Server IO #1/WARN]:     at de.inventivegames.packetlistener.channel.INCHandler$ChannelHandler.write(INCHandler.java:205)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:658)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:716)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:706)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:741)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:895)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:240)
    [08:28:56] [Netty Server IO #1/WARN]:     at com.comphenix.protocol.compat.netty.independent.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:327)
    [08:28:56] [Netty Server IO #1/WARN]:     at net.minecraft.server.v1_8_R3.NetworkManager$4.run(NetworkManager.java:198)
    [08:28:56] [Netty Server IO #1/WARN]:     at com.comphenix.protocol.compat.netty.independent.NettyChannelInjector$6$3.run(NettyChannelInjector.java:361)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:380)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
    [08:28:56] [Netty Server IO #1/WARN]:     at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
    [08:28:56] [Netty Server IO #1/WARN]:     at java.lang.Thread.run(Unknown Source)

    ( there is some possibility of generating an item in the hologram ? type Holographic Displays ? )


    Thank you: D
     
  8. Spawn dropped items separately and set them as passenger on an invisible ArmorStand (1.8) or an invisible player (1.7).
     
  9. Removing the DEBUG messages? (I'm using protocol support)

    Code (Text):
    [17:16:38 INFO]: true
    [17:16:38 INFO]: MINECRAFT_1_8
    [17:16:38 INFO]: 47
    [17:16:38 WARN]: java.lang.NullPointerException
    [17:16:38 INFO]: true
    [17:16:38 INFO]: MINECRAFT_1_8
    [17:16:38 INFO]: 47
    [17:16:38 INFO]: true
    [17:16:38 INFO]: MINECRAFT_1_8
    [17:16:38 INFO]: 47
    [17:16:38 INFO]: true
    [17:16:38 INFO]: MINECRAFT_1_8
    [17:16:38 INFO]: 47
    [17:16:38 INFO]: true
    [17:16:38 INFO]: MINECRAFT_1_8
    [17:16:38 INFO]: 47
    [17:16:39 INFO]: true
    [17:16:39 INFO]: MINECRAFT_1_8
    [17:16:39 INFO]: 47
     
    • Agree Agree x 3
  10. #93 inventivetalent, Jan 5, 2016
    Last edited: Jan 6, 2016
    • Like Like x 1
    • Like Like x 1
    • Like Like x 1
    • Like Like x 1
    • Winner Winner x 1
  11. I forgot to do this. Really needed.
     
    • Like Like x 1
  12. @inventivetalent Could you please push the 1.3.9 changes to BitBucket? Also, holograms are now getting sent regardless of the world. Please add a check to see if the player is actually in the same world as the hologram.