summaryrefslogtreecommitdiffstats
path: root/src/Entities
diff options
context:
space:
mode:
authorandrew <xdotftw@gmail.com>2014-01-20 15:10:39 +0100
committerandrew <xdotftw@gmail.com>2014-01-20 15:10:39 +0100
commit7728f4bcbee7fa61f005c7b972685deb4bf04f2a (patch)
tree2aa40e20c9045a997abb25e17d2fa4890bf47e08 /src/Entities
parentScoreboard improvements (diff)
downloadcuberite-7728f4bcbee7fa61f005c7b972685deb4bf04f2a.tar
cuberite-7728f4bcbee7fa61f005c7b972685deb4bf04f2a.tar.gz
cuberite-7728f4bcbee7fa61f005c7b972685deb4bf04f2a.tar.bz2
cuberite-7728f4bcbee7fa61f005c7b972685deb4bf04f2a.tar.lz
cuberite-7728f4bcbee7fa61f005c7b972685deb4bf04f2a.tar.xz
cuberite-7728f4bcbee7fa61f005c7b972685deb4bf04f2a.tar.zst
cuberite-7728f4bcbee7fa61f005c7b972685deb4bf04f2a.zip
Diffstat (limited to 'src/Entities')
-rw-r--r--src/Entities/Player.cpp22
-rw-r--r--src/Entities/Player.h7
2 files changed, 26 insertions, 3 deletions
diff --git a/src/Entities/Player.cpp b/src/Entities/Player.cpp
index d2fdba909..285aefd25 100644
--- a/src/Entities/Player.cpp
+++ b/src/Entities/Player.cpp
@@ -111,6 +111,8 @@ cPlayer::cPlayer(cClientHandle* a_Client, const AString & a_PlayerName)
m_LastJumpHeight = (float)(GetPosY());
m_LastGroundHeight = (float)(GetPosY());
m_Stance = GetPosY() + 1.62;
+
+ // UpdateTeam();
cRoot::Get()->GetServer()->PlayerCreated(this);
}
@@ -949,8 +951,13 @@ bool cPlayer::IsGameModeAdventure(void) const
-void cPlayer::SetTeam(cTeam* a_Team)
+void cPlayer::SetTeam(cTeam * a_Team)
{
+ if (m_Team == a_Team)
+ {
+ return;
+ }
+
if (m_Team)
{
m_Team->RemovePlayer(GetName());
@@ -968,6 +975,19 @@ void cPlayer::SetTeam(cTeam* a_Team)
+cTeam * cPlayer::UpdateTeam(void)
+{
+ cScoreboard * Scoreboard = m_World->GetScoreBoard();
+
+ m_Team = Scoreboard->QueryPlayerTeam(GetName());
+
+ return m_Team;
+}
+
+
+
+
+
void cPlayer::OpenWindow(cWindow * a_Window)
{
if (a_Window != m_CurrentWindow)
diff --git a/src/Entities/Player.h b/src/Entities/Player.h
index 52e629dc3..52ba2065c 100644
--- a/src/Entities/Player.h
+++ b/src/Entities/Player.h
@@ -155,10 +155,13 @@ public:
AString GetIP(void) const { return m_IP; } // tolua_export
/// Returns the associated team, NULL if none
- cTeam* GetTeam(void) { return m_Team; } // tolua_export
+ cTeam * GetTeam(void) { return m_Team; } // tolua_export
/// Sets the player team, NULL if none
- void SetTeam(cTeam* a_Team);
+ void SetTeam(cTeam * a_Team);
+
+ /// Forces the player to query the scoreboard for his team
+ cTeam * UpdateTeam(void);
// tolua_end