sgtcaze / NametagEdit

Simple plugin to give players custom nametags
GNU General Public License v3.0
197 stars 132 forks source link

team already exists #141

Closed PhanaticD closed 7 years ago

PhanaticD commented 7 years ago

Unfortunately this is still happening with build 63. My CTF minigame ended and all the players were sent to the hub server, and all of those players were kicked from the server with this error in the bungee log

java.lang.IllegalArgumentException: Team AEDAD-19 already exists in this scoreboard
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
    at net.md_5.bungee.api.score.Scoreboard.addTeam(Scoreboard.java:68)
    at net.md_5.bungee.connection.DownstreamBridge.handle(DownstreamBridge.java:205)
    at net.md_5.bungee.protocol.packet.Team.handle(Team.java:102)
    at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:78)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
    at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1018)
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394)
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
    at java.lang.Thread.run(Thread.java:745)
sgtcaze commented 7 years ago

You know what this sounds like, is a concurrency issue. I bet when we load the tags (from the database) asynchronously, we are potentially creating lots of teams simultaneously. Will take a look at this.

Update: I actually think this is an issue with Sort Priority being handled async.

sgtcaze commented 7 years ago

No dice on the Async theory, all nametags are applied on the main thread. For the time being, set the SortPriority of all group nametags to "0". The clash you are seeing is related to SortPriority.

sgtcaze commented 7 years ago

Have you experienced this since that one "fix" was uploaded?

PhanaticD commented 7 years ago

no i havent

sgtcaze commented 7 years ago

Going to close this issue for now as it seems resolved. If it persists, please reopen.

Malachiel87 commented 6 years ago

i think is still here. 1.12.2 + latest version on spigot https://gist.github.com/xion87/f6c3256e41176ea474c709d0df5fefb1 Not sure if is caused by this plugin