@@ -51,32 +51,25 @@ function setScore (entity: Entity, objectiveId: string, score: number, action?:
51
51
const objective = world . scoreboard . getObjective ( objectiveId ) ;
52
52
if ( ! objective ) throw new ReferenceError ( 'Scoreboard objective does not exist in world.' ) ;
53
53
54
+ const previousScore = ! ! entity . scoreboardIdentity ? entity . scoreboardIdentity . getScore ( objective ) : 0 ;
55
+
54
56
switch ( action ) {
55
57
case ScoreboardAction . add :
56
- // If entity doesnt have scoreboard property, run command
57
- if ( ! entity . scoreboardIdentity ) entity . runCommandAsync ( 'scoreboard players add @s ' + objective + ' ' + score ) ;
58
- else {
59
- const previousScore = entity . scoreboardIdentity . getScore ( objective ) ;
60
- entity . scoreboardIdentity . setScore ( objective , previousScore + score ) ;
61
- } ;
58
+ score += previousScore ;
62
59
break ;
63
60
64
61
case ScoreboardAction . remove :
65
- // If entity doesnt have scoreboard property, run command
66
- if ( ! entity . scoreboardIdentity ) entity . runCommandAsync ( 'scoreboard players remove @s ' + objective + ' ' + score ) ;
67
- else {
68
- const previousScore = entity . scoreboardIdentity . getScore ( objective ) ;
69
- entity . scoreboardIdentity . setScore ( objective , previousScore - score ) ;
70
- } ;
62
+ score -= previousScore ;
71
63
break ;
72
64
73
65
default :
74
- // If entity doesnt have scoreboard property, run command
75
- if ( ! entity . scoreboardIdentity ) entity . runCommandAsync ( 'scoreboard players set @s ' + objective + ' ' + score ) ;
76
- else entity . scoreboardIdentity . setScore ( objective , score ) ;
77
66
break ;
78
67
}
79
68
69
+ // If entity doesnt have scoreboard property, run command
70
+ if ( ! entity . scoreboardIdentity ) entity . runCommand ( 'scoreboard players set @s ' + objective + ' ' + score ) ;
71
+ else entity . scoreboardIdentity . setScore ( objective , score ) ;
72
+
80
73
if ( fetch ) updateDisplay ( objective ) ;
81
74
} ;
82
75
0 commit comments