From 83afa95d98a9849019adaf97cc65bbf4242c9b5b Mon Sep 17 00:00:00 2001 From: replaceitem <40722305+replaceitem@users.noreply.github.com> Date: Tue, 29 Jun 2021 03:52:40 +0200 Subject: [PATCH] Fixed team color using client method (#965) --- src/main/java/carpet/mixins/Team_scarpetMixin.java | 13 +++++++++++++ src/main/java/carpet/script/api/Scoreboards.java | 3 ++- src/main/resources/carpet.mixins.json | 1 + 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 src/main/java/carpet/mixins/Team_scarpetMixin.java diff --git a/src/main/java/carpet/mixins/Team_scarpetMixin.java b/src/main/java/carpet/mixins/Team_scarpetMixin.java new file mode 100644 index 00000000..ffd0eb59 --- /dev/null +++ b/src/main/java/carpet/mixins/Team_scarpetMixin.java @@ -0,0 +1,13 @@ +package carpet.mixins; + +import net.minecraft.scoreboard.Team; +import net.minecraft.util.Formatting; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(Team.class) +public interface Team_scarpetMixin +{ + @Accessor("color") + Formatting getColor(); +} diff --git a/src/main/java/carpet/script/api/Scoreboards.java b/src/main/java/carpet/script/api/Scoreboards.java index 0b4b6743..ec74ddce 100644 --- a/src/main/java/carpet/script/api/Scoreboards.java +++ b/src/main/java/carpet/script/api/Scoreboards.java @@ -2,6 +2,7 @@ package carpet.script.api; import carpet.mixins.ScoreboardObjective_scarpetMixin; import carpet.mixins.Scoreboard_scarpetMixin; +import carpet.mixins.Team_scarpetMixin; import carpet.script.CarpetContext; import carpet.script.Expression; import carpet.script.LazyValue; @@ -337,7 +338,7 @@ public class Scoreboards { team.setCollisionRule(collisionRule); break; case "color": - if(!modifying) return new StringValue(team.getColor().getName()); + if(!modifying) return new StringValue(((Team_scarpetMixin) team).getColor().getName()); if(!(settingVal instanceof StringValue)) throw new InternalExpressionException("'team_property' requires a string as the third argument for the property " + propertyVal.getString()); Formatting color = Formatting.byName(settingVal.getString().toUpperCase()); if(color == null || !color.isColor()) throw new InternalExpressionException("Unknown value for property " + propertyVal.getString() + ": " + settingVal.getString()); diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 7a8ab8b9..bfdfbd91 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -175,6 +175,7 @@ "PlayerInventory_scarpetEventMixin", "ScoreboardObjective_scarpetMixin", "Scoreboard_scarpetMixin", + "Team_scarpetMixin", "TradeOutputSlot_scarpetEventMixin", "BiomeEffects_scarpetMixin",