Executing /deop will disconnect non-whitelisted operators, as the /deop command calls kickNonWhitelistedPlayers (yarn mappings, not mojmap, linkie didn’t work sorry), which calls whitelist.isAllowed and not PlayerManager.isWhitelisted, without calling any form of isOperator.
Reproduction steps:
Launch a dedicated minecraft server.
Join with two players and
/opthem both.Enable
enforce-whitelistandwhite-listinserver.propertiesand restart the server.Join with the same two players.
Execute
/deop Player1fromPlayer2.Player2will be kicked as well, but can rejoin (would expect them to stay).
(side-note: PlayerManager calls whitelist.contains, DedicatedPlayerManager calls whitelist.isAllowed which simply refers back to whitelist.contains, so that’s a thing; And I don’t know if my mod dev env is bugged or if it’s intentional or what, but just fyi BannedPlayerList.contains seems to call itself infinitely)
Comments 3
BannedPlayerList.containsseems to call itself infinitely
Won’t that just result in a StackOverflowError?
Reproduced on vanilla 1.21.8 as well.