LuckPerms

LuckPerms

41.4k Downloads

Track Promote Kicks Player (BungeeCord)

meowsome opened this issue ยท 4 comments

commented

Description

Unsure if this is the correct place for this, but I'm looking for some help with an issue I'm having.

I have a track set up in my Prison server that goes from A through Z, where A is the "default" rank. I use the following command to move players to the next rank: /lp user username promote prison server=prison

However, when I've been running this command, it's been kicking the player from the server and putting them into the "fallback" Bungeecord server. I get the following error in chat:
"The server you were previously on went down, you have been connected to a fallback server"

Additionally, I get this error in Bungeecord console:

23:19:16 [SEVERE] [Leafeons] <-> DownstreamBridge <-> [prison] - encountered exception
java.lang.IllegalArgumentException: Team 27LeafeonsA already exists in this scoreboard
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:220)
    at net.md_5.bungee.api.score.Scoreboard.addTeam(Scoreboard.java:73)
    at net.md_5.bungee.connection.DownstreamBridge.handle(DownstreamBridge.java:216)
    at net.md_5.bungee.protocol.packet.Team.handle(Team.java:124)
    at net.md_5.bungee.netty.HandlerBoss.channelRead(HandlerBoss.java:114)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:311)
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:432)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
    at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480)
    at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at java.lang.Thread.run(Thread.java:748)
23:19:16 [INFO] [Leafeons] <-> DownstreamBridge <-> [prison] has disconnected
23:19:16 [INFO] [Leafeons] <-> ServerConnector [lobby] has connected

There are no errors in the Prison server's console. The rankup does occur correctly, when I log back in, I have the new rank. The Prison server remains online.

There is one weird thing to note. This doesn't occur when specifying which rank to go to next. For example, typing /lp user username parent settrack prison b server=prison works just fine.

Can someone please point me in the right direction? Thanks

Reproduction Steps

  1. Create promote track going from A through Z where A is default rank
  2. Set yourself as any rank (for example, L)
  3. Type /lp user username promote prison server=prison
  4. You get kicked

Expected Behaviour

I expect to not be kicked

Server Details

Bungeecord: git:BungeeCord-Bootstrap:1.18-R0.1-SNAPSHOT:1ad8150:1619, Paper: git-Paper-132 (MC: 1.18.1)

LuckPerms Version

5.3.98

Logs and Configs

No response

Extra Details

No response

commented

It looks most likely that you have another plugin that's dealing with promotion somehow or other and bringing scoreboards into the mix. I don't think this would be reproducible with only LuckPerms on the server, as it doesn't add players to scoreboards and only handles its own groups internally.

I'll close this for now with the suggestion to look into your other plugins - one of them is almost certainly trying to 'help' with promotions somehow (possibly even listening in for LP promotions) and as a result is screwing up expected vanilla behaviour, kicking the player. I know for a fact that with LP alone on a testing server, this will not happen, and the error you're getting is not an internal LP error.

If you'd like general, non-LP with this, feel free to join the LuckPerms discord (https://discord.gg/luckperms) and ask in #general - some of the folks there may be able to help!

commented

Hi, thanks for the response, I appreciate you looking into this. I've pasted a plugin list below. Could you please take a quick glance at it and help me figure out which one might be causing the issue? Thank you

AdvancedPortals, AntiCheatReloaded, BentoBox, BungeeGuard, ChestShop, Clans, CommandToItem, CraftingStore, CrashAPI, CrazyAuctions, CrazyCrates, DeluxeMenus, DeluxeTags, EnchantmentSolution, EnchantmentUpgrades, Essentials, EssentialsChat, EssentialsSpawn, ez-broadcast, EZBlocks*, GemsEconomy, HolographicDisplays, ItemSlotMachine, LuckPerms, MineableSpawners, MineResetLite, MineSuffocatingTeleporter, Multiverse-Core, MyCommand, NerfPhantoms, PersonalVaults, PerVersionResources*, PL-Hide, PlaceholderAPI, PrivateMines, ProtocolLib, Quests, RepairReminder, Rewards*, SimpleAutoSell, SpaceSellWands, SuperbVote, TAB, Vault, VeinMiner, ViaVersion, Votifier, WorldEdit, WorldGuard, WorldGuardExtraFlags, XPBoost

commented

I would start by taking a look at any and all Prison/Mine/Rank plugins you have - I see a good few. Just removing one at a time and testing should get you results pretty quick!

commented

Turned out to be a problem with the plugin "TAB", I updated to the latest version, the dev already fixed this. Thanks for the help, sorry to bug ya.