I am currently running
spongeforge-1.12.2-2611-7.1.0-BETA-2955.jar1.8.0_77Windows 10Issue Description
Code that caused the issue:
TextColor color = Sponge.getRegistry().getType(TextColor.class, levelNode.getNode("color").getString("GRAY")).orElse(TextColors.GRAY);
Team playerTeam = Team.builder()
.members(Sets.newHashSet(player.getTeamRepresentation()))
.name(player.getName())
.color(color)
.prefix(Text.of(color))
.nameTagVisibility(Visibilities.ALWAYS)
.build();
Stack trace:
java.lang.ClassCastException: org.spongepowered.api.text.format.TextColors$1 cannot be cast to org.spongepowered.common.text.format.SpongeTextColor
at net.minecraft.scoreboard.ScorePlayerTeam.setColor(SourceFile:622) ~[bhh.class:?]
at org.spongepowered.common.scoreboard.builder.SpongeTeamBuilder.build(SpongeTeamBuilder.java:171) ~[SpongeTeamBuilder.class:1.12.2-2611-7.1.0-BETA-2953]
at com.negafinity.pokemonplayerlevels.scoreboard.ScoreboardManager.setUserScoreboard(ScoreboardManager.java:71) ~[ScoreboardManager.class:?]
at com.negafinity.pokemonplayerlevels.listeners.JoinListener.onClientJoin(JoinListener.java:33) ~[JoinListener.class:?]
at org.spongepowered.common.event.listener.JoinListener_JoinListener_onClientJoin7.handle(Unknown Source) ~[?:?]
at org.spongepowered.common.event.RegisteredListener.handle(RegisteredListener.java:95) ~[RegisteredListener.class:1.12.2-2611-7.1.0-BETA-2953]
at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:335) [SpongeModEventManager.class:1.12.2-2611-7.1.0-BETA-2953]
at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:312) [SpongeModEventManager.class:1.12.2-2611-7.1.0-BETA-2953]
at org.spongepowered.mod.event.SpongeModEventManager.post(SpongeModEventManager.java:364) [SpongeModEventManager.class:1.12.2-2611-7.1.0-BETA-2953]
at org.spongepowered.common.event.SpongeEventManager.post(SpongeEventManager.java:427) [SpongeEventManager.class:1.12.2-2611-7.1.0-BETA-2953]
at org.spongepowered.common.SpongeImpl.postEvent(SpongeImpl.java:207) [SpongeImpl.class:1.12.2-2611-7.1.0-BETA-2953]
at net.minecraft.server.management.PlayerList.initializeConnectionToPlayer(PlayerList.java:1658) [pl.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.completeServerSideConnection(NetworkDispatcher.java:256) [NetworkDispatcher.class:?]
at net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.access$100(NetworkDispatcher.java:72) [NetworkDispatcher.class:?]
This appears to be the culprit: https://github.com/SpongePowered/SpongeCommon/blob/74080b0c75e59075f164f5151b08be395e2d17fc/src/main/java/org/spongepowered/common/mixin/core/scoreboard/MixinScorePlayerTeam.java#L122
I assume this is caused by TextColors.NONE.
@ST-DDT I don't think so, my code sets the color to TextColors.GRAY and the exception is generated.
I just opened that file with my decompiler and it is indeed NONE. (Opening the file with a texteditor works as well).
````java
final class TextColors$1
implements TextColor
{
private final Color color = Color.BLACK;
public String getName()
{
return "NONE";
}
public Color getColor()
{
return this.color;
}
public String getId()
{
return "NONE";
}
public String toString()
{
return getId();
}
}
````
As for how that value got there: I don't know.
Maybe you can add some debug code to trace it back.
That is very odd indeed.
I still don't think this error should occur though - I passed a SpongeTextColor directly into the .color option and no exception was generated, using that as a workaround for the time-being.
Is this worth patching? If so, I've got a three-line fix ready for it.