PaperMC/CraftBukkit-Patches/0109-Expand-team-API-to-allow-arbitrary-strings.patch
2015-04-08 22:47:31 -05:00

116 lines
4.3 KiB
Diff

From e8c345319601a2cfe17d166fbfc8288372e98358 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Thu, 17 Apr 2014 19:22:22 +1000
Subject: [PATCH] Expand team API to allow arbitrary strings.
diff --git a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
index 342d4af..6b7233e 100644
--- a/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
+++ b/src/main/java/org/bukkit/craftbukkit/scoreboard/CraftTeam.java
@@ -115,6 +115,19 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
return players.build();
}
+ // Spigot start
+ @Override
+ public Set<String> getEntries() throws IllegalStateException {
+ CraftScoreboard scoreboard = checkState();
+
+ ImmutableSet.Builder<String> entries = ImmutableSet.builder();
+ for (Object o : team.getPlayerNameSet()){
+ entries.add(o.toString());
+ }
+ return entries.build();
+ }
+ // Spigot end
+
public int getSize() throws IllegalStateException {
CraftScoreboard scoreboard = checkState();
@@ -123,28 +136,50 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
public void addPlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException {
Validate.notNull(player, "OfflinePlayer cannot be null");
+ // Spigot Start
+ addEntry(player.getName());
+ }
+
+ public void addEntry(String entry) throws IllegalStateException, IllegalArgumentException {
+ Validate.notNull(entry, "Entry cannot be null");
CraftScoreboard scoreboard = checkState();
- scoreboard.board.addPlayerToTeam(player.getName(), team.getName());
+ scoreboard.board.addPlayerToTeam(entry, team.getName());
+ // Spigot end
}
public boolean removePlayer(OfflinePlayer player) throws IllegalStateException, IllegalArgumentException {
Validate.notNull(player, "OfflinePlayer cannot be null");
+ // Spigot start
+ return removeEntry(player.getName());
+ }
+
+ public boolean removeEntry(String entry) throws IllegalStateException, IllegalArgumentException {
+ Validate.notNull(entry, "Entry cannot be null");
CraftScoreboard scoreboard = checkState();
- if (!team.getPlayerNameSet().contains(player.getName())) {
+ if (!team.getPlayerNameSet().contains(entry)) {
return false;
}
- scoreboard.board.removePlayerFromTeam(player.getName(), team);
+ scoreboard.board.removePlayerFromTeam(entry, team);
+ // Spigot end
return true;
}
public boolean hasPlayer(OfflinePlayer player) throws IllegalArgumentException, IllegalStateException {
Validate.notNull(player, "OfflinePlayer cannot be null");
+ // Spigot start
+ return hasEntry(player.getName());
+ }
+
+ public boolean hasEntry(String entry) throws IllegalArgumentException, IllegalStateException {
+ Validate.notNull("Entry cannot be null");
+
CraftScoreboard scoreboard = checkState();
- return team.getPlayerNameSet().contains(player.getName());
+ return team.getPlayerNameSet().contains(entry);
+ // Spigot end
}
@Override
@@ -211,27 +246,6 @@ final class CraftTeam extends CraftScoreboardComponent implements Team {
final CraftTeam other = (CraftTeam) obj;
return !(this.team != other.team && (this.team == null || !this.team.equals(other.team)));
}
-
- // Spigot start
- @Override
- public Set<String> getEntries() throws IllegalStateException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public void addEntry(String entry) throws IllegalStateException, IllegalArgumentException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean removeEntry(String entry) throws IllegalStateException, IllegalArgumentException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
-
- @Override
- public boolean hasEntry(String entry) throws IllegalArgumentException, IllegalStateException {
- throw new UnsupportedOperationException("Not supported yet.");
- }
// Spigot end
}
--
2.1.0