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 1/2] 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", From 35a97117fea3006f1480d19812e116a0ed60b4b3 Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 29 Jun 2021 02:07:07 -0300 Subject: [PATCH 2/2] annoying, fixes #963 --- src/main/java/carpet/script/Expression.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/carpet/script/Expression.java b/src/main/java/carpet/script/Expression.java index 285c2135..67702f47 100644 --- a/src/main/java/carpet/script/Expression.java +++ b/src/main/java/carpet/script/Expression.java @@ -1074,7 +1074,8 @@ public class Expression return root.op; Context optimizeOnlyContext = new Context.ContextForErrorReporting(context); - CarpetScriptServer.LOG.info("Input code size for "+getModuleName()+": " + treeSize(root) + " nodes, " + treeDepth(root) + " deep"); + if (CarpetSettings.scriptsDebugging) + CarpetScriptServer.LOG.info("Input code size for "+getModuleName()+": " + treeSize(root) + " nodes, " + treeDepth(root) + " deep"); boolean changed = true; while(changed) { @@ -1085,7 +1086,8 @@ public class Expression boolean optimized = compactTree(root, Context.Type.NONE, 0); if (!optimized) break; changed = true; - CarpetScriptServer.LOG.info("Compacted from " + tree_size + " nodes, " + tree_depth + " code depth to " + treeSize(root) + " nodes, " + treeDepth(root) + " code depth"); + if (CarpetSettings.scriptsDebugging) + CarpetScriptServer.LOG.info("Compacted from " + tree_size + " nodes, " + tree_depth + " code depth to " + treeSize(root) + " nodes, " + treeDepth(root) + " code depth"); } while (true) { int tree_size = treeSize(root); @@ -1093,7 +1095,8 @@ public class Expression boolean optimized = optimizeTree(optimizeOnlyContext, root, Context.Type.NONE, 0); if (!optimized) break; changed = true; - CarpetScriptServer.LOG.info("Optimized from " + tree_size + " nodes, " + tree_depth + " code depth to " + treeSize(root) + " nodes, " + treeDepth(root) + " code depth"); + if (CarpetSettings.scriptsDebugging) + CarpetScriptServer.LOG.info("Optimized from " + tree_size + " nodes, " + tree_depth + " code depth to " + treeSize(root) + " nodes, " + treeDepth(root) + " code depth"); } } return extractOp(optimizeOnlyContext, root, Context.Type.NONE);