Further safety for player collision setting

Hopefully the end of similar problems
Fixes GH-415
This commit is contained in:
Zach Brown 2016-09-08 12:39:40 -05:00
parent 098dae2524
commit b0a15ca1ea

View file

@ -66,8 +66,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
entityplayer.syncInventory();
+ // Paper start - Add to collideRule team if needed
+ if (this.collideRuleTeamName != null) {
+ this.server.getWorld().getScoreboard().addPlayerToTeam(entityplayer.getName(), collideRuleTeamName);
+ final Scoreboard scoreboard = this.getServer().getWorld().getScoreboard();
+ if (this.collideRuleTeamName != null && scoreboard.getTeam(collideRuleTeamName) != null && entityplayer.getTeam() == null) {
+ scoreboard.addPlayerToTeam(entityplayer.getName(), collideRuleTeamName);
+ }
+ // Paper end
// CraftBukkit - Moved from above, added world
@ -79,9 +80,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ // Paper start - Remove from collideRule team if needed
+ if (this.collideRuleTeamName != null) {
+ Scoreboard scoreBoard = this.server.getWorld().getScoreboard();
+ ScoreboardTeam team = scoreBoard.getTeam(this.collideRuleTeamName);
+ if (team != null) scoreBoard.removePlayerFromTeam(entityplayer.getName(), team);
+ final Scoreboard scoreBoard = this.server.getWorld().getScoreboard();
+ final ScoreboardTeam team = scoreBoard.getTeam(this.collideRuleTeamName);
+ if (entityplayer.getTeam() == team && team != null) {
+ scoreBoard.removePlayerFromTeam(entityplayer.getName(), team);
+ }
+ }
+ // Paper end
+
@ -95,8 +98,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
-
+ // Paper start - Remove collideRule team if it exists
+ if (this.collideRuleTeamName != null) {
+ Scoreboard scoreboard = this.getServer().getWorld().getScoreboard();
+ ScoreboardTeam team = scoreboard.getTeam(this.collideRuleTeamName);
+ final Scoreboard scoreboard = this.getServer().getWorld().getScoreboard();
+ final ScoreboardTeam team = scoreboard.getTeam(this.collideRuleTeamName);
+ if (team != null) scoreboard.removeTeam(team);
+ }
+ // Paper end