Closed vytskalt closed 10 months ago
Can you promote the completion of this feature? @vytskalt
Can you promote the completion of this feature? @vytskalt
I don't have much time due to school atm unfortunately, but I'll try to complete this within a week
Is it ready to use?
no, i haven't tested it yet and only implemented the packet stuff for 1.20.2 so far
Looking forward to successfully running on 1.8.8!
Looking forward to successfully running on 1.8.8!
I've implemented it for 1.8.8, seems to work fine from my limited testing. You can change the version of the dependency to 087d086945
to get the changes. Example is here. Can you test it out if it works for you?
It seems that the version of packetevent I am using has not been implemented yet? https://github.com/MegavexNetwork/scoreboard-library/blob/087d086945df2535ee843c1f5cb7fe61ccd24923/versions/packetevents/src/main/java/net/megavex/scoreboardlibrary/implementation/packetAdapter/packetevents/PacketAdapterImpl.java#L55-L58
Yeah I havent implemented it for packetevents yet, but you can use the native 1.8.8 packet adapter
findAndLoadImplementationClass cannot correctly obtain the version by using 'Bukkit.getServer().getBukkitVersion()'. I am using a custom Spigot, can you try switching to 'Bukkit.getServer().getClass().getPackage()'?
findAndLoadImplementationClass cannot correctly obtain the version by using 'Bukkit.getServer().getBukkitVersion()'. I am using a custom Spigot, can you try switching to 'Bukkit.getServer().getClass().getPackage()'?
PaperMC has recently advised to switch from using Bukkit.getServer().getClass().getPackage()
to Bukkit.getServer().getBukkitVersion()
as they plan to remove the version from the package
https://discord.com/channels/289587909051416579/1077385604012179486/1155459001090318346 (PaperMC discord)
What kind of values does your custom spigot return?
It's the commitId of git example: ForkSpigot-980636d
It's the commitId of git example: ForkSpigot-980636d
Not sure what I can do to fix it. The git hash should be in Bukkit.getServer().getVersion()
and not Bukkit.getVersion().getBukkitVersion()
Okay, I will try to make it work.
[22:49:14 ERROR]: [address|username] <-> DownstreamBridge <-> [server] - encountered exception
java.lang.IllegalArgumentException: Objective c6ad7e1834 already exists in this scoreboard
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:220) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at net.md_5.bungee.api.score.Scoreboard.addObjective(Scoreboard.java:55) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at net.md_5.bungee.connection.DownstreamBridge.handle(DownstreamBridge.java:188) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at net.md_5.bungee.protocol.packet.ScoreboardObjective.handle(ScoreboardObjective.java:67) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:114) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
objective = objectiveManager.create(randomKey());
objectiveManager.display(ObjectiveDisplaySlot.playerList(), objective);
objective.score(nickName(), 10);
objectiveManager.addPlayer(viewer);
I haven't created an objective before, so I can confirm that it's the first one
Interesting, ill check it out
[22:49:14 ERROR]: [address|username] <-> DownstreamBridge <-> [server] - encountered exception java.lang.IllegalArgumentException: Objective c6ad7e1834 already exists in this scoreboard at com.google.common.base.Preconditions.checkArgument(Preconditions.java:220) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at net.md_5.bungee.api.score.Scoreboard.addObjective(Scoreboard.java:55) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at net.md_5.bungee.connection.DownstreamBridge.handle(DownstreamBridge.java:188) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at net.md_5.bungee.protocol.packet.ScoreboardObjective.handle(ScoreboardObjective.java:67) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:114) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[Waterfall.jar:git:Waterfall-Bootstrap:1.19-R0.1-SNAPSHOT:c6ccee1:unknown] at java.lang.Thread.run(Thread.java:833) ~[?:?]
objective = objectiveManager.create(randomKey()); objectiveManager.display(ObjectiveDisplaySlot.playerList(), objective); objective.score(nickName(), 10); objectiveManager.addPlayer(viewer);
I haven't created an objective before, so I can confirm that it's the first one
fixed
new version is b747d4bfeb
, only thing left is to test everything and then ill merge this
That might be a limitation in the vanilla client itself
Okay, so far I don't have any problems. I have tested PlayerList and BelowName (v1_8_R3-b747d4bfeb)
Everything appears to be working from my testing, will merge this and make a release
TODO:
closes #3