diff --git a/api/src/main/java/net/md_5/bungee/api/score/Objective.java b/api/src/main/java/net/md_5/bungee/api/score/Objective.java index f1309fca..b1afa57e 100644 --- a/api/src/main/java/net/md_5/bungee/api/score/Objective.java +++ b/api/src/main/java/net/md_5/bungee/api/score/Objective.java @@ -1,11 +1,13 @@ package net.md_5.bungee.api.score; +import lombok.AllArgsConstructor; import lombok.Data; /** * Represents an objective entry. */ @Data +@AllArgsConstructor public class Objective { @@ -16,7 +18,7 @@ public class Objective /** * Value of the objective. */ - private final String value; + private String value; /** * Type; integer or hearts */ diff --git a/api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java b/api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java index de82b247..09069ae7 100644 --- a/api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java +++ b/api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java @@ -74,6 +74,11 @@ public class Scoreboard return teams.get( name ); } + public Objective getObjective(String name) + { + return objectives.get( name ); + } + public void removeObjective(String objectiveName) { objectives.remove( objectiveName ); diff --git a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java index eccb632f..858e7f97 100644 --- a/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java +++ b/proxy/src/main/java/net/md_5/bungee/connection/DownstreamBridge.java @@ -119,7 +119,11 @@ public class DownstreamBridge extends PacketHandler serverScoreboard.removeObjective( objective.getName() ); break; case 2: - // TODO: Handle this if we ever make an API + Objective oldObjective = serverScoreboard.getObjective( objective.getName() ); + if ( oldObjective != null ) + { + oldObjective.setValue( objective.getValue() ); + } break; default: throw new IllegalArgumentException( "Unknown objective action: " + objective.getAction() );