From 1b18e64fb2e69779b4227a219193b482954b435b Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 22 Jul 2014 20:24:15 +1000 Subject: [PATCH] Handle objective value changes. Although the client *shouldn't* be using this for any sort of keying, it may indeed be. Closes #1116 awaiting testing. --- api/src/main/java/net/md_5/bungee/api/score/Objective.java | 4 +++- api/src/main/java/net/md_5/bungee/api/score/Scoreboard.java | 5 +++++ .../java/net/md_5/bungee/connection/DownstreamBridge.java | 6 +++++- 3 files changed, 13 insertions(+), 2 deletions(-) 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() );